中断处理模式: 外部中断处理和内部中断处理的差异性
3] (EVIC) = 1'b0 (IVIC mode)
mfsr $r0, $IVB !read $IVB
ori $r0, $r0, #0x2000 !enable EVIC
mtsr $r0, $IVB !write $IVB
INTC相关程序片断:
INTC通常支持不同的中断触发方式,包含Interrupt Masking、Interrupt Trigger Mode、Interrupt Trigger Level …等。在开始使用每个中断来源之前,这些控制选项都必须在INTC上设定正确。
3. 模拟结果
将上述的Reference Design整合完成后,搭配测试程序进行仿真,并藉由波形图来观察不同中断模式下,相关中断讯号线的变化。
3.1 IVIC模拟结果
在IVIC仿真环境中,主要测试程序如下:
l 由GPIO触发一中断,并将中断传递给CPU
l CPU接收到中断后,执行相对应的中断处理程序
仿真结果如图表11所示,当GPIO触发中断后,将中断直接传递给CPU,在CPU端的int_req讯号线会触发,表示有中断发生。当CPU收到中断讯号后,接着会处理相对应的中断处理程序。
3.2 EVIC模拟结果
在EVIC仿真环境中,主要测试程序如下:
l 由GPIO触发一中断
l 此时INTC设D为EVIC模式,并将中断讯号和相关沟通讯号传递给CPU
l CPU接收到中断后,会将响应讯号拉起,告知INTC收到该中断,并执行相对应的中断处理程序
仿真结果如图表12所示,当GPIO触发中断后,INTC将中断和相关沟通讯号(ireqval)传递给CPU,在CPU端的int_req讯号线和evic_ireqval讯号线会触发,表示有中断发生。当CPU收到中断讯号后,会将evic_ireqack讯号线拉起,告知INTC收到中断。仿真结果如同章节1.2和图表5所论述。
结语
在AndesCore™ N968A-S 所提供的两种中断模式里,其中的IVIC模式使用CPU内的中断控制器来处理中断,此模式对用户来说,只要将中断来源和CPU端的中断讯号连接即可,相当容易整合。若用户所设计的系统里,中断来源数目超过IVIC模式所支持,或者系统需要更复杂的优先权选择时,则可选用EVIC模式。在EVIC模式下,用户需额外设计外部中断控制器,并整合相关沟通讯号。因此,用户可根据本身系统的复杂度和整合的难易度,来选择适合的中断处理模式。
- LPC2292的伪中断与伪中断处理(03-25)
- Linux 2.4.x内核软中断机制(04-06)
- 嵌入式系统开发之中断控制的实现(04-18)
- uC/OS-II的任务切换机理及中断调度优化(05-11)
- μC/OSII的时钟中断技术研究(06-30)
- 微内核RTOS的核外中断管理(07-27)