pcDuino的u-boot移植与分析

坚强是说给别人听的谎言 提交于 2019-11-30 23:13:19

一、准备工作

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

选择arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2并下载

3.开发环境

我全程是在ubuntu 10.04.4系统下完成的。ubuntu安装过程参考其它文档。首先将上面下载的源码、交叉编译链拷到Ubuntu下。安装交叉编译链arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2直接解压即可。接着配置环境变量

sudo gedit  /etc/environment

修改PATH,在最后再加“:/…/arm-2009q3/bin”,其中“…”是上面arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2解压的路径。

4.硬件连接

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

二、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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!