0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FreeRTOS信号量计数示例分享

工程师邓生 来源:硬件会 作者:硬件会 2022-09-15 11:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

信号量通常用来协调对资源的访问,其中信号计数会初始化为可用资源的数目。

然后,线程在资源增加时会增加计数,在删除资源时会减小计数。

比如资源max=3,最多只能打开3个浏览器,每次打开一个浏览器时,max-1,当打开第四个浏览器时,max=0,则打不开;关掉一个浏览器,max+1。

9b5c8c5e-3120-11ed-ba43-dac502259ad0.png

9ba05948-3120-11ed-ba43-dac502259ad0.png

9bd03afa-3120-11ed-ba43-dac502259ad0.png

9bf5cf18-3120-11ed-ba43-dac502259ad0.png

以下是模拟饥饿营销的一个例子——事件计数:

9c1e7576-3120-11ed-ba43-dac502259ad0.png

9c402248-3120-11ed-ba43-dac502259ad0.png



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 浏览器
    +关注

    关注

    1

    文章

    1042

    浏览量

    36908
  • FreeRTOS
    +关注

    关注

    14

    文章

    497

    浏览量

    66352

原文标题:Free RTOS计数信号量

文章出处:【微信号:硬件会,微信公众号:硬件会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RTOS 必学概念:任务、信号量、队列一次搞懂

    如果你刚接触RTOS(实时操作系统),很可能会有这样的困惑:“RTOS和裸机程序到底有什么区别?”“任务是线程吗?为什么要分任务?”“信号量和互斥锁有什么区别,不都是同步手段吗?”“队列是不是就是一
    的头像 发表于 11-17 10:53 178次阅读
    RTOS 必学概念:任务、<b class='flag-5'>信号量</b>、队列一次搞懂

    FreeRTOS和uC/OS-II的功能特性

    FreeRTOS: 核心功能: 任务调度(固定优先级抢占式 + 时间片轮询)、队列、信号量(二进制、计数)、互斥锁(带优先级继承)、软件定时器、事件组(事件标志)、任务通知(高效轻量级的信号量
    发表于 11-17 08:17

    freertos关闭任务调度的方法

    #include \"FreeRTOS.h\" #include \"task.h\" /* 关闭任务调度 */ void
    发表于 11-17 06:47

    FreeRtos 能否同时使用两个 CPU?

    的情况下,CM0 更愿意专门用于管理外设。 - 是否有在 CM0 和 CM4 中同时运行代码的简单示例或教程? - FreeRtos 能否同时使用两个 CPU?
    发表于 11-11 08:28

    中断发送信号量不能释放等待信号量的线程是怎么回事?

    modbus_uart_input(rt_device_t dev, rt_size_t size) { /* 串口接收到数据后产生中断, 调用此回调函数, 然后发送接收信号量
    发表于 09-10 06:28

    为什么无法接收到信号量

    只有一个解析线程负责接收信号量,永久等待的。有别的几个线程收到数据之后会释放信号量,设备刚开始运行是没问题的,可是运行十几个小时之后就无法接收到信号量了,有没有大佬可以帮忙解决一下
    发表于 09-10 06:21

    生产线产量计数与脉冲采集物联网解决方案

    在工业生产智能化转型的浪潮中,生产线的高效运转与精准管理成为企业提升竞争力的关键。然而,传统生产线在产量计数和脉冲数据采集方面,常面临数据滞后、准确性不足、信息孤岛等问题,严重制约了生产决策的及时性
    的头像 发表于 07-14 14:53 531次阅读

    蒸汽流量计数字化能源采集方案:数据赋能蒸汽系统能耗监测与节能降耗体系构建

    蒸汽流量计数字化能源采集方案:数据赋能蒸汽系统能耗监测与节能降耗体系构建
    的头像 发表于 06-20 10:09 478次阅读
    蒸汽流<b class='flag-5'>量计数</b>字化能源采集方案:数据赋能蒸汽系统能耗监测与节能降耗体系构建

    详解FreeRTOS与SAFERTOS的区别

    开源免费的FreeRTOS由Richard Barry在WHIS工作时创建,WHIS基于FreeRTOS的功能模型,通过完整的HAZOP分析,确定了功能模型和API中的所有的弱点,减轻所有薄弱环节,并采用IEC 61508 SIL 3的开发生命周期,重新设计实现了SAFE
    的头像 发表于 06-04 16:58 683次阅读
    详解<b class='flag-5'>FreeRTOS</b>与SAFERTOS的区别

    嵌入式开发避坑指南|FreeRTOS的5个\"反直觉\"小技巧

    ;整个系统! 类型选择: 场景 推荐类型 关键特性 资源计数(如内存池) 二值信号量 不可递归获取 互斥访问(如串口) 互斥锁(Mutex) 支持优先级继承 事件通知(如按键) 计数信号量
    发表于 03-20 13:57

    FreeRTOS(V9.0)中创建信号量的函数都没有被定义,因此用不了,怎么解决

    vSemaphoreCreateBinary()还是计数信号量的创建函数xSemaphoreCreateCounting()都没有被定义过。我一定要使用信号量,这怎么解决?
    发表于 03-13 09:30

    电池电量计的通信、配置、数据内存访问以及相关代码示例

    德州仪器(Texas Instruments)发布的关于电池电量计通信的应用报告,主要介绍了电池电量计的通信、配置、数据内存访问以及相关代码示例等内容,为开发者提供了全面的技术指导。电量计
    发表于 03-11 15:45 0次下载

    基于OpenHarmony标准系统的C++公共基础类库案例:Semaphore

    1、程序简介该程序是基于OpenHarmony标准系统的C++公共基础类库的线程处理:Sempahore。本案例完成如下工作:(1)无名信号量使用方法定义1个无名信号量,1个供无名信号量管理
    的头像 发表于 02-10 18:08 632次阅读
    基于OpenHarmony标准系统的C++公共基础类库案例:Semaphore

    攻克反光难题,整箱矿泉水高速精准计数

    在工业生产中,一次性进行大量计数的应用场景非常广泛。比如制药生产的药粒计数、食品加工、电子制造行业微小电子计数。这些场景不仅要求计数工具具备高精度和高速度,还要求能够应对各种复杂环境和
    的头像 发表于 01-14 07:34 676次阅读
    攻克反光难题,整箱矿泉水高速精准<b class='flag-5'>计数</b>

    靶式流量计的工作原理 靶式流量计和涡街流量计比较

    位移可以计算出流量。 流体冲击 :流体流过靶板,对靶板施加力。 位移测量 :靶板的位移通过位移传感器(如差分电容式传感器)测量。 信号处理 :位移信号被转换成电信号,并通过电子电路处理。 流
    的头像 发表于 12-11 16:49 1998次阅读