经典ARM核心处理器有7个例外,7个例外存储在例外矢量表中,例外矢量表地址默认为地址0,部分处理器可以将例外矢量表放置在地址0xFFFF0000。
如图
图:ARM异常向量
关于ARM异常我们主要了解如下内容:
1、异常种类:复位异常,未定义指令异常,软件中断异常,预取指令异常、数据异常、中断、快速中断
2、知道异常发生时,硬件做哪些事情:
a、复制CPSR寄存器的值到对应模式的SPSR寄存器中(用于保护核恢复该寄存器值)
b、硬件修改CPSR寄存器,包括:切换到ARM状体,切换到对应的异常模式,根据优先级禁止中断
c、保存返回地址到对应模式的LR(R14),用于退出异常时返回继续执行。
d、设置PC寄存器的值到对应的异常向量入口地址
3、当异常处理完毕返回,软件需要根据:
a、LR寄存器的值计算返回地址
b、根据SPSR寄存器的值,恢复CPSR寄存器的值
注:以上两个工作需要由一条指令完成,这条指令称为异常返回指令。
4、要大概了解异常向量和异常向量表
5、应该了解为什么FIQ异常入库地址放到向量表的最高端
6、应该知道异常向量入口可以放哪些指令
7、要了解某个异常大致由哪几个事件触发
8、了解异常和模式的对应关系,根据模式和寄存器的对应关系,可以知道异常处理程序中,有哪些专用寄存器(可选)。
1.《ARM中断和异常有什么关系》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《ARM中断和异常有什么关系》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/2071840.html