初涉32中断系统(1)

@初涉32中断系统(1)
#中断概念
相信很多小伙伴对中断都或多或少有所了解,不过为了广大处于起步阶段的同学,这里还是再简单提一下中断的概念。
顾名思义,中断就是打断目前正在做的事情而去处理其他事务。由中断源产生中断后,我们就会跳出目前正在执行的程序而进入中断程序,待中断操作结束之后,再返回原来程序中进入中断的位置来继续执行,如下图所示:
在这里插入图片描述
#中断优先级概念
理解完中断原理后,大家常常会想到这样一个问题:如果同时有多个中断该怎么处理呢?这里就会涉及到中断优先级的问题。
举个栗子~~小罗同学今天正在寝室看电影,这时候同时收到了两条消息,一个是室友叫我开黑,另一个是女朋友让我陪她逛街(后一个纯属一名母胎solo的YY啊哈哈哈哈哈)秉持着天大地大老婆最大的原则,小罗肯定是先陪女票逛街,然后再回来跟室友开黑,最后再把没看完的电影看完,over!
在这个例子中,对于小罗来说当前执行的程序就是看电影,同时来的两条消息就是两个中断,由于在小罗这里女朋友最重要,所以明显来自女友的中断优先级要高于开黑的优先级,因此小罗先去执行了陪女友逛街的中断程序;待该程序执行完后,再回来执行和舍友开黑的中断程序;以上两个中断程序均执行完后,再回到原来的程序——看电影,把电影看完后,所有程序执行完毕。

#中断优先级分类及判断
理解完优先级的概念后呢,我们就要着力于解决下一个问题:如何判断两个中断的优先级呢?
首先呢,我们要明确一点,那就是每个中断均有一个字节来控制优先级,但是以我手中的STM32F407开发板为例,只使用了高四位。而优先级又分为:抢占式优先级与响应式优先级(响应式优先级又被称为亚优先级或副优先级),应注意,每个中断源均需被指定这两种优先级。

##抢占优先级
抢占优先级就是所谓的“最牛的”优先级,可以打断当前运行的主程序,而抢占优先级高的中断也可以打断抢占优先级低的中断(即实现中断嵌套)。总得来说一句话:我最高、我最牛、就得先执行我o( ̄ヘ ̄o#)

##响应优先级
响应式优先级又被称为亚优先级或副优先级,很显然,它不是最牛的,只是当一个副手。当两中断抢占优先级相同时,若已经在执行其中一个中断,则另一个中断就要等那个中断执行完后再执行,先来后到嘛。但如果两个抢占优先级相同的中断同时到来呢?那这里就需要用到我们的副手了,也就是响应优先级,响应优先级高的中断将先执行。

OK,那如果抢占优先级与响应优先级都相同的两个中断同时来了呢?也不是没有这种可能,这时候就要根据中断表中的顺序来决定处理的顺序了,一般来说排序靠前的先执行。这里的中断表就是在中文参考手册中的10.2外部事件里,由于比较长我这里就不贴图了,大家可以自行查阅。

#组合方式
之前我们已经了解过了两种优先级,也知道了在32F4xx中只有高四位可用,那我们如何来对两种优先级进行组合呢?见下表:
组别| 抢占优先级 | 响应优先级
4 | 4(16种组合方式) | 0(0种组合方式)
3 | 3(8种组合方式) | 1(2种组合方式)
2 | 2(4种组合方式) | 2(4种组合方式)
1 | 1(2种组合方式) | 3(8种组合方式)
0 | 0(0种组合方式) | 4(16种组合方式)

以上呢只是关于中断的一些基础知识,之后我还会再发布别的博客来继续讲述中断系统即实验,敬请期待呀~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值