本帖最后由 andy 于 2013-7-17 20:05 编辑
最近零零散散的在学习u-boot
把前面已经修改的发上来,我作了修改,修改的部分就是我在这里发的帖子
包括:
1、 使用SD卡启动,其他方式我没有试过
2|、增加了LED控制,板载的蓝色和绿色
3、打开了中断,使用定时器中断控制LED
4、移植了网络驱动,可以实现tftp
5、没解决的是nand驱动,正在研究中,有资料和代码的同学不妨共享一下,一起学习
如果不想编译,只想试试SD启动,这有编译好的
注意事项:
1、编译步骤
使用的编译器是arm-none-eabi-
版本4.7
如果使用其他编译器,请修改根目录的Makefile
将CROSS_COMPILE ?=arm-none-eabi-
改为你的编译器,例如CROSS_COMPILE ?= arm-linux-none-
再将arch/arm/config.mk的
将CROSS_COMPILE ?= arm-none-eabi-
改为你的编译器,跟上面一样
make cubieboard_config
make -j4
等待......
2、写入SD卡
写入SD卡工具在tools里面 ,编译sd_write.c,使之符合你的系统
gcc sd_write.c -o sd_write
将编译好的sd_write 移动到你的u-boot目录,假设你在tools目录:
mv -r sd_write ../
假设你的sd卡在读卡器插到电脑时是 sdb, 在u-boot目录执行:
写sd卡有风险请谨慎操作,千万别写成你的硬盘,sd数据可能丢失
sd_write /spl/sunxi_spl.bin /dev/sdb
sd_write u-boot.bin /dev/sdb
取下sd,插到cubieboard
3、连接串口
方法请在论坛内看我的帖子,或其他人的帖子
4、连接网线
首先电脑上要建立tftp服务器,请百度
5、上电
不出意外,你将看见蓝灯闪烁,绿灯我关掉了,太刺眼
测试
参数修改
ip我写了固定值,在文件include/configs/sunxi-comm.h内,请查阅
可以上电直接修改参数,但不能保存,因为没有NAND驱动
U-Boot SPL 2012.10 (Jun 17 2013 - 22:57:08)
DRAM: 1024MB
SUNXI SD/MMC: 0
U-Boot 2012.10 (Jun 17 2013 - 22:57:08) for Cubieboard Setting
CPU: SUNXI Family
Board: Cubieboard
I2C: ready
Running board_init_f() in file board.c,line 313
DRAM: 1 GiB
Running board_init_r() in file board.c,line 481
NAND: board_nand_init()
end of nand_init
maf_id = 0x0
dev_id = 0x0
nand type = 0xffffffed
No NAND device found!!!
0 MiB
MMC: SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: eth net device register.
wemac
Hit any key to stop autoboot: 0
andy_sun4i#
命令测试
andy_sun4i# version
U-Boot 2012.10 (Jun 17 2013 - 22:57:08) for Cubieboard Setting
arm-none-eabi-gcc (Sourcery CodeBench Lite 2012.09-63) 4.7.2
GNU ld (Sourcery CodeBench Lite 2012.09-63) 2.23.51.20120829
andy_sun4i# pri
baudrate=115200
boot_mmc=fatload mmc 0 0x43000000 script.bin && fatload mmc 0 0x48000000 ${kernel} && watchdog 0 && bootm 0x48000000
bootcmd=if run loadbootenv; then echo Loaded environment from ${bootenv};env import -t ${scriptaddr} ${filesize};fi;if test -n ${uenvcmd}; then echo Running uenvcmd ...;run uenvcmd;fi;if run loadbootscr; then echo Jumping to ${bootscr};source ${scriptaddr};fi;run setargs boot_mmc;
bootdelay=3
bootenv=uEnv.txt
bootscr=boot.scr
console=ttyS0,115200
ethact=wemac
ethaddr=11:22:33:44:55:66
ipaddr=192.168.1.20
kernel=uImage
loadbootenv=fatload mmc 0 $scriptaddr ${bootenv} || ext2load mmc 0 $scriptaddr ${bootenv} || ext2load mmc 0 $scriptaddr boot/${bootenv}
loadbootscr=fatload mmc 0 $scriptaddr ${bootscr} || ext2load mmc 0 $scriptaddr ${bootscr} || ext2load mmc 0 $scriptaddr boot/${bootscr}
loglevel=8
panicarg=panic=10
root=/dev/mmcblk0p2 rootwait
scriptaddr=0x44000000
serverip=192.168.1.10
setargs=setenv bootargs console=${console} root=${root} loglevel=${loglevel} ${panicarg} ${extraargs}
stderr=serial
stdin=serial
stdout=serial
Environment size: 1117/131068 bytes
andy_sun4i#
|