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