燒寫到開發板上的文件包括以下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文件copy到ubuntu的/opt/目錄,然後運行如下命令
$ su
$ cd /opt/
$ tar –jxvf armv6_codesourcery.tar.bz2
2) 添加環境變量
export PATH=/opt/armv6/codesourcery/bin:$PATH
用戶可把它寫入用戶目錄的.barsrc文件中,那麼系統啓動的時候自動
完成環境變量的添加,查看路徑可以使用echo $PATH命令
3) 確認開發環境,目前使用的版本爲
$ arm-none-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
……
Thread model: posix
gcc version
2, 編譯Kernel
Linux的BSP代碼在光盤的\PV8900\Linux\source目錄下,文件名爲LINUX_BSP_yymmdd-RxxxBxxx.tar.bz2,yymmdd表示這個版本發佈的日期,R和B後面的數字是TELECHIPS的內部版本號。 比如LINUX_BSP_100705-R0191B3463.tar.bz2表示這是2010年07年05日發佈的版本。
用tar解壓到指定的目錄後(根據需要自己指定目錄),可以看到以下目錄:
bootloader drivers kernel ramdisk toolchain util
進入kernel目錄,ls可以看到patch-linux-
patch –p0 < patch-linux-
(注意:這裏的patch-linux-
把patch打到標準的Linux kernel裏面。
然後就可以編譯內核了:
$ cd linux-
$ 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=0x ADD define: SDRAM_M_SIZE= ADD define: TCC_R_AX in include/def_tcc.h Target Define: TCC8900 $ make …. [MK] tcboot.rom for TCC8900 p_w_picpath length: [0x second crc: [0xA6CB9D 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.