0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Cortex-M0的NVIC没有优先级分组功能,以及衍生内容

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-03-01 13:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天遍地都是520的消息,华为也是热点。我们可以关注热点,自己的事还得继续做下去。

1写在前面

今天在一个交流群看到有人问,为什么NVIC没有优先级分组配置的选项,如下如:

这个问题,想必没有遇到过的人,还以为是STM32CubeMX的Bug。

其实,答案很简单:有的MCU是没有NVIC分组功能。

下面就针对这个NVIC分组功能展开来讲述。

2关于Cortex-M的NVIC

NVIC:Nested Vectored Interrupt Controller,嵌套向量中断控制器

在每个Cortex-M内核中都有这么一个NVIC嵌套向量中断控制器,当MCU使用的内核不同,其中的NVIC也可能不同。

比如,Cortex-M0和Cortex-M3内核中NVIC功能就不同。

其中,中断优先级分组功能就不同。

Cortex-M0的NVIC没有优先级分组功能,Cortex-M3、 M4、M7有分组功能。

所以,你在使用STM32CubeMX配置时,M0内核的STM32是没有那个选项的。

Cortex-M0包含STM32F0、L0、G0等处理器

对底层感兴趣的朋友可以继续往下看。

3NVIC寄存器

NVIC寄存器,需查看对应的内核(Cortex-M)手册,在ARM官网能找到。

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0432c/index.html

M3也有对应的中文翻译版,大家可以自己网上搜索。

内核中的寄存器和我们STM32参考手册中寄存器一样,不同的Bit位代表含义不同。

但是,对于NVIC来说,由于包含众多优先级相关配置,寄存器数量相对较多(NVIC寄存器族)。

拿M3来说,优先级分组的配置,位于NVIC的AIRCR应用程序中断及复位控制寄存器中:

这里推荐阅读之前我写过的一篇文章:STM32中断,及FreeRTOS中断优先级配置

4中断入口

前两天有人问题外部中断入口的问题:为什么外部中断8和9都使用同一个中断?

void EXTI9_5_IRQHandler(void){ if(EXTI_GetITStatus(EXTI_Line8) != RESET) { /* 代码 */ EXTI_ClearITPendingBit(EXTI_Line8);} if(EXTI_GetITStatus(EXTI_Line9) != RESET) { /* 代码 */ EXTI_ClearITPendingBit(EXTI_Line9); }}

我想,这个问题应该不难。

好比一个main程序入口,进入之后需要处理很多事情,只是在里面需要区分事件。

很多外设中断,都会使用同一个中断入口,有一个原因:节约中断入口资源分配。

像USART发送和接收中断,TIM不同通道捕获中断等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371137
  • Cortex
    +关注

    关注

    2

    文章

    220

    浏览量

    48407
  • NVIC
    +关注

    关注

    0

    文章

    37

    浏览量

    12342
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    抢占优先级和子优先级

    关于抢占优先级和子优先级: 1)具有高抢占式优先级的中断可以在具有低抢占式优先级的中断服务程序执行过程中被响应,即中断嵌套,或者说高抢占式
    发表于 12-03 07:11

    芯源MCU中断相关寄存器

    两位,最多可设置4 个中断优先级。 注意: ARM® Cortex-M0+ 的中断优先级寄存器的设置应在中断使能之前,用户不可在中断使能之后改变中断优先级, 这将导致不可预知的结果。
    发表于 11-27 07:23

    Cortex-M产品的特色

    的处理能力。 中断控制器:Cortex-M处理器内置了灵活的中断控制器,能够支持多种中断优先级和高效的中断处理机制。 访问控制单元(ACU):ACU提供了对存储器和外设的访问控制,以保证系统
    发表于 11-26 07:22

    为什么cortex-M0+功耗低?

    1. 流水线层级简化 Cortex-M0:采用 3流水线(取指、解码、执行)。 更多流水线层级导致每个时钟周期需激活更多硬件单元,动态功耗较高。 流水线冲突(如分支预测错误)需刷新流水线,浪费
    发表于 11-19 08:15

    电能质量在线监测装置的暂态数据补传的优先级是怎样的?

    电能质量在线监测装置的暂态数据补传优先级设计遵循 事件驱动、主站指令优先、资源动态分配 的原则,结合行业标准和设备机制,形成以下多层级优先级体系: 一、最高优先级:紧急事件驱动补传 1
    的头像 发表于 11-06 14:02 93次阅读

    优先级线程无法调度怎么解决?

    1,设置了3,5,6,8几个优先级,设备在现场正常运行了一年多后,显示、前端、后端这3个低优先级线程异常了,表现为屏幕不动,前端采集数据没有变化等,其他高优先级的线程如通讯,按键都能正
    发表于 09-25 07:33

    什么是RTOS中的优先级反转

    当一个高优先级任务正在等待一个资源,但一个低优先级任务正在持有它,一个中等优先级任务继续在中间运行时,就会发生优先级反转——阻止低优先级任务
    的头像 发表于 09-09 14:50 772次阅读

    在NuMicro® Cortex-M0® 系列中,每个I/O可以承受多少电流吸收和源电流呢?

    在 NuMicro® Cortex-M0® 系列中,每个 I/O 可以承受多少电流吸收和源电流?
    发表于 08-27 15:25

    请问NuMicro® Cortex-M0/M4系列可以提供哪些USB器件示例代码?

    NuMicro® Cortex-M0/M4系列可以提供哪些USB器件示例代码?
    发表于 08-19 07:05

    TLe9893怎么调整外设的中断优先级

    你好林工,我该怎么调整外设的中断优先级?是否可以通过工具调整?默认设置下,是不是Brdv的在中断优先级高于T20和can?
    发表于 08-01 06:20

    请问C0系列单片机中断优先级只有4吗?

    C0系列单片机中断优先级只有4?C071在配置的时候只能配置0-3
    发表于 07-23 08:00

    第十章 W55MH32中断应用概览

    本章讲述了W55MH32中断应用,涵盖异常类型、NVIC介绍、优先级定义与分组,阐述中断编程三要点(使能中断、配置 NVIC、编写服务函数),并强调
    的头像 发表于 05-22 17:07 1592次阅读
    第十章 W55MH32中断应用概览

    CyU3PDebugPrint的最高优先级和最低优先级是什么?

    [i]CyU3PDebugPrint的最高优先级和最低优先级是什么?
    发表于 05-13 08:22

    瑞芯微RK3506(3核ARM+Cortex-A7 + ARM Cortex-M0)工业核心板选型资料

    创龙科技SOM-TL3506是一款基于瑞芯微RK3506J/RK3506B处理器设计的3核ARM Cortex-A7 + ARM Cortex-M0全国产工业核心板,主频高达1.5GHz。核心板CPU、ROM、RAM、电源、晶振等所有元器件均采用国产工业
    的头像 发表于 04-09 09:04 2910次阅读
    瑞芯微RK3506(3核ARM+<b class='flag-5'>Cortex</b>-A7 + ARM <b class='flag-5'>Cortex-M0</b>)工业核心板选型资料

    配电柜—断电危机?配电柜故障排查优先级指南

    在排查配电柜故障过程中,合理安排排查优先级至关重要。下面聊一下如何科学合理安排配电柜故障排查优先级顺序。
    的头像 发表于 03-06 18:55 809次阅读
    配电柜—断电危机?配电柜故障排查<b class='flag-5'>优先级</b>指南