中级会员
 
- 积分
- 208
- 金钱
- 208
- 注册时间
- 2015-3-14
- 在线时间
- 33 小时
|
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]未使用,却允许从它们中分组。如下图所示,那么问题来了这样分组后是不是当前只有抢占优先级,但在内核中依然有亚优先级但是不体现是么?希望有人来解答,指正前面的是否正确。
|
|