| 时间:2008-05-10 来源:机器人 作者:Jiqiren.net 关注指数: 点 |
|
**快速中断请求(FIQ)** 异常中断向量表及异常中断优先级 各个异常中断的中断向量地址以及中断的处理优先级 中断向量地址 异常中断类型 异常中断模式 优先级(6最低) 0x00 复位 特权模式 1 0x04 未定义的指令 未定义指令终止模式 6 0x08 软件中断 特权模式 6 0x0C 指令预取终止 终止模式 5 0x10 数据访问终止 终止模式 2 0x14 保留 未使用 未使用 0x18 外部中断请求 IRQ模式 4 0x1C 快速中断请求 FIQ模式 3 在应用程序中安装异常中断处理程序 1.使用跳转指令:可以在异常中断对应异常向量表中特定位置放置一条跳转指令,直接跳转到该异常中断的处理程序。这种方法有一个缺点,即只能在32M空间范围内跳转。 2.使用数据读取指令LDR:使用数据读取指令LDR向程序计数器PC中直接赋值。这种方法分为两步:先将异常中断处理程序的绝对地址存放在存放在距离向量表4KB范围内的一个存储单元中;再使用数据读取指令LDR将该单元的内容读取到程序计数器PC中。 **在系统复位时安装异常中断处理程序** 1.地址0x00处为ROM的情况 使用数据读取指令LDR示例如下所示: Vector_Init_Block LDR PC, Reset_Addr LDR PC, Undefined_Addr LDR PC, SW_Addr LDR PC, Prefeth_Addr LDR PC, Abort_Addr NOP LDR PC, IRQ_Addr LDR PC, FIQ_Addr Reset_Addr DCD Start_Boot Undefined_Addr DCD Undefined_Handle SW_Addr DCD SWI_Handle Prefeth_Addr DCD Prefeth_Handle Abort_Addr DCD Abort_Handle DCD 0 IRQ_Addr DCD IRQ_Handle FIQ_Addr DCD FIQ_Handle 使用跳转指令的示例如下所示: Vector_Init_Block BL Reset_Handle BL DCD Undefined_Handle BL SWI_Handle BL Prefeth_Handle BL Abort_Handle NOP BL IRQ_Handle BL FIQ_Handle 2.地址0x00处为RAM的情况 Tags:ARM基础 |
| |
我来顶一下



