浅谈中断挂起与中断标志的区别

中断挂起

如果中断发生时,正在处理同级或高优先级异常,或者被掩蔽,则中断不能立即得到响应,此时中断被悬起。悬挂意味着等待而不是舍去,当优先级高的或者同等级先发生的中断完成后,被挂起的中断才会执行。中断的悬起状态可以通过“中断设置悬起寄存器(SETPEND)”和“中断悬起清除寄存器(CLRPEND)”来读取,还可以写它们来手工悬起中断。

中断标志

当进入中断后,中断标志位会自动被置1,代表着“正在执行中断服务函数中”。当我们结束终端服务函数之前,一定要在函数中清除中断标志位。我们可以这样理解:中断标志位是满足中断条件的象征,当我们配置好中断发生的条件,一旦遇到中断标志位有效,就说明该执行中断服务函数了。如果我们不手动的清除中断标志位,那么系统会默认中断条件一直满足那就会一直执行中断服务函数跳不出来了。

  • 15
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在嵌入式MCU软件开发中,中断是非常重要的一种机制,可以有效地处理硬件外设的状态变化,提高系统响应速度和效率。在中断处理过程中,中断优先级和中断嵌套是需要考虑的两个重要问题。 中断优先级是指当多个中断同时发生时,系统按照一定的优先级顺序来处理这些中断。一般来说,系统有多个硬件外设,每个外设都会产生中断中断的优先级高低可以通过设置相应的寄存器来实现。在中断处理过程中,如果当前正在处理一个中断,而此时又有一个优先级更高的中断发生,系统会立即中断当前中断的处理,转而去处理优先级更高的中断,这就是中断优先级的作用。 中断嵌套是指在处理一个中断的过程中,又发生了另一个中断。这种情况下,系统需要先处理当前正在处理的中断,再去处理发生的新中断。为了实现中断嵌套,系统需要有一个中断嵌套的机制,一般来说,这个机制是通过设置一个中断屏蔽寄存器来实现的。当一个中断正在处理时,系统会将该中断的优先级设置为最高,然后将其他中断的优先级都设置为低于当前中断的优先级,这样可以保证当前中断处理完毕后,仍然按照优先级顺序来处理其他中断。 在实际的嵌入式MCU软件开发中,中断优先级和中断嵌套是需要根据具体应用场景来设置的。如果系统中有多个硬件外设,可以根据外设的性质和重要程度来设置中断优先级。如果系统需要支持中断嵌套,需要考虑中断处理的顺序和优先级,以保证系统的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥肥胖胖是太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值