TI中文支持网
TI专业的中文技术问题搜集分享网站

VIM

今天下午看了RM48的VIM模块介绍,看了很长时间感觉还是比较混乱。能否点拨下这个VIM的工作原理啊,比如从CPU收到一个IRQ请求到处理完它,所走的一个基本流程。谢谢了!

Jason ZHANG (MCU FAE):

Zhiqiang,

通常来说,中断发生主要涉及到三个部分:外设、VIM和CPU。中断发生时, 如果外设被配置为允许中断发生,那么这时外设就可以向VIM申请对应于此外设的中断请求,如果在VIM中此外设中断被使能并且没有更高优先级的中断处于等待状态,那么VIM就可以将这个中断请求发送给CPU来处理,如果在CPU处的全局中断被使能,那么CPU就可以根据从VIM处获得的中断信息去执行对应的ISR了,这样中断就被响应了。下图是在配置中断时需要注意的几点,一般这几点注意后,中断就可以被正常响应了。

谢谢!

ZhiQiang Ye:

回复 Ken Wang:

感谢两位技术人员ken和Jason的回答。

我昨天看了你们的TRM里面写了VIC的三种工作方式,从COGEN生成的代码来看,应该是默认使用的是第二种方式:register vector interrupt。

Ken的图大概可以这么理解吗?即右边灰色的模块“通道映射”和“优先级解码器”是从硬件的角度来阐述的:来了中断后,硬件会自动选取优先级最高的中断送往CPU。PC跳到0X18处(假设是IRQ),由此再跳到system model区的地址为0xFFFFFE70h IRQVECREG寄存器,里面存储了VIM RAM中被响应的ISR地址,最后CPU去执行ISR。

一、那么图中的“寄存器”是否就是IRQVECREG寄存器?右边的“外设总线接口”连接实际的中断源,其与左边的INT0–INT94又是如何联系起来的呢?

二、如果禁止VIC,CORTEX-R4又如何去实现中断流程呢?

感谢!

Jason ZHANG (MCU FAE):

回复 ZhiQiang Ye:

Zhiqiang,

对于第一个问题,个人认为IRQVECREG应该不是在Hardware vector interrupt 模式下的VIC Port,不过我还需要再核实一下。

右边的“外设总线接口”并不是与实际的中断源连接的,实际的中断源是在最左侧输入到VIM中去的,每个中断源默认对应于一个VIM的Channel(在数据手册中有章节介绍每个channel默认对应的中断源);右侧接口是CPU访问VIM RAM的内部总线接口,当CPU初始化RAM时会通过此总线接口来进行相关操作。

第二个问题我没有看太懂,能否解释一下这样操作的目的?

谢谢!

ZhiQiang Ye:

回复 Jason ZHANG (MCU FAE):

哦,第一个问题基本明白了,这个Vbusp是VIM与CPU的特有总线?(PS:第一个问题中的IRQVECREG我说的是register vertor interrupt,您看错了咯。。。)第二个问题,我的意思是如果没有实现VIC的集成,就是去掉这个VIM模块 ,(我的中断不通过VIM这个途径)中断又如何实现?

赞(0)
未经允许不得转载:TI中文支持网 » VIM
分享到: 更多 (0)