历史上的今天
今天是:2025年05月30日(星期五)
2018年05月30日 | STM32的抢占优先级和响应优先级
2018-05-30 来源:eefocus
一、抢占优先级和响应优先级
STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号
越小,表明它的优先级别越高。
抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断(在执行中断
服务函数A 的过程中被中断B 打断,执行完中断服务函数B 再继续执行中断服务函数
A),抢占属性由NVIC_IRQChannelPreemptionPriority 的参数配置。
而响应属性则应用在抢占属性相同的情况下,当两个中断向量的抢占优先级相同时,
如果两个中断同时到达, 则先处理响应优先级高的中断, 响应属性由
NVIC_IRQChannelSubPriority 参数配置。例如,现在有三个中断向量,如下表。
若内核正在执行C 的中断服务函数,则它能被抢占优先级更高的中断A 打断,由于B
和C 的抢占优先级相同,所以C 不能被B 打断。但如果B 和C 中断是同时到达的,内核
就会首先响应响应优先级别更高的B 中断。
二、NVIC 的优先级组
在配置优先级的时候,还要注意一个很重要的问题,即中断种类的数量。NVIC 只可
以配置16 种中断向量的优先级,也就是说,抢占优先级和响应优先级的数量由一个4 位的
数字来决定,把这个4 位数字的位数分配成抢占优先级部分和响应优先级部分。有5 组分
配方式:
第0 组: 所有4 位用来配置响应优先级。即16 种中断向量具有都不相同的响应优先
级。
第1 组:最高1 位用来配置抢占优先级,低3 位用来配置响应优先级。表示有2 种
级别的抢占优先级(0 级,1 级),有8 种响应优先级,即在16 种中断向量之中,有
8 种中断,其抢占优先级都为0 级,而它们的响应优先级分别为0~7,其余8 种中断向
量的抢占优先级则都为1 级,响应优先级别分别为0~7。
第2 组:2 位用来配置抢占优先级,2 位用来配置响应优先级。即4 种抢占优先
级,4 种响应优先级。
第3 组:高3 位用来配置抢占优先级,最低1 位用来配置响应优先级。即有8 种抢占
优先级,2 种响应2 优先级。
第4组:所有4 位用来配置抢占优先级,即NVIC 配置的16 种中断向量都是只有
抢占属性,没有响应属性。
要配置这些优先级组,可以采用库函数NVIC_PriorityGroupConfi g(),可输入的参数为NVIC_PriorityGroup_0 ~ NVIC_PriorityGroup_4,分别为以上介绍的5 种分配组。
于是,有读者觉得疑惑了,如此强大的STM32,所有GPIO都能够配置成外部中断,USART、ADC 等外设也有中断,而NVIC 只能配置16 种中断向量,那么在某个工程中使用超过16 个中断怎么办呢?注意NVIC 能配置的是16 种中断向量,而不是16 个,当工程中有超过16 个中断向量时,必然有两个以上的中断向量是使用相同的中断种类,而具有相同中断种类的中断向量不能互相嵌套。
上一篇:STM32中中断优先级理解
史海拾趣
|
各位英雄: 我的系统基于pxa255+wce4.2,外挂2个bank的sdram,每个bank接64M,由两片32M组成。我在eboot中为测试sdram,就分别对两个bank的地址进行读写(每个bank的低400字节),发现bank0可以正常读写,也即读写数据一致;bank1读写数据不一致, ...… 查看全部问答> |
|
核心板是在gooolgman处购得,仅上过一次点,读ID,由于导师项目临时有变,所以出掉,回收资金,继续开发!光盘资料齐全,将刻录成DVD随核心板发送。也可以提供其他6410开发板的光盘资料,详请联系。 本人平时较忙,所以若不在线请手机短信联系:13 ...… 查看全部问答> |
|
请教:板子为ARM2410,在wince下,我的应用程序一打开串口2,串口1上就会有打印信息 Data Abort: Thread=8fadf914 Proc=8e028d08 \'device.exe\' AKY=00001009 PC=024d2a30 RA=03f87e64 BVA=08000000 FSR=00000007 而且串口2不能收发数据,请问 ...… 查看全部问答> |
|
Windows硬件工程大会七折票价倒计时!通过eeworld购票可获赠全年12期程序员杂志,如此优惠,不要错过! “Windows 硬件工程大会”是微软公司面向个人电脑终端、服务器、硬件设备以及驱动程序的最具前瞻性的全球硬件技术信息盛会,在北美地区已成功举办16届,今年是首次在中国独立举办。因此,此次大会将是一场极具营养的大会。 WinHEC 会上将前瞻性全 ...… 查看全部问答> |
|
msp430f147.148.149中有没有上电自动复位功能,需要外接上电复位电路吗? 在仿真过程中,通过仿真器将程序写入片子里,拔掉仿真器有时候会遇上程序不运行情况,请问:msp430f147.148.149中有没有上电自动复位功能,需要外接上电复位电路吗?… 查看全部问答> |




