GD32的NVIC 的优先级组配置

[复制链接]
 楼主| sunmeat 发表于 2015-7-12 21:09 | 显示全部楼层 |阅读模式
vi, ic, AI, air, rc
NVIC 只可以配置 16 种中断向量的优先级,也就是说,抢占优先级和响应优先级的数量由一个 4 位的数字来决定,把这个 4 位数字的位数分配成抢占优先级部分和响应优先级部分。有 5 组分配方式 。这个为什么是五种分配方式呢?这是由M3内核中的应用程序中断及复位控制寄存器(AIRCR)(地址:0xE000_ED00)决定的,是由AIRCR的 8-10位决定的。寄存器截图如下:
QQ截图20150712210748.png
设置五种分组的代码如下:
  1. void NVIC_PRIGroup_Enable(uint32_t NVIC_PRIGroup)
  2. {
  3.     /* Set the priority grouping value */
  4.     SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PRIGroup;
  5. }


kekeke 发表于 2015-7-14 17:26 | 显示全部楼层
还是不懂,为什么是5组呢?这个是由什么决定的了?
firstblood 发表于 2015-7-15 21:34 | 显示全部楼层
NVIC 只可以配置 16 种中断向量的优先级,也就是说,抢占优先级和响应优先级的数量由一个 4 位的数字来决定,把这个 4 位数字的位数分配成抢占优先级部分和响应优先级部分。
angerbird 发表于 2015-7-17 22:39 | 显示全部楼层
firstblood 发表于 2015-7-15 21:34
NVIC 只可以配置 16 种中断向量的优先级,也就是说,抢占优先级和响应优先级的数量由一个 4 位的数字来决定 ...

这个说的是啦,抢占优先级与响应优先级的使用需要注意各自所能确定的最大用量的。
smilingangel 发表于 2015-7-18 15:03 | 显示全部楼层
抢占优先级和响应优先级的数量由一个 4 位的数字来决定,把这个 4 位数字的位数分配成抢占优先级部分和响应优先级部分。
zhangbo1985 发表于 2015-7-26 23:02 | 显示全部楼层
这个学习了啊,,优先级的设置非常重要的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

208

主题

2132

帖子

13

粉丝
快速回复 在线客服 返回列表 返回顶部