基于ARM的Linux系統移植研究與實現
摘要:Linux具有源代碼開放、效率高、可裁剪等優點,在嵌入式系統的開發中具有廣泛的應用。文章介紹了嵌入式Linux操作系統、移植目標平臺SBC2410及Linux內核源代碼的目錄結構,分析了Linux移植到SBC2410平臺的實現過程,闡述了Linux內核、u-boot的裁剪和編譯以及根文件系統的制作過程,最后在SBC2410平臺上成功移植了嵌入式Linux系統。
關鍵詞:SBC2410:Linux;嵌入式系統;系統移植
0 引言
嵌入式系統是一個專用的計算機系統。該系統以計算機技術為基礎,軟硬件可裁減,但對功能、可靠性、成本等都有嚴格的要求。今天,一些專用系統需要處理大量的信息,由于傳統的計算機系統很難實現硬件可裁減,因而已經不能滿足專用系統的需要。伴隨著我國汽車、家電等產業的快速發展,嵌入式系統的應用與開發已成為目前IT產業的一個新的熱點。基于ARM的嵌入式系統的開發,首先要解決的問題是嵌入式操作系統的移植。Linux操作系統作為一種源代碼開放、同時可支持多種處理器結構的多任務操作系統,具有內核小、易裁剪、可移植性好等優點,是目前嵌入式系統應用與開發的主流操作系統。本文主要研究在ARM9平臺上搭建嵌入式Linux系統的實現方法。
1 嵌入式Linux操作系統及特點
目前,在嵌入式系統開發中,52%的項目選擇Linux作為嵌入式操作系統,這與Linux自身的優良特性有不可分割的關系。
Linux操作系統內核源代碼開放,并具有豐富的軟件資源。不同的應用領域可以根據需要對內核進行修改,每一種通用程序在Linux都能找到。在Linux上開發程序不需要從頭做起,可以選擇一個類似的軟件進行二次開發,因而能夠低成本地開發出滿足自己需要的嵌入式系統。
另外,Linux系統能支持多種硬件設備,而且驅動豐富,能支持多種主流硬件設備和最新硬件技術。隨著Linux的廣泛應用,許多芯片生產廠家也已經開始為Linux提供驅動,這為Linux在各種硬件平臺上的應用奠定了基礎。
Linux可支持多種體系結構,具有較好的可移植性。目前,Linux已經移植到絕大多數硬件平臺上,能夠支持ARM、MIPS、LPHA、SPARC等多種體系,Linux支持幾乎所有流行的CPU。Linux具備一整套工具鏈,容易建立嵌入式系統的開發環境和交叉運行環境,可跨越嵌入式系統開發中仿真工具的障礙。由于其符合IEEE POSIX.1標準,因而應用程序具有較好的可移植性。
Linux具有完善的網絡通信和文件管理機制。實際上,Linux從一開始就與網絡密不可分,網絡是Linux的最為顯著的特征。Linux具有ARM9上的嵌入式Linux系統移植的特性,從而保證了它支持所有標準因特網協議,可以利用Linux的網絡協議棧開發嵌入式TCP/IP網絡協議棧。同時,Linux支持ext2、fat16、fat32、romfs等文件系統,從而為嵌入式系統應用開發打下了很好的基礎。
2 Linux在ARM平臺上的移植
2.1 SBC2410硬件平臺介紹
SBC2410硬件平臺是具有基于ARM9處理器SBC2410A,可支持ARM—Linux、WindowsCE等操作系統的嵌入式硬件平臺。主要硬件資源有一片64 MB SDRAM,一片64 MBNandFlash,一片1 MB Nor Flash,一個串口COM0,一個USB Host A型接口,一個USB Slave B型接口,以及一個標準的JTAG接口等。
2.2 Linux在ARM平臺上的移植準備
首先是要建立交叉編譯環境。交叉編譯環境是一個由編譯器、連接器和解釋器組成的綜合開發環境。交叉編譯工具主要包括編譯器gcc,二進制工具binutils,目標系統的標準c庫glibc和目標系統的Linux內核頭文件。宿主機要選好做嵌入式開發的Linux操作系統,配置好網絡、NFS服務等。因為目標機沒有足夠的資源運行開發工具和調試工具,所以要在宿主機上建立交叉編譯環境,然后由交叉編譯工具生成可執行二進制代碼(并不能在宿主機上運行),再下載到目標板上調試和運行。交叉編譯標準c環境的生成步驟包括以下四步:
(1)獲得binutils、gcc、glibc的源碼;
(2)配置編譯binutils,得到匯編器和連接器;
(3)配置編譯gcc源碼,生成gcc編譯器;
(4)配置glibc編譯生成glibc的c庫函數。
評論