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