在cygwin下面用skyeye编译调试u-boot(s3c2410)(原创,申请加精)
creator [email protected]断断续续的学了多次skyeye,一直没有实际用过,前段时间开始学习Linux驱动,
还买了一个2440的开发板,但是一时间无从下手,看了驱动开发的书,Linux下面也
编译出了几个驱动,但是总感觉对linux还是不深入。而同时我一直在做ecos开发,
同时目前感觉市面上性价比高的RTOS也就ecos了。本来一直想移植一个ecos到2440,
但是因为我的板子没有norflash,需要从nand启动,而调试这个部分太麻烦,因为
每次烧录都要很久,一直想有个好的调试方法。加之对2440的开机loader还不是很熟悉。
也很想自己做个loader,我的想法是从sd卡升级程序,这样目前我感觉最方便。同时
有几个系统也是采用这种方法的,基本省了仿真器。
闲话少说,看我怎么在cygwin下面用skyeye调试u-boot的。
1.准备资料。
(1)cygwin。
http://www.cygwin.com/ 下载安装,一定要选择全部安装。否则,。。你可能还要
再安装一次。
(2)skyeye
下载最新版本。(我下载的时候是1.2.4)
http://downloads.sourceforge.net/skyeye/skyeye-1.2.4_Rel.tar.gz?modtime=1195141779&big_mirror=0
放到/cygwin/skyeye
make编译,应该不会出错。
然后把binary/skyeye.exe放到/cygwin/bin下面。注意在Windows中一定要把环境变量path中加入/cygwin/bin
(3)下载arm-linux-编译器(编译u-boot的)
去友善之臂上,那里写的非常清楚。(感谢他们)。
http://www.arm9.net/cygwin_arm-linux-gcc_install.asp
(4)下载u-boot。
我之前电脑里面是u-boot 1.1.6,编译不通过。
于是去ftp://ftp.denx.de/pub/u-boot/下载了1.1.4和1.1.2两个版本。
先说1.1.4版本。
解压后,进入输入:
make smdk2410_config
make
不通过, cc1: error: invalid option `abi=apcs-gnu'
后来网上搜索发现有个哥们遇到过这个问题。
出错的文件是/cpu/s3c2410/下的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,))
编译,通过。
如果哥们觉得麻烦的话,可以编译1.1.2版本。全部通过,没有问题。
(5)用skyeye调试u-boot
建立skyeye.conf文件。如下:
# skyeye config file for S3C2410X
cpu: arm920t
mach: s3c2410x
# physical memory
#mem_bank: map=M, type=RW, addr=0x00000000, size=0x00100000
mem_bank: map=M, type=RW, addr=0x30000000, size=0x04000000
#mem_bank: map=M, type=RW, addr=0xC0000000, size=0x04000000,file=./vmlinux
#mem_bank: map=M, type=RW, addr=0x30000000, size=0x03F80000
#mem_bank: map=M, type=RW, addr=0x33F80000, size=0x00080000, file=./u-boot.bin,boot=yes
#mem_bank: map=M, type=RW, addr=0xc1000000, size=0x01000000
# all peripherals I/O mapping area
mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
#net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=08:00:3E:26:0A:5B, ethmod=tuntap, hostip=10.0.0.1
#nandflash: type=s3c2410x,name=K9F1208U0B,dump=./nand.dump
#lcd: type=s3c2410x, mod=gtk
dbct:state=on
用刚才编译的u-boot。
然后cygwin命令行中输入skyeye -e u-boot
出现了u-boot命令。。。
输入:version 显示1.1.4
ok。成功了第一步。以后会开始移植2410到2440,同时移植到支持nand启动。
加油!!!
[ 本帖最后由 creatorwu 于 2008-1-26 10:27 编辑 ] good! 我是一个LINUX初学者,按照楼主的步骤,已经做好了,下一步该怎么做?什么都还不懂,等着按照楼主的开发流程做一便,应该会把环境熟悉起来!:? 我另外一个帖子就写到如何让2410从nand启动,同时我有写下一步的安排。
目前是2410ok之后,移植2440,再ok之后,移植ecos。
linux放到最后。
当然我的水平还是比较菜,不过有恒心就有进步,有提高。 不通过, cc1: error: invalid option `abi=apcs-gnu'
后来网上搜索发现有个哥们遇到过这个问题。
出错的文件是/cpu/s3c2410/下的config.mk:将
这里错了吧 应该是/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,))
编译,通过。 原帖由 zbluecn 于 2008-2-1 09:59 发表 http://www.linuxfans.org/bbs/images/common/back.gif
不通过, cc1: error: invalid option `abi=apcs-gnu'
后来网上搜索发现有个哥们遇到过这个问题。
出错的文件是/cpu/s3c2410/下的config.mk:将
这里错了吧 应该是/cpu/arm920t/config.mk
...
对,是错了。我不想打字,直接复制了网上的一个介绍。
呵呵。谢了。 我按照上面的方法在Cygwin下编译 SkyEye 时有如下错误:
===================================
make: *** Error 57
===================================
这是什么错误、什么原因??还请高手帮忙!
谢谢 感谢lz的分享,正在用cygwin重走lz路.希望顺利.
页:
[1]