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

        ?

        嵌入式系統(tǒng)eCOS移植分析及應用

        2008-04-12 00:00:00邱麗波邵笑梅蘇慧祎王守勇
        現(xiàn)代電子技術 2008年24期

        摘 要:為將嵌入式實時操作系統(tǒng)eCOS在以ARM920T處理器S3C2410為核心的開發(fā)板上運行,對eCOS的一般性移植方法進行研究,提出將eCOS向目標板移植的具體方法。在將硬件抽象層HAL針對目標板做了修改和移植后,生成最小配置的redboot鏡像,用以在目標板上引導eCOS,在此基礎上針對目標板增加eCOS的配置選項和包,結合C代碼和eCOS庫文件編寫eCOS應用程序,結果表明eCOS以及應用程序在目標板可以正常運行。

        關鍵詞:嵌入式可配置操作系統(tǒng);ARM920T;系統(tǒng)移植;硬件抽象層

        中圖分類號:TP316文獻標識碼:B

        文章編號:1004-373X(2008)24-045-04

        Transplantation Analysis and Application of Embedded System eCOS

        QIU Libo,SHAO Xiaomei,SU Huiyi,WANG Shouyong

        (Yantai Engineering Technology College,Yantai,264006,China)

        Abstract:To run embedded real-time operating system on the developing board based on ARM920T processor S3C2410,the general methods of system transplantation are studied.A concrete procedure of transplanting eCOS to target board is presented.After modifying and transplanting HAL for the target board,a redboot image with minimum configuration is built to guide eCOS.Then more configurations and packages are added to the target board as well as an eCOS application program is compiled.The result shows that eCOS and its application program can run normally on the target board.

        Keywords:embedded configurable operating system;ARM920T;system transplantation;hardware abstract layer

        1 引 言

        嵌入式實時操作系統(tǒng)是能在確定的時間內執(zhí)行其功能,并對外部的異步事件做出響應的計算機系統(tǒng)。隨著嵌入式實時操作系統(tǒng)技術能力的成熟,以及各類電子產(chǎn)品對于操作系統(tǒng)的迫切需求,嵌入式實時操作系統(tǒng)逐漸進入了工業(yè)測控以及消費類電子行業(yè)的應用之中。作為繼VxWorks,μCLinux,WinCE等嵌入式實時操作系統(tǒng)的后起之秀, eCOS(embedded Configurable Operating System)具有可配置性、可裁減性、可移植性和代碼體積小的優(yōu)勢。eCOS的重要技術創(chuàng)新在于其提供了功能強大的配置系統(tǒng),可以在源碼級實現(xiàn)對系統(tǒng)的配置和裁減,并且實現(xiàn)最小功能的eCOS系統(tǒng)可以只有幾百字節(jié),因此eCOS受到了全球越來越多的人的關注[1,2]。S3C2410處理器是三星公司基于ARM公司的ARM920T處理器內核,采用0.18 μm制造工藝,最高操作頻率達到203 MHz的微處理器。憑借低價格、低功耗、高性能的品質,它被國內外廣泛應用于各類開發(fā)板及手持便攜設備中。然而在eCOS的官方網(wǎng)站及相關文獻中并沒有公布eCOS針對S3C2410處理器的相關代碼。利用eCOS的可配置性和S3C2410完整的系統(tǒng)外圍設備,分析了eCOS的一般移植方法并將eCOS應用于S3C2410處理器的開發(fā)板armsys2410。

        2 eCOS體系特點及移植概述

        eCOS采用模塊化設計,將不同功能的軟件分成不同的組件,其核心組件包括:硬件抽象層(Hardware Abstract Layer,HAL),內核(kernel),標準C和數(shù)學庫,設備驅動程序, GNU調試器(GDB)。這些組件具有可重用性,分別位于系統(tǒng)的不同層次。用戶可以根據(jù)自己應用的特定需求來設置組件中的配置選項,去掉不需要的組件,從而創(chuàng)建一個最適合應用需求且體積最精簡eCOS鏡像。

        硬件抽象層(HAL)處于eCOS層次結構的最低層,對處理器結構和系統(tǒng)硬件體系結構進行了抽象,并對上層提供統(tǒng)一的接口。因此HAL的移植是eCOS系統(tǒng)移植的關鍵,改寫HAL以及相關的驅動程序后可以迅速地實現(xiàn)eCOS移植。硬件抽象層的移植根據(jù)所抽象的對象的不同,可以分為 3種不同的類型,分別是平臺抽象層移植、變體抽象層移植和體系結構抽象層移植。

        平臺抽象層(Platform HAL)移植針對的是HAL平臺層,該子層次對應于一系列的硬件,包括選擇的處理器或其變體。平臺抽象層移植時可采用eCOS支持的且與新硬件平臺相近的平臺HAL作為模板,對內存布局等初始化代碼進行修改。

        變體抽象層(Variant HAL)移植針對的是HAL的變體層,該子層可支持特定CPU與同類體系結構的普通CPU之間的差異。變體抽象層移植通過對中斷、高速緩存及其他特性的重定義來覆蓋體系結構抽象層中的默認實現(xiàn)。

        體系結構抽象層(Architecture HAL)移植針對的是HAL的體系結構層。eCOS支持的每種處理器系列都被看成是一種不同的體系結構,例如ARM系列、PowerPC系列等。在eCOS\\\\packages\\\\hal目錄下每一種體系結構都有對應的子目錄,例如eCOS\\\\packages\\\\hal\\\\powerpc等。而每個子目錄中又包含了用于支持某個特定處理器的平臺抽象層和變體抽象層子目錄,例如eCOS\\\\packages\\\\hal\\\\powerpc\\\\mbx目錄中包含的代碼用于支持PowerPC MBX860這個平臺的初始化編程,而eCOS\\\\packages\\\\hal\\\\powerpc\\\\MPC8xx目錄中的代碼用于支持MPC8xx處理器系列的不同變體(包括MPC823,MPC850,MPC860)。體系抽象層移植同樣可以選擇相近的HAL作為模板,但是每種體系需要專門的eCOSGNU C/C++編譯器支持,若已有的編譯器不支持新體系結構,則需要先進行新體系編譯器的移植,其編譯過程參見參考文獻[3]。

        硬件抽象層的這3個子模塊之間沒有很明顯的界限。對于不同的目標平臺,這種區(qū)分具有一定的模糊性。一般來說,目標系統(tǒng)應該將體系結構抽象層、變體抽象層和平臺抽象層分別使用不同的包來加以實現(xiàn)。eCOS移植流程圖如圖1所示。

        3 eCOS移植在armsys2410開發(fā)板上的應用

        對目標硬件資源的充分了解是進行eCOS移植的基礎,要針對資源的分布在不同層次來實現(xiàn)系統(tǒng)移植[4,5]。這里采用的目標平臺是armsys2410開發(fā)板,其主要硬件資源如下:

        CPU:三星S3C2410,其屬于ARM920T系列;

        存儲器:1 MB NorFLASH,64 MB NandFLASH,2片4Banks×4 Mb×16 b SDRAM;

        外圍設備:LCD控制器,3路UART,CS8900 10M以太網(wǎng)控制器等;

        調試接口:20針ARM-ICE JTAG接口。

        eCOS移植需要在宿主機調用交叉編譯器,Redboot是位于HAL之上的命令行界面,它內置了GDB,HAL被移植到新硬件之后馬上就可以使用redboot來加載和調試程序[6]。因此這里的eCOS移植將從redboot開始。

        3.1 宿主機開發(fā)環(huán)境的建立

        本文所涉及的eCOS移植是在Windows XP環(huán)境下實現(xiàn)的,需要用到Cygwin,GNU本地開發(fā)工具、ARM平臺交叉開發(fā)工具以及eCOS配置工具。Cygwin是在Windows平臺上運行的Unix模擬環(huán)境,為eCOS配置工具提供支持,其具體的安裝過程可參見http://cygwin.com。在宿主機配置好開發(fā)環(huán)境后,就可以著手eCOS移植。

        3.2 在eCOS配置工具中加入S3C2410平臺

        Samsung公司的S3C2410處理器與Agilent公司的aaed2000處理器同屬于ARM920T平臺,這里采用aaed2000的HAL作為新平臺的模板。首先在eCOS\\\\packages\\\\hal\\\\arm\\\\arm9下建立S3C2410目錄并將eCOS\\\\packages\\\\hal\\\\arm\\\\arm9\\\\aaed2000\\\\current下所有文件復制到eCOS\\\\packages\\\\hal\\\\arm\\\\arm9\\\\S3C2410\\\\current目錄下,修改相應的文件名及文件內容以對應S3C2410平臺,其主要變動如下:

        (1) 將hal_arm_arm9_aaed2000.cdl改名為hal_arm_arm9_S3C2410.cdl,使其對S3C2410所有組件特性進行登記。該文件修改的主要命令有cdl_package命令,它用來在eCOS.db中加入新平臺相應的包,改變新包在eCOS配置工具中的描述和定義并改變編譯時需要的文件;cdl_component命令,它用來調整啟動模式和時鐘設置;cdl_option命令,它用來調整與時鐘密切相關的其他設置選項;

        (2) 修改eCOS.db數(shù)據(jù)庫文件,使其對S3C2410的所有組件名稱進行登記。這里只構建redboot最簡模版用來到目標平臺測試,增添的命令主要有package CYGPKG_HAL_ARM_ARM9_S3C2410命令和target S3C2410命令。

        接下來就可以在eCOS配置工具中找到剛才創(chuàng)建的S3C2410平臺,S3C2410模版及相應配置工具界面如圖2,圖3所示。在eCOS配置工具中保存設置后,選擇Build→Library 可以在S3C2410_install\\\\bin目錄下生成redboot鏡像,經(jīng)GNU編譯鏈接工具轉化為ELF文件燒錄到目標板中。若Redboot成功啟動,說明S3C2410平臺已成功的添加到eCOS庫中,下面就可以定制新的配置包來完善該平臺。

        3.3 定制新的配置選項和包

        這一步將對hal_arm_arm9_S3C2410.cdl文件和eCOS.db數(shù)據(jù)庫文件做進一步修改,添加或刪除一些命令以匹配新硬件平臺。

        對hal_arm_arm9_S3C2410.cdl文件的主要修改如下:

        cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS下的calculated選項由“1+CYGSEM_AAED2000_LCD_COMM”變?yōu)椤?”。目標平臺有2路串口,與模板中的串口設置不同。

        刪除cdl_option CYGPKG_HAL_ARM_ARM9_AAED2000_TESTS命令,畢竟這里沒有為新平臺生成測試。

        對cdl_option CYGNUM_HAL_ARM_AAED2000_CLOCK_HCLKDIV等與時鐘頻率和cache相關的配置項設置成S3C2410的配置。

        對eCOS.db數(shù)據(jù)庫文件進行登記包的修改,這里主要應去掉盡可能多的包,只留下最小功能包。因此,去掉了以太網(wǎng)、鍵盤和觸摸屏包CYGPKG_DEVS_ETH_CL_CS8900A,CYGPKG_DEVS_ETH_ARM_AAED2000,CYGPKG_DEVS_KBD_AAED2000,CYGPKG_DEVS_TOUCH_AAED2000。并且只添加串口包來實現(xiàn)串口通當其正常運行后再分別加入上述包并調試。

        3.4 內存布局調整

        內存布局文件位于S3C2410包的include\\\\pkgconf目錄下,新硬件平臺有3種啟動方式ROM,RAM,ROMRAM。分別對應了擴展名為.h,.ldi和.mlt的文件。.h文件包含內存域的C宏定義,.ldi墳件定義內存域和內存段位置的鏈接腳本文件,.mlt文件包括山MLT工具產(chǎn)生的對內存布局的描述。以ROM啟動為例,只需手動修改內存布局mlt_arm_arm9_S3C2410_rom.h和mlt_arm_arm9_S3C2410_rom.ldi文件,由于目標板有2塊16 MB SDRAM,故將mlt_arm_arm9_S3C2410_rom.h中的#define CYGMEM_REGION_ram_SIZE 設為0x00F00000,#define CYGMEM_REGION_rom_SIZE設為0x00800000。mlt_arm_arm9_S3C2410_rom.ldi文件分為2部分。MEMORY部分描述新平臺的內存位置和大小,該部分應與mlt_arm_arm9_S3C2410_rom.h保持一致;SECTION部分負責指揮鏈接器映射輸入?yún)^(qū)及輸出區(qū),必須保持新平臺下內存區(qū)位置的正確性。

        3.5 HAL初始化代碼修改

        對于S3C2410的ROM啟動方式而言,F(xiàn)LASH和SDRAM在初始化了讀數(shù)方式后會將數(shù)據(jù)段搬移而程序段保持不變。接下來系統(tǒng)會進行其他硬件的初始化過程,包括系統(tǒng)時鐘、系統(tǒng)CACHE控串口等基本硬件設備。HAL初始化代碼主要eCOS\\\\packages\\\\hal\\\\arm\\\\arch\\\\current\\\\src下的Vectors.S文件中,需要hal_hardware_init區(qū)域的實時時鐘、芯片選擇、中斷控制等處進行修改,此外為了保證新平臺的串口在使用redboot時能被正常的初始化,這里采用polling模式驅動而不是中斷方式驅動。

        3.6 生成新平臺的eCOS鏡像及應用程序

        從eCOS配置工具中選擇新添加的S3C2410模板,將PACKAGES選項設為defalt,選擇Build→Library就可以生成最終的eCOS庫文件。這里使用預編譯的C代碼應用程序hello.c在cygwin下通過makefile文件與eCOS庫文件libtarget.a相鏈接生成eCOS應用程序。Cygwin下的Makefile文件與Windows下的bat文件相類似,可以將cygwin的多條命令逐次執(zhí)行。Makefile文件的核心代碼如下:

        PKG_INSTALL_DIR = /cygdrive/d/workdir/eCOS/eCOS_install

        //指定上文所建//立的eCOS庫所在目錄

        XCC=arm-elf-gcc//所使用編譯器為eCOS官方提供的arm-elf-gcc.exe

        LIBS=-Ttarget.ld-nostdlib

        LD=MYM(XCC)//鏈接命令

        all:hello//要建立的主要目標文件

        在cygwin下將當前目錄調整為makefile和hello.c所在目錄,鍵入make命令便可生成hello.exe(elf格式的可執(zhí)行文件),然后使用objcopy程序將其轉換為hello.srec。在目標板啟動redboot后,在宿主機使用超級終端DNW將hello.serc燒入目標機中。Redboot提示符下運行go命令,得到的串口信息如圖4所示,由此可知,eCOS和它的應用程序已經(jīng)成功的在目標板上運行。

        4 結 語

        對eCOS移植的一般性方法進行了研究,將實現(xiàn)了最小功能的eCOS結合應用程序實例移植到ARM920T處理器的S3C2410開發(fā)板上,實驗結果證明移植后的eCOS運行穩(wěn)定,并可以正確地運行多線程應用程序。隨著eCOS的不斷成熟,憑借代碼的可裁減性、可移植性等優(yōu)勢,其勢必將越來越多地應用于嵌入式領域中,然而eCOS官方提供的源代碼遠不能滿足開發(fā)者的需要,本文為嵌入式開發(fā)人員提供了eCOS移植的具體步驟,對eCOS在ARM920T體系下的其他平臺移植有著指導意義。

        參考文獻

        [1]Anthony J Massa.Embedded Software Development with eCOS[M].Prentice Hall,2003.

        [2]蔣句平.嵌入式可配置實時操作系統(tǒng)eCOS開發(fā)與應用[M].北京:機械工業(yè)出版社,2004.

        [3]Anon.Building a Tool Chain for Use with eCOS.http://eCOS.sourceware.org,2007.

        [4]趙楚瑩,尹俊勛,梁偉豪.eCOS嵌入式系統(tǒng)的S3C2510以太網(wǎng)驅動程序設計[J].微計算機信息,2006(2):110-112.

        [5]周永紅,王玲玲.如何構建eCOS嵌入式系統(tǒng)[J].單片機與嵌入式系統(tǒng)應用,2005(11):79-81.

        [6]Red.Hat.Inc. eCOS Centric Ltd..eCOS Reference Manual.2003.

        [7]李廷軍,林雪原,董文洪,等.利用銣鐘實現(xiàn)組合導航系統(tǒng)研究.通信學報,2006,27(8):144-147,154.

        [8]李廷軍,周娜,于傳健,等.數(shù)據(jù)復接器研究.海軍航空工程學報,2005,20(1):145-146.

        [9]Li Tingjun.Data Acquiring System Based on Vxi Bus[J].2nd International Conference on Active Media Technology ,2004(5):688-692.

        [10]Li Tingjun.Automatic Measuring Mode of a Reciprocal Two-port Network[C].5th International Symposium on Test and Measurement,2003(6):905-907.

        [11]Li Tingjun.The System of Long-range Monitor and Measurement Based on Common Telephone[C].5th International Symposium on Test and Measurement.,2003(6):1 490-1 493.

        [12]Li Tingjun.Design of Computer Management System[C].3rd International Conference on Wavelet Analysis and Applications,2004(5):744-749.

        [13]Li Tingjun.Design of Boot Loader in Embedded System[J].Proceedings of the 6th International Progress Wavelet Analysis and Active Media Technology.

        成人国内精品久久久久一区| 亚洲一区免费视频看看| 经典三级免费看片天堂| 亚洲精品~无码抽插| 亚洲欧洲中文日韩久久av乱码| 男人阁久久| 亚洲中文字幕一区av| 亚洲国产精品成人久久| 无码粉嫩虎白一线天在线观看 | 一本一本久久a久久精品| 99久久无色码中文字幕鲁信| 亚洲中文字幕日韩综合| 国产成人精品午夜二三区波多野| 又爽又黄禁片视频1000免费| 亚洲日产国无码| 日本视频一中文有码中文| 欧美另类人妖| 中文字幕欧美一区| 中文字幕日韩人妻在线| 中文字幕人妻少妇伦伦| 国产精品伦一区二区三级视频| 欧美精品一级| 精品国产夫妻自拍av| 亚洲国产精品成人天堂| 亚洲国产韩国欧美在线| 亚欧乱色束缚一区二区三区| 男女深夜视频网站入口| 国产七十六+老熟妇| 午夜家庭影院| 精品一区二区三区长筒靴| 森中文字幕一区二区三区免费| 欧美另类高清zo欧美| 欧美三级超在线视频| 亚洲av成人波多野一区二区| 无码中文字幕日韩专区| 无遮无挡三级动态图| 日本中文字幕一区二区视频| av在线免费观看网站免费| 精品人妻va出轨中文字幕| 91精品综合久久久久m3u8 | 在线视频99|