欢迎来到天天文库
浏览记录
ID:38176070
大小:36.50 KB
页数:5页
时间:2019-05-24
《ARM的中断控制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、S3C44b0的中断控制 中断控制是所示嵌入式系统中不可或缺的一部分。对于不同的处理器,虽然中断控制的原理是基本一致的,但其管理方式往往都有很大的区别。学过51系列单片机的刚开始学ARM人会觉得ARM的中断管理系统很复杂,因为在51中中断向量几乎不用你管。主要是因为在ARM系统中中断源多,且为了实现不同系统对实时性的要求不同而进行多优先级的管理的造成的。1、ARM7TDMI内核的中断至于中断的概念这里就说的,下面我来介绍一下ARM7TDMI内核下的中断。和51单片机只有一种模式不同,ARM7TDMI内
2、核CPU在响应中断后会切换到异常模式下:FIQ中断是进入快中断模式,IRQ中断时进入中断模式(ARM7TDMI内核有7种模式:用户模式,系统模式,快中断模式,中断模式,管理模式,中止模式和未定义模式,其中后5种被称为异常模式,由程序状态寄存器的M4M3M2M1M0这5位来决定,其实ARM7的模式管理的这5位和51单片机状态寄存器的RS1RS0两位的作用相似)。1.1、中断处理过程ARM7进入及退出快中断模式和中断模式的过程(中断响应过程)如下:① 将下一条指令的地址复制到LR(R14)中(在ARM状态下
3、)。② 将CPSR复制到适当的SPSR(各种模式处CPSR是共用一个的,而SPSR在不同异常模式下是不同的)。③ 根据异常将CPSR模式强制设为快中断模式或中断模式。④ 强制PC从相关的异常向量处取指。(到此完成进入中断服务程序的动作)⑤ 执行异常服务程序。⑥ 将LR中的值减去偏移量后移入PC。ARM状态快中断模式和中断模式下这个偏移量为4,因为LR保存的是由于FIQ或IRQ占先面没有被执行的指令的地址。⑦ 将SPSR的值复制回CPSR中。⑧ 清零在入口置位的中断禁止
4、标志。1.2、异常向量表 一旦产生IRQ中断,微控制器会切换到IRQ模式,并且跳转到向量表0x0000018地址处执行程序。而一旦产生FIQ中断,微控制器会切换到FIQ模式,并且跳转到向量表0x000001C地址处执行程序。所示,在0x00000080处和0x0000001C处必须各有一条跳转指令,分别跳转的IRQ和FIQ中断处理的代码处。在0x00000000处的一般向量表称为异常向量表,定义如下:ENTRY bResetHandler ;fordebug bHandlerUnde
5、f ;handlerUndef bHandlerSWI ;SWIinterrupthandler bHandlerPabort ;handlerPAbort bHandlerDabort ;handlerDAbort b. ;handlerReserved bHandlerIRQ ;这里是IRQ中断入口处0x00000018bHandlerFIQ ;这里是FIQ中断入口处0x0000001C
6、ResetHandler、HandlerUndef等只是地址标签,是由用户自己在这些异常处理代码的开始处定义的。2、44b0X的中断2.1、44b0X的启动时中断的初始化44B0的初始化程序就是初始化各个关键的寄存器,建立中断向量,然后转移到主函数去执行程序。不过44B0不支持地址映射,所以程序不COPY到RAM种执行。44B0初始化对我们广大初学者来说,比较难理解的是中断的处理和一些少见的操作符号。下面我来一段一段地分析。2.1.1、44b0的中断子程序地址就是存放在初始化程序最后的一段:
7、 ^ _ISR_STARTADDRESSHandleReset # 4HandleUndef # 4HandleSWI # 4HandlePabort # 4HandleDabort # 4HandleReserved # 4HandleIRQ # 4HandleFIQ # 4 ;Don'tusethelabel'IntVectorTable',;becausearmasm.execann'trecognizet
8、hislabelcorrectly.;thevalueisdifferentwithanaddressyouthinkitmaybe.;IntVectorTableHandleADC # 4HandleRTC # 4HandleUTXD1 # 4HandleUTXD0 # 4HandleSIO # 4……HandleEINT3 #
此文档下载收益归作者所有