RTX實時作業系統(RTOS)簡介學習筆記
RTOS:Real time Operation System
Keil RTX 是免版稅的确定性實時作業系統,适用于 ARM 和 Cortex-M 裝置。
【RTX概述】
RTOS 可以自由地排程系統資源,比如CPU和記憶體,并且提供一種任務間通信機制。
RTX程式使用标準的C結構編寫,運用RealView編譯器進行編譯。RTX.H 頭檔案定義了RTX函數以及宏,可以讓輕松地聲明任務并達到RTOS所有特性。
RTX的基本功能就是開始和停止任務(程序),除此之外還支援程序通信,例如任務的同步、共享資源(外設或記憶體)的管理、任務之間消息的傳遞。
開發者可以使用基本函數去開啟實時運作器,去開始和終結任務,以及去傳遞任務間的控制(輪轉排程)。開發者可以賦予任務優先級。
【RTX程序通信】
>> 事件标志
事件标志是實作程序同步的主要方法,每個程序有16個事件辨別可供使用,是以最多能等待16個不同的事件。也可以同時等待多個事件标志,這種情況下,如果這些事件标志是與的關系,那麼這些事件标志必須都被置位後該程序才能繼續運作;如果這些事件标志是或的關系,那麼這些事件标志中的一個或幾個被置位後該程序就可以繼續運作。
事件标志也可被ARM中斷功能置位。在這種機制下,通過使用ARM中斷函數設定任務等待的标志,可以使異步的外部事件和RTX核的任務同步。
>> 信号量
在多任務實時作業系統中,需要特别的方法通路共享資源。否則,這些任務對共享資源的同時通路可能會導緻資料的不一緻或外設的錯誤操作。
解決通路臨界資源問題的主要方法是信号量。信号量是包含了虛拟标志的軟體對象。核心将标志給第一個請求的任務。在任務将其傳回給信号量之前,沒有其他的任務可以擷取這個标志。隻有擁有标志的任務才能通路公共資源,這就阻止了其他的任務通路和擾亂公共資源。
當信号量的标志不可用時,通路它的程序将被挂起,一旦标志被傳回,這個程序就會被喚醒。為了解決錯誤的等待條件,必須引入逾時機制。
>> 互斥量
互斥量是解決程序同步問題的另一種方法。它們用作對臨界區的通路控制,隻有擁有互斥量的程序才能通路臨界區,其他試圖通路臨界區的程序将被阻塞。
>> 信箱
有時程序之間需要交換消息,這在網絡中是很常見的,例如TCP-IP、UDP、ISDN等。
消息就是包含協定消息或幀的記憶體塊的指針,這樣的記憶體塊可以動态的配置設定和提供給使用者。為了防止記憶體洩漏,使用者有責任正确地配置設定和回收記憶體塊。
如果接收程序通路信箱中的消息不存在,它将被挂起,直到該消息被發送程序發送到信箱中,該被挂起的接收程序才會被喚醒。
【RTX技術規範】
支援的程序數:最多256
支援的信号量數:每個程序16個
RAM 要求:最少500位元組
代碼要求:小于5 K位元組
硬體要求:一個或多個片上時鐘可用
使用者程序優先級: 1 - 255
程序切換的時間:小于5usec @60MHz, 0 ws.
中斷停止時間:小于1.8usec @60MHz, 0 ws
RTX核的預設配置是:10個任務、10個使用者定時器、禁止棧的檢查。