-
2020-11-11 16:00:18
1.机器校验中断:高速程序发生了设备故障,比如电源故障,主存出错等
2.访馆中断:用户程序需要操作系统接入,调用操作系统服务等
3.程序性中断:包括指令和数据的格式错误,程序执行中出现异常等
4.外部中断:来自机器外部,包括定时器中断、外部信号中断、中断键中断等
5.IO中断:由IO控制器产生,用于发送信号通知操作完成
6.重启中断
更多相关内容 -
IP优先级、TOS优先级、DSCP优先级和802.1p优先级的区别
2011-06-17 09:03:50详细介绍IP优先级、TOS优先级、DSCP优先级和802.1p优先级的区别 -
彻底弄懂CSS选择器以及优先级
2021-01-08 12:29:29CSS选择器优先级得关系为: !important>内联>ID选择器>类选择器>标签选择器。...1、文内的样式优先级为1,0,0,0,所以始终高于外部定义。 2、有 !important 声明的规则高于一切。 3、如果!important声明冲突, -
51单片机中断优先级的设置方法解析
2021-01-19 18:12:59PT0(IP.1),定时/计数器T0优先级设定位; PX1(IP.2),外部中断0优先级设定位; PT1(IP.3),定时/计数器T1优先级设定位; PS (IP.4),串行口优先级设定位; PT2 (IP.5) ,定时/计数器T2... -
内核线程优先级设置的方法介绍
2020-12-31 21:54:20个人理解,内核级线程和进程是一样的,前者与POSIX线程(pthread)有很大的区别。因此,内核的进程调度策略和系统调用也适用于内核级线程。 调度策略有三种: ... 两种实时优先级范围在0至MAX_RT_PRIO-1之间,默认 -
中断优先级分组和抢占式优先级和响应优先级
2019-05-15 21:42:54STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作’亚优先级’或’副优先级’,每个中断源都需要被指定这两种优先级。 具有高抢占式优先级的中断可以在具有低抢占式优先级...NVIC:Nested Vectored Interrupt Controller
STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作’亚优先级’或’副优先级’,每个中断源都需要被指定这两种优先级。
具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。
当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。
既然每个中断源都需要被指定这两种优先级,就需要有相应的寄存器位记录每个中断的优先级;在Cortex-M3中定义了8个比特位用于设置中断源的优先级,这8个比特位可以有8种分配方式,如下:
所有8位用于指定响应优先级
最高1位用于指定抢占式优先级,最低7位用于指定响应优先级
最高2位用于指定抢占式优先级,最低6位用于指定响应优先级
最高3位用于指定抢占式优先级,最低5位用于指定响应优先级
最高4位用于指定抢占式优先级,最低4位用于指定响应优先级
最高5位用于指定抢占式优先级,最低3位用于指定响应优先级
最高6位用于指定抢占式优先级,最低2位用于指定响应优先级
最高7位用于指定抢占式优先级,最低1位用于指定响应优先级
这就是优先级分组的概念。
Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32把指定中断优先级的寄存器位减少到4位,这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组接下来就是指定中断源的优先级,下面以一个简单的例子说明如何指定中断源的抢占式优先级和响应优先级:
// 选择使用优先级分组第1组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);// 使能EXTI0中断
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // 指定抢占式优先级别1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 指定响应优先级别0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);// 使能EXTI9_5中断
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 指定抢占式优先级别0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定响应优先级别1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
要注意的几点是:
1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果;
2)抢占式优先级别相同的中断源之间没有嵌套关系;
3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。
在老的MCU中,没有分组的概念,分组是为了更好地管理中断,可以将同一个优先级的任务放在同一分组里,先到先执行,同时到,按子优先级顺序执行。
NVIC_SetPriorityGrouping(NVIC_PriorityGroup_4)意味着没有子优先级,只有抢占优先级的区别,跟老MCU基本一样
NVIC_SetPriorityGrouping(NVIC_PriorityGroup_0)意味着没有抢占优先级,只有子优先级的区别中断分组设置好以后,设置中断任务的优先级
NVIC_SetPriority(irq,pri0)
irq 表示中断号,由MCU决定
pri0 值域 0~15 根据前述分组,决定哪些位是 抢占优先级,哪些位是 子优先级
数值越低,优先级越高
当然,以上设置是在相应中断配置后,且相应中断使能的情况下才有效 -
802.1P优先级、IP优先级、TOS优先级及DSCP优先级的分类和对应
2020-08-11 01:55:21,和VLAN ID一起使用,位于高位起16-18bit字段,长度3bit,取值范围0-7,0优先级最低,7优先级最高 TPID(Tag ProtocolIdentifier标签协议标识):2字节的定值0X8100,表明这是一个加了802.1Q标签的帧。 TCI...1、802.1P优先级(有时也称COS优先级):
802.1p用户优先级定义在二层802.1Q 标签头中的TCI字段中。,和VLAN ID一起使用,位于高位起16-18bit字段,长度3bit,取值范围0-7,0优先级最低,7优先级最高
TPID(Tag ProtocolIdentifier标签协议标识):2字节的定值0X8100,表明这是一个加了802.1Q标签的帧。
TCI(Tag Control Information):2字节,包含了帧的控制信息
Priority:802.1P优先级,3bit,取值0-7
CFI:1bit,暂时保留未用,为0说明是规范格式,1为非规范格式,被用在令牌环/源路由FDDI介质访问方法中来指示封装帧中所带地址的比特次序信息。
VLANID:12bit,取值范围0-4095,由于0 和4095保留,实际取值范围是1-4094,每个支持802.1Q协议的交换机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN
2、IP优先级和TOS优先级:
IP优先级定义在三层IP报文头中的TOS字段(8bit)中,占据高位的3bit,取值范围0-7,0优先级最低,7优先级最高
首先,看一下IPV4的报文格式
如上图所示,IPV4的报文头重包含一个8-bit的TOS(服务类型)优先级区域,它通常被分为precedence部分(IP优先级)-前3bit和TOS优先级(紧接着的4bit),最后一位作保留;格式如下:
起初,该字段定义如下(RFC1349):
IP优先级具体取值及含义如下:
111-Network Control 网络控制
110 -Internetwork Control 网间控制
101 -Critic 关键
100 - FlashOverride 疾速
011 -Flash 闪速
010 -Immediate快速
001 -Priority 优先
000 -Routine 普通
优先级6和7一般保留给网络控制数据使用,比如路由。
优先级5推荐给语音数据使用。
优先级4由视频会议和视频流使用。
优先级3给语音控制数据使用。
优先级1和2给数据业务使用。
优先级0为缺省标记值。
在标记数据时,既可以使用数值,也可以使用名称(英文名称)。
3、DSCP优先级:
由于对区分服务类型的多样化的要求,IP优先级的8个优先级是远远不够的,在之后的RFC文档中对TOS字段进行了重新的分配,命名为DSCP,DSCP优先级是把整个8位的前6位重新定义了一下,称为DSCP优先级,取值范围0-63,0优先级最低,63优先级最高。COS TOS DHCP通常要做映射机制。
由于DSCP和IP PRECEDENCE是共存的于是存在了一些兼容性的问题,而且DSCP的可读性比较差,比如DSCP 43(101011)我们并不知道对应着IP PRECEDENCE的什么取值,于是就把DSCP进行了进一步的分类。目前定义的DSCP总共分成了4类(64个优先级并未用完):
类选择器 Class Selector(CS) aaa 000
加速转发 Expedited Forwarding(EF) 101 110
确保转发 Assured Forwarding(AF) aaa bb0
尽力而为 Default(BE) 000 000
https://www.cnblogs.com/zandon/p/11923607.html
(4)IP precedence和DSCP的对应
DSCP
IP/802.1P
DSCP二进制
DSCP十进制
应用
丢包率
BE
0
000 000
0[0x0a]
Internet
AF1
Green 1
001 010
10[0x0a]
Leased Line
L
AF1
Green 1
001 100
12[0x0e]
Leased Line
M
AF1
Green 1
001 110
14[0x0e]
Leased Line
H
AF2
Green 2
010 010
18[0x12]
IPTV VOD
L
AF2
Green 2
010 100
20[0x12]
IPTV VOD
M
AF2
Green 2
010 110
22[0x12]
IPTV VOD
H
AF3
Green 3
011 010
26[0x1a]
IPTV Broadcast
L
AF3
Green 3
011 100
28[0x1a]
IPTV Broadcast
M
AF3
Green 3
011 110
30[0x1a]
IPTV Broadcast
H
AF4
Green 4
100 010
34[0x22]
NGN/3G Singaling
L
AF4
Green 4
100 100
36[0x22]
NGN/3G Singaling
M
AF4
Green 4
100 110
38[0x22]
NGN/3G Singaling
H
EF
5
101 110
46[0x2E]
NGN/3G voice
CS6(INC)
6
110 000
48[0x2E]
Protocol
CS7(NC)
7
111 000
56[0x2E]
Protocol
-
关于stm32优先级大小的理解
2017-12-08 15:02:19一、 组别:0>1>2>3>4 组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1&...二、抢占优先级和响应优先级执行过程举例: ① 实验现象:中断B(C一、 组别:0>1>2>3>4
组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1>NVIC_PriorityGroup_2>NVIC_PriorityGroup_3>NVIC_PriorityGroup_4
二、抢占优先级和响应优先级执行过程举例:
① 实验现象:中断B(C)执行时,A中断到来,则A打断B(C)中断,执行A中断(即中断嵌套)。
结果说明:0级抢占优先级>1级抢占优先级,以此类推,0>1>2.......>15
拓展:抢占优先级最多可以嵌套15次
② 实验现象:中断B(C)执行时,C(B)中断到来,则执行当前的中断B(C),执行完当前中断B(C)后再执行中断C(B)。
结果说明:当B(C)中断的抢占优先级等级相同时,执行中的中断B(C)不能被中断C(B)打断,必须等待当前中断B(C)执行完再执行中断C(B)。与响应优先级无关。
③ 现象:当B、C中断同时到来时,首先响应中断B。
结果说明:响应优先级大小:0>1>2......>15
④ 如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。
-
优先级反转
2018-03-16 11:20:15实验报告四:(1)设计共有 3 个应用任务 TA0,TA1,TA2;优先级: TA0>TA1>TA2;TA0 和 TA2 互斥使用资 源 mutex,且 TA2 最先获得 mutex。用 OSSemCreate、OSSemPend、OSSemPost 显现优先级反转现 象。(2)用 ... -
实验4_单片机_数码管的中断优先级控制_
2021-10-03 18:20:10(2)单击K1:标识“低优先级”的数码管依次显示0~9后回到结束符“-”; (3)单击K2:标识“高优先级”的数码管依次显示0~9后回到结束符“-”;若在“低优先级”的数码管未显示完回到结束符按下K2则会被打断,先... -
易语言源码易语言设定线程优先级源码.rar
2020-02-21 16:46:05易语言源码易语言设定线程优先级源码.rar 易语言源码易语言设定线程优先级源码.rar 易语言源码易语言设定线程优先级源码.rar 易语言源码易语言设定线程优先级源码.rar 易语言源码易语言设定线程优先级源码.rar ... -
stm中断优先级理解+抢占优先级和相应优先级
2019-07-21 13:11:081、抢占优先级比子优先级的优先权更高,这意味抢占优先级更高的中断会先执行,而不管子优先级的优先权,数值越低优先级越高。 2、同理,如果抢占优先级相同,那么就会比较子优先级,子优先级更高的中断将会先被执行... -
中断和优先级
2022-03-25 16:14:02《CM3权威指南》讲解的是Cortex-M3内核的整个体系,...Cortex-M3内核有256种异常和中断,其中编号1~15是系统异常, 16~256是外部中断所如此多的中断, 导致了一些新问题。 比如两个中断同时发生,应该先执行哪个中断 -
数学优先级
2021-05-23 08:41:141. 离散数学符号优先级答:不是不加括号,应先算pVq,在算pVr ,最后算→优先级为:┐> ∧ >∨>→> ←→2. 离散数学优先级简单问题q∨p ∧r = ...#include#include#include#defineerror0#defineok1#defineo... -
优先级:P0
2019-02-11 14:34:00优先级:P0 Priority https://www.zhihu.com/question/23353333?sort=created 一个团队, 每周需求pk的例会,每个产品经理都要给自己提出的需求定优先级,P0\P1\P2……一开始都挺老实的,后来发现是一群产品经理... -
C语言运算符和优先级
2021-05-19 19:43:511) 加法:+ 还可以表示正号2) 减法:- 还可以表示负号3) 乘法:* 非数学意义上的X4) 除法:/ 注意1/2的值为0而非0.55) 取余(模运算):两个整数相除之后的余数(注意两边都必须是整数,带符号只和左值有关)注意点:1) ... -
FreeRtos 任务优先级和中断优先级
2019-07-01 17:36:19中断优先级和任务优先级的区别: 1.简单的说,这两者之间没有任何关系,不管中断的优先级是多少,中断的优先级永远高任何任务的优先级,即在执行的过程中,中断来了就开始执行中断服务程序, 2.对应STM32F103 F... -
中断响应优先级和中断处理优先级的区别
2021-01-21 17:13:48中断响应优先级和中断处理优先级的区别 中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变; 而中断优先级可以由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理... -
PIC单片机PIC18F26K80中断优先级图
2021-01-19 18:23:30其中一个中断源在上半部分和下半部分都有的,表示它既可以设为高优先级,也可以设为低优先级。如TMR0(定时器0)在上半部分和下半部分都有;而INT0(外部中断0)只在上半部分有,在下半部分没有,表示它只能设置为高... -
stm32的抢占优先级和响应优先级(也叫子优先级)
2019-04-25 18:30:41一、抢占优先级和响应优先级 STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高。 抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断(在执行... -
线程池中的提交优先级和执行优先级
2021-03-05 13:50:52线程池中的提交优先级和执行优先级 -
查看和设置进程优先级
2021-08-06 17:02:37目录 1.查看进程优先级 2.设置进程优先级 ...每个进程都有相应的优先级,优先级决定它何时运行和占用 CPU 时间。进程(线程)的优先级越高,那么就可以分占相对多的CPU时间片。最终的优先级共分32级,是从 0 到 3. -
java线程池的提交优先级和执行优先级
2021-09-07 14:23:18execute 和 submit submit和execute 本质上是没有区别的,根据源码所知,submit也是调用了execute()方法,只不过submit是有返回值的。 public Future<?> submit(Runnable task) { if (task == null) throw ... -
Android线程的优先级设置方法技巧
2020-09-02 18:15:58对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要 -
【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 修改版 ).zip
2021-04-09 09:07:30【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 启动相同 id 的第二个前台 Service 关闭通知 ) https://hanshuliang.blog.csdn.net/article/details/115531653 博客源码快照 -
Python实现一个优先级队列的方法
2020-12-17 09:16:51问题 怎样实现一个按优先级排序的队列? 并且在这个队列上面每次 pop ... self._index = 0 def push(self, item, priority): heapq.heappush(self._queue, (-priority, self._index, item)) self._index += 1 def -
DR和BDR优先级
2020-12-31 09:06:57OSPF路由协议基础(一)OSPF(Open Short Path First)最优路径算法路由协议。OSPF路由协议的Distance值为110,它...路由协议按数据传输方式分,分为有类(Classfull)和无类(Classless)两种,有类路由协议是指传输可达... -
RabbitMQ:队列优先级和消息优先级的介绍和使用
2020-05-18 11:14:59当前内容主要用于本人学习和复习之用,当前内容包括如何创建优先级队列和使用消息优先级,以及不设定优先级和设定优先级队列之间的区别。包括探讨server如何是实现优先级的 当前内容来源:RabbitMQ官方文档 2.官方的... -
ARM Cortex-M0内核动态切换中断优先级
2019-09-25 19:00:26ARM Cortex-M0内核动态切换中断优先级 STM32F0使用整个字传输时,可以动态切换中断优先级。 ARM Cortex-M0权威指南第9章节,9.4 中断优先级部分描述如下: 中断优先级寄存器的编程应该在中断使能之前,其通常是在... -
简单总结C语言中的运算符优先级
2020-12-26 02:53:22取成员的“0”目运算符【() . -> []】优先级最高; 单目运算符高于双目运算符; 四则运算高于移位运算; 移位运算高于比较运算; 比较运算高于位运算,位运算高于逻辑运算; 逻辑运算高于赋值运算; 逗号永远...