新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux在IOP331上的移植實(shí)現(xiàn)

嵌入式Linux在IOP331上的移植實(shí)現(xiàn)

作者: 時(shí)間:2012-03-23 來(lái)源:網(wǎng)絡(luò) 收藏

引言

是指對(duì)于用戶(hù)端(備份服務(wù)器/網(wǎng)絡(luò)端)體現(xiàn)為常規(guī)磁帶庫(kù),但是使用磁盤(pán)陣列為存儲(chǔ)介質(zhì)的備份設(shè)備。它不僅大大提高了系統(tǒng)的可靠性和可用性,而且對(duì)于那些主要使用磁帶為數(shù)據(jù)存儲(chǔ)介質(zhì)、現(xiàn)在想更換為磁盤(pán)陣列但又不想全部更換原有設(shè)備的用戶(hù)來(lái)說(shuō)具有非常重要的意義。的實(shí)現(xiàn),依賴(lài)于以下三項(xiàng)核心技術(shù):嵌入式微處理器、存儲(chǔ)協(xié)議微處理器和嵌入式操作系統(tǒng)。嵌入式微處理器作為系統(tǒng)的主控單元,實(shí)現(xiàn)人機(jī)交換及存儲(chǔ)協(xié)議處理器的控制,同時(shí)也是嵌入式操作系統(tǒng)的運(yùn)行平臺(tái);存儲(chǔ)協(xié)議微處理器實(shí)現(xiàn)與存儲(chǔ)介質(zhì)之間的數(shù)據(jù)傳輸;嵌入式操作系統(tǒng)主要實(shí)現(xiàn)內(nèi)存管理與進(jìn)程調(diào)度,為設(shè)備驅(qū)動(dòng)程序與用戶(hù)應(yīng)用程序提供軟件平臺(tái)。本文首先介紹Linux操作系統(tǒng)和Intel 高性能I/O處理器,然后詳細(xì)分析的各個(gè)步驟,最后給出驗(yàn)證和結(jié)論。

1.Linux操作系統(tǒng)和

Linux操作系統(tǒng)源碼開(kāi)放,遵循GPL聲明,可以自由修改和傳播。由于專(zhuān)用實(shí)時(shí)操作系統(tǒng)價(jià)格昂貴及源碼不公開(kāi),使Linux在嵌入式應(yīng)用中占有一席之地。由于Linux自身有諸多優(yōu)勢(shì),吸引了很多開(kāi)發(fā)商的目光,成為嵌入式操作系統(tǒng)的新寵。其源代碼可以從Linux的相關(guān)網(wǎng)站下載。

本設(shè)計(jì)使用的嵌入式微處理器是基于XScale的高性能I/O處理器。XScale是Intel公司定義的基于ARM V5TE(除浮點(diǎn)運(yùn)算外),即支持Thumb模式及DSP擴(kuò)充指令集的ARM V5體系結(jié)構(gòu)。其硬件體系結(jié)構(gòu)如圖1所示。

圖1 Intel 80331硬件體系結(jié)構(gòu)圖

2.Linux操作系統(tǒng)的

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

前需要在主機(jī)上建立交叉編譯環(huán)境。作者在使用的主機(jī)上安裝了Fedora Core 4的系統(tǒng),從網(wǎng)上獲得了建立交叉編譯工具鏈的軟件包c(diǎn)rosstool-0.42.tar.bz2。使用最新的binutils和kernel,gcc版本為4.0.2,glibc版本為2.3.6。

解壓并修改相關(guān)的配置文件后運(yùn)行demo-arm-xscale.sh腳本建立armv5l-linux的交叉編譯工具。整個(gè)的建立過(guò)程可以分為如下幾個(gè)階段:

定義環(huán)境變量à解壓linux內(nèi)核并對(duì)內(nèi)核打補(bǔ)丁à編譯安裝GDB for XScaleà編譯安裝bintuils工具集à編譯安裝有關(guān)基本的針對(duì)XScale CPU的gcc(只支持C語(yǔ)言編譯)à編譯生成Linux內(nèi)核à編譯用于用戶(hù)程序的glibc程序庫(kù)à建立完整功能的gcc。

2.2 配置和編譯內(nèi)核

下載Linux-2.6.15.4內(nèi)核源代碼和針對(duì)的補(bǔ)丁文件patch-2.6.15.4-iop1。解壓內(nèi)核后使用patch命令對(duì)內(nèi)核打補(bǔ)丁。由于作者使用的是Ramdisk文件系統(tǒng),故內(nèi)核配置選項(xiàng)中應(yīng)支持RamDisk support和Initial Ram disk (initrd) support選項(xiàng)。然后使用已經(jīng)建好的交叉編譯工具鏈進(jìn)行編譯。

內(nèi)核編譯完成后,從目標(biāo)平臺(tái)通過(guò)TFTP協(xié)議下載內(nèi)核映像。如果是內(nèi)核映像的最終版本,則使用RedBoot的fis命令將其燒入Flash中,之后每次啟動(dòng)時(shí)RedBoot將從Flash中裝載內(nèi)核映像至內(nèi)存中并解壓?jiǎn)?dòng)。

上面提到的主Makefile是指根目錄下的Makefile。它的作用是:根據(jù).config配置文件形成編譯的源文件列表à使用CC對(duì)源文件進(jìn)行編譯à使用LD把目標(biāo)代碼鏈接到一起à形成Linux內(nèi)核映像和相關(guān)文件。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉