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

FreeRTOS同步和互斥机制以及相关API

FreeRTOS 提供了多种 同步(Synchronization)互斥(Mutex) 机制,以确保多任务环境下数据的安全访问和任务间的协调执行。以下是主要机制及其 API 的详细说明:


1. 互斥机制(Mutex)

用于保护共享资源,防止多个任务同时访问,避免数据竞争。

1.1 标准互斥量(Mutex)

  • 特点
    • 支持 优先级继承(Priority Inheritance),防止优先级反转问题。
    • 同一任务 不能 递归获取(重复获取会导致死锁)。
  • API
    // 创建互斥量(初始状态为可用)
    SemaphoreHandle_t xSemaphoreCreateMutex(void);
    
    // 获取互斥量(阻塞)
    BaseType_t xSemaphoreTake(SemaphoreHandle_t xMutex, TickType_t xBlockTime);
    
    // 释放互斥量
    BaseType_t xSemaphoreGive(SemaphoreHandle_t xMutex);
    

1.2 递归互斥量(Recursive Mutex)

  • 特点
    • 允许 同一任务多次获取,必须对应相同次数的释放。
    • 适用于函数递归调用或嵌套访问共享资源的情况。
  • API
    // 创建递归互斥量
    SemaphoreHandle_t xSemaphoreCreateRecursiveMutex(void);
    
    // 递归获取互斥量
    BaseType_t xSemaphoreTakeRecursive(SemaphoreHandle_t xMutex, TickType_t xBlockTime);
    
    // 递归释放互斥量
    BaseType_t xSemaphoreGiveRecursive(SemaphoreHandle_t xMutex
http://www.dtcms.com/a/111056.html

相关文章:

  • 【开源】Unity 商业级引擎源码加密混淆过马甲包 Il2cpp global-metadata加密方案 Android加固IOS加固
  • Windows修改hosts文件让向日癸软件联网
  • 从开发到上线:基于 Linux 云服务器的前后端分离项目部署实践(Vue + Node.js)
  • 什么是市盈率,通俗解释清楚
  • CAN/FD CAN总线配置 最新详解 包含理论+实战(附带源码)
  • 《JVM考古现场(十六):太初奇点——从普朗克常量到宇宙弦的编译风暴》
  • matlab从pytorch中导入LeNet-5网络框架
  • 数论4 组合数
  • Java全栈面试宝典:线程安全机制与Spring Boot核心原理深度解析
  • 游戏引擎学习第202天
  • 面试算法高频01
  • PostgreSQL有回收站吗?
  • 大语言模型应用和训练(人工智能)
  • STL容器中不进行前置条件检查有可能导致不安全的操作
  • 工程画图-UML类图 组合和聚合
  • SDK中窗口调用
  • 什么是Stop The World
  • Apifox app的用法作用
  • Linux开发工具——apt
  • 从0到神谕:GPT系列的进化狂想曲——用AI之眼见证人类语言的终极形态
  • ffmpeg常见命令3
  • 【力扣hot100题】(054)全排列
  • 【USRP】srsRAN 开源 4G 软件无线电套件
  • Cribl 移除Fields
  • 应对高并发的根本挑战:思维转变【大模型总结】
  • 24信号和槽_自定义槽函数(1)
  • 优选算法的妙思之流:分治——快排专题
  • C++内存管理
  • Windows强制删除任何你想删除的文件和文件夹
  • TypeConverter