国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2009-04-26 01:46:10胡永祥
魅力中國 2009年35期
關鍵詞:嵌入式系統(tǒng)

胡永祥

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

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

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

一、嵌入式系統(tǒng)介紹

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

2.組成

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

二、實驗系統(tǒng)硬件結構

圖1實驗系統(tǒng)硬件結構圖

Figure 1 Figure of experiment system hardware

三、交叉開發(fā)環(huán)境

(一)交叉開發(fā)環(huán)境介紹

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

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

(二)創(chuàng)建交叉編譯環(huán)境

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

1.解壓Linux內(nèi)核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.設置環(huán)境變量,存在//etc/profile文件中,以保證每次進入模擬Linux環(huán)境時,這些變量都生效。

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

(一)什么是移植

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

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

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

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

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

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

1.與編譯器相關的數(shù)據(jù)類型

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

2.OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()

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

3.OS_STK_GROWTH

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

4.編寫 10 個操作系統(tǒng)相關的函數(shù)(OS_CPU_C.C)

(1)OSTaskStkInit( )

(2)OSTaskCreateHook( )

(3)OSTaskDelHook( )

(4)OSTaskSwHook( )

(5)OSTaskStatHook( )

(6)OSTimeTickHook( )

(7)OSTaskIdleHook( )

(8)OSTCBInitHook( )

(9)OSInitHookBegin( )

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

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

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

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

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

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

四、結論

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

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

參考文獻

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

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

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

[4]Jean J.Labrosse著.邵貝貝等譯.μC/OS-II-源碼公開的實時嵌入式操作系統(tǒng) [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

猜你喜歡
嵌入式系統(tǒng)
辦公自動化系統(tǒng)的設計
嵌入式系統(tǒng)在醫(yī)療器械中的應用分析
基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學改革的研究與實踐
嵌入式系統(tǒng)課程“中斷、異常與事件”教學實踐及啟示
計算機教育(2016年7期)2016-11-10 08:31:34
面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學研究
計算機教育(2016年7期)2016-11-10 08:12:11
在DiskOnChip上構建VxWorks系統(tǒng)開發(fā)環(huán)境
平顺县| 元江| 建昌县| 临潭县| 玉树县| 武功县| 新营市| 秦安县| 金川县| 喀喇沁旗| 攀枝花市| 葫芦岛市| 长沙市| 神池县| 宁陕县| 牙克石市| 凤凰县| 秭归县| 泰来县| 新野县| 甘谷县| 西昌市| 阳东县| 深圳市| 云安县| 宁安市| 琼中| 金塔县| 虞城县| 闽清县| 搜索| 双峰县| 道真| 清流县| 叙永县| 大同县| 新安县| 比如县| 云林县| 寻甸| 翼城县|