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

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

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
知识点13 N1 Z( R% Q$ _- D8 p# S* e4 B
9 L7 Z* F! f& m
        /*< STM32G0xx uses 2 Bits for the Priority Levels */8 b$ I& A6 r. T" r$ {/ M' l
/ w( @1 M. g) B  w! U" a1 @) p7 H
        #define __NVIC_PRIO_BITS          2
. \8 W. D# E; L. l. d; _2 Y" f8 B6 y, A; u: T
        所以M0+的中断优先级:0、1、2、3
& F0 t; B* F% U+ j" `2 Z5 o  W# z: X7 I
知识点2* H2 C6 R9 T  u$ }# I' s; W, ]
! w; ?0 c7 U( v! r
        在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。9 t2 Q& A6 Q4 e# P, O# d) B
; _+ O& z4 H1 E5 }" H7 `
知识点3
$ J1 |) v) \0 ]7 O/ `5 s1 l: d6 R0 X$ _* u
        FreeRTOS 任务优先级从0开始,作为最低的紧急 RTOS 任务优先级,而M0+ NVIC 使用0作为最高的紧急中断优先级。5 d0 o8 z" j5 s
- e* s0 q0 i" T8 q, ?8 O
        但是任务优先级和中断优先级没有关联, R2 N( N' F5 n2 N/ O( n

6 i! W# g: d; x知识点4+ j8 t2 m8 U, a5 k" b0 D

' c3 w- u1 ^+ D, m; j        FreeRTOS 内核使用 2-3 个中断,具体取决于内核:SysTick用作时基,PendSV用于上下文切换,以及Cortex-M3/4/7 上的SVCall用于启动调度程序。& o2 b9 I( s/ g+ [, f
        SysTick 和 PendSV 配置为最低紧急程度:RTOS 以最低紧急程度运行。, g7 Q! z& q  r  e& O( ^9 i0 [

3 q* a' X: r& L9 R* E/ K7 X" d3 ]知识点5; _$ ?0 K8 w; ~  f2 x4 Y0 |

( M+ Z( _. F- x* j; |        中断服务代码里必须使用中断安全的FromISR()变体
; g( k( q& j" t& \
- w. G% ]. P8 K- o, I
% j6 i# p  |4 F6 g. y6 L
收藏 评论0 发布时间:2021-11-10 18:02

举报

0个回答

所属标签

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