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)先級和調(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í)會考慮任務(wù)優(yōu)先級和其他調(diào)度策略。
FreeRTOS調(diào)度策略
FreeRTOS遵循優(yōu)先可搶占的調(diào)度策略,每個(gè)任務(wù)都被分配一個(gè)優(yōu)先級,通常是一個(gè)數(shù)值(低值代表高優(yōu)先級)。準(zhǔn)備運(yùn)行的最高優(yōu)先級的任務(wù)獲得CPU時(shí)間。
當(dāng)優(yōu)先級更高的任務(wù)準(zhǔn)備就緒,中斷當(dāng)前正在運(yùn)行的任務(wù)時(shí),就會發(fā)生搶占。同等優(yōu)先級的任務(wù)在其優(yōu)先級組內(nèi)遵循時(shí)間切片輪狀方法。如有必要,你可以在運(yùn)行時(shí)動(dòng)態(tài)更改任務(wù)優(yōu)先級。
FreeRTOS調(diào)度器配置
1、任務(wù)創(chuàng)建:
使用`xTaskCreate()`函數(shù)創(chuàng)建任務(wù),指定任務(wù)函數(shù)、名稱、堆棧大小、優(yōu)先級和其他參數(shù)。
2、內(nèi)核初始化:
調(diào)用`vTaskStartScheduler()`初始化FreeRTOS內(nèi)核并開始任務(wù)調(diào)度。
3、設(shè)置任務(wù)優(yōu)先級:
如果需要,使用`vTaskPrioritySet()`在運(yùn)行時(shí)動(dòng)態(tài)更改任務(wù)優(yōu)先級。
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)先級可搶占調(diào)度與同等優(yōu)先級任務(wù)的時(shí)間切片相結(jié)合,如果多個(gè)任務(wù)具有相同的優(yōu)先級,則以循環(huán)方式安排它們執(zhí)行,以確保公平性。
當(dāng)高優(yōu)先級的任務(wù)準(zhǔn)備好運(yùn)行時(shí),它會搶占當(dāng)前正在運(yùn)行的任務(wù),確保高優(yōu)先級的任務(wù)立即得到關(guān)注。時(shí)間切片允許同等優(yōu)先級的任務(wù)共享CPU時(shí)間,防止一個(gè)任務(wù)壟斷CPU。

審核編輯:劉清
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3716瀏覽量
133043 -
cpu
+關(guān)注
關(guān)注
68文章
11213瀏覽量
222754 -
FreeRTOS
+關(guān)注
關(guān)注
14文章
497瀏覽量
66294 -
調(diào)度器
+關(guān)注
關(guān)注
0文章
99瀏覽量
5632
原文標(biāo)題:FreeRTOS系列技術(shù)文章:FreeRTOS調(diào)度器
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
淺析FreeRTOS任務(wù)調(diào)度器的三種調(diào)度算法和應(yīng)用
FreeRTOS任務(wù)調(diào)度及優(yōu)先級問題
freertos關(guān)閉任務(wù)調(diào)度的方法
轉(zhuǎn):第14章 任務(wù)調(diào)度—搶占式,時(shí)間片和合作式
轉(zhuǎn)第16章 FreeRTOS調(diào)度鎖,任務(wù)鎖和中斷鎖
FreeRTOS如何使用delay作為系統(tǒng)延時(shí)、任務(wù)調(diào)度
請問FreeRTOS是如何實(shí)現(xiàn)調(diào)度的?
【轉(zhuǎn)載】AT32 FreeRTOS應(yīng)用筆記
FreeRTOS時(shí)間片調(diào)度概述
編譯器優(yōu)化的靜態(tài)調(diào)度介紹
什么是操作系統(tǒng)?FreeRTOS中文實(shí)用教程讓你快速入門FreeRTOS
FreeRTOS時(shí)間片調(diào)度
FreeRTOS時(shí)間片進(jìn)行任務(wù)調(diào)度?

FreeRTOS調(diào)度器介紹
評論