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

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

3天内不再提示

中断优先级处理的原则及配置 抢占优先级和响应优先级的区别

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-05-18 15:10 次阅读

首先我们需要知道什么是中断优先级:中断优先级是CPU响应中断的先后顺序

中断优先处理的原则是:

  1. 先响应优先级高的中断请求,再响应优先级低的中断请求。
  2. 如果一个中断请求己被响应,同级的其他中断请求将被禁止。
  3. 如果同级的多个中断请求同时出现

中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:

  1. 先响应优先级高的中断请求,再响应优先级低的中断请求。
  2. 如果一个中断请求己被响应,同级的其他中断请求将被禁止。
  3. 如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。

单片机内部自然优先级顺序(由高到低)为:

外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断

中断优先级的配置:

首先,对STM32中断进行分组,组0-4.同时,对每个中断设置一个抢占优先级和一个响应优先级

分组配置是在寄存器SCB->AIRCR中配置

poYBAGKEmM2AAkp_AABlzIctiLU297.png

抢占优先级和响应优先级的区别
高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。

抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。

抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。

如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行。

使用讲解 :
实际在使用中我们可以根据实际情况设置相应的优先级分组。

特别注意:一个程序代码里只能有一个中断优先级分组,存在多个 优先级分组可能会导致程序出现奇奇怪怪的错误!

poYBAGKEm8GALyznAAGvpmciYEA297.png

审核编辑:汤梓红

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

    关注

    6034

    文章

    44528

    浏览量

    633606
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10832

    浏览量

    211302
  • 中断优先级
    +关注

    关注

    0

    文章

    22

    浏览量

    9359
收藏 人收藏

    评论

    相关推荐

    freertos中断优先级在哪设置

    FreeRTOS是一个流行的实时操作系统,它广泛应用于嵌入式系统开发。在FreeRTOS中,中断优先级是一个重要的概念,因为它决定了中断处理的顺序和
    的头像 发表于 09-02 14:17 575次阅读

    APS智能优化排产软件的优先级应用

    资源、订单需求和约束条件,自动计算出最优的生产计划。在这个过程中,订单排产的优先规则起着至关重要的作用。1.交期优先级交期优先级是订单排产中最基本的优先规则。根据
    的头像 发表于 06-26 17:43 355次阅读
    APS智能优化排产软件的<b class='flag-5'>优先级</b>应用

    ESP32S2如何设置中断优先级

    ESP32S2有六中断, 如何设置中断优先级? 比如在GPIO例程里 ,这种中断优先级是如何设
    发表于 06-21 07:59

    请问有什么方法降低WIFI中断优先级

    因为项目对时序输出要求比较严格,WIFI中断优先级比硬件定时器中断优先级要高,在定时器中断里面对GPIO管脚控制被延长执行,请问有什么方法降
    发表于 06-19 07:37

    如何在不同优先级安装相同的处理程序?

    在不同的优先级中安装相同的处理程序? 我需要一个解决方案,在不同的优先级中安装相同的处理程序(ISR),以便在我的项目中处理 CAT2
    发表于 05-28 08:13

    systick的中断优先级是否应该设置为最高优先级的嵌套中断

    最近在学习ucosii有这样一个疑问,关于stm32的systick作为ucosii的基准时钟,systick的中断优先级是否应该设置为最高优先级的嵌套中断。理由是什么?各位大侠求指教
    发表于 05-16 06:44

    stm32的中断优先级分组了之后还能改分组吗?

    如标题所示,stm32的中断优先级分组了之后还能改分组吗? 比如我要使用外部中断EXIT2,3,我在配置的时候配置
    发表于 05-13 08:40

    创建了两个task如果一个优先级高 一个优先级低,高优先级的那个一直在做,什么时候会调度到低优先级的呢?

    创建了两个task如果一个优先级高一个优先级低, 我看到任务的函数都是用死循环做的,那个高优先级的那个一直在做,什么时候会调度到低优先级的呢?
    发表于 05-13 07:13

    求助,关于stm32F4中断优先级0无法抢占的问题求解

    抢占优先级具有最高优先级别。 现在我使用两个定时器: 1)TIM2设置优先级为0,TIM4设置优先级为1 2)若先启动TIM4,延时一下再启动TIM2(为了先触发定时器4
    发表于 04-23 07:26

    STM32F103的寄存器NVIC_IPRx抢占优先级和子优先级是怎么设置的?

    STM32F103的寄存器NVIC_IPRx有些不明白,抢占优先级和子优先级是怎么设置的? 如果,中断分组2,抢占优先级3,子优先级3
    发表于 03-27 07:48

    Hightec对芯片中断优先级分配时,中断号越高中断优先级越高吗?

    请问大佬,Hightec对芯片中断优先级分配时,中断号越高中断优先级越高吗?看网上的帖子说中断
    发表于 02-27 06:13

    RTTnano的用户main函数中的优先级是多少?

    RTTnano 的用户main函数中的优先级是多少?为什么会出现创建新的task之后,main函数会抢占掉低优先级的task,例如RT_THREAD_PRIORITY_MAX设置为8 ,低于3
    发表于 02-26 08:01

    M0516中断优先级怎么设置?

    新唐M0516中断优先级的设置,有没有示例,没找到相关接口,谢谢!
    发表于 01-16 07:25

    华为和思科默认路由优先级

    优先级值不同,则优先级值最小的为最优路由(无论开销值是否相同,另一种理解就是对不同路由来源或路由协议之间的比较)。
    的头像 发表于 01-11 10:47 1102次阅读

    GD32如何配置中断优先级分组以及中断优先级

    使用GD32 MCU的过程中,大家可能会有以下疑问:中断优先级如何配置和使用?
    的头像 发表于 01-10 10:30 2978次阅读
    GD32如何<b class='flag-5'>配置</b><b class='flag-5'>中断</b><b class='flag-5'>优先级</b>分组以及<b class='flag-5'>中断</b><b class='flag-5'>优先级</b>