LPC2138微控制器之VIC

第四章 VIC(Vectored Interrupt Controller)

LPC2138微控制器使用ARM7 TDMI-S核和ARM PrimeCell VIC,支持32个中断请求输入。

32个中断请求输入分为三类:

1)FIQ

2)最多16个Vectored IRQ

3)Non-Vectored IRQ

优先级别FIQ > Vectored IRQ > Non-Vectored IRQ。32个中断输入请求中,任意(最多16个)可以配置为任意Vectored IRQ,其中Vectored IRQ 0~15优先级从高到低。

中断和中断向量

中断包括硬件中断IRQ和FIQ,软件中断SWI。

扫描二维码关注公众号,回复: 9231828 查看本文章

中断向量是指中断服务函数(ISR)在内存中的地址。

中断被触发之后,CPU会暂停当前正在执行的任务,进行中断上下文切换,跳转到对应的中断向量执行ISR。其处理过程如下图:

1)用户程序正常执行

2)中断被触发

3)VIC将中断对应的中断向量加载到VICVectAddr寄存器

4)CPU跳转到异常向量表中IRQ或者FIQ处

5)执行指令跳转到VICVectAddr寄存器指向的地址(即ISR所在地址)

6)ISR执行完毕,继续执行用户程序

从上面可以看出,CPU只用区分是FIQ还是IRQ,而不负责判断具体是哪种中断源,具体判断是哪种中断源以及对应的中断向量由VIC代劳。

猜你喜欢

转载自www.cnblogs.com/justin-y-lin/p/12324928.html
今日推荐