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

【经验分享】STM32G0学习手册——Cortex M0+ NVIC 与FreeRTOS中断管理

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
知识点1
3 J+ l0 |/ h4 T+ L4 s& e( P; @2 @/ m2 ?: ?% S: C
        /*< STM32G0xx uses 2 Bits for the Priority Levels */
$ I: }0 [* [! _9 u3 P2 q2 g8 O! U% m
$ H$ u# ~4 Y4 l8 j        #define __NVIC_PRIO_BITS          2 2 N% j! _) f) w
! t( Y3 U/ v6 t* I/ t6 c
        所以M0+的中断优先级:0、1、2、3! Z' v3 ?! {" t! }

; P) b+ l/ i8 Y3 J! \知识点2
  q0 u# N. ~) ]: y
) I" ?  r" H3 H9 z  ~# l9 |! E        在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。6 V8 _4 [7 f4 S

9 t) J8 T$ K7 u& }& m: w知识点34 K& l; t- K: K* e

, z4 T/ z5 \8 w2 W) H        FreeRTOS 任务优先级从0开始,作为最低的紧急 RTOS 任务优先级,而M0+ NVIC 使用0作为最高的紧急中断优先级。
+ e" B2 N2 Q; u) F/ ?6 y* y3 ]5 e: \. B( }
        但是任务优先级和中断优先级没有关联, g( T& d1 t! B2 i6 C0 N8 x

' L# c, S  A7 @3 a% Z8 R7 _0 M知识点4% I1 y0 d" G' O

) X7 p) {& C$ _$ P5 V/ b; r2 P& E        FreeRTOS 内核使用 2-3 个中断,具体取决于内核:SysTick用作时基,PendSV用于上下文切换,以及Cortex-M3/4/7 上的SVCall用于启动调度程序。
5 b. g) p* v8 N7 z        SysTick 和 PendSV 配置为最低紧急程度:RTOS 以最低紧急程度运行。( T- h0 I8 ^% t" P* x* V8 U) z

) {; K2 D% G# G+ l$ x& p+ x4 V# s知识点5: p6 `0 l! T: N  ~
  D4 D5 P1 g7 v: `/ l
        中断服务代码里必须使用中断安全的FromISR()变体
+ i9 S( y- _# J1 S3 p4 c3 b, d
" P4 j- F9 @3 T  l5 \/ ^! r
7 }7 Q- Z. }! L
收藏 评论0 发布时间:2021-11-10 18:02

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版