MCU中断资源使用指南:如何合理、高效地利用中断功能?
创作时间:
作者:
@小白创作中心
MCU中断资源使用指南:如何合理、高效地利用中断功能?
引用
1
来源
1.
https://mcu.eetrend.com/content/2024/100580373.html
MCU的中断功能是芯片里非常重要的一个功能模块,也是对产品功能和性能优劣有着至关重要的一项功能。本文将深入探讨如何合理、高效地使用MCU的中断资源,包括中断资源的种类、优先级设置、使用场景和注意事项等。
MCU中断资源概述
MCU的中断资源因内核不同而有所差异。以常见的51单片机和ARM Cortex-M系列单片机为例:
- 51单片机:共有5~6个中断源,包括外部中断(2个)、定时器中断(3个)、串口中断(1个)。它们的初始优先级从高到低依次为:外部中断0 > 定时器0 > 外部中断1 > 定时器1 > 串口中断 > 定时器2。
要使用51单片机的中断,需要设置两个寄存器:中断允许寄存器IE和中断优先级寄存器IP。中断允许寄存器支持对每个中断进行位操作和总允许控制,而中断优先级寄存器则可以改变中断源的优先级,分为高和低两个优先级。
- ARM Cortex-M系列单片机:中断资源更加丰富,内嵌了中断控制器NVIC和扩展中断EXTI事件控制器。
中断使用问答
问题1:为什么要用中断?中断能解决什么问题?
中断功能最重要的价值在于实现“任务切换”,通过中断方式从某个任务切换到另一个任务,从而实现CPU资源的最大化。在运行操作系统的MCU中,中断承担着更加重要的角色,如进程调度、内存管理等功能都需要用到中断功能。
问题2:如何高效利用中断资源?
- 合理设计中断资源的外部线路,尤其是存在多种外部中断输入时。例如,将触发频率较低的按键信号安排在外部中断1,将频率较高的信号放在中断0。
- 合理设置中断优先级,让实时性要求高的中断任务获得更高的优先级。
- 精确计算中断服务程序的执行时长,评估其对被中断任务的影响。在执行实时性很高的子程序时可以考虑屏蔽中断响应,执行完之后再开放中断。
问题3:使用中断有哪些注意事项?
- 中断函数被调用的时间不固定,因此需要自己保护现场。
- 中断函数被调用的地点不固定,当前的任务无法给中断函数传参。
- 中断函数的返回地点不固定,因此中断函数不能有返回值。
在一个嵌入式ARM裸机环境下,编写中断处理函数时一般要遵循以下基本流程:
- 保存中断现场:状态寄存器、返回地址入栈、中断ISR中要用到的寄存器入栈。
- 清中断:关中断,保护现场。有些硬件会自动清除,重开中断前记得要清除。
- 执行用户编写的中断处理函数。
- 恢复现场:将栈中保存的数据弹到CPU的各个寄存器中,恢复被中断的现场,从栈中弹出返回地址到PC寄存器,CPU从被打断的程序处继续执行。
问题4:如何使用才能让它稳定可靠?
对于可靠性要求更高的产品,需要对中断服务有非常精准的把控,高度的确定性是稳定可靠的前提条件。在使用中断嵌套时要非常小心,避免在特殊情况下高优先级的中断始终占用芯片资源。如果不能准确判断中断的频率和占用资源的情况,就要想办法避免中断嵌套的发生。最简单的方法是在进入某个中断服务子程序后暂时关闭所有中断,在完成这个服务程序后再打开中断允许,让中断服务按照先到先执行的方式运行。
热门推荐
腌雪里蕻:详细步骤与注意事项
零基础搭建飞牛OS私有云全教程,从硬件选购到系统配置
分布式系统中的数据一致性:最终一致性与强一致性
陪嫁箱放哪些东西?寓意一次说清楚
杭州萧山机场海关查获旅客违规携带超量货币进境,44万元港币缠在女性旅客腰上
“讨好消费者先讨好Ta”,宠物友好“解锁”商业新密码
银河星空怎么画?教你如何画漂亮银河系的画法技巧!
如何优雅地拒绝创业邀请?保持友谊的实用指南
不同肤质的人如何选择防晒
用好“立体资源宝库” 打响道地药材“吉字号”品牌
绘制头发的技巧与方法:从基础到动态表现的全面指南
电车续航到底打几折?
容积率的计算与影响解析
笔记本电脑散热风扇噪音大?教你几招轻松解决
汽车项目管理转行指南:从评估到成功转型
贷款未还清的情况下,能在房产证上加名字吗?
7座新建车站效果图曝光!这条时速350公里高铁建设进度更新
家的味道:轻松制作健康美味的家庭版辣白菜
诸葛亮的传奇人生,对后世有哪些深远的影响?
京畿门户张家口:从陆路商埠到生态发展华丽转身
6个万能拍花技巧,拍出绝美花卉大片!
布洛芬和感冒灵可以一起吃吗
如何深入认识银的特性?银在相关领域有怎样的应用?
容积率对生活的影响及其重要性
天启大爆炸:400年谜团,真相究竟何在?
如何选择生日鲜花?这几款花束寓意满满,送对人更暖心!
病树前头万木春:生命的更迭与希望的力量
经济学TC是什么意思
如何设定与监控长期与短期目标
为什么中国四大高原里没有帕米尔高原?