全部博文(75)
分类: LINUX
2009-08-21 14:25:50
环境:fedora 9(内核版本2.6.24.4),arm-linux-gcc-2.95.3,u-boot-1.1.4,skyeye-1.2.6rc1,s3c2410A
1、编译u-boot
首先修复u-boot的几个BUG:
(1)arm-linux-gcc-2.95.4的安装位置必须在/usr/local/arm/2.95.3(可做符号链接),否则会出现cpp0错误;
(2)hello_world.srec错误(make 3.81的bug引起)
可以简单的改一个目录 examples下的Makefile来解决。
将原文件的第58行开始的内容:
SREC = hello_world.srec
BIN = hello_world.bin hello_world
改为:
SREC = hello_world.o
BIN = hello_world.o hello_world
即可重新编译通过了。
(3)cc1: error: invalid option `abi=apcs-gnu'
出错的文件是/cpu/arm920t/下的config.mk: 将
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
改成:
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu,))
修改以上三处后,
make smdk2410_config
make顺利通过编译。
(4)增加nand支持:
参见http://blog.csdn.net/zblue78/archive/2008/02/26/2121871.aspx,感谢作者给我们提供的这么宝贵的资料。
2、安装skyeye(略)
3、skyeye的使用方法说明(网上资料太少了,只有错误,错误,还是错误。。。)
(1)对板子资源的情况进行统计:
我的是:Nandflash 64M,SDRAM 64M
(2)明确几点:(非常重要,害我太深!!!!!!!!!!!!!)
nand.dump文件必须自己生成,直接使用skyeye,执行过程中发现没有
nand.dump会自动生成,但是这个事不能用的,用出现很多bus read error或mem read
error,使用mknandflashdump.c,生成a.out(gcc mknandflashdump.c),使用./a.out
u-boot.bin nand.dump 0x0即可。
只能使用u-boot.bin,不能使用u-boot(至少我使用时会出现
N多错误);上面操作的意义是虚拟nandflash,因为nandflash不占有寻址空间(只是前4K缓冲到0x0,然后只能通过时序定位了),经过
操作之后我们的nandflash中(即nand.dump中)才能有我们的u-boot.bin程序,现在skyeye还不能自动的这样操作,它只是分
配了空间,没有填充内容。
skyeye的书写:
第一段:首4K自己,用于u-boot从nand拷贝到SDRAM,file=u-boot.bin, boot=yes(从0地址启动)--》大于4K亦可;
第二段:0x30000000-0x33ffffff(64M SDRAM)-------->我们的程序实际运行的空间。
4、模拟运行:
skyeye -c skyeye.config,正常启动。
下一步,启动内核,添加tftpboot,ping命令。