OK2440 uboot移植笔记【一】

    说实话,我这板子是09年七月份买的,由于中间考研什么的,就放起来睡大觉了,最后没有考上研究生,就去工作了。但是工作上,没有用到arm9等高端的芯片,仅仅是stm32芯片,所以工作一年了,也没有怎么碰我的arm9的板子,最近从抽屉里发现了它,想了想,放着多可惜,就玩玩吧。最近觉得我应该多做一下arm9方面的东西,增加一下自己的经验。呵呵。

      看着飞凌的板子资料,着实有些老了,呵呵 ,09年的嘛,特别是bootloader非主流,现在大家都在玩uboot,咱也试试吧,由于我的板子上没有uboot相关的资料,飞凌官方也下不了,只有自己做了。

      我用的虚拟机是最新的7.1.4 build-385536版本的,用在很爽,redhat9,uboot是u-boot-2010.06.tar.bz2,编译器arm-linux-gcc-4.3.2.tgz。



1、首先在根目录新建一个文件夹board,在其中接着新建/samsung/OK2440IV/uboot。

2、把从网上下载下来的uboot文件(通过虚拟机共享文件夹方式)拷贝到uboot目录下解压

    tar -xjvf u-boot-2010.06.tar.bz2

3、配置uboot

    

    进入u-boot-2010.06/board/samsung/,新建目录OK2440,复制同目录下的smdk2410里面所有文件到OK2440


    进入OK2440目录,把复制过来的smdk2410.c 改为 OK2440.c


    在include/configs/目录下复制smdk2410.h副本一份,并改名为OK2440.h


    修改board/samsung/OK2440目录下的Makefile文件

         COBJS := OK2440.o flash.o


    修改u-boot-2010.06根目录下的Makefile文件,指定交叉编译器,如果难找,大家可以通过查找的方式进行查找

        CROSS_COMPILE ?= arm-linux-

    然后接着修改本Makefile下的OK2440的编译选项,由于uboot没有默认支持2440,我们需要根据smdk2410的编译选项进行修改

         复制smdk2410 编译选项

                       smdk2410_config : unconfig

                                 @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0

        在smdk2410 编译选项下面进行粘贴并修改

                      OK2440_config : unconfig

                                @$(MKCONFIG) $(@:_config=) arm arm920t OK2440  samsung s3c24x0

      *注意:编译选项的第二行要以Tab开头,否则编译会出错。


这样的话,就可以测试了


   命令行进入u-boot-2010.06根目录

  首先清理一下

   

   #make clean

   #make distclean


   #make OK2440_config

   #make all

接下来就是等待编译完成。

 

 


=============================================================================

     不过我中间遇到一个问题,编译到最后出现了一下问题


lib_arm/libarm.a(_udivsi3.o):/u-boot-1.1.6/lib_arm/_udivsi3.S:17: first defined here
arm-linux-ld: ERROR: Source object /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivdi3.o) has EABI version 5, but target u-boot has EABI version 0
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivdi3.o)
arm-linux-ld: ERROR: Source object /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivsi3.o) has EABI version 5, but target u-boot has EABI version 0
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivsi3.o)
arm-linux-ld: ERROR: Source object /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_dvmd_lnx.o) has EABI version 5, but target u-boot has EABI version 0
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_dvmd_lnx.o)
arm-linux-ld: ERROR: Source object /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_clz.o) has EABI version 5, but target u-boot has EABI version 0
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_clz.o)



最后是通过修改     u-boot-2010.06/arch/arm/cpu/arm920t/下的config.mk文件的最后两行才得以解决


PLATFORM_CPPFLAGS +=$(call cc-option,)
PLATFORM_RELFLAGS +=$(call cc-option,$(call cc-option,))

   

以上就是我今天开始做的工作,咱现是个菜鸟,所以有很多东西要做,接下来就是移植驱动,任务艰巨呀。



  



  

    

    

 


   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值