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

news/2024/7/24 9:08:26 标签: 单片机, 嵌入式硬件

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

1.中断响应流程

中断响应的一般流程为:

1)断点保护

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

2)识别中断源

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

3)执行中断服务程序

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

4)断点恢复

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

2.注意事项

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

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


http://www.niftyadmin.cn/n/5381766.html

相关文章

Spring Event详解

Spring Event详解 1.详细介绍2.使用场景3.注意事项4.案例分析5.代码实现6.与消息队列的区别7.SpringEvent结合线程池异步实现 1.详细介绍 Spring Event是Spring框架内建的一种发布/订阅(Publish-Subscribe)模式的实现,它允许应用内部不同组件…

『运维备忘录』之 Ln 链接命令详解

运维人员不仅要熟悉操作系统、服务器、网络等知识,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

ASUS华硕枪神8笔记本电脑G614JIR,G814JVR,G634JYR,G834JZR工厂模式出厂Windows11系统 带重置还原功能

适用ROG枪神8系列笔记本型号: G614JIR、G614JVR、G634JYR、G634JZR G814JIR、G814JVR、G834JYR、G834JZR 链接:https://pan.baidu.com/s/1tYZt6XFNC2d6YmwTbtFN7A?pwd3kp8 提取码:3kp8 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主…

Python 将一维数组或矩阵变为三维

Python 将一维数组或矩阵变为三维 正文 正文 话不多说直接上代码: import numpy as npsampling_points 10001arr np.linspace(0, 2, sampling_points) arr_3D arr.reshape(1, 1, -1) print(arr_3D) """ result: [[[0.0000e00 2.0000e-04 4.0000…

Open-FWI代码解析(3)

目录 1.pytorch_ssim文件 1.1 gaussian函数 1.2 create_window函数 1.3 SSIM评价指标函数 1.4 SSIM评价指标类 2. 总结 1.pytorch_ssim文件 1.1 gaussian函数 def gaussian(window_size, sigma):形成大小为window_size,标准差为sigma的一串高斯序列:param window_size::para…

prometheus基于consul的服务发现

文章目录 一、基础二、安装consul下载地址启动consul访问consul 三、编写服务发现文件nodes.json四、prometheus配置consul发现修改prometheus.yml重启Prometheus 参考 一、基础 二、安装consul 下载地址 https://developer.hashicorp.com/consul/install 启动consul mkdi…

人工智能技术应用笔记(二):OpenAI SORA文生视频模型技术报告全文中英对照 (GPT4翻译+人工润色)

目录 Video generation models as world simulators(视频生成模型作为世界模拟器) Turning visual data into patches (将视觉数据转换为图像块) Video compression network (视频压缩网络) Spacetim…

自己搭建的幻兽帕鲁服务器怎么一键配置游戏参数?可视化面板调整参数

单击面板内的【调整参数】按钮,即可在下方表格中开启编辑模式。找到“死亡惩罚”配置项,并将它的值修改为:无丢失。 点击【保存】按钮,此时将弹出气泡,提示你当前操作需要在游戏服务重启后才可生效(不会…