网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

为什么使用CubeMx配置NVIC时不见子优先级选项

时间:2023-09-09 15:32

人气:

作者:admin

标签:

导读:有些STM32用户,尤其是那些用过基于ARM Cortx-M3/M4/M7内核的STM32 MCU的用户,在使用基于M0/M0+内核的STM32系列并通过STM32CubeMx进行NVIC配置时,不难发现一个问题,那就是怎么没有中断子优先级...

有些STM32用户,尤其是那些用过基于ARM Cortx-M3/M4/M7内核的STM32 MCU的用户,在使用基于M0/M0+内核的STM32系列并通过STM32CubeMx进行NVIC配置时,不难发现一个问题,那就是怎么没有中断子优先级【或称响应优先级、副优先级等】的配置?!【当然,很多时候我们或许没有关注子优先级】如下图所示,只看到抢占优先级的配置,看不到子优先级的配置项。

图片

上图是我基于STM32L0系列芯片的配置,该系列芯片是基于ARM Cortex-M0+内核的。我们再看看下图的NVIC配置页面,显然可以看到抢占优先级【Preemption Priority】和子优先级【Sub
Priority】的配置项及相关信息。

图片

上图是我基于STM32G4系列芯片的NVIC配置页面。该系列的内核是ARM Cortex-M4。

当我们使用STM32系列芯片并通过CubeMx图形化工具进行NVIC配置时,相应界面有无子优先级的配置,取决于该系列芯片所用的ARM Cortex内核。如果说所用STM32系列是基于ARM Cortex-M0或M0+内核的,在进行NVIC配置时是没有子优先级可以配置的。

ARM Cortex-M0或M0+内核的中断优先级控制寄存器实际有效位就是2位,全部用来对各个中断/异常做抢占优先级配置,不额外划分子优先级的配置。

图片

也就是说,基于ARM Cortex-M0或M0+内核的STM32 MCU的NVIC配置不会有子优先级的概念和配置,对于优先级可配置的中断而言,总共就4个可抢占优先级。下图是基于ARM Cortex-M0或M0+内核的STM32系列展示。当然,STM32系列涉及的内核很多,远不止下面这些,还有M4/M7/M33等。

图片

而ARM Cortex-M3、M4、M7内核的中断优先级配置寄存器的有效位为4位,同时还可以基于该4位做优先级的分组,进而引出抢占优先级和子优先级。

图片

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信