creatorwu 发表于 2008-1-26 10:17:07

在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 编辑 ]

ksh 发表于 2008-1-26 20:12:47

good!

chenqianglight 发表于 2008-1-30 13:57:19

我是一个LINUX初学者,按照楼主的步骤,已经做好了,下一步该怎么做?什么都还不懂,等着按照楼主的开发流程做一便,应该会把环境熟悉起来!:?

creatorwu 发表于 2008-1-30 16:18:46

我另外一个帖子就写到如何让2410从nand启动,同时我有写下一步的安排。
目前是2410ok之后,移植2440,再ok之后,移植ecos。
linux放到最后。
当然我的水平还是比较菜,不过有恒心就有进步,有提高。

zbluecn 发表于 2008-2-1 09:59:38

不通过, 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,))
    编译,通过。

creatorwu 发表于 2008-2-4 09:05:08

原帖由 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

...
对,是错了。我不想打字,直接复制了网上的一个介绍。
呵呵。谢了。

deng0jun 发表于 2008-5-9 15:38:59

我按照上面的方法在Cygwin下编译 SkyEye 时有如下错误:
===================================
make: *** Error 57
===================================

这是什么错误、什么原因??还请高手帮忙!

谢谢

popo77 发表于 2009-7-7 14:56:11

感谢lz的分享,正在用cygwin重走lz路.希望顺利.
页: [1]
查看完整版本: 在cygwin下面用skyeye编译调试u-boot(s3c2410)(原创,申请加精)