• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32的中断是怎么实现现场保护的

晚上猫经验 2020-03-13 浏览量:2438
STM32的中断是怎么实现现场保护的
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 主程序和中断服务子程序都要使用CPU内部寄存器等资源,为使中断处理程序不破坏主程序中寄存器的内容,要先将断点处各寄存器的内容压入堆栈保护起来,再进入的中断处理。现场保护是由用户使用PUSH指令来实现的。
    • 发布于 2020-03-18
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 响应中断时,内核会自动将 r0-r4 r12LR,PC xPSR几个寄存器压入堆栈。

    如果需要用到更多的寄存器需要手动压栈。 C语言编程的话这个操作是由编译器完成的。

    • 发布于2020-03-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 进中断函数前,把相应的参数入栈,退出中断函数时,再进行出栈,这样就保护了现场的数据了
    • 发布于2020-03-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 进中断前会把寄存器的数据先存起来,出中断时再读取出来,就可以保护数据了
    • 发布于2020-03-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 所有处理器的中断处理都是一样的,在进入中断前将所有CPU寄存器的内容存到栈里面,等中断处理完毕再出栈
    • 发布于2020-03-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32的中断是怎么实现现场保护的