经典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