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

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

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
知识点1
0 t, w( X: i* T( B  K* L5 _0 U9 e
: z5 N- [1 C9 M  U" h0 k& J        /*< STM32G0xx uses 2 Bits for the Priority Levels */' r6 c% M  e* w5 b7 X6 b

- f- W8 i( d  \        #define __NVIC_PRIO_BITS          2
- Y' ~0 Z$ f# G- F) }5 f3 F& k3 W  m- |- }' I
        所以M0+的中断优先级:0、1、2、3
5 E  y( y. a) B, K* n+ a/ l7 A
, h6 ~4 B9 z6 C! y4 O) @4 n% ]知识点2
( G0 k/ \, G' M4 K3 c0 _
7 H4 B2 I7 w! k- l8 s9 |        在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。) U. b* W4 X4 w- A: K5 r( O
# V' A  F$ C* p6 Z2 E
知识点3
1 u5 g, r1 ?& [, F! t+ E) X" Y
& H3 k/ ^" E$ k+ L        FreeRTOS 任务优先级从0开始,作为最低的紧急 RTOS 任务优先级,而M0+ NVIC 使用0作为最高的紧急中断优先级。
1 [: v6 `% R$ L  X
, x5 M, z# Q( u& q6 C- m        但是任务优先级和中断优先级没有关联
- h& N6 r; D- U- H  R
" i5 l; k2 h, P知识点4
6 s8 k) q* l( F. `" E. j8 {, U; A0 _+ d+ X! `- y, y: m
        FreeRTOS 内核使用 2-3 个中断,具体取决于内核:SysTick用作时基,PendSV用于上下文切换,以及Cortex-M3/4/7 上的SVCall用于启动调度程序。$ {1 a- f8 {% T, _
        SysTick 和 PendSV 配置为最低紧急程度:RTOS 以最低紧急程度运行。8 Y0 e- G$ a; `( U& e& h
& N; P7 B6 L  @. O+ `0 c* `
知识点5& s- M3 ]) l& J: K

9 i9 q& ]' q5 [9 N; x2 n        中断服务代码里必须使用中断安全的FromISR()变体2 W; H7 [0 W$ K8 D4 \% f( r
) V' m+ T8 ^! {5 E6 ?. j+ Y

6 a3 a1 I5 r2 y+ |; d! c5 @
收藏 评论0 发布时间:2021-11-10 18:02

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版