浅谈中断与单片机中断处理的过程

中断是计算机系统中的重要概念,特别是在嵌入式领域。当CPU执行程序时,由于内部或外部事件触发,它会暂停当前任务,执行中断服务子程序。中断处理包括保存现场、调用中断服务程序、恢复现场和继续原程序执行。中断服务函数有特定限制,如不传参、无返回值且应简洁。中断的发生是随机的,由硬件触发,因此需要妥善管理存储位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:https://blog.csdn.net/weixin_42952472/article/details/106473564

中断是个很重要的一个概念,在计算机组成原理中曾经讲过这一概念,对于嵌入式方向来说,也是一个非常重要的一个知识点,经常出现在笔试中。

中断
所谓中断就是:CPU在正常执行程序的过程中,由于内部/外部事件的触发或程序的预先安排引起CPU暂时中断当前正在运行的程序,而转去执行中断服务子程序,待中断服务子程序执行完毕后,CPU继续执行原来的程序,这一过程称为中断;

中断处理过程

第一步:保护现场,将当前位置的PC地址压栈;
第二步:跳转到中断服务程序,执行中断服务程序;
第三步:恢复现场,将栈顶的值回送给PC;
第四步:跳转到被中断的位置开始执行下一个指令

中断服务函数
相对于正常子函数,中断服务函数有以下需要注意的地方:

1.中断服务函数不能传入参数;
2.中断服务函数不能有返回值;
3.中断服务函数应该做到短小精悍;
4.不要在中断函数中使用printf函数,会带来重入和性能问题。

中断并不是程序一开始就判断好在那里发生,或者会在什么时候发生。中断发生完全时随机的,中断源连接到硬件,由硬件来产生触发中断,而总所周知,函数、函数内变量等大部分是存储在堆栈区,但是中断是随机产生的,且由硬件告知,那么去哪分配存储位置,自然一二是无法满足的。
————————————————
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值