當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]PXA255的嵌入式Linux應(yīng)用平臺的構(gòu)建

1 引言

嵌入式Linux(Embedded Linux)是指對Linux經(jīng)過小型化裁剪后,能夠固化在容量僅有幾十萬字節(jié)的存儲器芯片或單片機(jī)中,應(yīng)用于特定嵌入式場合的專用Linux操作系統(tǒng)。嵌入式Linux是由很多體積小且性能高的微內(nèi)核系統(tǒng)組成,在內(nèi)核代碼完全開放的前提下,不同領(lǐng)域和不同層次的用戶可以根據(jù)自己的應(yīng)用需要很容易地對內(nèi)核進(jìn)行改造,在低成本的前提下,設(shè)計和開發(fā)出真正滿足自己需要的嵌入式系統(tǒng)。

隨著電子市場的發(fā)展壯大,高性能低功耗的多媒體手提設(shè)備和無線設(shè)備越來越受到市場的歡迎,Intel XScale PXA255處理器正是針對這一情況推出的。它采用Intel XScale微結(jié)構(gòu)體系框架,采用ARMV5TE的7級超流水線,可以工作在200MHz、300MHz、400MHz下,集成了許多常用的外圍接口,功能強(qiáng)大。本文將介紹如何在Intel XScale PXA255上構(gòu)建嵌入式Linux應(yīng)用平臺。

一個嵌入式Linux系統(tǒng)的構(gòu)建由以下步驟組成:加載Bootloader引導(dǎo)程序、交叉編譯環(huán)境下加載和編譯Linux內(nèi)核和與之配套的根文件系統(tǒng)等,下面就逐步介紹各個步驟的實(shí)現(xiàn)情況。

2.1 加載Bootloader引導(dǎo)程序

 Bootloader引導(dǎo)程序是系統(tǒng)加電啟動后運(yùn)行的第一段軟件代碼?;貞浺幌翽C的體系結(jié)構(gòu)我們可以知道,PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤MBR中的引導(dǎo)程序一起組成。而在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序,因此整個系統(tǒng)的加載啟動任務(wù)就完全由Bootloader來完成。Bootloader的啟動流程一般分為兩個階段:stage1和stage2。在 stage1中的代碼通常用匯編語言實(shí)現(xiàn),以提高系統(tǒng)運(yùn)行的效率,而stage2中通常用C語言實(shí)現(xiàn),目的是實(shí)現(xiàn)更復(fù)雜的功能和取得更好的代碼可讀性和可移植性。

在stage1中Bootloader主要完成以下工作:

項(xiàng)目基金:國家自然科學(xué)基金(50678099)
(1)基本的硬件初始化。
(2)為加載stage2準(zhǔn)備RAM空間。
(3)拷貝stage2到RAM空間中。
(4)設(shè)置堆棧指針sp,這是為執(zhí)行stage2的C語言代碼做好準(zhǔn)備。

在stage2中Bootloader主要完成以下工作:(1)用匯編語言跳轉(zhuǎn)到main入口函數(shù)。(2)初始化本階段要使用到的硬件設(shè)備。(3)檢測系統(tǒng)的內(nèi)存映射。(4)加載內(nèi)核映像和根文件系統(tǒng)映像。(5)設(shè)置內(nèi)核的啟動參數(shù)。

本平臺中的Bootloader選擇的是U-Boot(Universal Bootloader),是遵循GPL條款的開放源碼項(xiàng)目。其源碼目錄、編譯形式與Linux內(nèi)核很相似,事實(shí)上,不少U-Boot源碼就是相應(yīng)的 Linux內(nèi)核源程序的簡化,尤其是一些設(shè)備的驅(qū)動程序,這從U-Boot源碼的注釋中就能體現(xiàn)這一點(diǎn)。就目前為止,U-Boot對PowerPC系列處理器支持最為豐富,對Linux的支持最完善。

http://sourceforge.net/projects/u-boot下下載最新版本的U-Boot,移植之前需要仔細(xì)閱讀u-boot目錄下的readme文件,其中對如何移植做了簡要的介紹。為了減少移植的工作量,可以在include / config目錄下選一個和要移植的硬件相同或相似的開發(fā)板,根據(jù)硬件平臺的配置情況和參考現(xiàn)有的源碼,對配置文件進(jìn)行修改和配置,如修改和配置 FLASH信息、SDRAM信息、網(wǎng)絡(luò)配置、處理器配置、中斷、開發(fā)版參數(shù)設(shè)置等。之后用make命令生成映像文件下載并燒寫到FLASH中。

2.2 交叉編譯環(huán)境下加載和編譯Linux內(nèi)核

2.2.1 建立交叉編譯環(huán)境

所謂交叉編譯是指當(dāng)主機(jī)系統(tǒng)和目標(biāo)系統(tǒng)的體系結(jié)構(gòu)與操作系統(tǒng)不兼容時,將在主機(jī)系統(tǒng)上編譯的可執(zhí)行程序應(yīng)用到目標(biāo)系統(tǒng)上運(yùn)行的編譯方法。嵌入式系統(tǒng)通常是一個資源受限的系統(tǒng),因此直接在嵌入式系統(tǒng)的硬件平臺上編寫軟件比較困難,有時候甚至是不可能的。所以需要建立交叉編譯環(huán)境,下載hybus- arm-linux-R1.1.tar.gz到/usr/local目錄下。
# cd usr/local
# tar zxvf  hybus-arm-linux-R1.1.tar.gz

生成hybus-arm-linux-R1.1目錄,然后在/root/.bash_profile下修改添加以下路徑:
PATH=$PATH:/usr/local/ hybus-arm-linux-R1.1/bin
export PATH

至此,交叉編譯環(huán)境建立完成。

2.2.2  加載和編譯Linux內(nèi)核

Linux系統(tǒng)的內(nèi)核采用單塊結(jié)構(gòu),可以動態(tài)地加載和卸載模塊。系統(tǒng)利用內(nèi)核模塊的可動態(tài)加載和卸載功能,可以方便地在內(nèi)核中添加新的組件或卸載不再需要的內(nèi)核組件。內(nèi)核模塊的動態(tài)裝載性使得內(nèi)核映像的尺寸保持在最小,并且具有最大的靈活性,同時便于檢驗(yàn)新的內(nèi)核代碼,而不需重新編譯內(nèi)核且重新引導(dǎo),從而用戶可以根據(jù)自己系統(tǒng)的需要構(gòu)筑自己的私有內(nèi)核,其源碼的公開更為改造其內(nèi)核提供了可能,尤其為重建有特殊要求的操作系統(tǒng)提供了可能。Linux的內(nèi)核版本發(fā)行同Linux對嵌入式處理器支持程度的發(fā)展是不同步的,因此需要對特定的處理器體系結(jié)構(gòu)選擇適合的內(nèi)核,在本文中選用2.4.18的內(nèi)核版本,下載已經(jīng)打好補(bǔ)丁的內(nèi)核資源linux-2.4.18-rmk7.tar.bz2。
# tar jxvf linux-2.4.18-rmk7.tar.bz2
# cd linux-2.4.18-rmk7
# make menuconfig
# make dep
# make zImage

完成后在arch/arm/boot 路徑下生成映像文件zImage,下載到開發(fā)平臺上并燒寫到FLASH中。

[!--empirenews.page--]

2.3 配置根文件系統(tǒng)

Linux并不使用設(shè)備標(biāo)志符(如設(shè)備號或驅(qū)動器名稱)來訪問獨(dú)立文件系統(tǒng),而是通過一個將整個文件系統(tǒng)表示成單一實(shí)體的層次樹結(jié)構(gòu)來訪問它。一個根文件系統(tǒng)需要包含支持Linux系統(tǒng)運(yùn)行的所有文件,通常包括:
(1)基本的文件系統(tǒng)結(jié)構(gòu)。
(2)基本的目錄: /dev, /proc, /bin, /sbin, /etc, /tmp等。
(3)基本的工具: sh, ls, cp, cd, mv等。
(4)基本的配置文件: rc, inittab, fstab等。
(5)設(shè)備: /dev/hd*, /dev/tty*, /dev/fd0, /dev/ram*, /dev/console等。
(6)基本的運(yùn)行庫。

為了建立根文件系統(tǒng),可以利用BusyBox工具,在網(wǎng)上下載最近版本busybox-1.1.0.tar.gz,一些主要步驟如下:
#tar zxvf busybox-1.1.0.tar.gz
#cd busybox-1.1.0
#make menuconfig

在build Options菜單下,可以選擇靜態(tài)庫編譯方式

[*]Build BusyBox as a static binary (no shared libs)

還需要使用帶glibc庫支持的交叉編譯器arm-linux-gcc

[*]Do you want to build BusyBox with a Cross Compiler?
/usr/local/hybus-arm-linux-R1.1/bin/arm-linux-

在installation Options中選安裝路徑,默認(rèn)是_install目錄
[*]Don't use /usr
(./_install)BusyBox installation prefix

之后選擇一些需要的編譯命令后就可以編譯BusyBox了。
#make dep
#make
#make install

完成后生成_install目錄,目錄下有bin linuxrc sbin目錄,下面介紹對根文件系統(tǒng)的進(jìn)一步配置:

建立etc目錄
#mkdir etc

建立rc文件,內(nèi)容如下:
#!/bin/sh
hostname XScale
mount -t proc proc /proc
cat /etc/motd
改變rc屬性
#chmod 777 rc

建立inittab文件,主要內(nèi)容如下:
::sysinit:/etc/init.d/rcS
::askfirst:/bin/sh
tty1::respawn:/sbin/getty 38400 tty1
tty2::respawn:/sbin/getty 38400 tty2
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdowm:/bin/umount -a -r
::shutdowm:/sbin/swapoff -a

在init.d目錄下,建立rc文件的符號連接文件rcS
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉