wuyouwuyou

中断控制

0
阅读(30948)

向量中断控制器(VIC)接收所有的中断请求输入,并将它们编程分配为3类:FIQ、向量IRQ和非向量IRQ。可编程分配机制意味着不同外设的中断优先级可以动态分配和调整。

快速中断请求(FIQ)具有最高优先级。如果分配给FIQ的请求多于1个,VIC将中断请求“相或”向ARM处理器产生FIQ信号。当只有一个被分配为FIQ时可实现最短的FIQ等待时间,因为FIQ服务程序只要简单地启动器件的处理就可以了。但如果分配给FIQ级的中断多于1个,FIQ服务程序从VIC中读出一个字以识别产生中断请求的FIQ中断源是哪一个。

向量IRQ具有中等优先级。该级别可分配16个中断请求。中断请求中的任意一个都可分配到16个向量IRQ slot中的任意一个,其中slot0具有最高优先级,而slot15则为最低优先级。

非向量IRQ的优先级最低。

VIC将所有向量和非向量IRQ组合后向ARM处理器产生IRQ信号。IRQ服务程序可通过读取VIC的一个寄存器立即启动并跳转到相应地址。如果有任意一个向量IRQ发出请求,VIC则提供最高优先级请求IRQ服务程序的地址,否则提供默认程序的地址,该默认程序由所有非向量IRQ共用。默认程序可读取另一个VIC寄存器以确定哪个IRQ被激活。

管脚连接模块允许将微控制器的管脚配置为不同的功能。配置寄存器控制连接管脚和片内外设的多路开关。应当在激活外设以及使能任何相关的中断之前,将外设连接到相应的管脚。任何一个被使能的外设,如果其功能没有映射到相关的管脚,对它的激活将被认为是未定义的。