在ARM的异常向量表(如下图所示),为什么FIQ处于 异常向量表的最顶端?
——————————————————————————————————
中断向量地址 | 异常中断类型 | 异常中断模式 | 优先级(6最低) |
———————|——————— -|————————|—————————-|
0x00 | 复位 | 特权模式 | 1 |
0x04 | 未定义的指令 | UND终止模式 | 6 |
0x08 | 软件中断 | 特权模式 | 6 |
0x0C | 指令预取终止 | 终止模式 | 5 |
0x10 | 数据访问终止 | 终止模式 | 2 |
0x14 | 保留 | 未使用 | 未使用 |
0x18 | 外部中断请求 | IRQ模式 | 4 |
0x1C | 快速中断请求 | FIQ模式 | 3 |
———————————————————————————————————
在阅读了ARM的大量资料后得到的结论是:
FIQ异常向量放在所有向量最后,目的是可以将FIQ异常处理程序直接放在向量的地址上. 这样在执行FIQ处理时,就可以不用进行跳转,快速响应中断.FIQ向量放在最后,允许FIQ异常处理程序直接放在地址0x0000001C或0xFFFF001C开始 的位置,而不需要由向量的分支指令。也就是说直接从0x0000 0001C开始执行,这样省去了一个跳转指令,如果FIQ不是在顶端,那么当然需要一次跳转.
相关文章
- linux的中断子系统简介(汇编和hard irq部分)_ARM平台(S5PV210)
- ARM的启动和中断向量表
- ARM的中断向量表简介
- linux中对象文件的符号表symbols查看工具nm简介
- ARM引导加载程序:对中断向量表的理解
- 小静的ARM学习日志04_U-Boot移植+S5PV210处理器简介
- ARM嵌入式开发中的GCC内联汇编简介
- 基于S3C6410的ARM11学习(三) 核心初始化之设置中断向量表
- 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式
- 彩虹表的原理简介