当前位置: 首页 > news >正文

嵌入式学习笔记 - freeRTOS的两种临界禁止

一 禁止中断

更改就绪列表时,通常是通过禁止中断的方式,进入临界段,因为systick中断中有可以更改就绪列表的权利,

就绪列表(如 pxReadyTasksLists[] 数组)是全局共享的关键数据结构,存储了所有可运行任务的信息。多个任务或中断服务程序(ISR)可能并发访问该列表。若不进行保护,可能导致链表节点损坏、优先级错乱等数据竞争问题。

禁止任务调度器

 通过函数vTaskSuspendAll()挂起任务调度器,

vTaskSuspendAll()函数的功能很简单,就是对全局变量uxSchedulerSuspended 的值进行自增.

其核心功能是暂停所有任务调度(但允许中断),确保当前任务独占执行权,直到调用xTaskResumeAll()恢复调度。如下图所示,就是不进行任何任务的寻找与切换。

与临界区(关中断)不同,vTaskSuspendAll()仅暂停调度器,中断仍可响应,适用于需长时间保护临界区但需响应中断的场景。‌‌

注意此函数须与xTaskResumeAll()成对使用;每调用一次vTaskSuspendAll(),uxSchedulerSuspended自增一次,说明有一个任务需要暂停其他所有任务,再调用一次vTaskSuspendAll(),uxSchedulerSuspended再自增一次,说明又一个任务需要暂停其他所有任务,使用xTaskResumeAll()自减的时候,直到减到0才能释放任务调度权

http://www.lqws.cn/news/124417.html

相关文章:

  • Selenium自动化测试工具安装和使用(PyCharm)
  • Pycharm 配置解释器
  • Ubuntu 16.04 密码找回
  • 微信小程序实现运动能耗计算
  • GRU 参数梯度推导与梯度消失分析
  • MySQL ACID 面试深度解析:原理、实现与面试实战
  • 2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
  • 2025年渗透测试面试题总结-腾讯[实习]安全研究员(题目+回答)
  • 《高等数学》(同济大学·第7版)第一章第六节极限存在准则 两个重要极限
  • 什么是终端安全管理系统(终端安全管理软件2024科普)
  • 线夹金具测温在线监测装置:电力设备安全运行的“隐形卫士”
  • [蓝桥杯]取球博弈
  • 区域徘徊检测算法AI智能分析网关V4助力公共场所/工厂等多场景安全升级
  • 2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
  • 区块链安全攻防战:51% 攻击与 Sybil 攻击的应对策略
  • 你工作中涉及的安全方面的测试有哪些怎么回答
  • stm32使用hal库模拟spi模式3
  • IEC 61347-1:2015 灯控制装置安全标准详解
  • RFID | 第一章:RFID系统概述
  • AtCoder-abc407_e解析
  • 在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
  • 第五期书生大模型实战营-《L1G1-玩转书生大模型 API 之 Browser-Use 实践》
  • 【多线程初阶】wait() notify()
  • 那些Java 线程中断的实现方式
  • 如果安装并使用RustDesk
  • window 显示驱动开发-提供视频解码功能(三)
  • GO语言---函数命名返回值
  • React从基础入门到高级实战:React 高级主题 - 测试进阶:从单元测试到端到端测试的全面指南
  • 深入详解开源工具DCMTK:C++开发的DICOM工具包
  • 更新 Docker 容器中的某一个文件