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

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

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
知识点1
% J) x% i% n6 C2 N- i& f
3 v) w, `$ d" [' Y9 H- B        /*< STM32G0xx uses 2 Bits for the Priority Levels */
% ]" i* U, S! k
3 @0 K8 k- j" U4 ?1 [( Q# m" o        #define __NVIC_PRIO_BITS          2
: @) W5 }( n8 @( E2 N* I$ I) u( \( S6 n
        所以M0+的中断优先级:0、1、2、3
' W* v. ?4 [2 W
/ s. C5 `3 T! d/ F& v" T* M4 W知识点2  I% a  V+ E5 _1 r, b6 p

, l) l' G8 v7 b; o8 a3 `+ n        在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。& i- A0 L& H" n8 i2 ^3 I

9 f0 B, v+ h1 V' T知识点3
6 Q1 c% k% F$ l$ T6 j# P5 Y4 f- L1 \! `0 b8 A* I
        FreeRTOS 任务优先级从0开始,作为最低的紧急 RTOS 任务优先级,而M0+ NVIC 使用0作为最高的紧急中断优先级。1 e! U. `/ t, W* B

6 S; N% k" v/ M7 Z        但是任务优先级和中断优先级没有关联* X* j% `6 z' p+ e
% N. a5 [, z, j& u
知识点47 g9 ?( J* j# s  U

7 b6 t4 Y( }4 |( c# d        FreeRTOS 内核使用 2-3 个中断,具体取决于内核:SysTick用作时基,PendSV用于上下文切换,以及Cortex-M3/4/7 上的SVCall用于启动调度程序。! j) T, i) D- B$ R6 K' ]
        SysTick 和 PendSV 配置为最低紧急程度:RTOS 以最低紧急程度运行。
5 K- Q: W3 m/ h2 _
3 A2 g! K7 O  b0 j1 ~$ T知识点51 Y! ~; q9 m! ~* j3 A" U) h

3 S7 y- F: X0 R6 c        中断服务代码里必须使用中断安全的FromISR()变体
- x" S% u& O! G2 Z: l) @! n8 i* v  E' F5 Y5 \/ j+ K4 }
" ~5 j1 r, }, Q& E
收藏 评论0 发布时间:2021-11-10 18:02

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版