ARMv7-A
一级查表
等中断真正发生的时候,自动跳转指定位置(基址+偏移)
习惯放在代码的起始地方,复位中断放在代码的零地址,被定义的指定中断放在代码的第四个字节的位置
addr | TYPE | FUNCTION | MODE |
---|---|---|---|
0x00 | Reset | 复位中断 | SVC |
0x04 | Undefined instructions | 未定义指令中断 | Undef |
0x08 | Supervisor Call | 软中断 | SYC |
0x0C | Prefetch abort | 指令预取中止中断 | ABT |
0x10 | Data abort | 数据访问中止中断 | ABT |
0x14 | RESERVED | 未使用 | 未使用 |
0x18 | IRQ interrupt | IRQ 中断 | IRQ |
0x1C | FIQ interrupt | FIQ 中断 | FIQ |
通过触发不同类型的中断,系统进入到相应的运行模式
描述了不同的运行模式
B1.3.1 ARM processor modes (ARMv7-A架构手册)
描述了不同的中断类型
B1.8.1 Exception vectors and the exception base address (ARMv7-A架构手册)
二级查表,执行中断函数
预先注册、回调执行
3.2 Cortex A7 interrupts (芯片数据手册)
偏移32个单位才和数据数据手册一一对应
...