移植u-boot-2016.11到JZ2440(一:创建单板)

目录

1. 创建单板
    1.1 环境
    1.2 获取u-boot-2016.11源码
        1.2.1 文件夹介绍
        1.2.2 文件介绍
    1.3 修改源码创建单板
        1.3.1 创建board/samsung/jz2440单板文件夹
        1.3.2 创建configs/jz2440_defconfig单板配置文件
        1.3.3 创建include/configs/jz2440.h单板相关头文件
        1.3.4 修改arch/arm/Kconfig文件
        1.3.5 指定编译工具链
    1.4 编译


1. 创建单板

1.1 环境

    交叉编译工具:arm-linux-gcc-4.4.3
    开发板:JZ2440V3

1.2 获取u-boot-2016.11源码

    从官方下载源码,地址:ftp://ftp.denx.de/pub/u-boot/,找到u-boot-2016.11.tar.bz2并下载。
    解压该文件,得到如下:
    移植u-boot-2016.11到JZ2440(一:创建单板)_第1张图片
    下面简单介绍一下这些文件夹与文件。

1.2.1 文件夹介绍

    api:硬件无关的功能函数的API
    arch:与体系结构相关的代码;
    board:对应不同配置的电路板;
    cmduboot命令相关内容;
    common:通用的函数,多是对下一层驱动程序的进一步封装;
    configs:类似于linux的单板配置文件;
    disk:硬盘接口程序;
    doc:开发文档;
    drivers:每种类型的设备驱动占用一个子目录;
    dts:设备树相关;
    examples:一些测试程序;
    fs:文件系统;
    include:头文件,以通用的头文件为主;
    lib:通用库文件;
    Licenses:协议文档;
    net:各种网络协议;
    post:上电自检程序;
    scripts包含了用来配置uboot的脚本文件;
    test:测试文件;
    tools:辅助工具文件,用于编译和检查uboot映像等。

1.2.2 文件介绍

    .gitignoregit工具的文件,git是一个版本管理工具,这个文件和git有关,和uboot本身无关的;
    config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它;
    Kconfig:当执行make menuconfig时会出现配置界面,所有配置工具都是通过读取该文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig
    MAINTAINERS:维护者,就是当前在参与维护uboot源码的社区工作者;
    Makefile:是uboot源代码的主Makefile,整个uboot被编译时就是用这个Makefile管理编译的。

1.3 修改源码创建单板

    下面开始修改源码,创建针对JZ2440开发板的相关单板文件使之能够编译成功。首先在服务器上解压u-boot-2016.11.tar.bz2文件,执行如下命令:
      tar xjf u-boot-2016.11.tar.bz2

1.3.1 创建board/samsung/jz2440单板文件夹

    进入u-boot-2016.11根目录,拷贝根目录下的board/samsung/smdk2410文件夹为jz2440,并修改该目录下的smdk2410.c文件名为jz2440.c,执行如下命令:
      cp -rf board/samsung/smdk2410/ board/samsung/jz2440
      mv board/samsung/jz2440/smdk2410.c board/samsung/jz2440/jz2440.c

   

    还需要修改该目录下的Makefile,执行并修改如下:
      vi board/samsung/jz2440/Makefile
   

    然后修改该目录下的Kconfig,修改如下:
      vi board/samsung/jz2440/Kconfig
   
移植u-boot-2016.11到JZ2440(一:创建单板)_第2张图片

1.3.2 创建configs/jz2440_defconfig单板配置文件

    拷贝单板配置文件并修改,执行如下命令:
      cp configs/smdk2410_defconfig configs/jz2440_defconfig
      vi configs/jz2440_defconfig
    (修改该文件的SMDK2410JZ2440
   
移植u-boot-2016.11到JZ2440(一:创建单板)_第3张图片

1.3.3 创建include/configs/jz2440.h单板相关头文件

    创建单板相关头文件include/configs/jz2440.h,直接复制smdk2410.hjz2440.h,执行如下:
      cp include/configs/smdk2410.h include/configs/jz2440.h

1.3.4 修改arch/arm/Kconfig文件

    修改arch/arm/Kconfig文件,将下面内容:
   
    改为:
   
    将下面内容:
   
    改为:
   

1.3.5 指定编译工具链

    在编译时指定编译链:
      make ARCH=arm CROSS_COMPILE=arm-linux-
    或者修改顶层Makefile文件,添加下面代码:

ARCH            ?= arm
CROSS_COMPILE   ?= arm-linux-

    编译时执行make即可。

1.4 编译

    在u-boot-2016.11根目录下执行:
      make jz2440_defconfig
      make
   
结果如下:
     移植u-boot-2016.11到JZ2440(一:创建单板)_第4张图片
    编译成功,下一节分析u-boot-2016.11启动过程。

你可能感兴趣的:(uboot移植)