历史上的今天

今天是:2024年09月20日(星期五)

正在发生

2018年09月20日 | STM32(Cortex-M3)中优先级的概念

发布者:码字奇思 来源: eefocus关键字:STM32  Cortex-M3  优先级 手机看文章 扫描二维码
随时随地手机看文章

STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级。

具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。

当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。

既然每个中断源都需要被指定这两种优先级,就需要有相应的寄存器位记录每个中断的优先级;在Cortex-M3中定义了8个比特位用于设置中断源的优先级,这8个比特位可以有8种分配方式,如下:

所有8位用于指定响应优先级
最高1位用于指定抢占式优先级,最低7位用于指定响应优先级
最高2位用于指定抢占式优先级,最低6位用于指定响应优先级
最高3位用于指定抢占式优先级,最低5位用于指定响应优先级
最高4位用于指定抢占式优先级,最低4位用于指定响应优先级
最高5位用于指定抢占式优先级,最低3位用于指定响应优先级
最高6位用于指定抢占式优先级,最低2位用于指定响应优先级
最高7位用于指定抢占式优先级,最低1位用于指定响应优先级

这就是优先级分组的概念。


Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32把指定中断优先级的寄存器位减少到4位,这4个寄存器位的分组方式如下: 

第0组:所有4位用于指定响应优先级
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级
第4组:所有4位用于指定抢占式优先级

可以通过调用STM32的固件库中的函数NVIC_PriorityGroupConfig()选择使用哪种优先级分组方式,这个函数的参数有下列5种:

NVIC_PriorityGroup_0 => 选择第0组
NVIC_PriorityGroup_1 => 选择第1组
NVIC_PriorityGroup_2 => 选择第2组
NVIC_PriorityGroup_3 => 选择第3组
NVIC_PriorityGroup_4 => 选择第4组

 

接下来就是指定中断源的优先级,下面以一个简单的例子说明如何指定中断源的抢占式优先级和响应优先级:

// 选择使用优先级分组第1组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  
// 使能EXTI0中断
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // 指定抢占式优先级别1

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 指定响应优先级别0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
  
// 使能EXTI9_5中断
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 指定抢占式优先级别0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定响应优先级别1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

 




要注意的几点是:

1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果;

2)抢占式优先级别相同的中断源之间没有嵌套关系;

3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。


关键字:STM32  Cortex-M3  优先级 引用地址:STM32(Cortex-M3)中优先级的概念

上一篇:基于stm32的usb iap程序升级步骤
下一篇:STM32访问外部存储器-NOR-Flash

推荐阅读

多年来,主流混合信号示波器MSO作为嵌入式系统设计人员的必备调试工具,通道数量基本锁定在4条模拟通道,外加16条数字通道, 4通道示波器还能跟得上您的测试需求吗?泰克为示波器开启“第5通道”,邀请产业届参与试用活动。对于示波器通道数这一问题的思考,推动着科技的进步和科研项目的实施,工程师用了几十年的四通道示波器已经不能满足愈加严苛的测试...
  大陆集团的最新集成车身电子平台(IIP)将在2019年法兰克福国际车展(9月12日至22日)上亮相。作为一款高性能计算机,这种全面的软硬件解决方案不但为未来互联驾驶舱内的人机互动奠定了基础,而且拥有最高品质。科技公司大陆集团将在其驾驶舱模拟器中,展示IIP如何将各种显示器(例如仪表和中控台显示器)与联网服务相结合,形成一套完整的解决方案。I...
9月14日至15日,2020年度的德意志银行虚拟技术会议(Deutsche Bank 2020 Virtual Technology Conference)以网络视频的形式召开,赛灵思(Xilinx)首席财务官Brice Hill应邀参会。赛灵思(官方图源)会议主持人,德意志银行安全分析师Ross Seymore提问:9月14日之后,美国对华为的芯片断供制裁令将正式生效,赛灵思将如何应对这一局面,对拿到美国...
近日,信维通信在接受机构调研时表示,过去,公司无线充电业务收入大部分来自于手机接收端;当前,公司无线充电业务从手机接收端逐步拓展至手机发射端、耳机、手表、平板等各类终端应用,非手机接收端逐步成为公司无线充电业务增长动力。目前,信维通信无线充电在各大客户的供应商地位稳固,在巩固现在手机接收端项目供应份额的同时,不断拓展了发射端、无...

史海拾趣

问答坊 | AI 解惑

安森美半导体推出应用微处理器用电源单元

2006年7月31日—全球领先的电源管理解决方案供应商安森美半导体(ON Semiconductor, 美国纳斯达克上市代号:ONNN)推出NCP1526。此高效同步直流—直流降压(步降)转换器集成了低噪声低压降稳压器(LDO),采用独特的0.55 mm超薄DFN ...…

查看全部问答∨

大家有没用过单进单出的斯密特啊?

常用的斯密特触发器集成块,不管是与非门还是非门的都有好几组,又贵又大,有没有只有一组的呢…

查看全部问答∨

几个DSP高手的经验介绍

本帖最后由 paulhyde 于 2014-9-15 09:12 编辑 ---------以下是高人的dsp开发经验,转载过来,希望对大家有所帮助。---------- /q(`5]5q!]-a0一. 我是已经从事DSP开发有几年了,看到许多朋友对DSP的开发非常感兴取,我结合这几年对DSP的开发写一 ...…

查看全部问答∨

Effectively Using Pressure, Load & Torque Sensors

Effectively Using Pressure, Load & Torque Sensors with Today’s Data Acquisition Systems…

查看全部问答∨

嵌入式系统中,DRAM减少一半,需要对系统内核的哪些部分进行修改

为了保证部分功能的实时性要求,我觉得可能需要对 系统的进程的抢断机制,还有内存分页等进行修改。 请问,还需要注意哪些问题,谢谢。…

查看全部问答∨

单片机中lcm能否用于制作动画????

单片机中lcm能否用于制作动画????…

查看全部问答∨

STM32的串口通信

    在基础实验成功的基础上,对串口的调试方法进行实践。硬件代码顺利完成之后,对日后调试需要用到的printf重定义进行调试,固定在自己的库函数中。 b) 初始化函数定义: void USART_Configuration(void);     ...…

查看全部问答∨

一款价廉物美的ARM7开发板

大家好:我们公司是专业做ARM开发板的,目前开发的ST ARM7(STR71*)系列开发板非常适合广大学生、电子爱好者等学习、研究。  ARM_STR710教学实验开发平台支持UC/OS和NUCLEUS PLUS双操作系统,提供专业的工程模块,方便用 ...…

查看全部问答∨

一种简单高效的RFID防冲突算法

无线射频识别(RFID)是一种非接触式的自动识别技术,其基本原理是刺用射频信号和空间耦合(电感或电磁耦合)的传输特性,实现对特定物体的自动识别。RFID技术可以追溯至第二次世界大战期间。后来发展应用到铁路、军队的货物跟踪甚至宠物识别上。在过去 ...…

查看全部问答∨

人际关系与距离

  人与人之间都应该保持一段距离,远远近近自己定,原则是让自己愉快别人轻松。亲人之间,这距离是尊重;爱人之间,这距离是美丽;朋友之间,这距离是爱护;同事之间,这距离是友好;陌生人之间,这距离是礼貌。   别小看了生活里的这些距离 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved