精华内容
下载资源
问答
  • 中断优先级安排原则与stm32优先级

    千次阅读 2014-02-10 19:06:14
    中断是获取异步事件的重要手段,中断优先级的安排如下: 1、紧迫性:触发中断的事件越紧迫,优先级要安排的越高!紧迫事件允许耽搁的时间短...4、快捷性:在上述条件相同相近时,ISR处理的越快捷,设定的优先级越高

    中断是获取异步事件的重要手段,中断源优先级的安排如下:

    1、紧迫性:触发中断的事件越紧迫,优先级要安排的越高!紧迫事件允许耽搁的时间短,如模拟信号的采集,采样耽误的时间越短,越真实!

    2、关键性:触发中断的事件越关键,设定优先级应该越高。

    3、频繁性:触发中断的事件越频繁,设定优先级越高!频繁事件的周期短,需及时处理!

    4、快捷性:在上述条件相同相近时,ISR处理的越快捷,设定的优先级越高。在发生ISR中断嵌套时,如果非快捷的ISR嵌套在快捷的ISR里面会使得快捷的ISR迟迟得不到运行,使得系统实时性降低。正确的做法是使快捷的ISR嵌套在非快捷的ISR里面,因为快捷的ISR处理时间短不会使得被嵌套的事件迟迟得不到运行!


    中断服务程序要尽可能的简单,只要将获取的异步事件交给相关联的任务即可,在关联任务中进行相对复杂的处理即可!


    stm32中断优先级设置、优先级分组的概念(转载):

    一:综述

    STM32 目前支持的中断共为 84 个(16 个内核+68 个外部), 16 级可编程中断优先级
    的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可以有四位数)。

    二:优先级判断

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

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

    当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。
    三:优先级分组
    既然每个中断源都需要被指定这两种优先级,就需要有相应的寄存器位记录每个中断的优先级;在Cortex-M3中定义了8个比特位用于设置中断源的优先级,这8个比特位在NVIC应用中断与复位控制寄丛器(AIRCR)的中断优先级分组域中,可以有8种分配方式,如下:

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

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


    Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32把指定中断优先级的寄存器位减少到4位(AIRCR高四位),这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组

    中断优先级分组是为了给抢占式优先级和响应优先级在中断优先级寄丛器的高四位分配各个优先级数字所占的位数在一个程序中只能设定一次

    四:中断源的优先级

    接下来就是指定中断源的优先级,中断源优先级是在中断优先级寄存器中设置的,只能设置及高四位,必须根据中断优先级分组中设置好的位数来在该寄存器中设置相应的数值。假如你选择中断优先级分组的第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级,那么抢占式优先级就有000-111共八种数据选择,也就是有八个中断嵌套,而响应优先级中有0和1两种,总共有8*2=16种优先级。

    中断源优先级具体的设置了该中断源的优先级别

    在一个程序中可以设定多个(最多16个)优先级,每个中断源只能设定的一个。

    每写一个关于中断优先级的程序必须包含下列两个函数:

     

    (1)void NVIC_PriorityGroupConfig(u32 NVIC_PriorityGroup)中断分组设置

    (2)void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)中断优先级设置


    展开全文
  • 1、IRQ任务:是指通过中断服务程序进行触发任务。此类任务应该设置为所有任务里面优先级最高。 2、高优先级后台任务:比如按键检测、触摸检测、USB消息处理、串口消息处理等可以归于这一类。 3、低优先级时间...

    1、IRQ任务:是指通过中断服务程序进行触发的任务。此类任务应该设置为所有任务里面优先级最高的。

    2、高优先级后台任务:比如按键检测、触摸检测、USB消息处理、串口消息处理等可以归于这一类。

    3、低优先级时间片调度任务:比如emwin界面显示、LED数码管显示等不需要实时执行的都可以归为这一类。

          这类任务不需要高实时性。

    4、空闲任务。

    特别注意:

          1、IRQ任务和高优先级任务必须设置为阻塞式(调用消息等待或延时等函数)。只有这样,高优先级

    任务才会释放CPU的使用权,从而低优先级任务才有机会得到运行。

          2、FreeRTOS中处于运行态的任务永远是当前能够运行的最高优先级任务。

          3、FreeRTOS的中断优先级和任务优先级,这两者之间没有任何关系。

    展开全文
  • 嵌入式系统任务优先级安排原则

    千次阅读 2014-02-08 19:39:08
    中断服务程序(ISR)相关任务应该安排尽可能高的优先级,这样有利于处理异步时间提高系统实时性,如果优先级设置较低,则可能发生由于cpu一直被高优先级的任务霸占,导致在第二次发生中断时还没来处理上...

    任务优先级按照任务类型进行安排,遵循以下规则:


    1、中断关联性:与中断服务程序(ISR)相关的任务应该安排尽可能高的优先级,这样有利于处理异步时间提高系统的实时性,如果优先级设置的较低,则可能发生由于cpu一直被高优先级的任务霸占,导致在第二次发生中断时还没来的及处理上一次中断发生的事件!导致信号的丢失!


    2、紧迫性:紧迫任务要求在规定的时间内完成,有很强的时间关联性,对时间要求较严,在安排紧迫任务的优先级的时候要按照紧迫程度将任务进行划分,越紧迫的任务优先级越高,一般来说,紧迫任务与ISR关联。


    3、关键性:任务越关键,优先级越高,道理很简单,如果关键任务安排较低的优先级将不能获得更多的执行机会,导致关键人物得不到执行!关键性就荡然无存!


    4、频繁性:越频繁的任务(周期越短)优先级应该设置的越高,以便及时得到执行。


    5、快捷性:前面的条件相同相近时,越是快捷的任务优先级越高,这样避免后面的就绪任务延时短。


    6、传递性:信息传递的上游任务优先级高于下游任务的优先级。如:信息采集任务的优先级要高于信息处理的优先级



    举例说明优先级安排的:

    在一个实际项目价值中,模拟信号采集任务,串口接收任务,串口发送任务,键盘监听任务,显示任务。

    下面我们分析一下:模拟信号采集任务、串口发送任务、串口接收任务与ISR有关,其中串口接收任务是关键任务也是紧迫任务,对实时性要求最高,而模拟信号采集任务是紧迫任务而不是关键任务,因为即使丢失一次模拟信号的次采集还不至于造成严重的后果。串口任务cpu是主动方,优先级安排低点也可以,只要将数据发送出去就可以。键盘监听任务和显示任务对实时性要求较低。数据处理任务视计算量而定,如果计算量较小可以安排在键盘监听之前,因为它比较便捷。反之安排其后。


    这样我们可以这样设定:

    任务:                           优先级:

    串口接收任务                 4

    模拟信号采集任务          6

    串口发送任务                 8

    数据处理任务                10

    按键监听任务                12

    显示任务                       14 


    这样可以 #define OS_LOWEST_PRIO  18


    优先级安排比较宽松的好处就是方便后续升级,添加任务不需要修改其他部分

    展开全文
  • 多重中断的处理及其中断源屏蔽字

    千次阅读 2021-01-08 19:25:09
    2、多重中断的处理原则 若新的中断的优先级高于原中断的优先级,CPU响应新的中断;否则,CPU不予响应,必须待原中断处理完毕且返回主程序后,再响应新的中断。(这个地方其实可以参考一下计算机操作系统里面对动态...

    一。多重中断也叫中断嵌套(套娃)

    1、多重中断的定义

    如果CPU在执行某一中断服务程序过程中,又遇到了新的更高级的中断请求,CPU暂停原中断的处理,而转去处理新的中断,待处理完毕后,再返回继续处理原来的中断,这种中断称为多重中断,也称中断嵌套。
    在这里插入图片描述

    2、多重中断的处理原则

    若新的中断的优先级高于原中断的优先级,CPU响应新的中断;否则,CPU不予响应,必须待原中断处理完毕且返回主程序后,再响应新的中断。(这个地方其实可以参考一下计算机操作系统里面对动态的优先级算法)

    3、单重中断和多重中断比较

    在中断响应部分(中断隐指令),两者基本没用区别
    在中断服务阶段,多重中断需要在有新的中断请求时,比较优先级,如果请求者优先级低于正在执行者,则继续执行中断。如果高于,则需要中断当前的中断,这里需要保护现场的同时,需要保存屏蔽字
    在这里插入图片描述

    二。中断屏蔽字

    1. 中断屏蔽技术

    中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件

    1. 在中断服务程序中提前设置开中断指令。
    2. 优先级别高的中断源有权中断优先级别低的中断源。

    每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。

    2. 屏蔽字设置的规律

    1. 一般用‘1’表示屏蔽,'0’表示正常申请。
    2. 每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
    3. 屏蔽字中1’越多,优先级越高。每个屏蔽字中至少有一个’1’(至少要能屏蔽自身的中断)

    3. 多重中断中,中断的屏蔽字(举例)

    假设有A,B,C,D四个中断源,其硬件排队优先次序位D>A>C>B

    1. 由于中断源至少要能够屏蔽自身,所以在AA,BB,CC,DD先写1
    2. 根据优先级,相对优先级低于自身写1,反之写0
      在这里插入图片描述

    三。动态的引入中断源(中断的执行顺序)

    1.例题

    	继续前面的例子,假设每个中断的中断服务时间需求均是20ns
    	B在5ns时提出请求
    	D在10ns时提出请求
    	A在35ns时提出请求
    	C在60ns时提出请求
    

    时间轴图如下:
    在这里插入图片描述

    2.说明

    执行的顺序过程,类似于操作系统里面的动态的优先级调度算法。
    若当前没用程序中断请求时,先到的(当且仅当只有一个同时到达)直接进行中断服务。
    根据中断源的优先级来执行,若当前的中断程序优先级低于等待队列中(或刚进入)的中断程序,则当前中断程序进行中断,让出资源给优先级更高的中断程序。

    展开全文
  • 1、在linux中,对中断的处理原则中断的处理原则有两个: 1)、中断不能嵌套中断(即使发生了更高优先级的中断)–》防止栈空间不够用。 因为每个中断被执行,都要先保存现场。如果中断1在执行过程中,嵌套了...
  • 处理机管理 中断技术

    2020-10-31 21:46:32
    文章目录1、中断概念2、中断源(1)硬中断(2)软中断(3)软硬中断区别(4)中断与信号3、中断和异常响应及服务4、中断事件处理原则5、中断优先级和多重中断 1、中断概念 中断是现代操作系统实现并发性基础之一...
  • QK对中断的特殊处理

    2015-12-01 20:06:00
    对QK中任务来说,采用了IOC(好莱坞原则)方式(是callback),而不同于传统RTOS中任务多线程或进程中等待; 传统RTOS只有中断后,才可能会有任务切换,而QK不只是中断后,在post一个事件后,也可能会使...
  • 中断系统中断概念什么是中断中断系统中断优点51单片机中断分类中断控制位中断请求标志中断优先级51单片机的中断优先级有三条原则中断处理过程 中断概念 什么是中断 CPU在处理某一事件A时,发生了另一事件B请求CPU...
  • 1.ARM的中断优先级分硬件优先级和软件优先级两种 当中软件优先级又由抢占优先级和响应优先级组成 2.中断的优先级採用编号小优先的原则。 3.普通情况: 1).假设设定了软件优先级。先看软件优先级: 具有高...
  • 51单片机中断

    2013-03-31 09:39:50
     中断嵌套发生条件:低优先级中断正在处理的时候,高优先级中断请求有效  中断嵌套处理机制:高优先级中断抢先处理,处理完后继续处理被抢占的低优先级中断(两个中断要出在不同的寄存器组,如果处在同一寄存器组...
  • 文章目录一、中断定义:1....提供故障现场处理手段五、51单片机中断系统中断优先级:51单片机的中断优先级有三条原则:六、寄存器概念:基本含义:对于寄存器学习小建议:中断相关寄存器:中断允许控制...
  • 基础实验 – 基于省赛资源套装 ex9 EXTI外部中断实验 实验目的:掌握EXTI...中断优先级 处理器根据不同中断重要程序设置不同优先等级。不同优先级中断的处理原则是:高级中断可以打断低级中断;低级中断不能打
  • 11中断系统

    2018-01-26 21:19:00
    中断:是解决突发事件和多任务实时处理的最佳方法。 引入原因:减少运行时间,可以处理多个任务。 优点:分时性,实时性,可靠性高。 其运行原理如下图所示 80c51有5个中断源80c52有六个中断源,两个优先级,...
  • C51 中断 个人笔记

    2018-11-02 15:09:00
    CPU处理中断原则 1.CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。 2.正在进行的中断过程不能被新同级或低优先级的中断请求所中断。 3.正在进行优先级中断服务,能被高优先级中断请求所中断。 ...
  • 1.中断处理的时候,不应该发生进程切换,因为在中断context中,唯一能打断当前中断handler的只有更高优先级中断,它不会被进程打断(这点对于softirq,tasklet也一样,因此这些bottom half也不能休眠),如果在中断context...
  • STM32外设DMA使用总结

    千次阅读 2015-06-13 17:24:03
    STM32外设DMA使用总结: ...(2)中断优先级相同:处理原则,先来先处理;若同时到来,中断号低优先处理 查询手册可知,DMA(IRQn number 13)会先于USART3(39)被CPU处理 3、设置DMA模式为循环模式,则: (1)只开DMA中
  • 任务调度就是遵循一定的原则,使多个任务共同使用同一处理机的过程。这一过程主要是通过对任务控制块(TCB)的管理来实现的。 当一个任务建立时,μC/OS-II系统为其所对应的OS_TCB赋值;当任务的CPU使用权被剥夺...
  • 操作系统之进程调度

    2018-01-20 14:37:45
    而时间片轮转算法是将所有的就绪进程按先来先服务的原则,排成一个队列,按时间片轮转。时间片的大小从几ms到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,...
  • 设置线程的优先级..................................................................................................................... 38 获取线程的优先级..................................................
  • 进程管理复习

    2020-06-21 23:19:00
    文章目录进程管理处理器方面(软硬件)指令系统(特权、非特权)存储处理器状态程序状态字(PSW)中断系统中断分类步骤响应处理原则优先级与多重中断进程状态与转换描述与组成Process Image 动态刻画Process Context...
  • 从DPDK透视软件优化-C

    2019-04-03 09:32:14
    原文链接:绝对干货!初学者也能看懂DPDK解析 ...4、事件驱动+轮询互补:低CPU事件驱动模型+高优先级的轮询提升IO吞吐能力; 5、MPOOL:中断同步操作,提升并发效率。 系统级优化: 1、减少页交换:按需...
  • 《操作系统原理与设计》全本

    热门讨论 2012-02-14 15:54:16
    4.1.5 选择调度算法的原则 91 4.2 批处理作业的管理与调度 92 4.2.1 批处理作业的管理 92 4.2.2 批处理作业的调度 93 4.2.3 作业调度算法 93 4.3 进程调度 95 4.3.1 进程调度的功能 95 4.3.2 进程调度算法 96 4.3.3 ...
  • 9.1.4 中断优先级管理 204 9.2 8086中断系统 206 9.2.1 中断类型 206 9.2.2 中断向量表 208 9.3 可编程中断控制器8259A及其应用 209 9.3.1 8259A内部结构及引脚 210 9.3.2 8259A中断管理方式 212 9.3.3 8259A中断...
  • 操作系统重点

    2013-01-15 16:59:50
     中断是指CPU对系统发生某个事件做出一种反应,它使CPU暂停正在执行程序,保留现场后自动执行相应的处理程序,处理该事件后,如被中断进程的优先级最高,则返回断点继续执行被“打断”程序。 第4章 存储...
  • 4.4.2 中断优先级寄存器IP 4.5 中断响应 4.6 外部中断响应时间 4.7 外部中断触发方式选择 4.7.1 电平触发方式 4.7.2跳沿触发方式 4.8 中断·清求撤消 4.9 中断服务程序设计 4.10 多外部中断源系统设计 ...
  • (5)优先数法:急事先办的原则 第三章进程及处理机管理 1、为什么要引入“进程” (1)进程调度属于低级处理机管理,即确定系统中哪个进程将获得CPU;而作业调度属于高级处理机管理,即确定系统中哪些...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

中断优先级处理的原则