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