STM32中断优先级分组
来源:互联网 发布:网络安装维护 编辑:程序博客网 时间:2024/04/29 14:53
Cortex-M3的中断优先级的分组方式最多可以有有8种,因为CM3强制规定:SubPriority至少要占一个位(如果没有该强制规定,那么CM3分组方式最多有9种)。
我们知道:STM32把指定中断优先级的寄存器的MSB4位有效,共有以下5种分组方式:
第0组方式:所有4位用于响应优先级
第1组方式:最高1位用于抢占式优先级,最低3位用于响应优先级
第2组方式:最高2位用于抢占式优先级,最低2位用于响应优先级
第3组方式:最高3位用于抢占式优先级,最低1位用于响应优先级
第4组方式:所有4位用于抢占式优先级
在MISC.H里面有:
#define NVIC_PriorityGroup_0 ((uint32_t)0x700) /* 0 bits for pre-emption priority
4 bits for subpriority */
#define NVIC_PriorityGroup_1 ((uint32_t)0x600) /* 1 bits for pre-emption priority
3 bits for subpriority */
#define NVIC_PriorityGroup_2 ((uint32_t)0x500) /* 2 bits for pre-emption priority
2 bits for subpriority */
#define NVIC_PriorityGroup_3 ((uint32_t)0x400) /* 3 bits for pre-emption priority
1 bits for subpriority */
#define NVIC_PriorityGroup_4 ((uint32_t)0x300) /* 4 bits for pre-emption priority
0 bits for subpriority */
我们发现:第4组方式是“所有4位用于抢占式优先级”,那么这是不是与"SubPriority至少要占一个位"相冲突呢?
答案:当然不冲突了!因为虽然STM32的"优先级配置寄存器"没有使用bit3、bit2、bit1、bit0,但是却允许从它们中分组(分组位置由应用程序中断及复位控制寄存器(AIRCR)的[10:8]决定)。
=========================
第0组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
第1组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
第2组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
第3组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
第4组采用的分组方式是
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
- STM32中断优先级分组
- stm32中断优先级分组
- STM32中断优先级分组管理
- STM32中断优先级分组概念
- STM32系列第6篇--NVIC中断优先级分组
- STM32优先级分组
- STM32中断优先级
- STM32中断优先级
- STM32中断优先级
- stm32中断优先级
- STM32中断优先级概念
- stm32 中断优先级配置
- STM32 中断优先级原理
- STM32中断优先级
- stm32中断优先级
- STM32中断优先级--学习心得
- STM32-中断优先级
- STM32-中断优先级
- 输入框(input):限制输入框内只能输入数字
- 四,标志位操作指令
- 自定义输入框的校验规格
- 如何攒一台深度学习服务器
- 51Testing测试电子书集合免费送 第二弹
- STM32中断优先级分组
- 第一次发博客
- 小白学习之haar训练
- 杭电acm2114
- 对初学LoadRunner朋友的建意
- 转一些SIFT代码链接
- 理解 Android Build 系统
- STM32串行通信之单缓冲器通信模式
- ucosii源码分析