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

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

3天内不再提示

不会RTOS,是因为你没搞懂NVIC

朱老师物联网大讲堂 2024-03-31 08:09 次阅读

一、到底什么是NVIC?


NVIC(Nested Vectored Interrupt Controller)中文翻译为:嵌套中断向量控制器

NVIC属于内核级别的外设单元,用来管理CPU的中断。

由NVIC管理的中断可进行中断嵌套,直译为高优先级可打断低优先级中断,然后高优先级执行完了再转回去执行低优先级中断。

对于RTOS(实时操作系统)类型的OS有很大的好处,所以先搞懂NVIC,再去涉猎RTOS,会更加的轻松。

二、抢占和次级优先级说明?

NVIC的优先级分为抢占和次优先级,这两种优先级共同来管理所有中断的响应次序以及是否能被打断,如下图所示:

fc9ac6d4-eef2-11ee-9118-92fbcf53809c.png

上图中断响应分为三种情况:

第一种情况抢占优先级不在同一级别:当中断源C正在被执行时,中断源A发生了中断,这时会去比较抢占优先级,因为A的抢占优先级别比C高,所以会将C中断挂起,转而去执行A中断,当A中断执行完了又回去继续执行C中断。

第二种情况抢占优先级在同一级别:当中断源B正在被执行时,中断源A发生了中断,这时会去比较抢占优先级,因为A的抢占优先级别和B相等,所以不会打断B中断,须等待B执行结束转而去执行A中断。

第三种情况抢占优先级在同一级别:当中断源A、B同时发生了中断,因为A和B的抢占优先级相等,转而会继续比较次优先级,而A的次优先级比B高,所以会先执行A然后再执行B。

NVIC的抢占优先级和次优先级数量是有限的,这需要自己设置有多少个抢占优先级和一个抢占优先级里面有多少个次优先级。

fca17d3a-eef2-11ee-9118-92fbcf53809c.png

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

    关注

    22

    文章

    819

    浏览量

    119854
  • NVIC
    +关注

    关注

    0

    文章

    35

    浏览量

    11737
收藏 人收藏

    评论

    相关推荐

    为什么不会接开关呢?是因为不懂这些

    电工技术
    学习电子知识
    发布于 :2022年10月13日 20:58:36

    工作之所以成为工作,是因为只需要工作而不需要...

    有这么一句名言: 工作,它之所以成为工作,是因为只需要工作而不需要思考。   也许会对这句话有异议,但是大部分人和大部分工作确实是这样的。工厂员工在流水线上机械地组装,服务员每天重复着招待
    发表于 11-19 16:47

    用malab GUI做的钢琴键盘,但是callbacks一直搞懂

    用malab GUI做的钢琴键盘,但是callbacks一直搞懂,希望有人能帮帮忙,小弟在此谢过啦
    发表于 01-04 20:12

    AD仿真,这个错误是因为什么?

    这个错误是因为什么?
    发表于 11-03 21:53

    Atmage128重启或死机,是因为电源处理好还是什么原因?

    用Atmage128 通过 光耦隔离驱动模块 驱动直流有刷电机,电机参数是12V,300W,有时候在电机加速过程中,MCU就会重启或死机(422通讯中断),是因为电源处理好还是什么原因?用
    发表于 07-20 08:45

    实验加也可以中断

    usart实验NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0);这句要加?我加也可以中断而我同学写的一个实验,必须加这句,不加不会进中断,不只哪里
    发表于 05-30 01:16

    什么是NVIC

    工作中涉及到stm32挂载非接中断子程序,有时候共用外部中断口线时,对中断口线的处理得学习下,顺便了解下中断优先级设置。此文章从网上搜到转载记录下。出处:如果需要在STM32上移植RTOS,那么首先必须深入理解它的中断系统。什么是NV
    发表于 08-13 08:40

    如何在RTOS中使用lwip库?

    行不通的。我混淆了设置优先级(根据 FREE RTOSNVIC)lwip 和 RTOS能给我建议吗? 最好的祝福。
    发表于 01-16 07:28

    stlink无法识别是因为什么?

    stlink无法识别是因为什么
    发表于 10-31 06:40

    电死人的原因到底是因为电压还是电流

    我们都知道要远离高电压,因为高电压对人来说是危险的,这是一个常识。触摸到高电压的东西,人就会发生危险,严重的可导致死亡。但触电伤亡是因为高电压的缘故还是高电流的缘故呢?
    的头像 发表于 07-14 11:08 1.7w次阅读

    学STM32入门很难?那是因为掌握正确的方法!

    对于STM32的学习,其实不用想的太复杂,毕竟它只是一个单片机,只是比51单片机增加了一些外设而已,寄存器由8位变成了32位罢了。所以明白这些就摆正心态,一点一点循序渐进的学习就可以了。下面我
    发表于 12-07 18:21 0次下载
    学STM32入门很难?那<b class='flag-5'>是因为</b><b class='flag-5'>你</b><b class='flag-5'>没</b>掌握正确的方法!

    STM32F1----NVIC

    1.NVIC初始化流程配置中断优先级分组void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);建立
    发表于 01-17 09:37 6次下载
    STM32F1----<b class='flag-5'>NVIC</b>

    磐石测控:深圳按键开关不灵敏是因为什么?

    磐石测控:深圳按键开关不灵敏是因为什么?
    的头像 发表于 10-31 11:46 741次阅读
    磐石测控:深圳按键开关不灵敏<b class='flag-5'>是因为</b>什么?

    推挽电路的坑,踩过

    推挽电路的坑,踩过
    的头像 发表于 11-24 16:25 1166次阅读
    推挽电路的坑,<b class='flag-5'>你</b>踩过<b class='flag-5'>没</b>?

    锡膏不上锡是因为活性不足吗?

    众所周知,有时候锡膏不上锡是因为活性不足,还有人会说活性越多越好。有时候锡膏不挂锡是因为活性不足吗。这样的话,会觉得锡膏的活性越高越好吗?下一步由深圳锡膏厂家为大家分析一下:大家都知道锡膏中有许多
    的头像 发表于 01-04 15:46 690次阅读
    锡膏不上锡<b class='flag-5'>是因为</b>活性不足吗?