亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM的實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ的內(nèi)核移植

        2008-04-12 00:00:00李廣林

        摘 要:本文研究了實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ在ARM微處理器上的內(nèi)核移植。首先介紹了實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ和ARM7微處理器,在此基礎(chǔ)上,分析了內(nèi)核移植的條件和主要內(nèi)容,最后對(duì)代碼移植的正確性進(jìn)行測(cè)試。

        關(guān)鍵詞:ARM;μC/OS-Ⅱ;移植

        1 引言

        嵌入式系統(tǒng)是一個(gè)分散的工業(yè),充滿了競(jìng)爭(zhēng)、機(jī)遇與創(chuàng)新,沒(méi)有哪個(gè)系列的處理器和操作系統(tǒng)能夠壟斷全部市場(chǎng),因此留給各個(gè)公司的創(chuàng)新余地很大。研究嵌入式系統(tǒng),一個(gè)必不可少的基礎(chǔ)工作就是實(shí)現(xiàn)嵌入式操作系統(tǒng)在相關(guān)處理器平臺(tái)上的移植。本文基于目前應(yīng)用非常廣泛的ARM處理器體系結(jié)構(gòu),對(duì)μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核的移植工作做了分析和介紹,并對(duì)代碼移植的正確性進(jìn)行驗(yàn)證。

        2 μC/OS-Ⅱ操作系統(tǒng)簡(jiǎn)介

        μC/OS-Ⅱ是一個(gè)著名的源代碼開放的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),由美國(guó)人Jean J.Labrosse編寫出來(lái)。μC/OS-Ⅱ讀作\"micro controller OS 2\",意為\"微控制器操作系統(tǒng)版本 2\"。μC/OS-Ⅱ結(jié)構(gòu)小巧,適合小型控制系統(tǒng),具有執(zhí)行效率高,占用空間小,實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性能強(qiáng)等特點(diǎn),具有可剝奪實(shí)時(shí)內(nèi)核,提供了實(shí)時(shí)系統(tǒng)所需的基本功能,其中包括任務(wù)的調(diào)度與管理,時(shí)間管理,任務(wù)間同步與通信,內(nèi)存管理和中斷服務(wù)等功能。

        μC/OS-Ⅱ可用于8位、16位和32位單片機(jī)或DSP。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)壞境,使其迅速在嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域占據(jù)一席之地。

        3 ARM7微處理器簡(jiǎn)介

        ARM(Advanced RISC Machines),是英國(guó)Advanced RISC Machines Limited公司設(shè)計(jì)開發(fā)的通用32位RISC微處理器體系結(jié)構(gòu)。ARM處理器因其卓越的性能和顯著優(yōu)點(diǎn),已成為高性能、低功耗、低成本嵌入式處理器的代名詞,成為32位嵌入式應(yīng)用領(lǐng)域、全球范圍內(nèi)最廣泛使用的處理器。ARM7系列微處理器采用亞微米制造工藝,是一種低電壓、低功耗的32位RISC處理器,其內(nèi)核基于ARMV4T(馮·諾依曼)體系結(jié)構(gòu),分為3級(jí)流水線,最高時(shí)鐘頻率為66MHz,使用3V/5V供電模式,最適合用于對(duì)價(jià)位和功耗要求較高的消費(fèi)類應(yīng)用。ARM7系列微處理器具有如下特點(diǎn):具有嵌入式ICE-RT邏輯,調(diào)試開發(fā)方便;極低的功耗,適合對(duì)功耗要求較高的應(yīng)用,如便攜式產(chǎn)品;能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu);代碼密度高并兼容16位的Thumb指令集;對(duì)操作系統(tǒng)的支持廣泛,包括Windows CE、Linux、Palm OS等;指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產(chǎn)品升級(jí)換代;主頻最高可達(dá)130MIPS,高速的運(yùn)算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。

        4 實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ在ARM上的內(nèi)核移植

        4.1 移植的條件

        處理器的C編譯器能產(chǎn)生可重入代碼;在程序中用C語(yǔ)言就可以打開或關(guān)閉中斷;處理器支持中斷,并且能夠產(chǎn)生定時(shí)中斷;處理器能夠容納一定數(shù)量的硬件堆棧;處理器有將堆棧指針和其他CPU寄存器存儲(chǔ)和讀出到堆棧(或者內(nèi)存)的指令。

        4.2 移植μC/OS-Ⅱ主要包括的內(nèi)容

        重新定義一系列與編譯器相關(guān)的數(shù)據(jù)類型。具體定義代碼如下:

        typedef unsigned char BOOLEAN;

        typedef unsigned char INT8U;/*8位無(wú)符號(hào)整數(shù)*/

        typedef signed char INT8S;/*8位有符號(hào)整數(shù)*/

        typedef unsigned short INT16U;/*16位有符號(hào)整數(shù)*/

        typedef signed short INT16S;/*16位無(wú)符號(hào)整數(shù)*/

        typedef unsigned long INT32U;/*32位無(wú)符號(hào)整數(shù)*/

        typedef signed long INT32S;/*32位有符號(hào)整數(shù)*/

        typedef float FP32;/*單精度浮點(diǎn)數(shù)*/

        typedef double FP64;/*雙精度浮點(diǎn)數(shù)*/

        設(shè)置一個(gè)常量來(lái)標(biāo)識(shí)堆棧增長(zhǎng)方向。

        typedef unsigned int OS_STK /*堆棧的單位,堆棧入口寬度為16位*/

        #define OS STK GROWTH 1/*定義堆棧的增長(zhǎng)方向,1表示高地址向低地址增長(zhǎng)*/

        聲明用于開關(guān)中斷和任務(wù)切換的宏。具體代碼如下:

        #define OS_ENTER_CRITICAL() ARMEnableInt() /*開啟中斷*/

        #define OS_NTER_CRITICAL() ARMDisabIeInt() /*關(guān)閉中斷*/

        #define OS_TASK_SW() OSCtxSw() /*任務(wù)切換*/

        用匯編語(yǔ)言編寫與處理器相關(guān)的函數(shù)(OS_CPU.A.ASM)

        為了方便移植,大部分的μC/OS-Ⅱ代碼是用C語(yǔ)言寫的,但仍需要用C和匯編語(yǔ)言寫一些與處理器相關(guān)的代碼,這是因?yàn)棣藽/OS-Ⅱ在讀寫處理器寄存器時(shí)只能通過(guò)匯編語(yǔ)言來(lái)實(shí)現(xiàn)。它包括以下四個(gè)子函數(shù):OSStartHighRdy()是運(yùn)行優(yōu)先級(jí)最高的就緒任務(wù)、OSCtxsw()是任務(wù)級(jí)的任務(wù)切換函數(shù)、OSIntCtxSw()是中斷級(jí)的任務(wù)切換函數(shù)、OSTickISR()是系統(tǒng)時(shí)鐘節(jié)拍中斷服務(wù)函數(shù)

        5 用C語(yǔ)言編寫6個(gè)與操作系統(tǒng)相關(guān)的函數(shù)(OS_CPU_C.C)

        OSTaskInit:OSTaskCreate()和OSTaskCreateExt()通過(guò)調(diào)用OSTaskStkInit()來(lái)初始化任務(wù)的堆棧結(jié)構(gòu)。在用戶建立任務(wù)的時(shí)候,用戶傳遞任務(wù)的地址,pdata指針,任務(wù)的堆棧棧頂和任務(wù)的優(yōu)先級(jí)給OSTaskCreate()和OSTaskCreateExt()。一旦用戶初始化了堆棧,OSTaskStkInit()就需要返回堆棧指針?biāo)傅牡刂贰STaskCreate()和OSTaskCreateExt()會(huì)獲得該地址并將它保存到任務(wù)控制塊(OS_TCB)中。

        OSTaskCreateHook:當(dāng)用OSTaskCreate()和OSTaskCreateExt()建立任務(wù)時(shí)就會(huì)調(diào)用OSTaskCreateHook()。當(dāng)μC/OS-Ⅱ設(shè)置完自己內(nèi)部結(jié)構(gòu)以后,會(huì)在調(diào)用任務(wù)調(diào)度程序之前調(diào)用OSTaskCreateHook()。 當(dāng) OSTaskCreateHook()被調(diào)用時(shí),會(huì)收到指向已建立任務(wù)的OS_TCB指針,這樣可訪問(wèn)所有的結(jié)構(gòu)成員。

        OSTaskDelHook:當(dāng)任務(wù)被刪除時(shí)會(huì)調(diào)用OSTaskDelHook()。該函數(shù)在任務(wù)從μC/OS-Ⅱ的內(nèi)部任務(wù)鏈表中解開之前被調(diào)用。當(dāng)它被調(diào)用時(shí),會(huì)收到指向正被刪除任務(wù)的OSJCB指針,這樣可訪問(wèn)所有的結(jié)構(gòu)成員。

        OSTaskSwHook:當(dāng)發(fā)生任務(wù)切換的時(shí)候就會(huì)調(diào)用OSTaskSwHook()。OSTaskSwHook()可以直接訪問(wèn)OSTCBCur和OSTCBHighRdy,因?yàn)樗鼈兪侨肿兞?。OSTCBCur指向被切換出去的任務(wù)的OS_TCB,而OSTCBHighRdy指向新任務(wù) OS_TCB。

        OSTaskStatHook:OSTaskStatHook()每秒鐘都會(huì)被OSTaskStat()調(diào)用一次。用戶可以用OSTaskStatHook()來(lái)擴(kuò)展統(tǒng)計(jì)功能。

        OSTimeTickHook:OSTimeTickHook()在每個(gè)時(shí)鐘節(jié)拍都會(huì)被OSTaskTick()調(diào)用。OSTimeTickHook()是在節(jié)拍被μC/OS-Ⅱ真正處理并通知用戶的移植實(shí)例或應(yīng)用程序之前被調(diào)用的。

        完成了上述工作以后,μC/OS-Ⅱ就可以正常的運(yùn)行在ARM處理器上了

        結(jié)束語(yǔ)

        μC/OS-II作為一個(gè)優(yōu)秀的實(shí)時(shí)操作系統(tǒng)已經(jīng)被移植到各種體系結(jié)構(gòu)的微處理器上,而ARM體系結(jié)構(gòu)在嵌入式領(lǐng)域也獲得了廣泛的應(yīng)用和支持。將μC/OS-II移植到ARM平臺(tái)上,能夠使我們更深入地了解實(shí)時(shí)操作系統(tǒng)的構(gòu)造,加快在ARM平臺(tái)上的應(yīng)用和開發(fā),并為更高層次上的擴(kuò)展和改進(jìn)打下基礎(chǔ)。

        參考文獻(xiàn)

        [1]Jean J, 邵貝貝譯. Labrosse. 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II. 北京 航空航天大學(xué)出版社. 2003.

        [2]田澤. 嵌入式系統(tǒng)開發(fā)與應(yīng)用教程. 北京: 北京航空航天大學(xué)出版社, 2004.

        欧美情侣性视频| 亚洲一区二区丝袜美腿| 亚洲欧洲无码精品ⅤA| 亚洲VR永久无码一区| 人妻少妇精品一区二区三区| 精品国产乱码一区二区三区| 久久99精品国产麻豆| 妺妺窝人体色www在线| 欧美综合天天夜夜久久| 国产男女猛烈无遮挡免费网站| 特级毛片a级毛片在线播放www| 国产精品美女久久久浪潮av| 国内自拍视频一区二区三区| 五月开心婷婷六月综合| 一色桃子中文字幕人妻熟女作品 | 日本一区二区视频在线| 男女啪动最猛动态图| 欧美性猛交xxxx乱大交3| 免费AV一区二区三区无码| 热热久久超碰精品中文字幕| 中文字幕一区二区三区久久网 | 久久久亚洲成年中文字幕| 亚洲av成人无码一二三在线观看 | 亚洲AV无码永久在线观看| 久久久久久久久高潮无码| 无色码中文字幕一本久道久| 日韩精品无码一本二本三本色| 少妇性荡欲视频| 成黄色片视频日本秘书丝袜| 亚洲av第一区综合激情久久久| 日本高清一道本一区二区| 亚洲av成人中文无码专区| 亚洲精品123区在线观看| 亚洲性av少妇中文字幕| 99久热在线精品视频观看| 欧美性受xxxx黑人xyx性爽| av中文字幕在线资源网| 亚洲精品在线国产精品| 精品亚洲成a人片在线观看| 专区亚洲欧洲日产国码AV| 久久中文字幕av一区二区不卡|