FreeRTOS是一個(gè)為嵌入式系統(tǒng)設(shè)計(jì)的開源實(shí)時(shí)操作系統(tǒng)。它提供了一個(gè)多任務(wù)內(nèi)核和一系列功能組件,適合在資源受限的設(shè)備上管理實(shí)時(shí)任務(wù)和應(yīng)用程序。
FreeRTOS調(diào)度介紹
FreeRTOS提供多任務(wù)處理功能,允許您在資源受限的環(huán)境中同時(shí)運(yùn)行多個(gè)任務(wù), FreeRTOS提供了一個(gè)調(diào)度器,根據(jù)優(yōu)先級(jí)和調(diào)度策略確定哪個(gè)任務(wù)何時(shí)運(yùn)行。
FreeRTOS調(diào)度器
調(diào)度器是任何操作系統(tǒng)(包括FreeRTOS)的關(guān)鍵組件,它管理任務(wù)的執(zhí)行,并決定接下來應(yīng)該運(yùn)行哪個(gè)任務(wù),調(diào)度器在做出調(diào)度決策時(shí)會(huì)考慮任務(wù)優(yōu)先級(jí)和其他調(diào)度策略。
FreeRTOS調(diào)度策略
FreeRTOS遵循優(yōu)先可搶占的調(diào)度策略,每個(gè)任務(wù)都被分配一個(gè)優(yōu)先級(jí),通常是一個(gè)數(shù)值(低值代表高優(yōu)先級(jí))。準(zhǔn)備運(yùn)行的最高優(yōu)先級(jí)的任務(wù)獲得CPU時(shí)間。
當(dāng)優(yōu)先級(jí)更高的任務(wù)準(zhǔn)備就緒,中斷當(dāng)前正在運(yùn)行的任務(wù)時(shí),就會(huì)發(fā)生搶占。同等優(yōu)先級(jí)的任務(wù)在其優(yōu)先級(jí)組內(nèi)遵循時(shí)間切片輪狀方法。如有必要,你可以在運(yùn)行時(shí)動(dòng)態(tài)更改任務(wù)優(yōu)先級(jí)。
FreeRTOS調(diào)度器配置
1、任務(wù)創(chuàng)建:
使用`xTaskCreate()`函數(shù)創(chuàng)建任務(wù),指定任務(wù)函數(shù)、名稱、堆棧大小、優(yōu)先級(jí)和其他參數(shù)。
2、內(nèi)核初始化:
調(diào)用`vTaskStartScheduler()`初始化FreeRTOS內(nèi)核并開始任務(wù)調(diào)度。
3、設(shè)置任務(wù)優(yōu)先級(jí):
如果需要,使用`vTaskPrioritySet()`在運(yùn)行時(shí)動(dòng)態(tài)更改任務(wù)優(yōu)先級(jí)。
4、閑置任務(wù)鉤(可選):
如果需要,使用`vApplicationIdleHook()`使用空閑任務(wù)鉤子進(jìn)行空閑時(shí)間處理。
5、配置滴答頻率
在FreeRTOS配置(FreeRTOSConfig.h)文件中使用`configTICK_RATE_HZ`調(diào)整系統(tǒng)刻度頻率,以控制任務(wù)調(diào)度粒度。
6、處理中斷
確保正確處理中斷,特別是那些與FreeRTOS任務(wù)交互的中斷。
FreeRTOS可搶占優(yōu)先調(diào)度與時(shí)間切片輪轉(zhuǎn)
FreeRTOS將基于優(yōu)先級(jí)可搶占調(diào)度與同等優(yōu)先級(jí)任務(wù)的時(shí)間切片相結(jié)合,如果多個(gè)任務(wù)具有相同的優(yōu)先級(jí),則以循環(huán)方式安排它們執(zhí)行,以確保公平性。
當(dāng)高優(yōu)先級(jí)的任務(wù)準(zhǔn)備好運(yùn)行時(shí),它會(huì)搶占當(dāng)前正在運(yùn)行的任務(wù),確保高優(yōu)先級(jí)的任務(wù)立即得到關(guān)注。時(shí)間切片允許同等優(yōu)先級(jí)的任務(wù)共享CPU時(shí)間,防止一個(gè)任務(wù)壟斷CPU。
審核編輯:劉清
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3587瀏覽量
129436 -
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211583 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
484瀏覽量
62140 -
調(diào)度器
+關(guān)注
關(guān)注
0文章
98瀏覽量
5245
原文標(biāo)題:FreeRTOS系列技術(shù)文章:FreeRTOS調(diào)度器
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論