ARM异常中断处理及编程

ARM异常中断处理及编程

ID:40835826

大小:412.00 KB

页数:97页

时间:2019-08-08

ARM异常中断处理及编程_第1页
ARM异常中断处理及编程_第2页
ARM异常中断处理及编程_第3页
ARM异常中断处理及编程_第4页
ARM异常中断处理及编程_第5页
资源描述:

《ARM异常中断处理及编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章ARM异常中断处理及编程7.1ARM异常中断处理概述7.2ARM体系异常中断种类7.3ARM应用系统中异常中断处理程序的安装7.4ARM的SWI异常中断处理程序设计7.5FIG和IRQ异常中断程序设计7.6基于ARM9芯片S3C2410异常中断程序设计第7章ARM异常中断处理及编程本章的主要内容:●ARM异常中断处理概述●异常中断的进入与退出●应用程序中异常中断处理程序的安装●SWI异常中断处理程序●FIQ和IRQ异常中断处理程序●复位异常中断处理程序●未定义异常中断●指令预取中止异常中断处理程序●数据访问中止异常中断处理程序第7章ARM异常中断处理及编程

2、7.1ARM异常中断处理概述ARM异常中断处理需要实现中断的响应、解析跳转和返回等操作,以便支持上层应用程序的开发。当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。进入异常中断处理程序时,要保存被中断的程序的执行现场。从异常中断处理程序退出时,要恢复被中断的程序的执行现场。ARM体系中常在存储地址的低端固化了一个32字节的硬件中断向量表,用来指定各异常中断及其处理程序的对应关系。第7章ARM异常中断处理及编程当一个异常出现后,ARM微处理器执行以下操作:(1)

3、保存处理器当前状态、中断屏蔽位以及各条件标志位;(2)设置当前程序状态寄存器CPSR中相应的位;(3)将寄存器lr_mode设置成返回地址;(4)将程序计数器(PC)值设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序处执行。接收到中断请求后,ARM处理器内核会自动执行以上四步,程序计数器PC总是跳转到相应的固定地址。从异常中断处理程序中返回:(1)恢复被屏蔽的程序的处理器状态;(2)返回到发生异常中断的指令的下一条指令处继续执行。当异常中断发生时,程序计数器PC所指的位置对于各种不同的异常中断是不同的,同样,返回地址对于各种不同的异常中断也是不同

4、的。第7章ARM异常中断处理及编程7.2ARM体系异常中断种类ARM处理器中主要有7个异常(2个中断异常)●复位(RESET)●未定义的指令●软件中断●指令与取终止(PrefechAbort)●数据访问终止(DATAABORT)●外部中断请求(IRQ)●快速中断请求(FIQ)第7章ARM异常中断处理及编程7.2.1异常中断向量表及异常中断优先级在ARM体系中,异常中断向量表的大小为32字节,每异常中断占4个字节。每个异常中断对应的中断向量表中的4个字节的空间中存放了一条跳转指令或者一条向PC寄存器中赋值的数据访问指令。第7章ARM异常中断处理及编程第7章ARM异

5、常中断处理及编程1.复位异常在以ARM为核的系统中,引起复位的原因有:●上电复位●复位引脚上的复位脉冲●对系统电源检测发现过压或欠压。●时钟异常复位。ARM处理器复位后,将进行以下操作:●强制进入管理模式;●强制进入ARM状态;●跳转到绝对地址PC=0x00000000处执行;●禁止IRQ中断和FIQ中断。第7章ARM异常中断处理及编程复位后,程序状态寄存器如下:......IFTM4M3M2M1M011010011上电复位后,进入管理模式,执行操作系统程序,一般用做对系统初始化,例如开中断等;然后切换到用户模式,开始执行正常的用户程序。第7章ARM异常中断处理

6、及编程切换到用户模式可使用下列程序:MRSR0,CPSR;读状态寄存器BICR0,R0,#03;把末两位清0MSRCPRS_c,R0;把修改后的值加载给;状态寄存器,切换结束......;用户程序第7章ARM异常中断处理及编程2.未定义指令异常ARM的未定义指令异常有以下两种情况:(1)遇到一条没有定义指令;(2)执行一条对协处理器的操作指令没有应答。未定义异常中断时,状态寄存器中的F位不变。使用下列指令退出异常中断,返回原程序。●把下一条指令的地址拷贝给LR;●把程序状态寄存器CPSR拷贝给SPSR_und;●强制进入未定义模式;●强制进入到ARM模式;●跳转

7、到绝对地址PC=0x00000004处执行;●禁止IRQ中断。第7章ARM异常中断处理及编程进入中断后,程序状态寄存器如下:......IFTM4M3M2M1M01x011011未定义异常中断返回时,使用下列指令返回到原中断处:MOVSPC,R14.第7章ARM异常中断处理及编程3.软件中断异常是由指令SWI引起的。程序在执行这一指令后,进入异常中断。处理器响应中断,硬件执行如下的操作:●把下一条指令的地址拷贝给LR;●把程序状态寄存器CPSR拷贝给SPSR_svc;●强制进入管理模式;●强制进入到ARM状态;●跳转到绝对地址PC=0x00000008处执行;●

8、禁止IRQ中断。第7章A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。