OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3230|回复: 3

CM3中的中断分组和STM32中分组的关系问题

[复制链接]

5

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
金钱
208
注册时间
2015-3-14
在线时间
33 小时
发表于 2016-9-12 11:37:58 | 显示全部楼层 |阅读模式
1金钱
在CM3权威指南中了解到:ARM cortex_m3 内核支持 256 个中断(16 个内核+240 外部)和可编程 256 级中断优先级的设置,因为芯片设计者可以修改CM3的硬件描述源代码,所以做成芯片后,支持的中断源数目常常不到240个,并且优先级的位数也由芯片厂商最终决定。STM32目前支持的中断共为84个(16个内核+68个外部),和16级可编程中断优先级的设置。在CM3中的优先级分组规定亚优先级至少是1个位,所以造就分组方式只有8种,STM32把指定中断优先级的寄存器位减少到4位,这样就有5种分配组合分别是
0:4  无抢先式优先级,16 个子优先级
1:3  2 个抢先式优先级,8 个子优先级
2:2  4 个抢先式优先级,4 个子优先级
3:1  8 个抢先式优先级,2 个子优先级
4:0  16 个抢先式优先级,无子优先级
那么无子优先级是否和cm3规定相违背内,
假如3位都用于抢占优先级
请注意:虽然[4:0]未使用,却允许从它们中分组。如下图所示,那么问题来了这样分组后是不是当前只有抢占优先级,但在内核中依然有亚优先级但是不体现是么?希望有人来解答,指正前面的是否正确。

最佳答案

查看完整内容[请看2#楼]

总共4位,3位表示抢占,还有2位用于表示子优先级。自然是有子优先级啊。0、1可以设置。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-9-12 11:37:59 | 显示全部楼层
总共4位,3位表示抢占,还有2位用于表示子优先级。自然是有子优先级啊。0、1可以设置。
回复

使用道具 举报

5

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
金钱
208
注册时间
2015-3-14
在线时间
33 小时
 楼主| 发表于 2016-9-12 11:40:25 | 显示全部楼层
本帖最后由 阿凯 于 2016-9-12 11:41 编辑

bit 7  6     5    4     3      2              1     0 抢占优先级[7:5]   抢占优先级[4:2](未使用)亚优先级[1:0](未使用)
2588663073@chatroom_1473651676284_77.png
回复

使用道具 举报

5

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
金钱
208
注册时间
2015-3-14
在线时间
33 小时
 楼主| 发表于 2016-9-18 15:20:34 | 显示全部楼层
正点原子 发表于 2016-9-12 11:37
总共4位,3位表示抢占,还有2位用于表示子优先级。自然是有子优先级啊。0、1可以设置。

感谢原子哥来答!      
原子哥可能是我的描述有问题,这个图是用3位来表示优先级分组,就像stm32用4位来表示,我的意思就是假如全部位(拿stm32来说高四位)来表示抢占优先级,但是内核规定必须需要一位亚优先级,是不是就低位有表示亚优先级的位但是就不能写,因为他们是没使用的,还有就是,途中的分配是3位来表示优先级的,这个低二位来表示亚优先级是不是出厂就定死的,那假如高4位来表示优先级的话,那他的低位分配是不是就不一样了内
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 08:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表