万博网页版登陆页派论坛

QQ登录

只需一步,快速开始

查看: 2780|回复: 1
收起左侧

pcDuino的u-boot移植与分析

[复制链接]
发表于 2013-5-18 23:43:57 | 显示全部楼层 |阅读模式
[p=26, null, left][color=#333333][font=Arial]一、准备工作[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]1.获取支持pcDuino的u-boot源码[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]https://github.com/linux-sunxi/u-boot-sunxi[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]在XP下直接点ZIP即可开始下载[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]2.获取交叉编译链[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]http://code.google.com/p/smp-on-qemu/downloads/list
[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]选择arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2并下载[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]3.开发环境[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]我全程是在ubuntu 10.04.4系统下完成的。ubuntu安装过程参考其它文档。首先将上面下载的源码、交叉编译链拷到Ubuntu下。安装交叉编译链arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2直接解压即可。接着配置环境变量[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]sudo gedit  /etc/environment[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]修改PATH,在最后再加“:/.../arm-2009q3/bin”,其中“...”是上面arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2解压的路径。[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]4.硬件连接[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]把pcDuino的J5 RX、TX、GND接到你的串口转USB上即可。[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]二、u-boot移植[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]1.分析配置过程[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]上面下载的u-boot-sunxi支持多种单板,解压按照其说明配置。经过试验发现单板cubieboard与pcDuino接近,移植在cubieboard基础上进行。[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]根据其配置过程make cubieboard CROSS_COMPILE=arm-none-linux-gnueabi- ,查找grep "cubieboard" * -nR
[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]找到顶层目录的boards.cfg,接着发现顶层目录的Makefile 719(obj).boards.depend: boards.cfg. [/font][/color][/p][p=26, null, left][color=#333333][font=Arial]vim boards.cfg
# Target            ARCH        CPU         Board name          Vendor       SoC         Options
290:cubieboard      arm         armv7       cubieboard          allwinner      sunxi       sun4i:SPL
[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]2.仿照cubieboard,建立pcDuino单板[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]cd board/allwinner/[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]cp cubieboard pcDuino -rf[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]cd ../..[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]vim boards.cfg[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]在291行增加如下:[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]291:pcDuino      arm         armv7       pcDuino          allwinner      sunxi       sun4i:SPL
[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]3.配置、编译[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]make pcDuino CROSS_COMPILE=arm-none-linux-gnueabi-[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]编译顺利结束的话,会生成第一阶段/spl/sunxi-spl.bin 、第二阶段 /u-boot.bin[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]4烧写、测试[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]上述生成的第一阶段/spl/sunxi-spl.bin 、第二阶段 /u-boot.bin,是支持sd卡启动的,准备tf卡读卡器,连接到PC,下面是烧写命令[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]ls /dev/sdb //发现刚插入的sd卡设备,我的是sdb[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]sudo dd if=/dev/zero of=/dev/sdb bs=1M count=1[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]cd spl/[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]sudo dd if=sunxi-spl.bin of=/dev/sdb bs=1024 seek=8[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]cd ..[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]sudo dd if=u-boot.bin of=/dev/sdb bs=1024 seek=32[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]取下tf卡,插到pcDuino的tf卡槽,pcDuino默认是从sd卡启动的,上电串口输出如下:[/font][/color][/p][p=26, null, left][color=#333333][font=Arial]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#[/font][/color][/p]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|万博网页版登陆页派论坛 ( 粤ICP备15075382号-1  

GMT+8, 2024-11-1 23:31 , Processed in 1.109375 second(s), 24 queries , Gzip On.

Powered by Shumeipai.net! X3.2

© 2001-2015 万博网页版登陆页派论坛安全联盟

快速回复 返回顶部 返回列表