【文件属性】:
文件名称:nuttx中断处理.vsdx
文件大小:25KB
文件格式:VSDX
更新时间:2020-12-09 10:58:29
中断处理 nuttx arm
由于nuttx中切换到svc模式处理中断,且使用的栈也在svc模式,所以需要恢复2个现场,
a. svc中断处理前后的现场(因为切换到svc模式处理中断,这是问题的根源)
b. 中断发生前模式现场的恢复
此处借助恢复中断发生前模式现场的时机恢复svc中断处理现场是很巧妙的,核心就是认为切换到目标模式后,需要保存目标模式bank的寄存器
此处涉及对lr寄存器的理解,lr寄存器用于保存返回地址,
a. 当未发生异常时,当前模式的lr,保存的是函数调用的返回地址
b. 当发生异常时,当前模式的lr,保存的是异常发生前模式的返回地址