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

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

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
知识点14 c' u& O9 Y; G) f* n
8 I6 a  E/ J/ V
        /*< STM32G0xx uses 2 Bits for the Priority Levels */
5 X5 S( i# C  ?5 d/ x; p2 {8 f' Z5 U2 b
        #define __NVIC_PRIO_BITS          2 . @4 k# A' j! l8 C3 K6 }4 D( H
4 ^- a& L+ t7 w7 K
        所以M0+的中断优先级:0、1、2、39 U& J# ]* [/ P+ {2 Z
; V& n% S; s( [) }# e
知识点2) M- Y- [( d, K& w& ]) t

( F; ^: o# `3 D6 A6 n9 }        在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。$ v: q9 I$ y% t& z9 {
; f6 J! p- c* o" o  e$ Q
知识点3
! ^* a+ }$ M6 y; ?
6 c) T% o' d) T) p7 c  `        FreeRTOS 任务优先级从0开始,作为最低的紧急 RTOS 任务优先级,而M0+ NVIC 使用0作为最高的紧急中断优先级。8 K1 V  W9 z5 U$ a0 r, X
" [# \5 L# r9 r
        但是任务优先级和中断优先级没有关联
- Y5 H: T9 B. R8 {1 R# p$ K5 {4 C# z7 O; |4 k. e2 G
知识点4# m9 O0 E/ U8 P& O$ E
: _9 z) }) S* ~
        FreeRTOS 内核使用 2-3 个中断,具体取决于内核:SysTick用作时基,PendSV用于上下文切换,以及Cortex-M3/4/7 上的SVCall用于启动调度程序。
0 t  x9 q: ~$ V% ~( Y        SysTick 和 PendSV 配置为最低紧急程度:RTOS 以最低紧急程度运行。
4 {) ]& ^' R& W( H1 n" S- C+ F/ \; s8 s
知识点5: c, Z! v; _1 h# ]

2 U- d9 b5 w5 [, p        中断服务代码里必须使用中断安全的FromISR()变体
; A0 X  X" E/ S- {) Q: F7 [* J0 L4 Z' J+ {

) k' y& l- k# n* X: v
赞 收藏 评论0 发布时间:2021-11-10 18:02

举报

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