说明:由于nuttx中切换到svc模式处理中断,且使用的栈也在svc模式,所以需要恢复2个现场,
a. svc中断处理前后的现场(因为切换到svc模式处理中断,这是问题的根源)
b. 中断发生前模式现场的恢复
此处借助恢复中断发生前模式现场的时机恢复svc中断处理现场是很巧妙的,核心就是认为切换到目标模式后,需要保存目标模式bank的寄存器
此处涉及对lr寄存器的理解,lr寄存器用于保存返回地址,
a. 当未发生异常时,当前模式的lr,保存的是函数调用的返回地址
b. 当发生异常时,当前模式的lr, <chenjinnanone> 上传 | 大小:25kb