MCU中断响应流程及注意事项

本文介绍MCU中断响应流程及注意事项。

1.中断响应流程

中断响应的一般流程为:

1)断点保护

硬件操作,将PC,PSR等相关寄存器入栈保护

2)识别中断源

硬件操作,识别中断的来源,如果多个中断同时发生,高优先级中断先被响应

3)执行中断服务程序

用户编写,需要在此保存额外的寄存器,将其入栈保护,并在中断返回时出栈。用户也可以在此通过修改中断屏蔽寄存器,软件调整中断优先级(注意关中断,开中断)

4)断点恢复

硬件操作,将PC,PSR等相关寄存器出栈恢复,程序回到原中断处执行

2.注意事项

1)多个中断发生时,高优先级中断会被响应,执行完成后,低优先级中断再被响应。这里低优先级中断只是被抢占了,待高优先级中断响应完后仍然被响应。
2)中断发生时,执行中断服务程序,需立即清除中断标志位(首条语句),以便下次中断可以被及时响应。在执行当前中断服务程序时,当前中断仍可能发生,待当前中断响应完后可以再次被响应(若无更高优先级的中断)。
3)高优先级中断服务程序执行过程中,若有低优先级中断发生,低优先级中断会被暂时挂起,待高优先级中断服务程序执行完后在再响应,若有更高优先级中断则会优先响应更高优先级中断服务程序(中断嵌套)。
4)中断可以以查询方式执行,中断控制器不使能中断,查询外设中断标志位。比如在纯查询的软件体系结构中,可以通过查询外设的中断标志位,执行相应的程序。

总结,本文介绍了MCU中断响应流程及注意事项。

相关推荐

  1. MCU中断响应流程注意事项

    2024-02-19 14:50:02       49 阅读
  2. 银联扫码接口开通流程注意事项

    2024-02-19 14:50:02       46 阅读
  3. MTK 平台增加分区流程 注意事项

    2024-02-19 14:50:02       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 14:50:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 14:50:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 14:50:02       82 阅读
  4. Python语言-面向对象

    2024-02-19 14:50:02       91 阅读

热门阅读

  1. 【IOS】Xcode 15.2版本下载 iOS_17 Simulator失败

    2024-02-19 14:50:02       76 阅读
  2. LeetCode //C - 338. Counting Bits

    2024-02-19 14:50:02       56 阅读
  3. C 练习实例69-约瑟夫环

    2024-02-19 14:50:02       60 阅读
  4. 微服务中4种应对跨库Join的思路

    2024-02-19 14:50:02       54 阅读
  5. 我的创作纪念日

    2024-02-19 14:50:02       51 阅读
  6. P1106 删数问题题解

    2024-02-19 14:50:02       47 阅读
  7. K8S更新部署docker的两种方法举例

    2024-02-19 14:50:02       56 阅读
  8. 设计模式三大原则

    2024-02-19 14:50:02       49 阅读