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:如何使用才能让它稳定可靠?
对于可靠性要求更高的产品,需要对中断服务有非常精准的把控,高度的确定性是稳定可靠的前提条件。在使用中断嵌套时要非常小心,避免在特殊情况下高优先级的中断始终占用芯片资源。如果不能准确判断中断的频率和占用资源的情况,就要想办法避免中断嵌套的发生。最简单的方法是在进入某个中断服务子程序后暂时关闭所有中断,在完成这个服务程序后再打开中断允许,让中断服务按照先到先执行的方式运行。
热门推荐
生态农业为何这么火?生态农业具有哪几大大优势?
违法辞退代价高昂:企业如何避免“赔了夫人又折兵”
秋冬必吃:炸蔬菜丸子的健康秘密
外酥里嫩的炸蔬菜丸子,用茼蒿做最香
武夷山国家公园:碧水丹山间的文化瑰宝
秋冬打卡:南平历史文化遗址探秘
奥斯特洛夫斯基笔下的保尔:钢铁意志的传奇
微信推出境外支付新限额!
炸丸子秘籍:让你成为年夜饭大厨!
周公解梦的核心理念与现代应用
深圳寒假亲子游:梧桐山、仙湖植物园、罗湖大马戏嘉年华
深圳寒假必打卡:深圳湾公园、东部华侨城、世界之窗
深圳冬日摄影圣地:杨梅坑vs仙湖植物园,谁更出片?
金融科技助力中国外汇交易中心数字化转型
中国银行专家详解:企业如何应对全球汇率市场变局
英镑汇率波动,你的钱包还好吗?
赚钱App套路多,小心踩坑!
总说减肥,今天教瘦人如何长胖
南平市的悠闲时光:武夷山&黄岗山大峡谷
非遗进校园亮绝活!刘氏毫火针疗法展示中医独特魅力
世界遗产武夷山:自然与文化的双重瑰宝
南平三日游:武夷山水到古镇人文,精华景点全攻略
银筷子的使用风险与注意事项
银器与生活:科学与文化的交融
美白食物TOP.10-這樣吃出嫩白肌!
韩愈与贾岛:唐代诗坛的双子星
贾岛的诗:岁月无情,诗意永恒
“推敲”背后的文化密码:从贾岛韩愈的相遇说起
北方四岛争端:日俄博弈的历史与现实
双十一警惕!恶意拨打119要被罚