FreeRTOS(基于STM32)——中断管理

本文详细介绍了Cortex-M处理器中中断管理和临界段保护的概念,涉及快速开关中断指令、相关中断寄存器的使用,以及任务和中断级别下的代码保护实例。同时讨论了如何通过FreeRTOS实现中断优先级管理和临界区操作,适合深入理解嵌入式系统中断控制的开发者阅读。
摘要由CSDN通过智能技术生成

目录

临界段保护简介:

Cortex-M中快速开关中断指令:

相关中断寄存器:

关中断:

开中断:

任务级临界段代码保护:

例:

中断级的临界段代码保护:

例:

中断管理的简介:


临界段保护简介:

临界段是一段在执行的时候不能被中断的一段代码段,必须完整进行,临界段最常出现的是对全局变量的操作

Cortex-M中快速开关中断指令:

相关中断寄存器:

关中断:

FreeRTOS中,关中断的函数在portmacro.h中定义,有带返回值和不带返回值两种

带返回值的关中断可以在中断中使用,不带返回值的关中断不能在中断中使用

开中断:

与关中断类似,对应的

任务级临界段代码保护:

分别是:进入临界区,退出临界区

例:

中断级的临界段代码保护:

例:


中断管理的简介:

 用户可以自定义配置系统可管理的最高中断优先级的宏定义configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY,它是用于配置内核中basepri寄存器的,当basepri寄存器设置为某个值的时候,NVIC不会响应比该优先级低的中断,例如当这个宏定义为5的时候,中断优先级数值在0,1,2,3,4的中断不能被FreeRTOS屏蔽,当FreeRTOS进入临界区的时候,仍可以被这些中断打断,这些不受FreeRTOS管理的中断同样也不能够使用FreeRTOS提供的API函数。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vizio<

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值