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

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

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
知识点1
, ?% W9 Y0 k  n* P3 ?7 A" Z: a+ G4 }  B; ?. {
        /*< STM32G0xx uses 2 Bits for the Priority Levels */
2 H, X0 o- F; |# E# e# [. c3 F2 {/ ]% |- B
        #define __NVIC_PRIO_BITS          2 9 m0 V1 q# R+ W9 {+ A
+ x% b: N! K) D1 f: O
        所以M0+的中断优先级:0、1、2、3% M" Z+ T( W! [7 G. v: k
0 X! l4 g, H1 {1 a4 N
知识点2
4 x' B. p6 w9 b/ {' \3 d/ X6 Z
, M# S! h! Y+ a  _$ V9 f        在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。
- \8 Y  U1 W: A0 C6 @, M: _
" V! T/ v. q4 H& x& P& C知识点3
+ N5 W  Z1 @# I- r7 \1 [$ c9 O0 D) {+ ^: G3 t5 r& D7 D
        FreeRTOS 任务优先级从0开始,作为最低的紧急 RTOS 任务优先级,而M0+ NVIC 使用0作为最高的紧急中断优先级。- r; Y1 ]* P$ }+ Y
9 i: n+ P  q. v" }. W+ G
        但是任务优先级和中断优先级没有关联' M# S. p% C+ {4 D$ t
; \# O! V. _/ _% p0 X7 P! {( ~4 N
知识点4
7 T' B& D0 f- H( Y/ ^
$ W& J# c4 X' m" d7 J        FreeRTOS 内核使用 2-3 个中断,具体取决于内核:SysTick用作时基,PendSV用于上下文切换,以及Cortex-M3/4/7 上的SVCall用于启动调度程序。
% X; I' s  c1 o. O        SysTick 和 PendSV 配置为最低紧急程度:RTOS 以最低紧急程度运行。% {; t% q. u5 B# [0 s# K3 n
' Y+ B6 P: n! K$ W. X# S' d% J) M" E
知识点5
" H6 W( {" Y$ y  q0 `& I7 O( g8 w1 l* k# [& ~
        中断服务代码里必须使用中断安全的FromISR()变体
* y/ f" n& A3 j" p7 |! ?" ]2 O- m; {# F0 }  X1 H+ m$ I# v
" u! ~, y/ G3 ]/ j, J$ t
收藏 评论0 发布时间:2021-11-10 18:02

举报

0个回答

所属标签

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