BAT32G137国产项目通用第五节:FreeRTOS 互斥量

embedded/2024/10/18 14:25:22/

主题:互斥量的使用比较单一,因为它是信号量的一种,并且它是以锁的形式存在。在初始 化的时候,互斥量处于开锁的状态,而被任务持有的时候则立刻转为闭锁的状态。互斥量

更适合于:

1.可能会引起优先级翻转的情况。 递归互斥量更适用于。

2.任务可能会多次获取互斥量的情况下。这样可以避免同一任务多次递归持有而造
成死锁的问题。
3.多任务环境下往往存在多个任务竞争同一临界资源的应用场景,互斥量可被用于对临
界资源的保护从而实现独占式访问。另外,互斥量可以降低信号量存在的优先级翻转问题
带来的影响。
比如有两个任务需要对串口进行发送数据,其硬件资源只有一个,那么两个任务肯定
不能同时发送啦,不然导致数据错误,那么,就可以用互斥量对串口资源进行保护,当一
个任务正在使用串口的时候,另一个任务则无法使用串口,等到任务使用串口完毕之后,
另外一个任务才能获得串口的使用权。
另外需要注意的是 互斥量不能在中断服务函数中使用,因为其特有的优先级继承机制
只在任务起作用,在中断的上下文环境毫无意义。
互斥量例子如下:

static TaskHandle_t AppTaskCreate_Handle = NULL;/* 创建任务句柄 */
static TaskHandle_t LowPriority_Task_Handle = NULL;/* LowPriority_Task任务句柄 */
static TaskHandle_t MidPriority_Task_Handle = NULL;/* MidPriority_Task任务句柄 */
static TaskHandle_t HighPriority_Task_Handle = NULL;/* HighPriority_Task任务句柄 */
SemaphoreHandle_t MuxSem_Handle


http://www.ppmy.cn/embedded/100327.html

相关文章

vs code中编写html的配置,插件安装

首先安装vs code 插件安装下面三个: 功能分别是: html css support :就是支持html环境,因为vs code就是一个文本编辑器 live server:自动更新编写的文件在浏览器刷新 auto rename tag:自动修改另一半标签…

Python技能进阶:探索Selenium库,实现网页自动化测试与爬虫

一、引言 在数字化时代,网页自动化测试与爬虫成为了许多开发者必备的技能之一。Python作为一门功能强大的编程语言,拥有许多优秀的库可以帮助我们实现这一目标。其中,Selenium库以其强大的功能和广泛的应用领域,受到了广大开发者…

企业中需要哪些告警Rules

文章目录 企业中需要哪些告警Rules前言定义告警规则企业中的告警rulesNode.rulesprometheus.ruleswebsite.rulespod.rulesvolume.rulesprocess.rules 总结 企业中需要哪些告警Rules 前言 Prometheus中的告警规则允许你基于PromQL表达式定义告警触发条件,Prometheus…

IP进程间的通信方式以及不同主机间的通信方式

一,IP进程间的通信方式 共享内存(最高效) 1.是一块内核的预留空间 2.避免了用户空间到内核空间的数据拷贝 1.产生key:ftok函数 功能:将pathname和pid_id转化为key 参数:(路径名,A) 返回值&#xff1…

大数据处理与智慧营销系统性能优化

随着企业数字化转型的加速,客户经营数字化正在向智能化方向发展,构建全场景、全流程、全触点的数字化、智能化的客户经营智慧营销体系。智慧营销系统已运行 5 年,伴随着业务增长,系统业务流程复杂度增大,大表数据量已超…

ETAS工具链自动化实战指南<一>

----自动化不仅是一种技术,更是一种思维方式,它将帮助我们在快节奏的工作环境中保持领先! 目录 往期推荐 场景一:SWC 之间 port自动连接 命令示例 参数说明 场景二:SWC与ECU 自动映射 命令示例 参数说明 场景三&…

车辆分类检测数据集数据集

车辆分类检测数据集 数据集中的所有车辆分为六类:客车、微型客车、小型货车、轿车、SUV和卡车。每种车型的车辆数量分别为558辆、883辆、476辆、5922辆、1392辆、822辆。 xml标签 数据集描述: 该数据集包含多种类型的车辆图像,旨在用于训练和评估车辆分…

Elasticsearch 节点和索引管理

Elasticsearch 是一个分布式搜索和分析引擎,由多个节点组成,每个节点都扮演着特定的角色。有效的节点和索引管理是确保集群性能、稳定性和可扩展性的关键。本文将探讨如何在 Elasticsearch 中进行节点和索引管理,帮助管理员优化集群配置&…