一、准备工作
1.获取支持pcDuino的u-boot源码 https://github.com/linux-sunxi/u-boot-sunxi
在XP下直接点ZIP即可开始下载
2.获取交叉编译链http://code.google.com/p/smp-on-qemu/downloads/list
找到顶层目录的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#