1 / 9
文档名称:

中断编程入门.doc

格式:doc   大小:32KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

中断编程入门.doc

上传人:ayst8776 2018/11/27 文件大小:32 KB

下载得到文件列表

中断编程入门.doc

相关文档

文档介绍

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