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

基于SEP4020的嵌入式Linux移植

2008-12-31 00:00:00岳躍冰錢麗麗
電腦知識與技術 2008年15期

摘要:描述了將Linux 移植到基于SEP4020處理器的目標板上的方法和過程,包括交叉編譯環境的建立,開發工具使用,內核的裁剪、編譯以及文件系統的移植。

關鍵詞:嵌入式;Linux;移植

中圖法分類號:TP316文獻標識碼:B 文章編號:1009-3044(2008)15-20ppp-0c

An Embedded Linux Porting Based on SEP4020 Processor

YUE Yue-bing1,QIAN Li-li2,LIU Hao3

(1.IC College of Southeast University, Nanjing 210096,China;2.Research Institute of Southeast University in Suzhou,Suzhou 215123,China;3. ASIC Center,Southeast University,Nanjing 210096,China)

Abstract:The paper described the method and process of porting Linux to the target board based on SEP4020 processor,including the construction of cross compile environment,the usage of developed tools,the reduction and compilation of Linux kernel and the porting of file systems.

Key words:embedded;Linux;porting

嵌入式系統 (Embedded System) 是以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。它包括嵌入式微處理器和嵌入式操作系統兩大主要方面,將嵌入式操作系統移植到特定的微處理器平臺上,并構建出穩定的開發系統,是嵌入式系統應用的必要前提,也是進行嵌入式產品開發的基礎。

Linux是一種性能優良、源碼公開且被廣泛應用的免費操作系統,在嵌入式領域得到了越來越多的應用。Linux 具有多任務、多用戶、高效、穩定的特性,同時內核小巧靈活,而且代碼完全開放,用戶可以根據實際需求對Linux 內核進行修改、裁剪。這些特性使得它很適合于嵌入式系統的應用。

1 目標硬件平臺介紹:

SEP4020由東南大學國家專用集成電路系統工程技術研究中心設計,使用0.18um標準CMOS工藝設計,內嵌ARM720 T內核(32位RISC內核,帶8KB指令數據Cache)

芯片集成了各種功能包括:提供SDRAM控制器;針對低成本移動終端的需求,提供靈活的外部總線寬度配置,支持NANDFLASH啟動;提供了10M/100M自適應以太網MAC;支持RMII接口;支持MMC/SD卡;支持USB接口,I2S音頻接口;有LCD控制器,支持TFT彩屏和STN黑白、灰度屏;RTC支持日歷功能/WatchDog,支持后備電源;10通道TIMER,支持捕獲、外部時鐘驅動和MATCH OUT;4通道PWM,支持高速GPIO;4通道UART,均支持紅外;2通道SSI,支持SPI和Microwire協議;2通道SmartCard接口,兼容ISO7816協議;支持最多91個GPIO,18個外部中斷;支持外部DMA傳輸。豐富的外設接口,方便終端產品的數據傳輸與功能擴展;片上DPLL,支持IDLE、SLOW、NORMAL、SLEEP多種功耗模式,可有效的降低系統功耗。

2 交叉編譯環境的建立

首先需要建立交叉編譯開發環境,在開發主機上安裝桌面Linux 操作系統,或者在虛擬機上安裝Linux 操作系統 ,然后在Linux系統下安裝交叉編譯工具 :binutils, gcc 和glibc ,其中 binutils 是做二進制處理的工具 , gcc是編譯用的工具,glibc是鏈接和運行庫。將cross_2.95.3 tar.bz2 在/usr/local/arm 路徑下進行解壓 ,并在/etc/profile 文件中修改路徑 PATH = $ PATH: /usr/local/arm/2.95.3/bin 。

然后就可以在該平臺上編譯內核和需要運行在目標板上的代碼,編譯完成后由連接器生成與目標系統存儲器地址相關的可執行映像,再將可執行映像燒錄到目標板上來運行,就完成了移植工作。

3 Linux 移植過程

3.1 Linux內核定制:

本文采用的是成熟的2.4.18版本的內核:Linux-2.4.18.tar.bz2 及相關的補丁patch-2.4.18.bz2 。

Linux的內核配置系統由Makefile腳本文件,config.in配置腳本文件和配置工具組成。在Linux-2.4.18目錄下執行make menuconfig ,界面型配置工具按照配置腳本config.in的內容顯示可用的配置選項。在配置完成后,保存退出,配置信息被保存在配置文件.config中,原有的.config文件被更名為.config.old。Makefile根據.config中的配置信息,構造出需要編譯的源文件列表,然后分別進行編譯;并根據Makefile中指定的鏈接器腳本,把目標代碼鏈接在一起,最后形成Linux的Kernel Image。

修改源碼下的Makefile文件,指定目標代碼類型和編譯器:

由于SEP4020采用的是基于ARM720T 內核的處理器,支持MMU,因此在makefile中的體系結構選擇ARCH : = arm 。

編譯器Compiler的選擇:CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-

在shell 命令下使用 $make menuconfig 對內核進行逐項配置,其中大部分選項可以使用其缺省值,還有些選項比如處理器類型,板級支持,對RAM的支持,設備驅動的支持以及對文件系統的支持等根據實際的需要進行選擇,盡量去掉不必要的功能。

由于我們要使用網絡功能,所以需要對內核模塊網絡功能進行配置,配置“Networking support”選項,選擇Packet Socket選項, TCP/IP networking選項,使內核支持TCP/IP協議。multicasting、advanced router、kernel level autoconfigration這3個選項不需要加入內核。完成相關網絡協議配置后,需要進行網絡設備的配置,選擇Ethernet(10 or 100Mbit),other ISA card,NE2000/NE1000 support的配置。

Linux 內核配置界面,如下圖所示:

3.2 內核的編譯:

配置完成后,使用指令 $ make dep ,$ make zImage對內核進行編譯,我們采用壓縮方式編譯內核 ,生成的壓縮內核映像文件zImage 位于arch/arm/boot 目錄下 ,這種方式編譯生成的內核映像文件很小,比較適合嵌入式系統使用,將該內核映像文件燒寫到Flash 中 ,啟動時由引導程序將內核從Flash中加載到RAM中解壓后運行。

但只有這個內核還無法與系統進行交互,嵌入式Linux 在啟動時需要一個根文件系統。因為Linux系統中的文件和設備是通過文件系統來組織的,文件系統使數據和設備可以被透明、有效的存取訪問。一個簡單的文件系統應該包括系統使用的軟件和庫,以及為用戶提供基本支持的架構和指令。一般包括以下幾個目錄:/bin 、/sbin、/etc、/boot、/dev、/lib、/mnt、/proc、/usr。把配置文件、動態函數庫等放在相應的目錄下。

3.3 使用Busy Box制作Ramdisk

Busybox是一個集成了一百多個最常用linux命令和工具的軟件,而且還集成了一個http服務器和一個telnet服務器,而所有這一切功能卻只要1M左右的大小,Busybox把常用的工具和命令壓縮在一個可執行文件里。

配置Busybox:

Busybox的配置程序和linux內核菜單配置方式一樣。可根據自己的需要選擇功能選項:

$make menuconfig

Busybox Settings >

General Configuration >

[*] Support for devfs

Build Options >

[*] Build BusyBox as a static binary (no shared libs)這個選項是要選擇的,這樣才能把busybox編譯成靜態鏈接的可執行文件,運行時才能獨立于其他函數庫。否則需要其他庫文件才能運行,在單一linux內核下不能正常工作。

Installation Options

Don't use /usr 這個選項也一定要選,否則make install 后busybox將安裝在原系統的/usr下,這將覆蓋掉系統原有的命令。其他選項都是一些linux基本命令選項,需要哪些命令就編譯進去,一般使用默認的就可以了。配置好后,保存退出。使用指令 #make ,#make install編譯busybox 。

最后將bootloader , zImage和initrd一起燒錄到flash中,上電后boot loader加載內核并初始化ram disk,內核把initrd轉化成正常的ram disk 并釋放initrd使用的內存,initrd作為root被掛載,賦予讀寫權限。然后/linuxrc被執行,linuxrc掛載真正的根文件系統,可以看到系統的啟動信息打印,至此一個基于2.4.18內核的Linux系統就成功移植到SEP4020上了。

4 ARM-Linux中的中斷機制實現

中斷處理是嵌入式系統中的一項重要技術,通過中斷,使得處理器和外設并行工作,提高了系統的執行效率。Linux將中斷服務程序分為“Top Half”和“Bottom Half”兩部分。Top half對時間要求嚴格,在中斷請求發生后要立即完成,此時CPU關中斷, Bottom Half是根據Top Half需要來調度執行的,對時間要求不嚴格,在CPU開中斷下執行。Linux2.4內核在bottom half機制的基礎上引入“軟中斷請求”(softirq)機制以適應SMP系統的需求。

對應具體軟件實現,在start_kernel()中,定義兩個中斷初始化函數:trap_init()和IRQ_init(),分別用于實現第一級和第二級中斷向量的初始化。Trap_init()通過調用entry-armv.S中的(__trap_init)函數段,在系統的0x00地址處放置ARM的異常向量表,然后在0x200處建立各個異常(如irq、fiq、data、undefined等)的分類處理。IRQ_init()在具體設備初始化時會將其中斷處理程序通過request_irq()向系統注冊,調用setup_arm_irq()掛入中斷請求隊列,參數irq是中斷請求號,對應于中斷控制器為每個中斷源配置的中斷號。中斷發生時,根據中斷請求調用相應的中斷處理函數,中斷處理結束時通過free_irq來釋放中斷。

結束語:本文討論了將Linux操作系統移植到目標系統SEP4020上的過程中的一些關鍵技術并討論了ARM-Linux的中斷機制。移植后的Linux保留了原有的工作穩定的特點。而Linux突出的嵌入式特性與性能優越的SEP4020相結合,使其在嵌入式領域有著廣闊的應用天地,可以進而開發其它各種應用程序。

參考文獻:

[1]許信順,賈智平.嵌入式Linux 應用編程[M].機械工業出版社,2007.1.

[2]陳鐵軍,仇洪冰.基于S3C2410的嵌入式Linux的移植方法[J].桂林電子工業學院學報,2006年8月,第26卷,第4期,259-263.

[3]李程遠,劉文峰,李善平.ARM在EP7312上的移植[J].計算機工程與設計,2003年7月,第24卷,第7期,73-76.

[4]梁千帆,陳建華,孔凡軍.基于2.6.19內核的小型Linux系統制作與移植[J].電子產品世界,2007/08,106-107.

收稿日期:2008-4-16

作者簡介:岳躍冰(1981-),女,河南開封市人,碩士研究生,研究方向:嵌入式系統。

主站蜘蛛池模板: 国产AV毛片| 欧美成人aⅴ| 国产福利大秀91| 激情无码字幕综合| 国产成人乱无码视频| 十八禁美女裸体网站| 美女扒开下面流白浆在线试听 | 人妻无码一区二区视频| 欧美日韩另类在线| 国产免费a级片| 亚洲美女一区| 国产精品九九视频| 亚洲精品男人天堂| a欧美在线| 狠狠ⅴ日韩v欧美v天堂| 欧美精品伊人久久| 蜜臀AVWWW国产天堂| 国产女人综合久久精品视| 国产91无毒不卡在线观看| 国模在线视频一区二区三区| 干中文字幕| 国产福利观看| 99视频在线观看免费| 亚洲视频四区| 91午夜福利在线观看精品| 无码国产偷倩在线播放老年人| 视频一本大道香蕉久在线播放| 国产精品男人的天堂| 久久久久亚洲精品无码网站| aaa国产一级毛片| 国产精品视频观看裸模| 亚洲av无码人妻| 成人伊人色一区二区三区| 亚洲愉拍一区二区精品| 日本午夜精品一本在线观看| 国产成人啪视频一区二区三区| 99re在线免费视频| 亚洲无限乱码一二三四区| 尤物成AV人片在线观看| 久久这里只有精品66| 精品一区二区三区自慰喷水| 成人日韩欧美| 国产99热| 亚洲无码免费黄色网址| 噜噜噜久久| 老司机久久精品视频| 伊人久久婷婷| 亚洲视频无码| 99久久性生片| a级毛片免费看| 九九热在线视频| 欧美、日韩、国产综合一区| 亚洲91精品视频| 国产精品区视频中文字幕| 97超级碰碰碰碰精品| 成人福利免费在线观看| 欧美日韩在线国产| 五月激情综合网| 99视频精品在线观看| 久久99国产综合精品1| 人妻91无码色偷偷色噜噜噜| 婷婷亚洲视频| 午夜国产理论| 日韩黄色在线| 国产精品视屏| 久久夜色精品| 亚洲综合经典在线一区二区| 黄片在线永久| 久久香蕉国产线看精品| 欧美成人综合视频| 中国国产A一级毛片| 五月天天天色| 青草国产在线视频| 中国国产A一级毛片| 天天操精品| 日韩高清一区 | 国内自拍久第一页| 国产网友愉拍精品| 国产xx在线观看| 欧美日一级片| 亚洲香蕉在线| 日韩黄色大片免费看|