freeRTOS临界区任务调度器的挂起和恢复(1-6)

本文详细介绍了FreeRTOS中临界段的概念及其在代码保护中的应用,包括如何使用taskENTER_CRITICAL和taskEXIT_CRITICAL函数进行任务级和中断级的进出。同时讨论了任务调度器的挂起和恢复功能,以及其与临界区的区别,强调了资源安全和中断响应的平衡。
摘要由CSDN通过智能技术生成

1:临界段代码保护(熟悉)

def :临界段也可以称之为临界区,是那些必须完整运行,不能被打断的代码段(将代码编写在林临界区内可以不受中断的干扰,完整的执行)。

注:

  • 外设----> 需严格按照时序初始化外设IIC,SPI等等

  • 系统-----> 系统自身的需求

  • 用户------>用户自身的需求

可以打断程序运行的是:中断和任务调度

  •            // 这里的进入临界段表示的就是关闭中断的意思
  •            // 退出临界段表示的就是开启中断的意思

注:      后面的两个是在中断服务函数中调用的表示的也是关闭中断和开启中断的意思


临界段代码保护函数介绍

freeRTOS在进入临界段代码的时候需要关闭中断,当处理完临界段代码以后打开中断

函数描述
taskENTER_CRITICAL()任务级进入临界段
taskEXIT_CRITICAL()任务级退出临界段
taskENTER_CRITICAL_FROM_ISR()中断级进入临界段
taskEXIT_CRITICAL_FROM_ISR()中断级退出临界段

特点:成对使用,支持嵌套,尽量保持临界段耗时短,强悍

使用例子:

2:临界段代码保护介绍(掌握)

......................

3:任务调度器的挂起和恢复

挂起任务调度器:调用此函数不需要关闭中断,任务调度器使用格式如下所示

函数描述
    vTaskSuspendAll()挂起任务调度器
xTaskResumeAll  ()恢复任务调度器

1:任务调度器:挂起任务调度器(任务调度器里面的内容是不允许被其他的内容打断的但是可以被中断打断)和临界区的区别是,挂起任务调度器是没有关闭中断的

2:可以防止任务之间的资源争夺,中断还是可以直接响应的

3:挂起任务调度器的方式,适用于临界区位于任务与任务之间,既不用去延时中断又可以保证临界区的安全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值