21.arm裸机–异常与中断
浅析arm的异常、中断和arm工作模式的联系 - 宋桓公 - 博客园
异常与中断介绍 - 知乎
【嵌入式Linux基础】3.异常与中断 - 知乎
别人的帖子都写得很清楚,俺就随便写写加深印象
arm有一个异常向量表,分别对应七种模式状态,大部分时候在user模式
当发生异常中断时,就会停止当前动作跳转到对应模式下的地址,执行对应的处理,结束后再跳回原来的地方继续原来的代码。
S文件中指数的异常向量地址,出现异常硬件会自动跳转,使用位置无关码
与中断异常相关的有一个重要的寄存器,cpsr程序状态寄存器。工作模式之间的切换,主要就是靠这个寄存器。
中断异常的执行流程:
1.设置好中断源,设置好中断控制器能接收判断中断源的信号,编写好中断处理函数以出来中断
2.异常/中断发生时,PC都会指向相应的向量表。异常的发生往往会导致模式的自动切换。
3.保存现场
硬件自动做:模式切换是硬件自动做的,同时cpsr的值存放到spsr,lr寄存器的值会存到当当下模式的lr'中
程序员需要做的:给新模式下的sp赋
21.arm裸机–异常与中断最先出现在Python成神之路。
共有 0 条评论