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

STM32G0学习手册——Cortex M0+ NVIC 与FreeRTOS中断管理

[复制链接]
STMCU小助手 发布时间:2022-10-27 18:43
知识点1
4 V6 s/ F( B0 W
( B# }, l2 ^+ M! O# w2 z) |        /*< STM32G0xx uses 2 Bits for the Priority Levels */
* G' Y3 g9 G( v# ]6 s; C8 M1 S  ]/ T2 V8 e
        #define __NVIC_PRIO_BITS          2
9 V) Y4 Z4 H+ K) h
" T4 }9 O* P2 w# _9 Z        所以M0+的中断优先级:0、1、2、3
5 t% {1 C9 ?, W0 Y5 M' d0 D1 c6 C* ]7 `. O
知识点2
9 f" z5 w' R( n; d- s
# ^! X+ t8 ?, F/ O% d, v        在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。' F( s) h& W/ y$ ~7 }
  G. N! e+ ^" y
知识点3( i! r* u! Y* t: E! n
! ~0 v" t! @# c0 Y) g0 N4 s4 ~* L
        FreeRTOS 任务优先级从0开始,作为最低的紧急 RTOS 任务优先级,而M0+ NVIC 使用0作为最高的紧急中断优先级。# E* ]/ _0 o4 V8 G* x# f

5 U1 s6 A5 [/ n  F7 ~. a! z        但是任务优先级和中断优先级没有关联: F% v! e6 v- m& h

1 d( J' N) ~" _知识点4% L$ C4 _% E, g( z$ k: M* a1 x1 D
5 r+ K6 T, j+ O. H" L9 B! J
        FreeRTOS 内核使用 2-3 个中断,具体取决于内核:SysTick用作时基,PendSV用于上下文切换,以及Cortex-M3/4/7 上的SVCall用于启动调度程序。
8 M5 Q( V# R" A3 V        SysTick 和 PendSV 配置为最低紧急程度:RTOS 以最低紧急程度运行。' o5 _5 M, _+ R# s" }. J
2 l( \$ ?- w# m, @" `
知识点5" ^3 _3 b- b5 g5 N, Q6 ]; Y

4 ^9 p1 |9 X8 C: M        中断服务代码里必须使用中断安全的FromISR()变体
( T+ F! U" {% r+ f————————————————
% y2 o- D& N" f0 w2 b版权声明:SCCELE
, K9 ^6 T2 C3 j! C, j& c+ K
8 z8 V( y( _/ _; V
赞 收藏 评论0 发布时间:2022-10-27 18:43

举报

0个回答

所属标签

相似技术帖

官网相关资源

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