FreeRTOS是一個為嵌入式系統(tǒng)設(shè)計的開源實時操作系統(tǒng)。它提供了一個多任務(wù)內(nèi)核和一系列功能組件,適合在資源受限的設(shè)備上管理實時任務(wù)和應(yīng)用程序。
FreeRTOS調(diào)度介紹
FreeRTOS提供多任務(wù)處理功能,允許您在資源受限的環(huán)境中同時運行多個任務(wù), FreeRTOS提供了一個調(diào)度器,根據(jù)優(yōu)先級和調(diào)度策略確定哪個任務(wù)何時運行。
FreeRTOS調(diào)度器
調(diào)度器是任何操作系統(tǒng)(包括FreeRTOS)的關(guān)鍵組件,它管理任務(wù)的執(zhí)行,并決定接下來應(yīng)該運行哪個任務(wù),調(diào)度器在做出調(diào)度決策時會考慮任務(wù)優(yōu)先級和其他調(diào)度策略。
FreeRTOS調(diào)度策略
FreeRTOS遵循優(yōu)先可搶占的調(diào)度策略,每個任務(wù)都被分配一個優(yōu)先級,通常是一個數(shù)值(低值代表高優(yōu)先級)。準備運行的最高優(yōu)先級的任務(wù)獲得CPU時間。
當優(yōu)先級更高的任務(wù)準備就緒,中斷當前正在運行的任務(wù)時,就會發(fā)生搶占。同等優(yōu)先級的任務(wù)在其優(yōu)先級組內(nèi)遵循時間切片輪狀方法。如有必要,你可以在運行時動態(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()`在運行時動態(tài)更改任務(wù)優(yōu)先級。
4、閑置任務(wù)鉤(可選):
如果需要,使用`vApplicationIdleHook()`使用空閑任務(wù)鉤子進行空閑時間處理。
5、配置滴答頻率
在FreeRTOS配置(FreeRTOSConfig.h)文件中使用`configTICK_RATE_HZ`調(diào)整系統(tǒng)刻度頻率,以控制任務(wù)調(diào)度粒度。
6、處理中斷
確保正確處理中斷,特別是那些與FreeRTOS任務(wù)交互的中斷。
FreeRTOS可搶占優(yōu)先調(diào)度與時間切片輪轉(zhuǎn)
FreeRTOS將基于優(yōu)先級可搶占調(diào)度與同等優(yōu)先級任務(wù)的時間切片相結(jié)合,如果多個任務(wù)具有相同的優(yōu)先級,則以循環(huán)方式安排它們執(zhí)行,以確保公平性。
當高優(yōu)先級的任務(wù)準備好運行時,它會搶占當前正在運行的任務(wù),確保高優(yōu)先級的任務(wù)立即得到關(guān)注。時間切片允許同等優(yōu)先級的任務(wù)共享CPU時間,防止一個任務(wù)壟斷CPU。

審核編輯:劉清
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3808瀏覽量
133816 -
cpu
+關(guān)注
關(guān)注
68文章
11314瀏覽量
225692 -
FreeRTOS
+關(guān)注
關(guān)注
14文章
499瀏覽量
67169 -
調(diào)度器
+關(guān)注
關(guān)注
0文章
99瀏覽量
5716
原文標題: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)度—搶占式,時間片和合作式
轉(zhuǎn)第16章 FreeRTOS調(diào)度鎖,任務(wù)鎖和中斷鎖
FreeRTOS如何使用delay作為系統(tǒng)延時、任務(wù)調(diào)度
請問FreeRTOS是如何實現(xiàn)調(diào)度的?
【轉(zhuǎn)載】AT32 FreeRTOS應(yīng)用筆記
FreeRTOS時間片調(diào)度概述
編譯器優(yōu)化的靜態(tài)調(diào)度介紹
什么是操作系統(tǒng)?FreeRTOS中文實用教程讓你快速入門FreeRTOS
FreeRTOS時間片調(diào)度
FreeRTOS時間片進行任務(wù)調(diào)度?
FreeRTOS調(diào)度器介紹
評論