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

systick的优先级比外设的优先级高还是低,80%的人回答不了。  

[复制链接]
野火_firege 发布时间:2016-9-1 08:52
本帖最后由 野火_firege 于 2016-9-3 09:29 编辑 * B1 h/ l$ B5 E
9 a9 o, a, `2 A: A3 P2 A/ E( y3 f% d
提示:systick是内核的外设,其他外设比如串口,adc等是内核之外的。5 [* Y8 C9 R- @, N  s; e: a

7 n- M! f( v9 C; W, }答案分析:
. [( o3 I; v3 T1、只要内核的优先级可以配置,那么内核的优先级就不是一定比外设的高,而是要先比较软件优先级,如果软件优先级一样,那么就比较他们的硬件的中断编号,编号就是在中断向量表中的位置,越小,优先级越高。% _& K: x+ ?5 F2 O2 K' K

  m( i! X- C7 @2、以systick为例,在systick的固件库初始化函数:SysTick_Config(uint32_t ticks) 中,调用了NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); ,这里面把 systick的 优先级配置为 :1<<4-1 = 15,这里面的4是因为STM32 使用4个位来配置中断优先级。
8 ~; i) m) n' ~( g3 i* I- y
* G+ W# ]% ?4 W" T& B' P+ b* W3 i3、那么问题来了,这里systick的中断优先级配置成15,应该是最低的,那跟外设来比,那是systick的优先级比外设是高还是低?  这个得看 外设 配置 中断优先级时的优先级分组。2 [% y/ @- r0 k3 V: b

( Q- ~% R8 h* S$ t' V2 S4、如果分组为 2,那抢占优先级和子优先级各有2个位表示优先级,抢占的取值范围为0~3,子优先级的取值范围为:0~3。那这时systick的优先级15,该怎么对比,只需要把15转换成二进制:1111,这四位同样受优先级分组的控制,即前两位表示抢占优先级,那就是3,后两位表示子优先级,也是3。在分组2里面都是最低的。如果你的外设也配置成组2,主和子优先级配置的不是3,那就肯定比systick的优先级高。
1 V0 d: w0 f  b6 P
% E: Q* ?# s0 ]- _) n1 g5、内核的优先级并非一定比外设的优先级高,只要你的优先级可以配置。$ U! z4 V* D! e% z4 a4 _( S
其他资料链接,有需要的可以下载。/ q# |" f# `! C: g7 w

8 ]) F) X& I% M【秉火STM32-视频教程 优酷 观看地址】- e' e4 y/ x$ C3 @( ^0 A2 S$ [
1-200集STM32F429视频教程,从0开始手打代码教学!而不是拿写好的代码讲解!
6 V) t# B9 U( ^# u/ x2-150集STM32F103视频教程,从0开始手打代码教学!而不是拿写好的代码讲解!
$ ^, r6 q) K4 H+ c3-优酷观看链接:http://i.youku.com/firege 【不断更新,记得收藏】: h* E% C6 A. N8 n+ d0 z

# t) o, Z" e% `- G5 U8 r1 U【秉火STM32-视频+程序+书籍 下载地址】
7 U  b9 I2 t2 I4 @+ M9 \2 m! VF103-霸道光盘资料:http://yunpan.cn/cBUab8r9vpf3B  访问密码 8d7e1 R' e# ^3 X/ K" |9 f
F103-指南者光盘资料:http://yunpan.cn/cBUaNcjtqCsyI  访问密码 e21a% ?; P8 i  ]! `3 j# }1 ~
F429-挑战者光盘资料:http://yunpan.cn/cRiEnMsyqzxAE  访问密码 246a; m3 r2 R' t$ x3 z5 C( k' V0 z, d: `

4 D1 i: g- O7 l$ ^/ K! Q1 C& M+ K+ r" m& P  l3 q" ]! V- {3 U

评分

参与人数 1 ST金币 +1 收起 理由
智いさ + 1 赞一个!

查看全部评分

赞 收藏 6 评论78 发布时间:2016-9-1 08:52

举报

78个回答
中山无雪 回答时间:2017-1-15 22:25:24
本帖最后由 中山无雪 于 2017-1-15 23:08 编辑 ' ?1 o8 r* [* B: x' y! d; n
/ o, U6 [- W! w7 L! E0 G
看过系统配置文件的都应该知道的: h4 y& A( c' [, n& U2 f( y
: _/ \9 T# k% ]& n6 k
SYStick是核心中断中级别最低的,但是和外设比是要看外设的设置了' J1 g. i) r, g5 K' D% P" ~( Q

5 S% T' U& [5 u: p% r  /* System interrupt init*/  W; x- i4 W. a* G
  /* MemoryManagement_IRQn interrupt configuration */& J3 |, H( Q" O$ x6 r4 H9 l
  HAL_NVIC_SetPriority(MemoryManagement_IRQn, 0, 0);
. A+ z, h# ^2 j: A  /* BusFault_IRQn interrupt configuration */
, c1 S" t: a- [; L% C2 l  HAL_NVIC_SetPriority(BusFault_IRQn, 0, 0);: M; f! b1 i# E* E: T0 g
  /* UsageFault_IRQn interrupt configuration */
& C  z1 m* A' c) q: r* @8 x  HAL_NVIC_SetPriority(UsageFault_IRQn, 0, 0);
  U4 _' k( y) B' M% {$ y  /* SVCall_IRQn interrupt configuration */
1 Y& Z2 ~# O" j  HAL_NVIC_SetPriority(SVCall_IRQn, 0, 0);  q% Z! M# r- V  r2 ]. w
  /* DebugMonitor_IRQn interrupt configuration */" M7 L3 o& y& Q+ Y2 j* {+ y
  HAL_NVIC_SetPriority(DebugMonitor_IRQn, 0, 0);
  K; I+ L% q' H$ U* H/ R: b" [  /* PendSV_IRQn interrupt configuration */
% C. [5 {5 B# P' V" J7 I, d, A  HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
" T' S/ M/ N" P; m' {# v  /* SysTick_IRQn interrupt configuration */
' ]& \0 C5 g) q! L) r8 y) v& |  HAL_NVIC_SetPriority(SysTick_IRQn, 15, 0);- B8 z. V: l! E2 h$ Z

  @- r% t/ Z: h  h
野火_firege 回答时间:2016-9-1 08:55:15
更加详细的分析可参考《STM32库开发实战指南——基于STM32F429》第16章——STM32中断应用总结。
; m9 Q, g  N: _* B  b+ @3 b9 U* t5 Y+ @. y
《STM32库开发实战指南—基于STM32F429》即将出版,开源电子版
+ U' s0 r3 H* i0 A- O; c3 D& Y& k! lhttps://www.stmcu.org.cn/module/foru ... 569&fromuid=32557885 ^1 h$ Z3 W( h8 D; H2 U" `# R
(出处: 意法半导体STM32/STM8技术社区)8 Y8 Z& o% x1 R
野火_firege 回答时间:2016-9-3 09:28:55
guo8113 发表于 2016-9-2 13:414 R& B& T9 }, r
比外设高吧
" N) I$ M, f4 _8 D1 i0 ]
回答错误                                          
bmnli 回答时间:2016-9-1 09:39:01
看看答案
stary666 回答时间:2016-9-1 10:11:36
看看,,,,,,,,
moyanming2013 回答时间:2016-9-1 11:42:20
学习下                 
suoma 回答时间:2016-9-1 12:28:25
systick是内核的外设优先级高
chenbourne 回答时间:2016-9-1 14:09:50
学习学习
长不大的小孩 回答时间:2016-9-1 14:26:28
看看
mcza30 回答时间:2016-9-1 16:24:25
是不是高低可以设置?
CallMeWater 回答时间:2016-9-1 18:05:10
学习学习                        
mark0668 回答时间:2016-9-1 19:01:52
看看答案
望蓝天 回答时间:2016-9-1 20:41:47
雁过留声,人过留名。
beebird 回答时间:2016-9-1 22:50:08
来学习一下
野火_firege 回答时间:2016-9-2 09:34:34
suoma 发表于 2016-9-1 12:28
5 b4 w  g, ?# Psystick是内核的外设优先级高

3 O( }$ B5 R2 _# k8 k) W2 D, F错了                                
野火_firege 回答时间:2016-9-2 09:35:28
mcza30 发表于 2016-9-1 16:245 ]7 ]5 }0 E+ E2 ?8 F* a% K6 z
是不是高低可以设置?
, ~8 x* ~: m% r  a% i: a
yes                                

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版