嵌入式系統學習——STM32之RTOS系統UCOS介紹與移植
阿新 • • 發佈:2019-02-06
前後臺系統:
早期嵌入式開發沒有嵌入式作業系統的概念,直接操作裸機,在裸機上寫程式,比如用51微控制器基本就沒有作業系統的概念。通常把程式分為兩部分:前臺系統和後臺系統。簡單的小系統通常是前後臺系統,這樣的程式包括一個死迴圈和若干個中斷服務程式:應用程式是一個無限迴圈,迴圈中呼叫API函式完成所需的操作,這個大迴圈就叫做後臺系統。中斷服務程式用於處理系統的非同步事件,也就是前臺系統。前臺是中斷級,後臺是任務級。
RTOS系統:
RTOS全稱為:Real Time OS,就是實時作業系統,強調的是:實時性。實時作業系統又分為硬實時和軟實時。硬實時要求在規定的時間內必須完成操作 ,硬實時系統不允許超時,在軟實時裡面處理過程超時的後果就沒有那麼嚴格。在實時作業系統中,我們可以把要實現的功能劃分為多個任務,每個任務負責實現其中的一部分,每個任務都是一個很簡單的程式,通常是一個死迴圈。
RTOS作業系統:UCOS,FreeRTOS,RTX,RT-Thread,DJYOS等。
RTOS作業系統的核心內容在於:實時核心。
可剝奪型核心:
RTOS的核心負責管理所有的任務,核心決定了執行哪個任務,何時停止當前任務切換到其他任務,這個是核心的多工管理能力。多工管理給人的感覺就好像晶片有多個CPU,多工管理實現了CPU資源的最大化利用,多工管理有助於實現程式的模組化開發,能夠實現複雜的實時應用。 UCOS的核心是可剝奪型的,可剝奪核心顧名思義就是可以剝奪其他任務的CPU使用權,它總是執行就緒任務中的優先順序最高的那個任務。
UCOS系統簡介:
UCOS是Micrium公司出品的RTOS類實時作業系統,UCOS目前有兩個版本:UCOSII和UCOSIII。UCOSIII是一個可裁剪、可剝奪型的多工核心,而且沒有任務數限制。UCOSIII提供了實時作業系統所需的所有功能,包括資源管理、同步、任務通訊等。
UCOSIII是用C和彙編來寫的,其中絕大部分都是用C語言編寫的,只有極少數的與處理器密切相關的部分程式碼才是用匯編寫的,UCOSIII結構簡潔,可讀性很強!最主要的是非常適合初次接觸嵌入式實時作業系統學生、嵌入式系統開發人員和愛好者學習。
UCOSIII移植步驟:
UCOSIII體系結構:
(1)、應用程式。
(2)、半導體廠商提供的庫函式。
(3)、板級支援包,底層驅動。
(4)、UCOSIII原始碼,與CPU無關。
(5)、這部分在移植UCOSIII的時候要根據所使用的CPU架構來編寫。
(6)、講與CPU相關功能程式碼封裝起來。
(7)、UCOSIII官方提供的一系列通用函式的原始檔,一部分函式用於替代stdlib庫中的函式。
(8)、配置檔案。