zoukankan      html  css  js  c++  java
  • S3C6410移植uboot2010.3(1)成功编译的开始

      参考连接:http://wenku.baidu.com/view/ae78a00390c69ec3d5bb75ce.html?st=1

      链接上已经指明了我之前一直2013.01版本uboot产生错误的原因,2010.3版本到2010.6版本是uboot的一个分界,而2010.3版本的uboot是最接近samsung定制的s3c-u-boot-1.1.6版本uboot的一个版本号,所以在此选择版本2010.3

      1、download the uboot from ftp

    http://ftp.denx.de/pub/u-boot/
    download u-boot-2010.03.tar.bz2

      2、为了方便、先再win系统下将uboot解压然后精简解压包(这步可以省略的)

      1)精简板级文件目录/uboot/board,仅保留samsung文件夹(内部包含smdk6400.c)

      2)精简处理器文件目录/uboot/cpu,仅保留arm1176文件夹(6410的cpu类型)

      3)精简头文件目录/uboot/include,删除asm-*文件夹,仅保留asm-arm与asm-generic

      4)精简config文件目录uboot/include/configs,仅保留smdk6410.h

      5)精简lib目录/uboot,将lib_*删除,仅保留lib_arm与lib_generic

      3、开始进行初次编译,将目录文件移动到linux系统下(必须是已经配置好arm-linux-gcc的系统)

      1)修改Makefile,更改交叉编译器为

    CROSS_COMPILE ?= arm-linx-

      2)编译

    make smdk6400_config
    make

      3)检查,编译完成后uboot根目录下应该有u-boot.bin文件

      4)此时编译的uboot无实际使用意义,仅为测试能否正常编译,接下来修改后的编译才是我们需要编译使用的uboot,进行下一步工作前,可以

    make distclean

      4、步奏和之前编译的uboot2013一样

      1)创建板级文件/uboot/board/samsung目录下

    mkdir smdk6410
    cp smdk6400/* smdk6410/

      2)修改板级文件目录下的文件

    cd smdk6410
    mv smdk6400.c smdk6410.c

      3)修改板级文件内容

    vim smdk6410.c
    
    :%s/6400/6410/g
    :wq
    
    vim Makefile
    
    :%s/smdk6400/smdk6410/g
    :wq

      4)添加smdk6410头文件

      进入目录/uboot/include/configs

    cp smdk6400.h smdk6410.h

      将smdk6410.h中的6400全部替换成6410。

      5)修改cpu目录的Makefile

      进入目录/cpu/arm1176/s3c64xx

    vim Makefile
    
    :%s/6400/6410/g
    :wq

      6)修改根目录Makefile

      找到smdk6400配置项,复制一段修改为smdk6410配置项

    #########################################################################
    smdk6410_noUSB_config   \
    smdk6410_config :       unconfig
            @mkdir -p $(obj)include $(obj)board/samsung/smdk6410
            @mkdir -p $(obj)nand_spl/board/samsung/smdk6410
            @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
            @if [ -z "$(findstring smdk6410_noUSB_config,$@)" ]; then                       \
                    echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\
                    $(MKCONFIG) $(@:_config=) arm arm1176 smdk6410 samsung s3c64xx;         \
            else                                                                            \
                    echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\
                    $(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6410 samsung s3c64xx;   \
            fi
            @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
    
    #========================================================================

      7)添加/asm/arch/s3c6410.h文件

    cp s3c6400.h s3c6410.h

    vim s3c6410.h
    :%s/6400/6410/g
    :wq

      8)添加nand_spl板级Makefile

      /uboot/nand_spl/board/samsung/smdk6410/目录下是空的

      拷贝6400目录下的文件过来

    cd /uboot/nand_spl_board/samsung
    cp smdk6400/* smdk6410/
    
    vim smdk6410/Makefile
    :%s/6400/6410/g
    :wq

      9)然后可以进行smdk6410的初次编译了,在根目录下

    make smdk6410_config
    make

      10)如果在之前make smdk6400_config && make之后没有执行make clean的相关操作,一般是不会提示错误地。

        但是如果clean了,很可能会提示

    arm-linux-ld: cannot find cpu/arm1176/s3c64xx/cpu_init.o
    make: *** [u-boot] 错误 1

        提示这个的话,修改两处地方

    //cpu/arm1176/s3c64xx/cpu_init.S
    //cpu/arm1176/s3c64xx/Makefile
    
    //把之中的6400换成6410就好

      11)若成功编译可以进行进一步的功能添加,下一篇详述功能添加

      

  • 相关阅读:
    rabbitmq的安装和使用
    springboot之rabbitmq
    springboot之assembly的文件配置
    Android -- 真正的 高仿微信 打开网页的进度条效果
    香蕉云APP,2016下半年开发日记
    使用 Android Studio 检测内存泄漏与解决内存泄漏问题
    阿里云服务器上配置并使用: PHP + Redis + Mysql 从配置到使用
    PHP 获取 特定时间范围 类
    真实记录疑似Linux病毒导致服务器 带宽跑满的解决过程
    -Android -线程池 批量上传图片 -附php接收代码
  • 原文地址:https://www.cnblogs.com/plinx/p/2960925.html
Copyright © 2011-2022 走看看