ARM中断编程入门寄存器介绍及编写过程最近一直在和ARM2200打交道,总结了下在ARMzlg模版中如和编写中断的方法(涉及了向量中断,非向量中断和外部中断的编写方法)本人初学,以下为本人观点,若有错误,请与我联系交流一.前言中断的基本概念:1
在ARM中最多有32个中断请求2
16个向量IRQ中断(16个向量中断的VIC中断号已经有系统定义好了
在p208中可查看)(16个向量中断有16个优先级,可动态分配给中断请求)3
可产生软件中断
中断的优先级资源:中断的优先级资源就是CPU的中断系统
以ARM7体系的CPU为例,最多可以有32个中断资源
对于每个具体的中断源可以将其设定为FIQ,使其具有最高优先级,但FIQ最好是分配给唯一的中断源,否则就失去意义;也可以设定为向量IRQ,使其具有中等优先级,但向量IRQ的总数不能超过16个,这些中断源优先级的高低按向量编号从0(最高)到15(最低)排序;如果中断源的个数超过17个,则剩余的中断源只能设定为非向量IRQ,其优先级最低
操作系统本身必须使用一个定时器中断源来作为系统节拍中断,它是操作系统工作的基础
二VIC向量中断控制器1
向量中断控制器(VIC)具有32个中断请求输入a
可以将其分为3类:FIQ,向量IRQ中断和非向量IRQ
快速中断请求(FIQ)要求具有最高优先级
当如果只有一个中断被分配为FIQ时,可现实最短的FIQ等待时间,因为FIQ服务程序只要简单地启动对该中断处理就可以了
向量IRQ中断具有中等优先级
该优先级可分配32个请求中的16个
32个请求中的任意一个都可以分配到16个向量IRQslot中的任意一个,其中slot()具有最高优先级,而slot15则为最低优先级
非向量IRQ中断的优先级最低
2在编写中断程序时最常用的寄存器a
中断使能寄存器(VICIntEnable)(1)VICIn