pcDuino的u-boot移植與分析

1、準備工做 linux

1.獲取支持pcDuino的u-boot源碼 git

https://github.com/linux-sunxi/u-boot-sunxi github

在XP下直接點ZIP便可開始下載 ubuntu

2.獲取交叉編譯鏈 vim

http://code.google.com/p/smp-on-qemu/downloads/list 測試

選擇arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2並下載 ui

3.開發環境 google

我全程是在ubuntu 10.04.4系統下完成的。ubuntu安裝過程參考其它文檔。首先將上面下載的源碼、交叉編譯鏈拷到Ubuntu下。安裝交叉編譯鏈arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2直接解壓便可。接着配置環境變量 spa

sudo gedit  /etc/environment .net

修改PATH,在最後再加「:/…/arm-2009q3/bin」,其中「…」是上面arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2解壓的路徑。

4.硬件鏈接

把pcDuino的J5 RX、TX、GND接到你的串口轉USB上便可。

2、u-boot移植

1.分析配置過程

上面下載的u-boot-sunxi支持多種單板,解壓按照其說明配置。通過試驗發現單板cubieboard與pcDuino接近,移植在cubieboard基礎上進行。

根據其配置過程make cubieboard CROSS_COMPILE=arm-none-linux-gnueabi- ,查找grep 「cubieboard」 * -nR

找到頂層目錄的boards.cfg,接着發現頂層目錄的Makefile 719:$(obj).boards.depend: boards.cfg.

vim boards.cfg
# Target            ARCH        CPU         Board name          Vendor       SoC         Options
290:cubieboard      arm         armv7       cubieboard          allwinner      sunxi       sun4i:SPL

2.仿照cubieboard,創建pcDuino單板

cd board/allwinner/

cp cubieboard pcDuino -rf

cd ../..

vim boards.cfg

在291行增長以下:

291:pcDuino      arm         armv7       pcDuino          allwinner      sunxi       sun4i:SPL

3.配置、編譯

make pcDuino CROSS_COMPILE=arm-none-linux-gnueabi-

編譯順利結束的話,會生成第一階段/spl/sunxi-spl.bin 、第二階段 /u-boot.bin

4燒寫、測試

上述生成的第一階段/spl/sunxi-spl.bin 、第二階段 /u-boot.bin,是支持sd卡啓動的,準備tf卡讀卡器,鏈接到PC,下面是燒寫命令

ls /dev/sdb //發現剛插入的sd卡設備,個人是sdb

sudo dd if=/dev/zero of=/dev/sdb bs=1M count=1

cd spl/

sudo dd if=sunxi-spl.bin of=/dev/sdb bs=1024 seek=8

cd ..

sudo dd if=u-boot.bin of=/dev/sdb bs=1024 seek=32

取下tf卡,插到pcDuino的tf卡槽,pcDuino默認是從sd卡啓動的,上電串口輸出以下:

U-Boot SPL 2012.10 (Apr 11 2013 – 21:22:30)
DRAM: 1024MB
SUNXI SD/MMC: 0

U-Boot 2012.10 (Apr 11 2013 – 21:22:30) Allwinner Technology

CPU:   SUNXI Family
Board: Cubieboard
I2C:   ready
DRAM:  1 GiB
MMC:   SUNXI SD/MMC: 0
*** Warning – bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
sun4i#

轉載自CSDN,感謝我用國芯分享。

原帖地址:http://blog.csdn.net/u010216127/article/details/8794716

相關文章
相關標籤/搜索