基于32位RISC處理器SoC平臺的Linux操作系統實(shí)現
引言
智原科技的fie8100 soc平臺是一種低功耗、便攜式視頻相關(guān)應用開(kāi)發(fā)soc平臺,也可用于基于fa526 cpu的soc設計驗證。
基于fa526的linux軟件開(kāi)發(fā)套件,開(kāi)發(fā)人員可將linux一2.4.19軟件環(huán)境在fie8100平臺上安裝實(shí)現,并完成對平臺上所有ip的驅動(dòng)程序安裝和對fa526的內部調試。
fa526介紹
fa526是一顆有著(zhù)廣泛用途的32位risc處理器。它包括一個(gè)同步cpu內核(core)、獨立的指令/數據緩存(cache)、獨立的指令/數據暫存器(scratchpads)、一個(gè)寫(xiě)緩存(write
buffer)、一個(gè)內存管理單元(memory management unit)和jtag在線(xiàn)仿真(ice)接口。cpu內核是6級流水線(xiàn)(pipeline)的哈佛(harvard)結構,包括取指令(fetch)、解碼(decode)、搬移(shift)、執行(execution)、數據訪(fǎng)存(memory)、寫(xiě)回(write)等。為了提高整體性能,fa526
cpu還包含了一個(gè)分支運算緩存(branch target buffer:btb),故可減少分支運算的開(kāi)銷(xiāo)(penalties)。
fa526 cpu內核的指令是兼容arm v4的結構,并使用amba ahb接口與外部設備進(jìn)行通訊。因此,fa526 cpu有著(zhù)廣泛的應用領(lǐng)域,特別是針對那些需要高性能和低功耗的應用。fa526
cpu內核采用完全同步方式。其基于單相時(shí)鐘(single-phase clock)的結構可以很容易集成開(kāi)發(fā)系統級芯片(system
on chip:soc)。fa526 cpu內核的方框圖如圖1所示。

fie8100 soc平臺介紹
fie8100 soc平臺的系統架構如圖2所示。它提供有多種外設接口。其內部的高性能處理器內核和功耗管理功能特別適合mpeg一4和jpeg的市場(chǎng)需求。目前,智原的mpeg4/jpeg圖codec所支持的格式為simple
profile version 3.1,其中包含xvid編碼和一部分的divx編碼。

fie8100 soc平臺包含有非常豐富的功能模塊以支持多種應用。包括fa526(32bit risc cpu)、mpeg-4/jpeg編解碼引擎、usb2.0設備控制器、usb2.0phy(物理層)、lcd控制器、dma控制器、tv encoder(解碼器)、capture(視頻捕捉器)和amba總線(xiàn)架構。為了讓用戶(hù)能將自己的ip或功能模塊順利的運行在fa526上,智原科技將ahb總線(xiàn)從cpu的引線(xiàn)中拉出,并搭配各類(lèi)接口和片外芯片,從而開(kāi)發(fā)制作了一個(gè)基于fie8100 soc的仿真平臺:mediacreative!。
受基于fa526的linux安裝
本開(kāi)發(fā)系統所需的主開(kāi)發(fā)硬件環(huán)境,一是兼容intel x86的pc,二是標準16550 uart接口。而軟件主要是linux操作系統(redhat
7.3~8.0或更高版本)和fa526一linux軟件包。而通用平臺系統所需的器件,主要是一片mediacreative!(含fie8100/fwab326aa芯片)和一片64
mb sdram及32 mb flash。
通過(guò)fa526一linux可以將linux-2.4.19軟件環(huán)境在faraday fa526處理器和外設ip上進(jìn)行安裝。
fa526一linux軟件包通常以"arm-linux一20050429.tgz"打包文件并遞交(此程序發(fā)布于april
29,2005)表1所列是安裝linux所需的硬盤(pán)空間大小。

安裝fa526一linux軟件包的具體流程如下:
(1)拷貝文件arm-linux一20050429.tgz至目錄/usr/src:
#cp arm-linux一20050429.tgz/usr/src
(2)解包文件"arm-linux一20050429.tgz":
#cd/usr/src
#tar zxvf arm-linux一20050429.tgz
(3)安裝toolchain(gcc一2.95.3,binutils一2.11.2,glibc一2.2.3)至目錄/usr/local:
#cp/usr/src/arm-linux/toolchain/arm-linux-toolchain.tgz/usr/local/
#cd/usr/local
#tar zxvf arm-linux-toolchain.tgz
#rm-f arm-linux-toolchain.tgz
此步驟將在目錄/usr/local/arm解壓gcc一2.95.3,binutils一2.11.2和glibc一2.2.3的輸出文件。
(4)添加gcc執行路徑shell環(huán)境。
可執行以下命令來(lái)添加路徑:
#export path=$path:/usr/local/arm/2.95.3/bin
在完成以上四個(gè)安裝步驟后,就可以在自己的系統下解壓打包文件(如arm-linux20050429.tgz),之后,系統會(huì )自動(dòng)生成一組目錄。表2列出了這些源目錄的定義。用戶(hù)的應用程序包含在目錄/usr/src/arm-linux/user/下,而客戶(hù)定制的ram-disk則包含在目錄/usr/src/arm-linux/images/下。

fa526-linux的構建和開(kāi)發(fā)
在嵌入式系統里配置和構建fa526一linux內核時(shí),如果fa526的linux內核子目錄路徑為:/usr/src/arm-linux/arm-linux一2.4.19/,那么,fa526一linux目錄的結構將和標準linux內核一樣,其版本為2.4.19。表3列出了linux內核子目錄的內容。

內核構建
為fa526架構生成內核映像時(shí),必須先對內核進(jìn)行配置,配置文件路徑為
通常,用戶(hù)可能為了一些如下的因素要求重新配置fa526一linux,具體方法為:
(1)定制處理器和板子的功能:修改uart時(shí)鐘、系統時(shí)鐘等。
(2)定制硬件設備:添加或刪除某些特殊設備。
(3)定制內核功能:添加或刪除一個(gè)內核的功能(如網(wǎng)絡(luò )支持)。
linux內核配置為配置這些可選項目提供了兩種常用方式:一是使用菜單顯示來(lái)選擇項目(#make menuconfig);二是使用gui顯示來(lái)選擇項目(#make
xconfig)。
圖3則是針對fa526和cpe開(kāi)發(fā)板的fa526一linux的menuconfig介面。

fa526系統中的主要選項有以下幾種:
(cpe)arm system type,默認值選是中cpe開(kāi)發(fā)板來(lái)支持faraday cpe(common platform
environment)。
[*]support fa526 processor,設置fa526系列處理器選項來(lái)支持fa526 cpu。
(fie8100)platform environment從a320、fie8100、fie7000中選擇平臺設定。
(44000000) system clock,fie8100的默認值是44 mhz。開(kāi)發(fā)人員應根據實(shí)際電路板設定來(lái)調整。
(22118400)uart clock.fie8100的uart時(shí)鐘是22.184 mhz。開(kāi)發(fā)人員可根據實(shí)際的電路板設定來(lái)設置uart時(shí)鐘頻率。
需要說(shuō)明的是:第一次make linux內核時(shí),可清除所有目標文件,并重新創(chuàng )建從屬文件(dependency)。如果要修改內核的配置,則可調用"make
dep"。操作步驟如下:
#make clean
#make dep(fa526一linux提供了內核腳本文件(shell-script)"mkbootp.sh",這可以使make內核更容易。)
#./mkbootp.sh
上述操作可創(chuàng )建名為bootplmage的最終內核映像文件(kernel image)和名為vmlinux的內核elf文件。以下操作是修改mkbootp.sh的一個(gè)例子:
(1)使用定制的ram-disk來(lái)為特殊規格的ramdisk修改"make bootpimage initrd=

(2)復制輸出映像到特定目錄:
在mkbootp.sh檔案上修改"cp
mkbootp.sh的內容是:
"make hootpimage initrd=/usr/src/arm-linux/images/ramdisk.gz
"cp arch/arm/boot/bootpimage/tftpboot/mbootpimage"
建立armboot
fa526一linux使用armb00t來(lái)裝載操作系統。fa526的armboot使用一個(gè)名為"faraday.h"的配置文件來(lái)配置各種不同的硬件環(huán)境。此文件被放在/usr/src/arm-linux/armboot一1.1.o/faraday.h。其可修改的內容和值包括(通常不需要改動(dòng)):
修改系統時(shí)鐘。對于mediacreative!平臺,它的默認值是44 mhz。
修改uart時(shí)鐘。對于mediacreative!平臺,應為22.1184 mhz。
修改flash塊號。對于mediacreative!平臺,flash的塊號是1。
修改好mac和ip后,就可以通過(guò)以下命令來(lái)建立armboot:
#cd/usr/src/arm-linux/armboot-1.1.0
#make
此時(shí),系統會(huì )在目錄里自動(dòng)生成"armboot.bin"文件。此后便可根據這個(gè)指令將armboot燒人到fie8100的flash器件里,并編寫(xiě)特定鏡像文件armboot.bin至flash地址0x80400000。
通過(guò)armboot啟動(dòng)fa526 linux
在開(kāi)發(fā)階段的好多部分,開(kāi)發(fā)人員必須要做前期規劃來(lái)修改或下載代碼直到得到想要的結果。在這樣的情況下,需要armboot來(lái)下載和運行代碼的具體步驟如下:
(1)在linux主機上設置trip服務(wù)器,并設置/etc/xinetd.d/tftp。
(2)在此狀態(tài)下使用linux making shell(mkbootp.sh)編譯代碼,并生成linux代碼至目錄/tftpboot.要運行linux代碼,需按以下步驟執行:
重啟fie8100開(kāi)發(fā)板(mediacreative!)。
選擇"90) go armb00t"。
確認linux-host和f1e8100的ip地址是正確的,(printenv)。
輸入命令:tftp ox2000000 mbootplmage,以下載代碼。
通過(guò)命令"go ox2000000"啟動(dòng)linux,直至出現linux啟動(dòng)信息。
linux的使用
在完成以上操作后,armboot就可燒入在mediacreative!開(kāi)發(fā)板上的flash里。以后,要通過(guò)armboot來(lái)運行linux操作系統以對fie8100平臺進(jìn)行開(kāi)發(fā)驗證,可執行以下操作:
(1)開(kāi)啟mediacreative!開(kāi)發(fā)板,運行"mpeg4 burnin",使系統出現linux運行選項;
(2)鍵入"空格"鍵,進(jìn)入linux操作系統。
結束語(yǔ)
以上通過(guò)智源科技的fie8100 soc平臺的設計使用,介紹了兼容arm v4指令集的32位risc處理器和該soc平臺的linux操作系統,它具有低功耗、便攜帶的優(yōu)點(diǎn)、開(kāi)發(fā)人員可將linux--2.4.19軟件在fie8100的平臺上安裝實(shí)現,并進(jìn)行二次開(kāi)發(fā)和驗證。
評論