999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM的實時操作系統μC/OS-Ⅱ的內核移植

2008-04-12 00:00:00李廣林
中國新技術新產品 2008年23期

摘 要:本文研究了實時操作系統μC/OS-Ⅱ在ARM微處理器上的內核移植。首先介紹了實時操作系統μC/OS-Ⅱ和ARM7微處理器,在此基礎上,分析了內核移植的條件和主要內容,最后對代碼移植的正確性進行測試。

關鍵詞:ARM;μC/OS-Ⅱ;移植

1 引言

嵌入式系統是一個分散的工業,充滿了競爭、機遇與創新,沒有哪個系列的處理器和操作系統能夠壟斷全部市場,因此留給各個公司的創新余地很大。研究嵌入式系統,一個必不可少的基礎工作就是實現嵌入式操作系統在相關處理器平臺上的移植。本文基于目前應用非常廣泛的ARM處理器體系結構,對μC/OS-II嵌入式實時操作系統內核的移植工作做了分析和介紹,并對代碼移植的正確性進行驗證。

2 μC/OS-Ⅱ操作系統簡介

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

μC/OS-Ⅱ可用于8位、16位和32位單片機或DSP。良好的持續發展能力、高性能的內核以及友好的用戶開發壞境,使其迅速在嵌入式實時操作系統領域占據一席之地。

3 ARM7微處理器簡介

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

4 實時操作系統μC/OS-Ⅱ在ARM上的內核移植

4.1 移植的條件

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

4.2 移植μC/OS-Ⅱ主要包括的內容

重新定義一系列與編譯器相關的數據類型。具體定義代碼如下:

typedef unsigned char BOOLEAN;

typedef unsigned char INT8U;/*8位無符號整數*/

typedef signed char INT8S;/*8位有符號整數*/

typedef unsigned short INT16U;/*16位有符號整數*/

typedef signed short INT16S;/*16位無符號整數*/

typedef unsigned long INT32U;/*32位無符號整數*/

typedef signed long INT32S;/*32位有符號整數*/

typedef float FP32;/*單精度浮點數*/

typedef double FP64;/*雙精度浮點數*/

設置一個常量來標識堆棧增長方向。

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

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

聲明用于開關中斷和任務切換的宏。具體代碼如下:

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

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

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

用匯編語言編寫與處理器相關的函數(OS_CPU.A.ASM)

為了方便移植,大部分的μC/OS-Ⅱ代碼是用C語言寫的,但仍需要用C和匯編語言寫一些與處理器相關的代碼,這是因為μC/OS-Ⅱ在讀寫處理器寄存器時只能通過匯編語言來實現。它包括以下四個子函數:OSStartHighRdy()是運行優先級最高的就緒任務、OSCtxsw()是任務級的任務切換函數、OSIntCtxSw()是中斷級的任務切換函數、OSTickISR()是系統時鐘節拍中斷服務函數

5 用C語言編寫6個與操作系統相關的函數(OS_CPU_C.C)

OSTaskInit:OSTaskCreate()和OSTaskCreateExt()通過調用OSTaskStkInit()來初始化任務的堆棧結構。在用戶建立任務的時候,用戶傳遞任務的地址,pdata指針,任務的堆棧棧頂和任務的優先級給OSTaskCreate()和OSTaskCreateExt()。一旦用戶初始化了堆棧,OSTaskStkInit()就需要返回堆棧指針所指的地址。OSTaskCreate()和OSTaskCreateExt()會獲得該地址并將它保存到任務控制塊(OS_TCB)中。

OSTaskCreateHook:當用OSTaskCreate()和OSTaskCreateExt()建立任務時就會調用OSTaskCreateHook()。當μC/OS-Ⅱ設置完自己內部結構以后,會在調用任務調度程序之前調用OSTaskCreateHook()。 當 OSTaskCreateHook()被調用時,會收到指向已建立任務的OS_TCB指針,這樣可訪問所有的結構成員。

OSTaskDelHook:當任務被刪除時會調用OSTaskDelHook()。該函數在任務從μC/OS-Ⅱ的內部任務鏈表中解開之前被調用。當它被調用時,會收到指向正被刪除任務的OSJCB指針,這樣可訪問所有的結構成員。

OSTaskSwHook:當發生任務切換的時候就會調用OSTaskSwHook()。OSTaskSwHook()可以直接訪問OSTCBCur和OSTCBHighRdy,因為它們是全局變量。OSTCBCur指向被切換出去的任務的OS_TCB,而OSTCBHighRdy指向新任務 OS_TCB。

OSTaskStatHook:OSTaskStatHook()每秒鐘都會被OSTaskStat()調用一次。用戶可以用OSTaskStatHook()來擴展統計功能。

OSTimeTickHook:OSTimeTickHook()在每個時鐘節拍都會被OSTaskTick()調用。OSTimeTickHook()是在節拍被μC/OS-Ⅱ真正處理并通知用戶的移植實例或應用程序之前被調用的。

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

結束語

μC/OS-II作為一個優秀的實時操作系統已經被移植到各種體系結構的微處理器上,而ARM體系結構在嵌入式領域也獲得了廣泛的應用和支持。將μC/OS-II移植到ARM平臺上,能夠使我們更深入地了解實時操作系統的構造,加快在ARM平臺上的應用和開發,并為更高層次上的擴展和改進打下基礎。

參考文獻

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

[2]田澤. 嵌入式系統開發與應用教程. 北京: 北京航空航天大學出版社, 2004.

主站蜘蛛池模板: 国产成人高清精品免费| 免费不卡在线观看av| 欧美精品v欧洲精品| 国产高清在线精品一区二区三区 | 免费激情网址| 亚洲欧美在线看片AI| 丰满人妻中出白浆| 日本91视频| 四虎精品黑人视频| 国产日韩欧美一区二区三区在线| 国产成人1024精品| 黄色福利在线| 福利在线不卡| 国产美女在线免费观看| 免费看久久精品99| 香蕉久久国产精品免| 久久免费视频播放| 四虎影视库国产精品一区| 在线观看国产精品日本不卡网| 麻豆精品久久久久久久99蜜桃| 国产成人8x视频一区二区| 为你提供最新久久精品久久综合| 性色生活片在线观看| 欧美啪啪网| 成人免费一级片| 国产精品九九视频| 99久久国产精品无码| 四虎影视无码永久免费观看| 婷婷亚洲视频| 国禁国产you女视频网站| 亚洲精品动漫| 色亚洲成人| 日韩美毛片| 国产制服丝袜91在线| 欧美亚洲另类在线观看| 日韩区欧美区| 玩两个丰满老熟女久久网| 精品国产三级在线观看| 色135综合网| 亚洲成av人无码综合在线观看| 午夜日b视频| 国产成人区在线观看视频| 亚洲无码精彩视频在线观看| 久久国产高潮流白浆免费观看| 日韩黄色大片免费看| 色妞永久免费视频| 黄色福利在线| 国产91精品久久| 欧美伦理一区| 99国产在线视频| 亚洲综合极品香蕉久久网| 亚洲AV无码久久天堂| 看国产毛片| 欧美不卡视频一区发布| 一级香蕉视频在线观看| 日本免费福利视频| a色毛片免费视频| 欧美人在线一区二区三区| 国产精品福利导航| 日韩大片免费观看视频播放| 国模在线视频一区二区三区| 波多野结衣视频网站| 久无码久无码av无码| 国产真实乱子伦精品视手机观看| 欧美激情第一区| 伊人福利视频| av色爱 天堂网| 欧美综合中文字幕久久| 国产一区二区在线视频观看| 青青热久免费精品视频6| 亚洲精品欧美重口| 国产成年女人特黄特色大片免费| 国产精品手机在线播放| 97久久精品人人| 欧美日本在线播放| 欧美一级特黄aaaaaa在线看片| 欧美性天天| 亚洲自偷自拍另类小说| 亚洲视频三级| 秘书高跟黑色丝袜国产91在线| 尤物特级无码毛片免费| 午夜无码一区二区三区在线app|