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

基于S3C44B0X平臺的μC/OS-II的移植

2009-04-26 01:46:10胡永祥
魅力中國 2009年35期

胡永祥

中圖分類號:TP31文獻標識碼:A文章編號:1673-0992(2009)12-077-01

摘要:針對高等職業技術學院嵌入式系統實驗和專業建設的實際需要而進行的。論文對μC/OS-II的內核數據結構、運行機制以及μC/OS-II操作系統在S3C44B0X上的移植過程進行了詳細的討論。

關鍵詞:嵌入式系統;ARM;μC/OS-II操作系統;S3C44B0X

一、嵌入式系統介紹

1.概念 嵌入式系統,通常是指操作系統和功能軟件集成于計算機硬件的應用系統,是將系統的軟件與硬件一體化。從技術方面來看,嵌入式系統是以應用為中心,以計算機技術為基礎的,并且軟、硬件可裁減的,能滿足應用系統對功能、可靠性、成本、體積、功耗等指標嚴格要求的專用計算機系統。它可以實現對設備的控制、監視或管理等功能。從系統方面來看,嵌入式系統是設計完成復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統。

2.組成

嵌入式系統通常由嵌入式系統硬件和嵌入式系統軟件兩大部分組成,其中嵌入式系統硬件包括:嵌入式處理器、嵌入式外圍設備、大容量存儲器等;嵌入式系統軟件包括嵌入式操作系統和嵌入式應用軟件等幾部分組成。

二、實驗系統硬件結構

圖1實驗系統硬件結構圖

Figure 1 Figure of experiment system hardware

三、交叉開發環境

(一)交叉開發環境介紹

嵌入式系統交叉開發環境是指編譯、鏈接、調試嵌入式應用軟件的環境,一般包括交叉編譯器、交叉調試器和系統仿真器。其中交叉編譯器用于在宿主機上生成能在目標機上運行的代碼,交叉調試器和系統仿真器用于在宿主機與目標機間完成嵌入式軟件的調試。

采用宿主機/目標機模式開發嵌入式應用軟件時,首先架構一臺服務器,每個開發者從客戶端使用Telnet登陸到這臺服務器,目標機系統也連到同一局域網內。在服務器上交叉編譯生成目標文件,通過FTP傳到開發者的PC機,然后通過串口或網絡下載到目標機的特定位置上,在操作系統的支持下利用交叉調試器進行分析調試,最后目標機脫離宿主機單獨運行。

(二)創建交叉編譯環境

常用的交叉開發工具是GNU工具鏈,目前能夠支持X86、ARM、MIPS和PowerPC等多種處理器。GCC交叉開發環境中,arm-linux-gcc是交叉編譯器,arm-linux-ld是交叉鏈接器。以linux-2.4.21和arm-linux-gcc-3.3為例:

1.解壓Linux內核linux-2.4.21.tar.gz,放在//usr/local/arm中

2.解壓gc。編譯器arm-linux-gcc-3 .3.tar.bz2,放在/usr/local/arm中

3.安裝arm-elf-binutils-2.11-S.i386.rmp, arm-elf-gcc-3.3-2.i386.rpm

4.設置環境變量,存在//etc/profile文件中,以保證每次進入模擬Linux環境時,這些變量都生效。

三、μC/OS-II 在ARM-S3C44B0X 上的移植

(一)什么是移植

所謂移植,指的是一個操作系統可以在某個微處理器或者微控制器上運行。雖然μC/OS-II的大部分源代碼是用C語言寫成的,仍需要用C語言和匯編語言完成一些與處理器相關的代碼。比如:μC/OS-II在讀寫處理器、寄存器時只能通過匯編語言來實現。μC/OS-II在設計的時候就已經充分考慮了可移植性,因此移植還是比較容易的。

μC/OS-II進行任務調度的時候,會把當前任務的CPU寄存器存放到此任務的堆棧中,再從另一個任務的堆棧中恢復原來的工作寄存器,運行另一個任務。所以,寄存器的入棧和出棧是μC/OS-II多任務調度的基礎。下面介紹如何把μC/OS-II移植到S3C44B0X芯片上。

(二)μC/OS-II在ARM上的移植實現

實際上,μC/OS-II可以簡單地看作是一個多任務調度器,在這個任務調度器上添加了與多任務操作系統相關的一些系統服務,如信號量、郵箱等。其90%的代碼是用C語言寫的,可以直接移植到有C語言編譯器的處理器上。移植工作主要都集中在多任務切換的實現上,因為這部分代碼用來保存和恢復CPU現場,部分不能用C語言寫的代碼就用匯編語言完成。

μC/OS-II的全部源代碼量大約是6000-7000行,共15個文件。將μC/OS-II移植到ARM處理器上,需要修改三個與ARM體系結構相關的文件,代碼量大約是500 行。我們使用ARMSDT作為編譯器,移植μC/OS-II主要包括以下幾項內容:

(三)設置 OS_CPU.H中與處理器和編譯器相關的代碼

1.與編譯器相關的數據類型

我們的處理器上的堆棧成員是16位的,所以將OS_TSK 聲明為無符號整形數據類型。所有的任務堆棧都必須用 OS_TSK 聲明數據類型。

2.OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()

μC/OS-II定義了兩個宏:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()來禁止和允許中斷,需要先禁止中斷訪問代碼的臨界區,訪問完畢后重新允許中斷。

3.OS_STK_GROWTH

絕大多數的微處理器和微控制器的堆棧是從上往下長的。但是某些處理器是用另外一種方式工作的。μC/OS-II被設計成兩種情況都可以處理,在結構常量OS_STK_GROW中指定堆棧的生長方式就可以了,OS_STK_GROWTH為0表示堆棧從下往上長,為1表示堆棧從上往下長。

4.編寫 10 個操作系統相關的函數(OS_CPU_C.C)

(1)OSTaskStkInit( )

(2)OSTaskCreateHook( )

(3)OSTaskDelHook( )

(4)OSTaskSwHook( )

(5)OSTaskStatHook( )

(6)OSTimeTickHook( )

(7)OSTaskIdleHook( )

(8)OSTCBInitHook( )

(9)OSInitHookBegin( )

5.用匯編語言編寫 4 個與處理器相關的函數(OS_CPU_A.S)

μC/OS-II的移植還要求編寫4個簡單的匯編語言函數:

(1)OSStartHighRdy( ):運行優先級最高的就緒任務,函數首先必須調用OSTaskSwHook( ),并且設置 OSRunning為TRUE,然后切換到優先最高的任務。

(2)OSCtxSw( ):任務級的任務切換函數,任務級的切換是通過發軟中斷命令或依靠處理器執行陷阱指令來完成的,中斷服務程序,或異常處理例程的向量地址必須指向OSCtxSw( )。 (3) OSIntCtxSw( ):中斷級的任務切換函數,這個函數在 ISR 中用來執行任務切換功能的。

(4)UCOS_IRQHandler( ):中斷服務程序,這個函數主要處理 IRQ 中斷。

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

四、結論

嵌入式實驗/開發系統使用的硬件平臺,包括處理器、存儲器、串行通信接口、以太網接口,平臺的硬件核心為SAMSUNG公司的S3C44B0X芯片,平臺的軟件核心為μC/OS-II,μC/OS-II是一個實時操作系統內核,它包含了任務調度、任務管理、事件管理、內存管理和任務間的通信和同步等基本功能,是一個基于優先級調度的搶占式實時內核,并在這個內核上提供最基本的系統服務,例如信號量、郵箱、消息隊列、內存管理、中斷管理等。雖然μC/OS-II并不是一個商業的實時操作系統,但μC/OS-II的穩定性和實用性卻被數百個商業級的應用所驗證,其應用領域包括便攜式電話、運動控制卡、自動支付終端、交換機等。

ARM平臺是目前使用廣泛的主流的嵌入式處理器體系結構。本論文主要是針對高等職業技術學院的嵌入式系統實驗和專業建設的需要進行的。通過努力,現在實驗系統的嵌入式系統實驗已經展開,系統可以穩定的工作。

參考文獻

[1]周立功.ARM嵌入式系統基礎教程[M] .北京:北京航空航天大學出版社,2005,1

[2] 田澤.ARM嵌入式系統基礎教程[M]. 北京:北京航空航天大學出版社,2005

[3]Steve Furber. ARM SoC體系結構[M]. 北京:北京航空航天大學出版社,2002

[4]Jean J.Labrosse著.邵貝貝等譯.μC/OS-II-源碼公開的實時嵌入式操作系統 [M].北京:北京航空航天大學出版社,2003.3

[5]周立功.ARM微控制器基礎與實踐[M].北京:北京航空航天大學出版社,2003.11

[6]Suwartadi,Eka;Gunawan,Candra;Setijadi P,Ary;Machbub,Carmadi. First step toward internetbased embedded control system. 2004 5th Asian Control Conference

[7]Correa,C.R.Awad, S.Embedded controller software and algorithm development tool. 18thIEEE Instrumentation and Measurement Technology Conference. May 21-23 2001

[8]ARM Limited. ARM 7TDMI Technical Reference Manual(Rev4). 2001,ARM 公司

[9]羅致,王仲東.ARM Linux在AT91 RM9200平臺上的移植[J].兵工自動化.2006

主站蜘蛛池模板: 爱做久久久久久| 国产主播一区二区三区| 亚洲一区二区黄色| 国产农村妇女精品一二区| 亚洲成人77777| 美美女高清毛片视频免费观看| 日韩第九页| 久久永久免费人妻精品| 亚洲男人的天堂视频| 亚洲人成网站观看在线观看| 国产一级二级在线观看| 久久国产高清视频| 国产精品yjizz视频网一二区| 中文字幕色在线| 色天天综合久久久久综合片| 国产午夜无码片在线观看网站 | 国内熟女少妇一线天| 成人午夜免费观看| 亚洲熟妇AV日韩熟妇在线| 国产精品视频免费网站| 日韩精品专区免费无码aⅴ| 国产黄在线免费观看| 国产高清不卡| 久久精品无码一区二区日韩免费| 欧美啪啪精品| 精品久久久无码专区中文字幕| 国产麻豆va精品视频| 五月天久久婷婷| 欧美日韩一区二区在线免费观看| yjizz视频最新网站在线| 日韩无码黄色| 99无码中文字幕视频| 成人福利在线免费观看| 国产成人艳妇AA视频在线| 999国产精品| 亚洲精品午夜无码电影网| 无码专区在线观看| 国产高清国内精品福利| 色综合网址| www.国产福利| 日韩天堂视频| 人妻夜夜爽天天爽| 国产丝袜91| 久久精品视频一| 日韩A∨精品日韩精品无码| 日韩黄色在线| 欧美特黄一级大黄录像| 97视频在线观看免费视频| 国产免费怡红院视频| 国产v欧美v日韩v综合精品| 亚洲日韩高清无码| 欧美亚洲一区二区三区导航| 亚洲日产2021三区在线| 欧美成人手机在线视频| 久久人妻xunleige无码| 国产精品视频第一专区| 亚国产欧美在线人成| 中文字幕啪啪| 美女高潮全身流白浆福利区| 国产成人一区免费观看 | 日韩av在线直播| 亚洲免费毛片| 国产中文一区二区苍井空| 久久96热在精品国产高清| 狠狠色狠狠色综合久久第一次| 中文无码毛片又爽又刺激| 亚洲欧洲日韩综合| 欧美啪啪网| 久久精品国产在热久久2019| 日韩在线视频网| 欧美啪啪网| AV在线天堂进入| 日韩国产另类| 中文字幕无线码一区| 97久久人人超碰国产精品| 亚洲欧美国产五月天综合| 日韩无码视频播放| 在线播放精品一区二区啪视频 | 欧美日韩第三页| 日韩av高清无码一区二区三区| 国产一级特黄aa级特黄裸毛片| 婷婷五月在线视频|