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

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

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
知识点1
8 j: g0 {9 f) |( W$ `7 o' J! c. q3 I* R5 ]' N2 D, }* @# C
        /*< STM32G0xx uses 2 Bits for the Priority Levels */, o! N3 }4 C+ ~* Y" I

/ c9 O3 w/ m$ x* [& {3 [        #define __NVIC_PRIO_BITS          2 % q- |! L0 f1 J0 f6 Z* @
8 x  g! @' k8 q& O$ l3 O5 l9 [' k
        所以M0+的中断优先级:0、1、2、38 V+ b$ M+ P. g. A" P1 {5 @

$ z# w4 H$ s( @8 m* g4 K5 {: v4 v' M3 b知识点21 I, \8 H, ~4 D. q4 v& u& A* F
  n0 q% v7 r3 V" S
        在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。
0 Q7 U$ f6 M5 n8 o2 L- o
4 u5 V) s' S0 R( J  ~# K" G! f5 E知识点3  \) @" p; k( p4 M
8 w3 Z( u5 ^5 j
        FreeRTOS 任务优先级从0开始,作为最低的紧急 RTOS 任务优先级,而M0+ NVIC 使用0作为最高的紧急中断优先级。
" B) Z' D2 D9 m" n4 [7 V9 U
9 K3 X: n" q/ |) g1 }, ~        但是任务优先级和中断优先级没有关联
% T2 u! H+ }/ @! A6 ^& V; Y6 u4 ~3 Z
/ Y% M5 h/ S  Z: J" G知识点44 S! Q$ ]" F! G
7 o* r0 x$ A: D& Q3 z1 ~4 t
        FreeRTOS 内核使用 2-3 个中断,具体取决于内核:SysTick用作时基,PendSV用于上下文切换,以及Cortex-M3/4/7 上的SVCall用于启动调度程序。# W' i" y! u2 R8 t$ V
        SysTick 和 PendSV 配置为最低紧急程度:RTOS 以最低紧急程度运行。
8 S. J, j' ?- `8 \$ v% d2 q& G+ U* I, i: I- b& Y: i6 B' v
知识点5
! o/ B! x' V% P" \5 K% n* C# E9 h% t) b
! c7 u# r8 L  t/ h        中断服务代码里必须使用中断安全的FromISR()变体
' c0 F+ u) b8 V7 X6 W, _; s; _1 ?) l0 O  b

/ l; h4 x7 @- \. a3 I& }# i, o$ M
收藏 评论0 发布时间:2021-11-10 18:02

举报

0个回答

所属标签

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