基于數(shù)字電視系統(tǒng)的嵌入式linux操作系統(tǒng)實(shí)現(xiàn)
5.系統(tǒng)構(gòu)建
為了移植linux操作系統(tǒng),我們首先在主機(jī)端安裝一個(gè)交叉開發(fā)環(huán)境,然后在供測試的目標(biāo)板上安裝一個(gè)測試環(huán)境,測試好后,再移植到數(shù)字電視系統(tǒng)上。
5.1安裝交叉開發(fā)環(huán)境
在裁減和定制Linux,運(yùn)用于你的嵌入式系統(tǒng)之前,由于一般嵌入式開發(fā)系統(tǒng)存儲(chǔ)大小有限,通常需要在強(qiáng)大的pc機(jī)上建立一個(gè)用于目標(biāo)機(jī)的交叉編譯環(huán)境。這是一套編譯器、連接器和libc庫等組成的開發(fā)環(huán)境。圖6描述了交叉開發(fā)環(huán)境的安裝過程。
要制作二進(jìn)制linux映像文件,首先應(yīng)制作二進(jìn)制連接器、匯編器和其它目標(biāo)工具。然后,用 make menuconfig配置內(nèi)核,此時(shí)在內(nèi)核目錄中將生成include/linux/version.h 和 include/linux/autoconf.h 文件。注意,由于數(shù)字電視系統(tǒng)的MCU只支持大端存儲(chǔ)器格式,所以,應(yīng)在內(nèi)核庫中做相應(yīng)修改。第三步是制作交叉編譯器(gcc)和c庫(glibc)。由于兩者是相互依賴的關(guān)系,可以先制作一個(gè)不帶glibc的gcc,然后用交叉編譯器創(chuàng)建一個(gè)glibc,再重新編譯這個(gè)帶glibc的gcc。第四步,由于移植好的linux運(yùn)行在只讀存儲(chǔ)器中,所以需要安裝用于制作二進(jìn)制文件系統(tǒng)映像的工具(genromfs),和一個(gè)用于將elf格式(通用文件格式)轉(zhuǎn)換為flt格式(扁平格式)的工具。
5.2開發(fā)環(huán)境
系統(tǒng)開發(fā)環(huán)境包括測試板的SNDS100TM(Samsung)、用于遠(yuǎn)程調(diào)試的JEENITM (Jtag EmbeddedICE Ethernet Interface)、數(shù)字電視機(jī)主板等。表1列出了開發(fā)環(huán)境的各個(gè)部分。
表1 開發(fā)環(huán)境
組成部分功能
測試板
三星 s3c4510B (ARM 7TDMI),16M字節(jié)的SDRAM, 1M字節(jié)的flashROM, LED, RJ45連接器.網(wǎng)絡(luò)應(yīng)用開發(fā)板
數(shù)字電視主板三星s3c4500(ARM 7TDMI),16M字節(jié)的SDRAM, 8M字節(jié)的flashROM, pcf8584, SPU (LG electronics),32M字節(jié)SDRAM.數(shù)字處理模塊
JEENITMEPI, 兩個(gè)硬件斷點(diǎn),以太網(wǎng)主機(jī)接口,內(nèi)部的ARM 710A高速緩沖存儲(chǔ)器遠(yuǎn)端調(diào)試環(huán)境
軟件
gcc-2.95.3, glibc-2.1.3, binutils-2.12, genromfs-0.5.1, elf2flt, gdb-5.0, ADS(ARMTM Developer Suite),evaluation ver. 1.1交叉開發(fā)和調(diào)試的工具
在主機(jī)中制作一個(gè)二進(jìn)制的linux內(nèi)核映像,將其通過串口線傳送到開發(fā)板上。利用JEENI來安裝遠(yuǎn)端調(diào)試環(huán)境。由于flash ROM中的boot塊被保護(hù),不能修改,因此我們需要將它與數(shù)字電視主板分開,在flash ROM中燒入一個(gè)bootloader后再安裝到主板上。
通過這一實(shí)驗(yàn),可以通過PCF8584控制音頻輸出。也就是說,I2C總線的從設(shè)備將數(shù)字信號轉(zhuǎn)換為音頻輸出信號。最終,我們可以聽到蜂鳴聲,也可以通過數(shù)字示波器來檢測I2C總線信號。
參考文獻(xiàn):
[1].PCF8584datasheethttp://www.dzsc.com/datasheet/PCF8584_318668.html.
[2].fltdatasheethttp://www.dzsc.com/datasheet/flt_329018.html.
評論