新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > UC/OS II嵌入式技術(shù)

UC/OS II嵌入式技術(shù)

作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

uC/OS-II的任務(wù)切換機理及中斷調(diào)度優(yōu)化

摘要:μC/OS-II是一種適用于嵌入式系統(tǒng)的搶占式實時多任務(wù)操作系統(tǒng),開放源代碼,便于學(xué)習(xí)和使用。介紹μC/OS-II在任務(wù)級和中斷級的任務(wù)切換原理,以及這一操作系統(tǒng)基于嵌入式系統(tǒng)的對于中斷的處理;相對于內(nèi)存資源較少的單片機,著重討論一種優(yōu)化的實用堆棧格式和切換形式,以提高資源的利用率;結(jié)合MSP430單片機,做具體的分析。 關(guān)鍵詞:實時多任務(wù)操作系統(tǒng) μC/OS MSP430 中斷 堆棧

引 言

在嵌入式操作系統(tǒng)領(lǐng)域,由Jean J. Labrosse開發(fā)的μC/OS,由于開放源代碼和強大而穩(wěn)定的功能,曾經(jīng)一度在嵌入式系統(tǒng)領(lǐng)域引起強烈反響。而其本人也早已成為了嵌入式系統(tǒng)會議(美國)的顧問委員會的成員。

不管是對于初學(xué)者,還是有經(jīng)驗的工程師,μC/OS開放源代碼的方式使其不但知其然,還知其所以然。通過對于系統(tǒng)內(nèi)部結(jié)構(gòu)的深入了解,能更加方便地進(jìn)行開發(fā)和調(diào)試;并且在這種條件下,完全可以按照設(shè)計要求進(jìn)行合理的裁減、擴充、配置和移植。通常,購買RTOS往往需要一大筆資金,使得一般的學(xué)習(xí)者望而卻步;而μC/OS對于學(xué)校研究完全免費,只有在應(yīng)用于盈利項目時才需要支付少量的版權(quán)費,特別適合一般使用者的學(xué)習(xí)、研究和開發(fā)。自1992第1版問世以來,已有成千上萬的開發(fā)者把它成功地應(yīng)用于各種系統(tǒng),安全性和穩(wěn)定性已經(jīng)得到認(rèn)證,現(xiàn)已經(jīng)通過美國FAA認(rèn)證。

● 1 μC/OS-II的幾大組成部分

μC/OS-II可以大致分成核心、任務(wù)處理、時間處理、任務(wù)同步與通信,CPU的移植等5個部分。

核心部分(OSCore.c) 是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運行、中斷進(jìn)出的前導(dǎo)、時鐘節(jié)拍、任務(wù)調(diào)度、事件處理等多部分。能夠維持系統(tǒng)基本工作的部分都在這里。

任務(wù)處理部分(OSTask.c) 任務(wù)處理部分中的內(nèi)容都是與任務(wù)的操作密切相關(guān)的。包括任務(wù)的建立、刪除、掛起、恢復(fù)等等。因為μC/OS-II是以任務(wù)為基本單位調(diào)度的,所以這部分內(nèi)容也相當(dāng)重要。

時鐘部分(OSTime.c) μC/OS-II中的最小時鐘單位是timetick(時鐘節(jié)拍)。任務(wù)延時等操作是在這里完成的。

任務(wù)同步和通信部分 為事件處理部分,包括信號量、郵箱、郵箱隊列、事件標(biāo)志等部分;主要用于任務(wù)間的互相聯(lián)系和對臨界資源的訪問。

與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)容。

uC/OS II在S3C2410上的移植:

隨著信息化技術(shù)的發(fā)展和數(shù)字化產(chǎn)品的普及,以計算機技術(shù)、芯片技術(shù)和軟件技術(shù)為核心的嵌入式系統(tǒng)再度成為當(dāng)前研究和應(yīng)用的熱點。

對功能、可靠性、成本、體積和功耗嚴(yán)格要求的嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個部分組成,其中嵌入式微處理器和嵌入式操作系統(tǒng)分別是其硬件和軟件的核心。

ARM處理器由于其具有小體積、低功耗、低成本、高性能等特點,廣泛應(yīng)用在16/32位嵌入式RISC解決方案中,幾乎占有嵌入式微處理器市場分額的75% ,本文選定三星公司生產(chǎn)的一款基于ARM920T核的高性能低功耗SOC芯片S3C2410作為移植方案的硬件平臺。市場上主流的嵌入式實時操作系統(tǒng)有Vxworks、pSos、WinCE、Linux等,基于實時性、成本以及開發(fā)難度方面的考慮,我們選擇uC/OS II——開放源代碼的嵌入式實時操作系統(tǒng)。

● uC/OS II介紹

uC/OS II(Micro Control Operation System Two)是一個可以基于ROM運行的、可裁減的、搶占式(見圖1)實時多任務(wù)內(nèi)核,具有高度可移植性,特別適合于微處理器和控制器,是和很多商業(yè)操作系統(tǒng)性能相當(dāng)?shù)膶崟r操作系統(tǒng)(RTOS)。為了提供最好的移植性能,uC/OS II最大程度上使用ANSI C語言進(jìn)行開發(fā),并且已經(jīng)移植到近40多種處理器體系上,涵蓋了從8位到64位各種CPU(包括DSP)。

uC/OS II可以簡單的視為一個多任務(wù)調(diào)度器,在這個任務(wù)調(diào)度器之上完善并添加了和多任務(wù)操作系統(tǒng)相關(guān)的系統(tǒng)服務(wù),如信號量、郵箱等。其主要特點有公開源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好,可裁剪,可固化。內(nèi)核屬于搶占式,最多可以管理60個任務(wù)。從1992年開始,由于高度可靠性、魯棒性和安全性,uC/OS II已經(jīng)廣泛使用在從照相機到航空電子產(chǎn)品的各種應(yīng)用中。

2 uC/OS II在S3C2410上的可移植性

所謂移植,就是使這個實時內(nèi)核能在某個微處理器上運行。為了方便移植,大部分的uC/OS II代碼是用c語言寫的,但仍需要用c和匯編語言寫一些與處理器相關(guān)的代碼,這是因為uC/OS II在讀寫處理器寄存器時只能通過匯編語言來實現(xiàn)。由于uC/OS II在設(shè)計時就已經(jīng)充分考慮了可移植性,所以uC/OS II的移植相對來說是比較容易的。uC/OS II的框架結(jié)構(gòu)如圖2。

uC/OSII的正常運行需要處理器平臺滿足以下要求:

a)處理器的C編譯器能產(chǎn)生可重入代碼。

b)用C語言就可以打開和關(guān)閉中斷。

c)處理器支持中斷,并且能產(chǎn)生定時中斷(通常在10至100Hz之間)。

d)處理器支持能夠容納一定量數(shù)據(jù)(可能是幾千字節(jié))的硬件堆棧。

e)處理器有將堆棧指針和其它CPU寄存器讀出和存儲到堆棧或內(nèi)存中的指令。

S3C2410處理器采用ARM920T內(nèi)核,內(nèi)部共有37個寄存器,其中R13通常用作堆棧指針,只要系統(tǒng)RAM空間允許,堆??臻g理論上沒有限制。ARM處理器提供ARM指令和Thumb指令兩種指令集,每種指令集都包含有豐富的指令對堆棧進(jìn)行操作,可以隨意的對處理器中的寄存器進(jìn)行堆棧操作。根據(jù)堆棧生長方向的不同,可以生成4種不同的堆棧,分別是滿遞增、空遞增、滿遞減(此移植中使用的是滿遞減方式)、空遞減。芯片內(nèi)集成5個定時時鐘,任何一個都可以產(chǎn)生定時中斷,滿足第三條要求。ADS集成開發(fā)環(huán)境的內(nèi)置編譯器可以產(chǎn)生可重入代碼,并且支持內(nèi)嵌匯編,C環(huán)境中可任意的進(jìn)行開關(guān)中斷操作。綜上所述uC/OS II完全可以移植到S3C2410上運行。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉