• 方案介紹
    • 第23章-FreeRTOS項目實(shí)戰(zhàn)–任務(wù)與任務(wù)、任務(wù)與中斷之間的通信和同步
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

23.1.0-消息隊列和全局變量對比 第23章-FreeRTOS項目實(shí)戰(zhàn)

02/16 08:21
492
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

聯(lián)系方式.txt

共1個文件

這個是全網(wǎng)最詳細(xì)的STM32項目教學(xué)視頻。
第一篇CSDN文章在這里在這里:
75


STM32智能小車V3-STM32入門教程-openmv與STM32循跡小車-stm32f103c8t6-電賽 嵌入式學(xué)習(xí) PID控制算法 編碼器電機(jī) 跟隨

V3:HAL庫開發(fā)、手把手教學(xué)下面功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、openmv視覺控制、電磁循跡、FreeRTOS、K210視覺智能車(更新中)、K230視覺智能車(更新中)、MSPM0G3507視覺智能車(更新中)

在這里插入圖片描述

第23章-FreeRTOS項目實(shí)戰(zhàn)–任務(wù)與任務(wù)、任務(wù)與中斷之間的通信和同步

前面我們講解了如何創(chuàng)建任務(wù),多任務(wù)如何輪流執(zhí)行,多任務(wù)和中斷之間經(jīng)常進(jìn)行同步或者通信,我們還是像裸機(jī) 一樣通過全局變量標(biāo)志位和全局變量數(shù)組進(jìn)行同步和通信是否存在一些隱患那?

23.1-消息隊列

23.1.0-消息隊列和全局變量對比

回答 為什么要在操作系統(tǒng)中使用消息隊列而不是 全局變量

消息隊列 vs 全局變量

  • 全局?jǐn)?shù)組需要解決多任務(wù)訪問沖突,需要加臨界區(qū)保護(hù)全局?jǐn)?shù)組或者數(shù)據(jù)被多任務(wù)訪問 可能會出現(xiàn)沖突的原因是: 訪問全局變量的操作往往需要多部匯編指令: 讀取數(shù)據(jù),修改數(shù)據(jù),寫回數(shù)據(jù)。而任務(wù)調(diào)度器可以在任意時刻打斷訪問指令,切換另一個任務(wù),這樣的話,如果在讀取數(shù)據(jù)和寫回數(shù)據(jù)之間發(fā)生切換,數(shù)據(jù)可能就處于未更新的狀態(tài)。比如導(dǎo)致任務(wù)使用上次變量狀態(tài),所以沒有獲得最新數(shù)據(jù)。所以為了防止出現(xiàn)再讀取數(shù)據(jù)和寫回數(shù)據(jù)之間發(fā)生切換,操作系統(tǒng)的消息隊列在數(shù)據(jù)操作時候增加了關(guān)閉任務(wù)切換相關(guān)保護(hù)。

    PPT 215到231講解 數(shù)據(jù)全局變量的數(shù)據(jù)競爭,和消息隊列是如何解決這個問題的。
    在這里插入圖片描述

  • 消息隊列可以實(shí)現(xiàn)超時機(jī)制消息隊列的接收或者發(fā)送均可以設(shè)置超時時間,這樣可以提高系統(tǒng)的響應(yīng)性和保證系統(tǒng)靈活性和容錯能力。
  • 消息隊列可以實(shí)現(xiàn)FIFO和LIFO機(jī)制可以設(shè)置先進(jìn)先出或者后進(jìn)先出的的數(shù)據(jù)機(jī)制,更加靈活便于數(shù)據(jù)處理。

 

  • 聯(lián)系方式.txt
    下載

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時響應(yīng)!