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

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

[复制链接]
野火_firege 发布时间:2016-9-1 08:52
本帖最后由 野火_firege 于 2016-9-3 09:29 编辑
4 |2 T5 k  }6 w9 I) Q6 ]1 R- h+ q- r' L1 [: [1 U# H
提示:systick是内核的外设,其他外设比如串口,adc等是内核之外的。% ?5 k& @: R; M6 }3 p5 V4 Z
  G) V- e+ `% X1 S8 n0 v
答案分析:7 u. M8 X/ r' ]
1、只要内核的优先级可以配置,那么内核的优先级就不是一定比外设的高,而是要先比较软件优先级,如果软件优先级一样,那么就比较他们的硬件的中断编号,编号就是在中断向量表中的位置,越小,优先级越高。
* {; s  i5 p+ J! z5 v$ Y5 K" U1 Y6 m) T* G; K
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个位来配置中断优先级。
$ N  @1 E" ~+ U% }/ x4 \8 Z- b  T5 v0 x, r. P8 ~; t
3、那么问题来了,这里systick的中断优先级配置成15,应该是最低的,那跟外设来比,那是systick的优先级比外设是高还是低?  这个得看 外设 配置 中断优先级时的优先级分组。
5 y; p" m. k( G
0 l- z0 w# D: r( j. x4、如果分组为 2,那抢占优先级和子优先级各有2个位表示优先级,抢占的取值范围为0~3,子优先级的取值范围为:0~3。那这时systick的优先级15,该怎么对比,只需要把15转换成二进制:1111,这四位同样受优先级分组的控制,即前两位表示抢占优先级,那就是3,后两位表示子优先级,也是3。在分组2里面都是最低的。如果你的外设也配置成组2,主和子优先级配置的不是3,那就肯定比systick的优先级高。
  l( t) C5 f* f6 U8 x
- q; [3 y0 {2 n! [5、内核的优先级并非一定比外设的优先级高,只要你的优先级可以配置。
) o9 b4 f- M+ H. }其他资料链接,有需要的可以下载。
8 J5 M( D4 @! Y! P& n. E: {+ }: ?3 L& O. \7 V
【秉火STM32-视频教程 优酷 观看地址】% C' l( o- u# V: |, Q
1-200集STM32F429视频教程,从0开始手打代码教学!而不是拿写好的代码讲解!
% c; R0 K# [3 [" j' I' G2 U7 m2-150集STM32F103视频教程,从0开始手打代码教学!而不是拿写好的代码讲解!3 i: P8 V, z$ ~. }0 x
3-优酷观看链接:http://i.youku.com/firege 【不断更新,记得收藏】
5 f8 u# M; I' h$ B) O& u# L' t; k* [! X5 y6 X( e7 u( h
【秉火STM32-视频+程序+书籍 下载地址】" C# c, V! P) I* f, ^9 D5 e
F103-霸道光盘资料:http://yunpan.cn/cBUab8r9vpf3B  访问密码 8d7e' `5 Z4 J3 D8 S9 t( L+ p
F103-指南者光盘资料:http://yunpan.cn/cBUaNcjtqCsyI  访问密码 e21a
; A* b9 H3 e/ KF429-挑战者光盘资料:http://yunpan.cn/cRiEnMsyqzxAE  访问密码 246a
. V9 I' Z) y. K0 O0 n8 g7 L* U; S2 ?! J: L) T
6 T8 b% A: q) F$ z

评分

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

查看全部评分

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

举报

78个回答
中山无雪 回答时间:2017-1-15 22:25:24
本帖最后由 中山无雪 于 2017-1-15 23:08 编辑 ( d9 h3 B7 }2 a+ y) o& f0 O5 U

; T! O0 w  {% t" b) l看过系统配置文件的都应该知道的( }- V' Z& V  w
+ W' c  q+ [# u
SYStick是核心中断中级别最低的,但是和外设比是要看外设的设置了+ \- k0 M6 U1 ~8 |
0 @/ Q. g- ^4 N/ d& ^( z
  /* System interrupt init*/
  o2 r% D, M& p3 [  /* MemoryManagement_IRQn interrupt configuration */: I" J  @" S6 O$ p& I; A
  HAL_NVIC_SetPriority(MemoryManagement_IRQn, 0, 0);$ x7 l% u% b0 [% I5 d; D* K
  /* BusFault_IRQn interrupt configuration */
2 ?  ^" W" }8 `' K' t  HAL_NVIC_SetPriority(BusFault_IRQn, 0, 0);& p* q5 J8 t( {6 ~
  /* UsageFault_IRQn interrupt configuration */
& f  A" i9 M, Q' P' c+ r/ x  HAL_NVIC_SetPriority(UsageFault_IRQn, 0, 0);
" a( d' u9 x0 X  /* SVCall_IRQn interrupt configuration */) k5 M- e: Q- t; s; R
  HAL_NVIC_SetPriority(SVCall_IRQn, 0, 0);" ^5 j/ u' ?8 t. X% Y
  /* DebugMonitor_IRQn interrupt configuration */
* w. S) I: M) e, X5 o/ u3 ~  HAL_NVIC_SetPriority(DebugMonitor_IRQn, 0, 0);: s! G7 g# _' b1 n: o# o6 T
  /* PendSV_IRQn interrupt configuration */
# |/ j8 Z; z) i0 @& H! }  HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);: p4 c  h5 D/ {/ F* S, t
  /* SysTick_IRQn interrupt configuration */& F, {# `0 r6 p5 a; N5 B8 x
  HAL_NVIC_SetPriority(SysTick_IRQn, 15, 0);
, z+ K% Y6 D" F/ i% M  }7 m8 Y6 G# C' O! i. |" ]8 k# L! v
野火_firege 回答时间:2016-9-1 08:55:15
更加详细的分析可参考《STM32库开发实战指南——基于STM32F429》第16章——STM32中断应用总结。' q' D/ n' n8 h# t3 j
. w/ R/ P, @, Z
《STM32库开发实战指南—基于STM32F429》即将出版,开源电子版0 k( c$ j' z; ]+ L6 \% W- W
https://www.stmcu.org.cn/module/foru ... 569&fromuid=3255788
3 K% E6 \" `6 s' v) [  t* ~$ n. s(出处: 意法半导体STM32/STM8技术社区)9 a( N' e' M% T1 F
野火_firege 回答时间:2016-9-3 09:28:55
guo8113 发表于 2016-9-2 13:41
6 N8 w( ?+ G8 u" U$ v" U- B比外设高吧
; c+ z/ ?( o4 d8 S/ N$ ^8 e
回答错误                                          
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
+ ?; Z4 V  i6 M. `1 ysystick是内核的外设优先级高
* ~8 `0 n* P: h! }) s" _" X! H  ]
错了                                
野火_firege 回答时间:2016-9-2 09:35:28
mcza30 发表于 2016-9-1 16:24
& y" U, W  w# b$ Y' L是不是高低可以设置?

% H$ C  f& B/ n/ @& Pyes                                

所属标签

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