μC/OS-II嵌入式實時操作系統(tǒng)自1998年推出以來,因其方便移植、代碼量小、實時性強、可靠性高、內核可剪裁等優(yōu)點,成為我國計算機嵌入式應用領域最受喜愛的實時操作系統(tǒng)(Real-Time Opreating System)之一。由于其源碼開源,至今,已經成功在諸多廠家的MCU上移植并應用在各行各業(yè)的電子產品之中,因而備受矚目。
組成部分:μC/OS-II可以大致分成核心、任務處理、時間處理、任務同步與通信,CPU的移植等5個部分。
1、核心部分(OSCore.c) 是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運行、中斷進出的前導、時鐘節(jié)拍、任務調度、事件處理等多部分。能夠維持系統(tǒng)基本工作的部分都在這里。
2、任務處理部分(OSTask.c) 任務處理部分中的內容都是與任務的操作密切相關的。包括任務的建立、刪除、掛起、恢復等等。因為μC/OS-II是以任務為基本單位調度的,所以這部分內容也相當重要。
3、時鐘部分(OSTime.c) μC/OS-II中的最小時鐘單位是timetick(時鐘節(jié)拍)。任務延時等操作是在這里完成的。
4、任務同步和通信部分為事件處理部分,包括信號量、郵箱、消息隊列、事件標志等部分;主要用于任務間的互相聯(lián)系和對臨界資源的訪問。
5、與CPU的接口部分是指μC/OS-II針對所使用的CPU的移植部分。由于μC/OS-II是一個通用性的操作系統(tǒng),所以對于關鍵問題上的實現,還是需要根據具體CPU的具體內容和要求作相應的移植。這部分內容由于牽涉到SP等系統(tǒng)指針,所以通常用匯編語言編寫。主要包括中斷級任務切換的底層實現、任務級任務切換的底層實現、時鐘節(jié)拍的產生和處理、中斷的相關處理部分等內容。
對于嵌入式系統(tǒng)來說任務優(yōu)先級的安排是十分重要的。
對于ucosII來說,最大優(yōu)先級為63(共64個優(yōu)先級),當然要根據項目的實際需要來定義最低的優(yōu)先級()OS_LOWEST_PRIO ,例如實際項目使用20個優(yōu)先級,則OS_LOWEST_PRIO需要這樣設定:
#define OS_LOWEST_PRIO 19 實際上是用0-19
值得注意的是,我們實際可使用的優(yōu)先級并不是整整64個,ucosII將OS_LOWEST_PRIO賦予給了“統(tǒng)計任務“將OS_LOWEST_PRIO-1留給了“空閑任務”,更需要注意的是系統(tǒng)將0、1、2、3號優(yōu)先級以及OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-3號優(yōu)先級留給了自己,以備系統(tǒng)的后續(xù)升級使用。