91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

程序小白
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
關(guān)于軟件的作用域和生命周期的一些理解
淺析RTOS中的鉤子函數(shù)(HOOK)
RTOS的時(shí)間片調(diào)度不同處——FreeRTOS與RTT
FreeRTOS中任務(wù)間的同步——事件組與全局變量
FreeRTOS的優(yōu)先級(jí)翻轉(zhuǎn)與繼承
作者動(dòng)態(tài) 更多
基于stm32采用PWM驅(qū)動(dòng)伺服控制器學(xué)習(xí)筆記
05-13 15:25
基于STM32驅(qū)動(dòng)TM1638學(xué)習(xí)筆記——軟件篇
04-19 12:42
基于TM1638驅(qū)動(dòng)8位數(shù)碼管設(shè)計(jì)分享
02-24 11:26
RT-Thread驅(qū)動(dòng)之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅(qū)動(dòng)之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

FreeRTOS中任務(wù)間的同步——事件組與全局變量


任務(wù)間的同步為什么要用事件組,而不用全局變量呢?


      在裸機(jī)開發(fā)當(dāng)中,一般都是將任務(wù)用函數(shù)的形式進(jìn)行分配,用全局變量進(jìn)行同步再爽不過,其實(shí)主要存在兩個(gè)原因,第一就是沒有系統(tǒng)的調(diào)度,一切都在后臺(tái)的超級(jí)循環(huán)中,通過全局變量進(jìn)行選擇查詢的方式,進(jìn)行函數(shù)執(zhí)行順序的同步。


      冒天下之大不韙:其實(shí)在有RTOS的系統(tǒng)中,你也可以通過全局變量進(jìn)行任務(wù)間的同步,這么干的人可不止我一個(gè)。其實(shí)有好多人用RTOS并不是特別熟悉,任務(wù)創(chuàng)建那一套一上,基本上就是靠全局變量進(jìn)行同步,他用的最多的關(guān)于RTOS的API,可能也就是delay了,這么干行不行,當(dāng)然行,但是說實(shí)話有點(diǎn)大材小用,你都上了RTOS了,何不用系統(tǒng)自帶的任務(wù)同步機(jī)制?——唯一的理由可能是這玩意兒學(xué)起來真有點(diǎn)費(fèi)勁。

      當(dāng)然你這么用的壞處也顯而易見:RTOS最核心的任務(wù)調(diào)度機(jī)制已經(jīng)被你廢了一大半了。


      事件組本質(zhì)上來講:就是全局變量!!!(為啥沒人說這句實(shí)話)

      雖然他是一個(gè)全局變量,但是他需要使用FreeRTOS提供的相關(guān)API進(jìn)行訪問,為啥子要這樣干, 就是為了讓RTOS的調(diào)度器知道,每個(gè)任務(wù)與事件組之間的依賴關(guān)系,通過事件組的設(shè)定的不同進(jìn)行任務(wù)狀態(tài)的劃分定義,他才能真正起到調(diào)度的作用。

      說白了,調(diào)度器不光要負(fù)責(zé)根據(jù)任務(wù)的狀態(tài)以及優(yōu)先級(jí)完成調(diào)度工作,他還要給每個(gè)任務(wù)去定義任務(wù)當(dāng)前的狀態(tài)是什么。

      事件組則更好理解了,事件組 = 全局變量 + RTOS的API操作。目的有兩個(gè):

      1.讓調(diào)度器清楚地知道事件組的狀態(tài)。

      2.完成事件組的訪問及設(shè)定功能。


      希望扯到這里,你能對(duì)FreeRTOS為啥要用事件組這種方式,而不是用全局變量進(jìn)行任務(wù)同步有個(gè)清醒的認(rèn)識(shí),同時(shí)希望你明白,事件組的本質(zhì)就是全局變量。


創(chuàng)建一個(gè)事件組:

設(shè)置一個(gè)事件組標(biāo)志:

獲取事件組的標(biāo)志信息:


      備注:以上皆為任務(wù)間同步的事件組應(yīng)用,中斷服務(wù)例程與任務(wù)間通過事件組同步的API以及應(yīng)用方式稍有不同。

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 4
收藏 2
關(guān)注 151
成為作者 賺取收益
全部留言
0/200
  • chaochao1545 2021-10-12 13:30
    正好在學(xué)習(xí)freertos
    回復(fù)
主站蜘蛛池模板: 滕州市| 长白| 博爱县| 剑川县| 如东县| 壤塘县| 庆阳市| 安吉县| 吕梁市| 澄江县| 新绛县| 乌鲁木齐县| 建水县| 杭锦后旗| 普陀区| 永寿县| 盈江县| 塘沽区| 洱源县| 宁武县| 固原市| 准格尔旗| 宁河县| 武定县| 海城市| 潞西市| 新田县| 鄂伦春自治旗| 临高县| 松江区| 民勤县| 勃利县| 霞浦县| 黄浦区| 溧水县| 鄂温| 霍山县| 泰州市| 宜兰市| 湟源县| 双牌县|