你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32中的抢占优先级和子优先级的区别

[复制链接]
不作死还能怎么死 发布时间:2017-10-18 16:24
STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或者是“副优先级”,每个中断源都需要被指定这两种优先级!+ S2 ]$ d- O  }( e# |, K6 W& Y
$ X' I" m1 f- }9 |

8 A* d) q& {  t' f1.何为抢占式优先级(pre-emption priority):* Q7 \1 ]; D+ R/ t2 A, X- y6 @
抢占式优先级的中断事件会打断当前的主程序或者是中断程序的运行——抢断式优先响应,俗称中断嵌套。- F7 h$ O5 S" u* o$ s

9 c) S! l. Y2 J" b& c
# l" \* v/ d2 i6 @4 o
2.何为副优先级(subpriority):4 B/ F3 }( J* Z5 O' d
在抢占式优先级相同的情况下,高副优先级的中断先被响应;
+ M9 L- q9 r; V+ i' U3 ~在抢占式优先级相同的情况下,如果有低副优先级中断正在执行,高副优先级的中断要等待已经被响应的低副优先级中断执行完毕后才能够得到响应——非抢断式响应(不能嵌套)。
4 p1 ]  ^) Q! z" U6 [; Z5 e* N
$ {5 a0 L9 Q; m. J) w
: k* E* G8 w8 y; i4 b: Q
3.判断中断是否被响应的依据:1 P+ [) `- O6 Q% e9 T
首先是抢占式优先级,其次是副优先级。7 u7 \  W0 L- K
抢占式优先级决定是否会有中断嵌套。+ W" r+ W( S1 E7 ?' z3 `3 b
2 t' E5 y/ h0 N* V- f9 D

# G0 A# A/ u* i: Y8 u+ ]: d0 Q0 H  s1 e4.优先级中断的处理:/ l6 l9 G! h! Q0 v2 Q2 @/ ^% B
具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理的过程中被响应,即中断嵌套;或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。. k5 E, l$ n8 D& e8 `
当两个中断源的抢占式优先级相同的时候,这两个中断将没有嵌套的关系,当一个中断到来的时候,如果正在处理另一个中断,这个后来的中断就要等待当前的中断被处理完后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级的高低来决定先处理哪一个;如果他们的抢占式优先级和优先级都相同的话,则根据他们在中断表中的排位顺序决定先处理哪一个。
( D- D. R* _: R7 Y7 j' K  X/ f, D% {+ i

7 y4 `+ N" ?6 X0 l2 I1 |) i1 Y5.STM32中对优先级的定义  C. s5 r* O1 l1 [- ^6 N- \
STM32中指定中断优先级的寄存器有4位,这4个寄存器的分组方式如下:
- z! P2 H+ ?7 X- Z& `6 S第0组:所有4位用于指定响应优先级
4 p2 D$ S/ |' V- F第1组:最高位1用于指定抢占式优先级,最低3位用于指定相应优先级% g1 b/ W* z1 W! l2 l
第2组:最高位2用于指定抢占式优先级,最低2位用于指定相应优先级! |8 X7 @+ v! J- p- ?7 X0 X
第3组:最高位3用于指定抢占式优先级,最低1位用于指定相应优先级
8 g+ V9 C9 p7 f% g6 ]; M第4组:所有4位用于指定抢占式优先级$ N, M! X6 t6 ]0 T; P  |. r* K- Z/ S

6 @0 l( M0 f+ N1 K5 E
收藏 评论0 发布时间:2017-10-18 16:24

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版