LPC2400系列ARM体系下,通过CAN通讯应用,来理解IRQ和FIQ使用的心得
LPC2400系列ARM体系下,说到中断管理,就要提到VIC,即向量中断控制器。它介于外设和ARM内核之间的一个模块,对外设中断进行管理,决定那些中断源可以产生中断、产生哪种类型的中断以及产生中断后执行的哪段中断服务程序。
ARM内核具有两种中断输入:向量中断IRQ和快速中断FIQ。向量中断控制器使用的32的中断请求输入,可以编程分配为FIQ或IRQ类型。意味着外设中断的优先级可以动态分配和调整。快速中断请求具有最高优先级。
前面说了一通,高手级的,略过!
下面首先介绍VIC的控制寄存器,在使用FIQ或IRQ时,个人认为了解VICIntSelect(中断选择寄存器),VICIntEnable(中断使能寄存器),VICIntEnClr(中断使能清零寄存器)这几个就足够了。
其次,参数设置寄存器,理解VICVectAddr0-31(向量地址寄存器0-31),VICVectAddr(向量地址寄存器),VICVectPriority0-31(向量优先级寄存器)即可。
相应的寄存器的初始化使用在后面例程中解释!怎么还没有说到CAN啊,别急,后面例程就是它了!
VIC基本使用流程图: