×
单片机 > 单片机程序设计 > 详情

移植u-boot 1.1.6到TQ2440开发板-第一阶段

发布时间:2020-06-22 发布时间:
|
最近买了一个TQ2440开发板,奈何天嵌只给出了编译好的文件,没有给源码,小弟从头开始移植Uboot

 

移植u-boot 1.1.6到TQ2440开发板-第一阶段

主要修改、配置源代码、编译源代码

 

TQ2440开发板信息:

CPU:S3C2440

ARM核:arm920t

SDRAM:64M

Nor Flash:2M

Nand Flash:64M

网卡:DM9000

 

第一步:下载 uboot 1 . 1 . 6源码

之前都是从CSDN上下载,发现下载的都不是真正的官方发布的源码,给大家提供一个官网ftp://ftp.denx.de/pub/u-boot 格式为u-boot-1.1.6.tar.bz2

 

第二步:解压uboot源码到虚拟机上的linux系统中,一定要在linux上解压,因为对于linux是区分文件名大小写的,而windows是不区分大小写,在windows中解压会少很多文件,导致不能编译。

解压命令 tar xvjf u-boot-1.1.6.tar.bz2,解压后产生一个u-boot-1.1.6的文件夹

 

第三步:删除多余的文件夹,由于下载的U-boot源码支持众多的开发板,针对TQ2440,我们只需要编译TQ2440相关的文件即可,这里我们的移植是参考smdk2410来移植的,因此删除一些多余的文件。

   1、u-boot-1.1.6oard目录下只保留smdk2410文件夹,该文件夹存放和开发板相关的代码,因此其他的开发板的文件,可以删掉

   2、u-boot-1.1.6cpu存放和开发板CPU相关的代码,该文件夹只保留arm920t文件,因为S3C2440是arm920t的arm核

   3、u-boot-1.1.6include存放开发板体系相关的头文件,asm-XXX的文件目录中,只留下asm-arm,因为S3C2440是arm体系的

   4、u-boot-1.1.6includeconfigs文件只保留smdk2410.h,其他的文件全部删掉,该文件中是开发板的头文件

   5、u-boot-1.1.6目录下有lib-XXX的文件夹,保留lib-arm和lib-generic这两个文件夹,其他的lib-XXX文件  夹删除

   6、u-boot-1.1.6目录下有以 .mk结尾的文件,保留arm_config.mk、config.mk、rules.mk,其余的.mk文件删除

 

第四步:添加支持TQ2440的uboot,删除后这些文件编译后智能支持2410的开发板,因此我们要想支持S3C2440,必须增加TQ2440编译选项

   1、将u-boot-1.1.6/board/目录下的smdk2410,复制为TQ2440。

        cp - rf board/smdk2410/   board/TQ2440

   2、修改u-boot-1.1.6/board/TQ2440/下的smdk2410.c为TQ2440.c

        mv board/TQ2440/smdk2410.c  board/TQ2440/TQ2440.c

   3、修改u-boot-1.1.6/board/TQ2440下的Makefile文件,修改 Makefile 文件中 28 行的 COBJS,           

        COBJS := TQ2440.o flash.o因为上面已经改成TQ2440.c文件了

   4、修改开发板配置文件,进入 u-boot-1.1.6/include/configs 目录下, 将 smdk2410.h 复制为TQ2440.h

        cp include/configs/smdk2410.h  include/configs/TQ2440.h

   5、修改u-boot-1.1.6/顶层Makefile,Makefile  文件 1881 行,增加:
      TQ2440_config   :   unconfig
            @$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 NULL s3c24x0

      各项的意思如下:
       arm: CPU  的架构(ARCH)
       arm920t: CPU  的类型(CPU),其对应于cpu/arm920t  子目录。
       TQ2440:  开发板的型号(BOARD),对应于board/dong2440  目录。
       NULL:  开发者/或经销商(vender)。(此处没加vender,为NULL。)
       s3c24x0:   片上系统(SOC) 。

   6、配置交叉编译器:修改顶层(u-boot-1.1.6 目录)Makefile  文件 128 行,修改:
      ifeq ($(ARCH),arm)
           CROSS_COMPILE=usr/local/arm/4.3.2/bin/arm-linux
      endif

第五步:编译uboot

   1、首先make distclean,清除

   2、make TQ2440_config,配置

   3、make编译

关键字:移植  u-boot  1  6  TQ2440

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈AVR中定时器几种工作模式