0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

于FreeRTOS任務(wù)與任務(wù)之間的通訊

工程師鄧生 ? 來源:硬件會 ? 作者:硬件會 ? 2022-09-14 15:42 ? 次閱讀

任務(wù)與任務(wù)之間通訊,多個任務(wù)可以共享一個全局變量,但是此全局變量的寫操作只能由一個任務(wù)完成,其余任務(wù)只能多此全局變量進(jìn)行讀操作。

如果多個任務(wù)對這個全局變量寫操作時,由于FreeRTOS的任務(wù)實時性,比如此變量的值為100,兩個任務(wù)會同時獲取到這個值,對他進(jìn)行加減操作。

這樣這個變量的值就會不正確。

這就是競爭冒險關(guān)系 此共享的全局變量類型必須是CPU類型的通道。

比如ESP32是32bit(4字節(jié))單片機,此全局變量類型必須是int和long類型。

示例如下:

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

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



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10812

    瀏覽量

    210880
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    483

    瀏覽量

    61926
  • ESP32
    +關(guān)注

    關(guān)注

    17

    文章

    952

    瀏覽量

    16999

原文標(biāo)題:任務(wù)與任務(wù)之間通訊一(共享全局變量)

文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    freertos最多支持多少個任務(wù)

    FreeRTOS是一個輕量級的實時操作系統(tǒng)(RTOS),其設(shè)計初衷就是為了提供簡單、可靠且高效的實時任務(wù)管理。關(guān)于FreeRTOS最多支持多少個任務(wù)的問題,實際上并沒有一個固定的上限,
    的頭像 發(fā)表于 09-02 14:21 ?622次閱讀

    如何使用freeRTOS在兩個任務(wù)之間傳輸任務(wù)數(shù)據(jù)?

    /溫度。 我想創(chuàng)建一個 CSV 文件來記錄一段時間內(nèi)的數(shù)據(jù)。 我創(chuàng)建 I2C 任務(wù)的方法與示例中的 emFIlesystem 任務(wù)相同。 兩者都在運行,做著它們應(yīng)該做的事情,但我覺得它們之間沒有任何聯(lián)系
    發(fā)表于 07-03 07:55

    請問一下FREERTOS只能創(chuàng)建4個任務(wù),修改哪個宏定義可以增加創(chuàng)建任務(wù)的數(shù)量?

    請問一下FREERTOS只能創(chuàng)建4個任務(wù),修改哪個宏定義可以增加創(chuàng)建任務(wù)的數(shù)量?解決方法:增加FREERTOS的堆。
    發(fā)表于 05-13 06:44

    用STM32CubeMX中的FreeRTOS創(chuàng)建3任務(wù)無法運行的原因?

    用STM32CubeMX中的FreeRTOS 創(chuàng)建3任務(wù) Task Priority =osPrioirityNoral 等級的任務(wù),無法運行。 如果創(chuàng)建2個任務(wù)就可以。2個以上都不行
    發(fā)表于 05-09 07:02

    用的cube生成的freertos工程,串口和任務(wù)通過郵箱通訊,結(jié)果任務(wù)反應(yīng)很慢是怎么回事?

    初學(xué)freertos。用的cube生成的freertos工程,單片機型號位stm32f103vbt6。 建了三個人物,一個是串口任務(wù),一個是LED每秒翻轉(zhuǎn)一次,一個是空任務(wù)。 串口
    發(fā)表于 05-08 08:13

    freertos系統(tǒng)如何劃分任務(wù)

    正在看freertos方面的教程,想請教下如何劃分任務(wù)? 比如之前做的一個數(shù)據(jù)采集板,用到了單片機以下功能: 1,單片機通過SPI1和ADC芯片通訊,同時還要通過SPI控制ADC電路部分的其他外圍
    發(fā)表于 05-08 07:16

    FreeRTOS系統(tǒng)使用xTaskCreate產(chǎn)生的任務(wù)與osThreadDef 產(chǎn)生的線程有什么不同?

    請教下是要 FreeRTOS系統(tǒng), 使用 xTaskCreate 產(chǎn)生的任務(wù) 與 osThreadDef產(chǎn)生的線程有什么不同?
    發(fā)表于 04-29 07:20

    freertos任務(wù)創(chuàng)建,每一個任務(wù)分配的內(nèi)存是多大才好,怎么計算呢?

    小白剛剛接觸freertos,想問一下就創(chuàng)建任務(wù)而言,每一個任務(wù)分配的內(nèi)存是多大才好,怎么計算呢? 另外,每個任務(wù)的執(zhí)行周期怎么確定?在任務(wù)
    發(fā)表于 04-23 06:39

    為什么CubeMX設(shè)計的FreeRTOS工程只能正常運行3個任務(wù)?

    用CubeMX4.20設(shè)計的FreeRTOS工程有六個任務(wù),出一個任務(wù)優(yōu)先級較低外,另外幾個都是較高優(yōu)先級。發(fā)現(xiàn)只有3個任務(wù)是正常運行的,還有三個沒有運行的跡象。用斷點跟蹤法在
    發(fā)表于 04-19 08:23

    freertos串口接收數(shù)據(jù)后如何發(fā)送給任務(wù)

    正在學(xué)freertos。串口中斷接收一幀數(shù)據(jù)后,放到數(shù)組里,如何將數(shù)據(jù)發(fā)送給任務(wù)呢? 如果用消息隊列,是否建立的消息隊列需要是數(shù)組類型的?還是說消息列表建立成uint8類型的,列表長度設(shè)為接收數(shù)據(jù)
    發(fā)表于 04-18 06:36

    FreeRTOS里在中斷中掛起任務(wù)出錯的原因?怎么解決?

    各位大佬,新手剛學(xué)習(xí)FreeRTOS,現(xiàn)在想在中斷中掛起某個任務(wù),我在教程里看到說有中斷中的恢復(fù)函數(shù)xTaskResumeFromISR,但是沒有在中斷中的掛起函數(shù),我搜了一下,有人說直接用
    發(fā)表于 04-16 08:26

    FreeRTOS任務(wù)無故進(jìn)入掛起狀態(tài)的原因?

    請教大家一個問題,我子啊使用FreeRTOS的時候創(chuàng)建了一個以太網(wǎng)的任務(wù),任務(wù)在使用的過程中被無故掛起,請問一下出現(xiàn)這種現(xiàn)象有哪幾種原因呢?
    發(fā)表于 04-09 07:20

    無法在AURIX? Development Studio中調(diào)試freeRTOS任務(wù)怎么解決?

    我們正在開發(fā) AURIX? TriCore? TC389 控制器。 你能否建議需要使用哪個 RTOS 以及首選 IDE調(diào)試器來進(jìn)行開發(fā)過程? 此外,我無法在 AURIX? Development Studio 中調(diào)試 freeRTOS 任務(wù)。 我們?nèi)绾握{(diào)試?
    發(fā)表于 01-18 07:41

    如何可視化FreeRTOS任務(wù)響應(yīng)時間

    高效的開發(fā)基于FreeRTOS的固件需要理解任務(wù)、中斷和內(nèi)核之間的交互以及時間序列。
    的頭像 發(fā)表于 12-22 11:12 ?1006次閱讀
    如何可視化<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>響應(yīng)時間

    FreeRTOS中的任務(wù)管理

    任務(wù)FreeRTOS 中最基本的調(diào)度單元,它是一段可執(zhí)行的代碼,可以獨立運行。FreeRTOS 中的任務(wù)是基于優(yōu)先級的搶占式調(diào)度,優(yōu)先級高的任務(wù)
    的頭像 發(fā)表于 11-27 17:03 ?923次閱讀