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

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

3天内不再提示

于FreeRTOS任务与任务之间的通讯

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

扫码添加小助手

加入工程师交流群

任务与任务之间通讯,多个任务可以共享一个全局变量,但是此全局变量的写操作只能由一个任务完成,其余任务只能多此全局变量进行读操作。

如果多个任务对这个全局变量写操作时,由于FreeRTOS的任务实时性,比如此变量的值为100,两个任务会同时获取到这个值,对他进行加减操作。

这样这个变量的值就会不正确。

这就是竞争冒险关系 此共享的全局变量类型必须是CPU类型的通道。

比如ESP32是32bit(4字节)单片机,此全局变量类型必须是int和long类型。

示例如下:

1603969e-3051-11ed-ba43-dac502259ad0.png

1633488a-3051-11ed-ba43-dac502259ad0.png
165cc9f8-3051-11ed-ba43-dac502259ad0.png



审核编辑:刘清

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

    关注

    68

    文章

    11121

    浏览量

    218389
  • FreeRTOS
    +关注

    关注

    13

    文章

    495

    浏览量

    64769
  • ESP32
    +关注

    关注

    21

    文章

    1029

    浏览量

    19574

原文标题:任务与任务之间通讯一(共享全局变量)

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    同步任务开发指导

    。 由于TaskPool偏向单个独立的任务,因此当各个同步任务之间相对独立时推荐使用TaskPool,例如一系列导入的静态方法,或者单例实现的方法。如果同步
    发表于 06-19 07:57

    FreeRTOS任务中发送事件队列是有什么限制吗?

    到了TMC的芯片,但是在到位上报的信息中少了卡死电机的上报。所以有的电机的到位中断并没有成功写入任务。 一开始是每个电机都开启了一个定时器查询,后续改成一个定时器查六个电机并将定时器的周期加到50ms,就很少会卡死。 所以向FreeRTOS
    发表于 06-11 07:57

    FreeRTOS读取ADS1299数据有误

    您好,请问,用stm32的FreeRTOS的队列对ADS1299传感器读取数据,已设置采样率为2khz 在采集任务中:通过spi读取数据——滤波(-DSP库)——将数据写入队列——延时
    发表于 05-05 22:48

    【RA-Eco-RA4M2开发板评测】RA-Eco-RA4M2 移植FreeRTOS

    FreeRTOS、Threadx,这里选择FreeRTOS。 Figure 2?5 选择RTOS 接下来就是选择工程模板。 Figure 2?6 工程模板选择 接下来在新建一个空任务。点击“Stacks
    发表于 05-03 23:24

    Linux计划任务cron详解

    cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的
    的头像 发表于 02-07 15:31 ?1138次阅读
    Linux计划<b class='flag-5'>任务</b>cron详解

    两台PLC之间Profinet通讯案例

    在现代工业自动化领域,可编程逻辑控制器(PLC)作为控制系统的核心组件,承担着数据采集、逻辑控制、通信传输等重要任务。随着工业4.0和智能制造的推进,PLC之间的通信效率和可靠性成为了关键因素
    的头像 发表于 02-02 16:42 ?1902次阅读

    VIAVI助力NASA木卫二快船任务

    近日,VIAVI(唯亚威通讯)在航空探索领域再立新功,为NASA的木卫二快船任务(Europa Clipper mission)提供了关键技术支持。此次合作,充分展现了VIAVI在精密薄膜光学涂层
    的头像 发表于 01-15 17:28 ?1035次阅读

    SpaceX年度发射任务接近尾声

    近日,SpaceX在X平台上发布消息称,猎鹰9号火箭在加利福尼亚州和佛罗里达州连续成功完成了两次发射任务。其中,一次任务将22颗星链(Starlink)卫星送入星座,另一次则成功将Astranis
    的头像 发表于 12-31 11:09 ?970次阅读

    使用任务通知提高RTOS应用的效率

    在实时嵌入式系统中,性能和资源效率是决定设计成败的关键因素。传统的实时操作系统(RTOS)提供了如队列、信号量和事件组机制,实现任务之间的同步和通信。FreeRTOS/SAFERTOS还提供一种方法可以使这些过程更快、更轻量化,
    的头像 发表于 12-27 14:54 ?771次阅读

    Linux计划任务介绍

    1.计划任务(定时任务)基本概述 1.什么是crond crond就是计划任务,类似于我们平时生活中的闹钟。定点执行。 2.为什么要使用crond?crond主要是做一些周期性的任务
    的头像 发表于 11-24 15:49 ?876次阅读

    不用编程,实现多台西门子PLC与多台三菱PLC之间实时通讯的方案

    PLC通讯智能网关IGT-DSER模块支持西门子、三菱、欧姆龙、罗克韦尔AB、GE等各种品牌的PLC之间通讯,同时也支持PLC与Modbus协议的变频器、智能仪表等设备通讯。网关有多个
    发表于 10-31 13:38

    电气控制及PLC综合实践任务

    电气控制及PLC综合实践_任务
    发表于 10-17 13:47 ?1次下载

    freertos最多支持多少个任务

    FreeRTOS是一个轻量级的实时操作系统(RTOS),其设计初衷就是为了提供简单、可靠且高效的实时任务管理。关于FreeRTOS最多支持多少个任务的问题,实际上并没有一个固定的上限,
    的头像 发表于 09-02 14:21 ?2413次阅读

    freertos和rtos区别是什么

    FreeRTOS 和 RTOS(实时操作系统)是两个不同的概念,但它们之间有紧密的联系。FreeRTOS 是一个特定的开源实时操作系统,而 RTOS 是实时操作系统的一般概念。 概念定义 RTOS
    的头像 发表于 09-02 14:18 ?3320次阅读

    freertos和裸机有什么区别

    FreeRTOS 和裸机编程是两种不同的嵌入式系统开发方法,它们在设计理念、资源使用、功能实现等方面有着显著的差异。 1. 基本概念 1.1 FreeRTOS FreeRTOS 是一个小型的、可裁剪
    的头像 发表于 09-02 14:13 ?3177次阅读