ARM的异常处理

您所在的位置:网站首页 arm处理器异常处理过程 ARM的异常处理

ARM的异常处理

2024-07-11 19:15| 来源: 网络整理| 查看: 265

当系统运行时,异常可能会随时发生,为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理,采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序,当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序,当异常处理完成以后,返回到主程序继续执行.

向量表是异常发生时,ARM内核跳转地址组成的表,通常用跳转指令跳转到对应的处理程序。

 

地 址

异 常

进入模式

0x0000,0000

复位

管理模式

0x0000,0004

未定义指令

未定义模式

0x0000,0008

软件中断

管理模式

0x0000,000C

中止(预取指令)

中止模式

0x0000,0010

中止(数据)

中止模式

0x0000,0014

保留

保留

0x0000,0018

IRQ

IRQ

0x0000,001C

FIQ

FIQ

 

 

当异常发生时,内核会跳转到向量表的相应位置,并执行当中的指令,通常,在向量表中会存放一些B,LDR PC等跳转指令,用来跳转到对应的处理程序,下面给出一个一地址0x00000000开始的向量表例子:

 

b       reset            ; 复位 0x00000000

ldr pc, _undefined_instruction ;未定义的指令异常 0x00000004

ldr     pc, _software_interrupt     ;软件中断异常    0x000000008

ldr     pc, _prefetch_abort          ;预取指令    0x0000000c

ldr     pc, _data_abort               ;数据        0x00000010

ldr     pc, _not_used                  ;未使用      0x00000014

ldr     pc, _irq                       ;慢速中断异常   0x00000018

ldr    pc, _fiq                       ;快速中断异常    0x0000001c

 

/*  中断向量表入口地址 */

_undefined_instruction:    .word undefined_instruction

_software_interrupt:  .word software_interrupt

_prefetch_abort:  .word prefetch_abort

_data_abort:        .word data_abort

_not_used:          .wordnot_used

_irq:                     .wordirq



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3