异常,中断
1)异常主要是处理器被动接受,指意外操作引起的异常。
2)中断则是向处理器主动提出申请。
3)这两种情况都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制。若无特别说明,对“异常”和“中断”不作严格的区分。
中断的响应过程
1)现场保护: 将特定的八个寄存器压入堆栈,保护现场
2)取中断向量: 在中断向量表中读取中断向量的入口地址
3)执行中断: 跳转到中断服务函数中,执行动作
4)恢复现场: 将处理器的状态恢复到进入系统之前的值
5)**返回中断:**返回到中断发生前程序执行的位置
注:
在执行中断 前,需要更新寄存器:
SP:选择MSP/PSP,更新堆栈指针SP
PC:指向中断服务函数的入口地址;
LR:将下一条指令的地址存入LR,以便程序在处理异常返回时能从正确的位置重新开始执行。