μC/OS-II 介紹
μC /OS-II是一個(gè)完整的、可移植、可固化、可裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核。μC/OS-II絕大部分的代碼是用ANSI的C語言編寫的,包含一小部分匯編代碼,使之可供不同架構(gòu)的微處理器使用。至今,從8位到64位,μC/OS-II已在超過40種不同架構(gòu)上的微處理器上運(yùn)行。μC/OS-II已經(jīng)在世界范圍內(nèi)得到廣泛應(yīng)用,包括很多領(lǐng)域, 如手機(jī)、路由器、集線器、不間斷電源、飛行器、醫(yī)療設(shè)備及工業(yè)控制上。實(shí)際上,μC/OS-II已經(jīng)通過了非常嚴(yán)格的測(cè)試,并且得到了美國(guó)航空管 理局(Federal Aviation Administration)的認(rèn)證,可以用在飛行器上。這說明μC/OS-II是穩(wěn)定可靠的,可用于與人性命攸關(guān)的安全緊要(safety critical)系統(tǒng)。除此以外,μC/OS-II 的鮮明特點(diǎn)就是源碼公開,便于移植和維護(hù)。
μC/OS-II 內(nèi)核結(jié)構(gòu)
多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù),或者說為每個(gè)任務(wù)分配CPU 時(shí)間,并且負(fù)責(zé)任務(wù)之間的通訊。內(nèi)核提供的基本服務(wù)是任務(wù)切換。μC/OS-II可以管理多達(dá)64個(gè)任務(wù)。由于它的作者占用和保留了8個(gè)任務(wù),所以留給用戶應(yīng)用程序最多可有56個(gè)任務(wù)。賦予各個(gè)任務(wù)的優(yōu)先級(jí)必須是不相同的。這意味著μC/OS-II不支持時(shí)間片輪轉(zhuǎn)調(diào)度法(round-robin scheduli ng)。μC/OS-II為每個(gè)任務(wù)設(shè)置獨(dú)立的堆??臻g,可以快速實(shí)現(xiàn)任務(wù)切換 。μC/OS-II近似地每時(shí)每刻總是讓優(yōu)先級(jí)最高的就緒任務(wù)處于運(yùn)行狀態(tài),為了保證這一點(diǎn),它在調(diào)用系統(tǒng)API 函數(shù)、中斷結(jié)束、定時(shí)中斷結(jié)束時(shí)總是執(zhí)行調(diào)度算法,μC/OS-II通過事先計(jì)算好數(shù)據(jù)簡(jiǎn)化了運(yùn)算量,通過精心設(shè)計(jì)就緒表結(jié)構(gòu)使得延時(shí)可預(yù)知。
一些重要的μC/OS-II API 介紹
任何一個(gè)操作系統(tǒng)都會(huì)提供大量的API供程序員使用,μC/OS-II 也不例外。由于μC/OS-II 面向的是嵌入式開發(fā),并不要求大而全,所以內(nèi)核提供的API也就大多和多任務(wù)息息相關(guān)。主要有以下幾類:
1)任務(wù)類
2)消息類
3)同步類
4)時(shí)間類
5)臨界區(qū)與事件類
對(duì)初級(jí)程序員而言,任務(wù)類和事件類是必須要首先掌握的兩種API。
內(nèi)容來自百科網(wǎng)