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

基于ADSP-BF533的μClinux嵌入式系統移植與開發

2008-04-12 00:00:00
現代電子技術 2008年12期

摘 要:Linux是一種支持多種體系結構處理器的操作系統,其有很強的移植性。描述將μClinux移植到基于BF533處理器目標板上的方法與過程。首先介紹BF533處理器和μClinux,并簡單說明如何搭建移植環境,然后著重討論在該目標板上U-Boot的設計實現以及μClinux內核的移植方法,最后對在這種基于μClinux的嵌入式系統環境下開發應用程序做了簡單說明。對將μClinux移植到其他處理器為核心的硬件平臺有一定的借鑒作用。

關鍵詞:嵌入式系統;移植方法;μClinux;ADSP-BF533;U-Boot

Transplanting and Development of μClinux Embedded System Based on ADSP-BF533

WU Chuan,WANG Bin

(Information Engineering Institute,PLA Information Engineering University,hengzhou,450002,China

Abstract:Linux supports various architecture and is an operation system which is easy to be ported.The technique of transplanting μClinux to one board based on ADSP-BF533 processor is introduced in this paper.ADSP-BF533 and μClinux are introduced at first,and an explanation of building porting environment is given.All the work consists of the design and implementation of U-Boot,the transplanting method of μClinux kerne1.At last,the development of application programme based On μClinux embedded system is explained.It has some impact on transplanting μClinux to the hardware platform which kernel is processor.

eywords:embedded system;transplanting method;μClinux;ADSP-BF533;U-Boot

Blackfin處理器是基于由美國模擬器件公司(ADI和Intel公司聯合開發的微信號架構(MSA的首款第4代DSP產品,它是ADI公司16位產品的一個大系列。這一新產品是專為通信和互聯網應用而設計的通用DSP芯片,適合處理廣泛用于互聯網中的大量圖像、聲音、文本和數據流,也可應用于汽車電子可視系統、寬帶無線系統、消費類多媒體電子、數字攝像機、多通道VoIP、安全和監督、機頂盒和視頻電話會議等方面。本文所用到的ADSP-BF533是Blackfin系列處理器的典型代表。

1 μClinux簡介

μClinux從Linux 2.0/2.4內核派生而來,沿襲主流Linux的絕大部分特性。它是專門針對沒有MMU的CPU,并且為嵌入式系統做了許多小型化的工作。適用于沒有虛擬內存或內存管理單元(MMU的處理器。由于μClinux在標準的Linux基礎上進行了適當的裁剪和優化,形成了一個高度優化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,但μClinux仍然保留了Linux的大多數的優點:穩定、良好的移植性、優秀的網絡功能、完備的對各種文件系統的支持、以及標準豐富的API等。

μClinux的主要特點如下:

(1 內存管理

這部分是μClinux與傳統Linux區別最大的地方。對于μC1inux來說,其設計針對沒有MMU的處理器,即μC1inux不能使用處理器的虛擬內存管理技術,μClinux仍然采用存儲器的分頁管理。系統在啟動時把實際存儲器進行分頁,在加載應用程序時程序分頁加載,但是由于沒有MMU管理,因此實際上μClinux采用實存儲器管理策略。這一點影響了系統工作的很多方面。

(2 μClinux的內核加載方式

μClinux的內核有2種可選的運行方式:可以在FLASH上直接運行,也可以加載到內存中運行。由于RAM的存取速率要比FLASH高,因此后者可以減少內存需要,運行速度也更快。

(3 μClinux的文件系統

μClinux系統采用romfs文件系統。這種文件系統相對于一般的ext2文件系統要求更少的空間。這是由于內核支持romfs文件系統比支持ext2文件系統需要更少的代碼,而且romfs文件系統相對簡單建立文件系統超級塊(superblock需要的存儲空間更少。

(4 μClinux的應用程序庫

μClinux小型化的另一個做法是重寫應用程序庫。相對于越來越大且越來越全的庫glibc μClibc對libc做了精簡。(5 可執行文件格式

μClinux系統使用flat可執行文件格式。另外,μClinux還提供通用的Linux API支持完整的TCP/IP協議堆棧和大量其他的網絡協議,支持包括NFSext2 ROMfs等多種文件系統。

2 建立μClinux開發環境

嵌入式系統的開發與一般的應用開發最大的差別在于,前者需要建立特殊的硬件環境,而后者一般基于特定的操

作系統或分布式平臺。后者的平臺已經對硬件或網絡媒質做了抽象,從而不需要由系統開發者來完成這些工作。而在嵌入式系統開發中,這也由開發者完成。

嵌入式系統開發環境一般分成主機端(HOST和目標板(TARGET兩個部分。主機端是開發平臺,用于運行開發過程中的各種工具(如Linux操作系統和ADI提供的集成開發環境Visual DSP++等;目標板是運行和測試平臺,是嵌入式系統的最終駐留環境。在主機端和目標板之間需要通過某種方式進行通信,如使用RS 232串口或網口。通信的目的在于發送控制指令和傳輸數據,同時獲得反饋信息。圖1是系統移植工作的硬件環境。

目標板的硬件平臺如圖1所示:

主機端的PC使用COM1和BF533的UART相連接,通過串口完成對目標板的必要控制功能。本文設計的ADSP-BF533目標板上配備有1塊SMSC LAN91C111以太網卡芯片和主機端建立原始(rawIP連接,使用鏈路層地址完成大批量數據的傳送。

在硬件環境建立之后,就需要創建軟件開發環境。軟件環境主要是指Blackfin體系結構的交叉編譯環境。建立交叉編譯環境首先要有交叉開發工具。交叉編譯工具是指一組運行在某一種處理器上,卻可以編譯出另一種處理器上執行的指令的工具。它由一套用于編譯、匯編和鏈接內核及應用程序的組件組成,通過編譯可以使μClinux內核和應用程序在目標設備上運行。

編譯μClinux一般使用GNU開發套件作為交叉編譯器工具鏈,它包括一系列的開發和調試工具。在官方網站http://blackfin.μClinux.org上提供了Blackfin系列處理器內核的交叉編譯工具。下載后按照說明解壓到Linux系統的相應文件夾里,并設置系統環境變量,使這些交叉編譯工具所在的目錄為全局環境變量。至此就建立好了μClinux的軟件開發環境。

3 利用U-Boot引導內核

U-Boot(Universal Boot Loader是當前比較流行的遵循GPL條件的開放源碼項目。也是是嵌入式Linux系統常用的Boot Loader之一。其完成的功能是初始化硬件設備、改變處理器運行模式、重組中斷向量和建立內存空間映射圖,從而將系統的軟硬件帶到一個合適的狀態或者用戶定制的特定狀態,以便為最終加載操作系統內核準備好正確的環境。

U-Boot具有源碼公開的特點,開發人員可根據自身需要進行裁減;支持多種處理器和嵌入式操作系統內核;具有多種設備驅動源碼:支持種引導方式;具有功能強大且成熟、穩定等諸多優點,故本文采用U-Boot引導μClinux內核。U-Boot嚴重依賴于底層硬件,不同的CPU或嵌入式板極設備需要不同的U-Boot,不過因為本文的重點是μClinux的移植,所以這里不再詳述U-Boot的具體實現過程。 

當系統上電后,U-Boot從地址OxO開始執行,將存儲器映射重新配置,如圖1所示,并會執行μClinux的固化內核。U-Boot可以使用ADI的仿真軟件Visual DSP++通過仿真器或JTAG口下載到目標板上。

4 μClinux內核的編譯和移植

作為操作系統的核心,μClinux內核負責管理系統的進程、內存、設備驅動程序、文件系統和網絡系統,決定著系統的各種性能。μClinux內核采用模塊化的組織結構,通過增減內核模塊的方式來增減系統的功能。

4.1 內核配置

雖然μClinux的內核代碼大部分獨立于處理器和其體系結構,但是最底層的代碼還是基于特定系統的。雖然各個系統存在相同之處,但是它們的中斷處理上下文、內存映射的維護、任務上下文和初始化過程是獨特的。這些例行程序放置在μClinux代碼樹的arch/目錄下。這里需要根據自己的硬件平臺來配置內核代碼。配置過程如下:

可以從官方網站http://blackfin.μClinux.org處下載μClinux-list的內核源代碼。運行解壓命令:將tar -xvf μClinux-dist.tar.gz解壓完畢后,就會生成/μClinux-dist目錄,加入該目錄后按如下順序編譯內核:

(1 make menuconfig;進入菜單方式配置指令;

(2 選擇所使用的平臺類型和所使用的庫

本文設計的目標板選擇:AnalogDevices/BF533-EIT和μC-libc庫。在配置欄中,選擇Load an Alternate Configuration File,按確認,退出配置欄;

(3 make dep;尋找依存關系;

(4 make clean;清除以前構造內核時生成的所有目標文件、模塊文件和一些臨時文件;

(5 make lib_only;編譯庫文件;

(6 make user_only;編譯用戶應用程序文件;

(7 make romfs;生成romfs文件系統;

(8 make image;生成鏡像文件然后通過Jtag口輸入到目標板;

(9 make;通過各個目錄的makefile文件進行,會在各目錄下生成一大堆目標文件。

在上述步驟完成后,就完成了對μClinux源碼的編譯工作。最后會在/μClinux-dist/images目錄下看到3個內核文件:linux.dxe,linux.bin和zImage.bin。如果編譯不成功,需要根據編譯過程的提示信息找到錯誤并重新編譯,直到成功為止。

4.2 修改配置內核代碼

直接由源代碼編譯生成的內核映像文件一般不會啟動成功,需要根據自己的目標板進行配置。需要修改系統啟動初始化文件crt0_ram.s,sysinit.c和ram.ld。

在crt0_ram.s中需要根據自己的目標板修改基地址、存儲器大小和起始地址。在sysinit.c中需要修改片選設置,分別對FLASH和SDRAM進行片選設置。在ram.ld中修改內核連接加載地址。做完上面的修改,重新編譯生成linux.dxe等文件。

4.3 μClinux內核的下載與執行

μClinux 內核有2種可選的運行方式:一種是在FLASH上直接運行;另一種是加載到內存中運行,系統啟動時從FLASH中讀取壓縮的內核代碼(存儲器空間有限,所以一般需要壓縮內核代碼到內存中解壓,然后開始執行,這種方法比第一種的速度更快(RAM的存取速度比FLASH的快。所以選取第二種方法。

編譯好的內核文件可以由Visual DSP++開發裝置,通過網口或串口把linux.dxe下載到目標板的FLASH中,從設定的入口地址(一般為0x1000執行即可啟動內核。

啟動μClinux就可以在超級終端看到μClinux的歡迎信息和簡單的shell提示符,界面如圖3所示。

5 在μClinux下添加應用程序

為了方便,μClinux用戶層的應用程序代碼都放在/μClinux-dist/user/目錄下,否則要自己重新定義很多宏,而且容易出錯。具體實現過程如下:

(1 在工作目錄的user目錄下創建應用程序的文件夾user/app然后編寫應用程序,編寫方法和普通的應用程序一樣;

(2 在文件/user/Makefile里添加如下一句以便把用戶的應用加入到μClinux系統的編譯列表中;

dir_MYM(CONFIG_USER_MYAPP+=app

(3 在/config/config.in里加入如下語句:

mainmenu_option next_comment

comment\"My New Application\"

bool‘myapp'CONFIG_USER_MYAPP

endmenu

這樣在編譯時會多1個配置選項,當選擇這一選項時,字符串“CONFIG USER MYAPP”就會定義為“Y,參考上一個步驟,dir Y+=app,應用會被編譯入內核

(4 為便于內核配置在/config/config.help中加入有關該應用的幫助說明;

(5 回到/μClinux-dist目錄,執行make編譯μClinux系統內核和這里的應用程序。

6 結 語

對于嵌入式系統開發人員來說,要將嵌入式操作系統應用到嵌入式系統中,首先要做的工作是根據不同的硬件平臺移植操作系統,掌握移植的方法非常重要。

本文所述的移植方法已經成功應用于多個項目的開發。所述的移植雖然是針對Blackfin處理器芯片ADSP-BF533,但重點闡述的是移植的思路和方法。對將μClinux移植到其他處理器為核心的硬件平臺也有借鑒作用。

本文從如何將嵌入式操作系統μClinux與特定硬件相結合出發,分析移植μClinux到ADSP-BF533的過程。

作者將自己成功移植所修改的部分做了詳細的分析。有利于應用μClinux的人員快速理解,移植μClinux到特定的硬件平臺上去。

參 考 文 獻

[1]李巖,榮盤.基于S3C44B0嵌入式μClinux系統原理及應用[M].北京:清華大學出版社,2005.[LL]

[2]楊瑞亞,肖璋.嵌入式μClinux內核啟動過程分析與設計[J].微計算機信息,2005,21(8z):32-33.

[3]陳峰.Blackfin系列DSP原理與系統設計[M].北京:電子工業出版社,2004.

[4]楊銳,趙剡.ARM系統設計及USB主機擴展方案[J].微計算機信息,2005,21(3):72-73.

[5]郭正康,邱紹峰,黃俊.μClinux嵌入式系統上SNMP擴展代理實現[J].現代電子技術,2006,29(24:78-80.

作者簡介 吳 川 男,1982年出生,山東榮成人,碩士研究生。主要研究方向為通信中的現代信號處理、嵌入式系統。

主站蜘蛛池模板: 国产一区二区人大臿蕉香蕉| 狠狠色香婷婷久久亚洲精品| 91成人在线观看视频| 国产18在线| 亚洲高清国产拍精品26u| 国产精品久久久久久久久kt| 久久午夜夜伦鲁鲁片无码免费 | 香蕉网久久| 国产香蕉在线视频| 国产精品人成在线播放| 国产av一码二码三码无码| 又污又黄又无遮挡网站| 日韩av无码精品专区| 亚洲大尺码专区影院| 第九色区aⅴ天堂久久香| 亚洲九九视频| 日韩123欧美字幕| 国产成人精品日本亚洲| 99re热精品视频中文字幕不卡| 天天躁夜夜躁狠狠躁躁88| 少妇极品熟妇人妻专区视频| 免费观看男人免费桶女人视频| 成人国产精品视频频| 在线国产91| 伊人久久精品无码麻豆精品| 中文字幕在线看| 午夜电影在线观看国产1区| 99性视频| 亚洲最黄视频| 亚洲精品在线91| 中文字幕亚洲无线码一区女同| 朝桐光一区二区| 欧美色图第一页| 亚洲人成影视在线观看| 日韩免费毛片| 亚洲国产精品无码久久一线| 亚洲日韩精品综合在线一区二区 | 伊人天堂网| 国产网站在线看| 亚洲IV视频免费在线光看| 91精品国产91久久久久久三级| 国产亚洲精品91| 国产精品分类视频分类一区| 国产精品人莉莉成在线播放| 97人人模人人爽人人喊小说| 午夜丁香婷婷| 视频一区亚洲| 亚洲成aⅴ人在线观看| 狠狠色丁香婷婷综合| 经典三级久久| а∨天堂一区中文字幕| 国内精品伊人久久久久7777人| 精品一区二区三区水蜜桃| 国产成人亚洲无码淙合青草| 久草美女视频| 很黄的网站在线观看| 国产福利2021最新在线观看| 无码专区第一页| 亚洲一级毛片| 国产爽歪歪免费视频在线观看| 黄片一区二区三区| 国产精品思思热在线| 日韩精品一区二区深田咏美| 国产精品美女自慰喷水| 88av在线看| 亚洲国产成人超福利久久精品| 日韩欧美视频第一区在线观看| 久99久热只有精品国产15| 91蜜芽尤物福利在线观看| 国产无码精品在线| 久久精品亚洲专区| AⅤ色综合久久天堂AV色综合| 国产成人欧美| hezyo加勒比一区二区三区| 久久精品国产精品国产一区| 亚洲一区二区三区国产精华液| 久久夜色精品| 成人在线第一页| 国产精品入口麻豆| 在线播放国产一区| 亚洲天堂精品在线| 精品国产欧美精品v|