S3C6410移植u-boot-2010.3(1)成功编译的开始

发布时间:2024-09-02  

  参考连接: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)若成功编译可以进行进一步的功能添加,下一篇详述功能添加


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>