22、嵌入式系统中的中断与定时器详解

嵌入式系统中的中断与定时器详解

1. 中断的概念与类型

中断是一种高效处理与CPU异步且速度较慢的外设的方式。当发生中断时,会设置一个标志位,并等待CPU进行处理,此时中断处于“挂起”状态。CPU会在完成当前指令后才会处理中断,处理时会停止主程序的执行,转而执行专门针对触发该中断请求(IRQ)的外设的中断服务程序(ISR)。

中断分为三类:
- 系统复位 :优先级最高,没有开发者编写的ISR,而是将所有配置寄存器初始化为默认值,并将主程序的起始地址放入程序计数器(PC)。
- 不可屏蔽中断(NMI) :优先级次之,处理内存访问或振荡器故障,也能处理来自外部信号的用户中断。NMI始终启用,执行开发者编写的ISR。
- 可屏蔽中断 :有局部和全局使能。局部使能针对每个可触发中断的外设功能,全局中断使能是状态寄存器(SR)中的GIE位。只有当局部使能和GIE都置位时,中断才会激活。

2. 中断的处理流程

当IRQ发生时,CPU会自动将PC和SR压入栈中,以保存主程序的运行状态。在ISR结束时,开发者必须使用 reti 指令将SR和PC从栈中弹出,使执行返回主程序。

中断可以相互嵌套。系统复位和NMI始终启用,高优先级的IRQ可以中断低优先级的IRQ。当可屏蔽中断发生时,CPU会自动清除SR,禁用其他可屏蔽中断。如果开发者希望允许嵌套可屏蔽中断,需要在ISR中显式设置GIE位,不过更好的方法是编写简短的ISR,并让IRQ优先级方案处理ISR的执行顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值