製作PV8900開發板的linux系統鏡像

燒寫到開發板上的文件包括以下3個:

l         tcboot.rom --------------------------bootloader)

l         linux.rom ------------------------------(Linux kernel)

l         ramdisk.rom --------------------------( 作爲根文件系統的ramdisk)

 

1,  建立開發環境

用戶在使用PV8900進行開發前,必須先搭建好ARM Linux交叉開發環境。下面以ubuntu操作系統爲例,介紹交叉開發環境的搭建,其它Linux系統的操作與ubuntu系統類似。

 

1) 把光盤中\PV8900\Linux\compiler目錄下的armv6_codesourcery.tar.bz2文件copyubuntu/opt/目錄,然後運行如下命令

$ su

$ cd /opt/

$ tar –jxvf armv6_codesourcery.tar.bz2

 

2) 添加環境變量

export PATH=/opt/armv6/codesourcery/bin:$PATH

用戶可把它寫入用戶目錄的.barsrc文件中,那麼系統啓動的時候自動

完成環境變量的添加,查看路徑可以使用echo $PATH命令

 

3) 確認開發環境,目前使用的版本爲4.3.2

$ arm-none-linux-gnueabi-gcc -v

Using built-in specs.

Target: arm-none-linux-gnueabi

 

……

Thread model: posix

gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)

2,  編譯Kernel

LinuxBSP代碼在光盤的\PV8900\Linux\source目錄下,文件名爲LINUX_BSP_yymmdd-RxxxBxxx.tar.bz2yymmdd表示這個版本發佈的日期,RB後面的數字是TELECHIPS的內部版本號。 比如LINUX_BSP_100705-R0191B3463.tar.bz2表示這是20100705日發佈的版本。

tar解壓到指定的目錄後(根據需要自己指定目錄),可以看到以下目錄:

bootloader drivers kernel ramdisk toolchain util

進入kernel目錄,ls可以看到patch-linux-2.6.28-xxxx的文件,再把光盤的\PV8900\Linux\source目錄下linux-2.6.28.tar.bz2的文件解壓到這個kernel目錄下,然後調用

patch p0 < patch-linux-2.6.28-XXXXXX-RXXXXBXXXX

(注意:這裏的patch-linux-2.6.28-XXXXXX-RXXXXBXXXX會把補丁打到linux-2.6.28-tcc文件夾裏面,所以linux-2.6.28.tar.bz2解壓後的文件夾linux-2.6.28要改名爲linux-2.6.28-tcc,打完補丁後在把名字改回來。)

patch打到標準的Linux kernel裏面。

然後就可以編譯內核了:

$ cd linux-2.6.28

$ make tcc8900_defconfig

$ make menuconfig

$ make

$ ./tcc_mkrd.sh

就會生成最終的linux.rom

需要進行更多的內核開發,可以參考光盤PV8900\Linux\Documnets目錄下TCC8900_BSP_LINUX_USERS_GUIDE.pdf,以及其它文檔。

3,  編譯Bootloader

TCC8900 bootloader is tcboot. (bootloader/tcboot/)

Clean compiled objects to rebuild.

$ make distclean

[RM] *.o *.a

[RM] Target Undefine

[RM] *.srec *.bin *.map *.hex *.rom

Enter the following commands to configure tcboot. It will be shown “Target Define: TCC8900.

TCC8900 option is compatible with TCC9100 and TCC9200

SRAM_M_SIZE : 128 or 256 (Refer to DDR TYPE of Chapter 3.2 Version of TCC8900)

REVISION : TCC_R_AX or TCC_R_XX (Refer to Chapter 3.1 Version of TCC8900)

 

$make

Undefined Telechips Target...

HOWTO:

-> TCC8900> make tcc8900 KERNEL_START_OFFSET=0x300000 SDRAM_M_SIZE=256 REVISION=TCC_R_AX

$make tcc8900 KERNEL_START_OFFSET=0x300000 SDRAM_M_SIZE=256 REVISION=TCC_R_AX

[RM] *.o *.a

[RM] Target Undefine

[RM] *.srec *.bin *.map *.hex *.rom

ADD define: KERNEL_START_OFFSET=0x300000 in include/def_tcc.h

ADD define: SDRAM_M_SIZE=256 in include/def_tcc.h

ADD define: TCC_R_AX in include/def_tcc.h

Target Define: TCC8900

$ make

….

[MK] tcboot.rom for TCC8900

p_w_picpath length: [0x000C2988] (797064 byte)

second crc: [0xA6CB9D0A]

first crc: [0x3769DB35]

Then the final p_w_picpath file tcboot.rom will be created.

4,  製作RAMDISK

Run tcc_mk_rootfs.sh to make a ramdisk. Ramdisk.rom is not offered anymore by default since LINUX BSP Version 1.6. .

$cd ramdisk

$tcc_mk_rootfs.sh

Refer to “TCC8900_BSP_LINUX_RAMDISK_GUIDE.pdf” for more information.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章