瑞薩RZ/T2L MPU
RZ/T2L是一款高性能MPU,可通過EtherCAT實現(xiàn)高速、高精度的實時控制。RZ/T2L搭載最大頻率為800MHz的Arm Cortex-R52內(nèi)核以及與CPU緊密耦合的大容量內(nèi)存(576KB),可以降低使用高速緩存存儲器時出現(xiàn)的執(zhí)行時間波動,并提供確定性與高速響應(yīng)處理。
RZ/T2L在CPU內(nèi)核、外設(shè)功能和LLPP(低延時外設(shè)端口)總線等方面具備與RZ/T2M無縫連接的硬件架構(gòu),可用于AC servo等更高性能的控制系統(tǒng)。此外,RZ/T2L提供了與瑞薩MPU和MCU可兼容、可擴展的軟件平臺。它使客戶可以利用自己的軟件資產(chǎn)進行新機型的開發(fā)。
RZ/T2L產(chǎn)品框圖
1.任務(wù)狀態(tài)和事件的概述
實際正在運行(使用處理時間)的任務(wù)處于運行態(tài)。在單個核心處理器上,在任何時候都只能有一個任務(wù)處于運行態(tài)。
沒有實際運行,但既不處于阻塞態(tài)也不處于掛起態(tài)的任務(wù)就是處于就緒態(tài)。
處于就緒態(tài)的任務(wù)可被調(diào)度器選擇,然后進入運行態(tài)。調(diào)度程序會始終選擇最高優(yōu)先級的就緒態(tài)任務(wù)進入運行態(tài)。
任務(wù)可以在阻塞態(tài)下等待事件,并在事件發(fā)生時自動移回就緒態(tài)。
時間事件發(fā)生在特定的時間,例如當(dāng)阻塞時間過期時,通常用于實現(xiàn)周期性或超時行為。當(dāng)任務(wù)或中斷服務(wù)例程使用任務(wù)通知、隊列、事件組或多種類型的信號量之一發(fā)送信息時,就會發(fā)生同步事件。它們通常用于需要同步的情況,例如數(shù)據(jù)同步。
2.配置調(diào)度算法
調(diào)度算法決定了調(diào)度器將哪個就緒態(tài)任務(wù)轉(zhuǎn)換到運行態(tài)。
可以使用configUSE_PREEMPTION和configUSE_TIME_SLICING配置常量來更改算法。這兩個常量都在FreeRTOSConfig.h中定義。
還有個配置常數(shù)configUSE_TICKLESS_IDLE也會影響調(diào)度算法,因為使用它會導(dǎo)致tick中斷在很長一段時間內(nèi)被完全關(guān)閉。configUSE_TICKLESS_IDLE是一個高級選項,專門用于必須最小化功耗的應(yīng)用程序。configUSE_TICKLESS_IDLE在之后解說。
對于相同優(yōu)先級的任務(wù),F(xiàn)reeRTOS調(diào)度器依次選中相同優(yōu)先級的任務(wù)進入運行態(tài)。這種輪流策略被稱為‘Round Robin Scheduling’
‘Round Robin Scheduling’算法并不能保證同等優(yōu)先級的任務(wù)之間運行相同的時間,只能保證同等優(yōu)先級的“就緒”任務(wù)會依次進入“運行”態(tài)。
2.1
基于時間片的搶占式調(diào)度
如果按照如下配置:
configUSE_PREEMPTION 1
configUSE_TIME_SLICING 1
FreeRTOS調(diào)度器使用一種稱為“基于時間片的固定優(yōu)先級搶占式調(diào)度”的調(diào)度算法,這是大多數(shù)小型RTOS應(yīng)用程序使用的調(diào)度算法。
固定優(yōu)先級
被描述為“固定優(yōu)先級”的調(diào)度算法不會改變分配給被調(diào)度任務(wù)的優(yōu)先級,但也不會阻止任務(wù)本身改變自己的優(yōu)先級或其他任務(wù)的優(yōu)先級。
搶占式調(diào)度
在優(yōu)先級高于運行態(tài)任務(wù)的任務(wù)進入就緒態(tài)時,調(diào)度器立即讓這個高優(yōu)先級的任務(wù)“搶占”運行態(tài)任務(wù)。被搶占意味著任務(wù)移出運行態(tài)并進入就緒態(tài),并不是因為任務(wù)自己主動讓出或者阻塞。
時間片
時間片用于在具有相同優(yōu)先級的任務(wù)之間共享處理時間,即使任務(wù)沒有顯式地讓步或進入阻塞狀態(tài)。使用“時間片”的調(diào)度算法將在每個時間片結(jié)束時選擇一個新任務(wù)進入運行狀態(tài),如果有其他與運行任務(wù)具有相同優(yōu)先級的就緒狀態(tài)任務(wù)。一個時間片等于兩個RTOS tick中斷之間的時間。
上圖演示了使用“基于時間片的固定優(yōu)先級搶占式調(diào)度”算法搶占調(diào)度任務(wù)的調(diào)度過程。
task1是最高優(yōu)先級的事件驅(qū)動任務(wù),task2是中等優(yōu)先級的周期性任務(wù),task3是最低優(yōu)先級的事件驅(qū)動任務(wù),Idle task是空閑任務(wù)。
task1周期性運行,阻塞時,空閑任務(wù)就會運行,task3的事件到達就會搶占空閑任務(wù),task3運行期間,如果task2的周期到了,因為task2優(yōu)先級高就會搶占task3,task2運行完了再接著運行task2,task2運行期間,由于task1優(yōu)先級高,一旦task1等待的事件到了就會搶占task2。
有相同優(yōu)先級任務(wù)的情況:
task1是優(yōu)先級最高的事件驅(qū)動任務(wù),task2是和Idle task優(yōu)先級相同的持續(xù)處理型任務(wù)。
task2和空閑任務(wù)就會輪流運行,而task1則可以搶占task2和空閑任務(wù)。
假如空閑任務(wù)里其實沒做什么事情,我們想讓和空閑任務(wù)相同優(yōu)先級的Task2有更多的運行時間就可以配置configIDLE_SHOULD_YIELD。
如果configIDLE_SHOULD_YIELD設(shè)置為0,那么空閑任務(wù)將在整個時間片中保持運行狀態(tài),除非它被更高優(yōu)先級的任務(wù)搶占。
如果configIDLE_SHOULD_YIELD設(shè)置為1,如果有其他空閑優(yōu)先級任務(wù)處于就緒狀態(tài),那么空閑任務(wù)將主動讓出運行時間。
審核編輯:劉清
-
存儲器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167452 -
ARM處理器
+關(guān)注
關(guān)注
6文章
361瀏覽量
42631 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
493瀏覽量
64373 -
ethercat
+關(guān)注
關(guān)注
19文章
1124瀏覽量
40049 -
調(diào)度器
+關(guān)注
關(guān)注
0文章
98瀏覽量
5505
發(fā)布評論請先 登錄
淺析FreeRTOS任務(wù)調(diào)度器的三種調(diào)度算法和應(yīng)用

一種改進的SEDF調(diào)度算法
轉(zhuǎn):第14章 任務(wù)調(diào)度—搶占式,時間片和合作式
轉(zhuǎn)第16章 FreeRTOS調(diào)度鎖,任務(wù)鎖和中斷鎖
FreeRTOS如何使用delay作為系統(tǒng)延時、任務(wù)調(diào)度
調(diào)度器的原理及其任務(wù)調(diào)度代碼實現(xiàn)
基于實數(shù)編碼免疫算法的分布式任務(wù)調(diào)度
網(wǎng)格任務(wù)調(diào)度算法研究
云任務(wù)閾值調(diào)度算法

基于云計算遺傳算法的多任務(wù)調(diào)度算法
基于改進GEP的局部云任務(wù)調(diào)度算法

異構(gòu)多核處理器任務(wù)調(diào)度算法
FreeRTOS時間片進行任務(wù)調(diào)度?

FreeRTOS調(diào)度器中的三種調(diào)度算法實踐(上)

評論