2.1【Linux系统移植之一】:移植U-Boot(制作u-boot.bin文件)



备注:本文以正点原子imx6ull芯片Alpha开发板为例。参考《正点原子嵌入式linux驱动开发指南V1.4.pdf》整理的笔记。



一、下载源码、编译源码

该步骤的作用是:测试源码是否可以正常编译,如果可以确定自己的源码能够正常编译通过无误,则可以跳过此步骤

  1. ARM芯片官网下载对应的U-BOOT,并解压

    tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2
    

    下表格为常用目录,以及后续修改配置需要打交道的文件夹及含义

    目录 含义
    configs 各种芯片型号的配置文件均在此文件夹下,根据自己使用的芯片有对应的配置文件
    比如:
      imx6ull对应的配置文件名称为:mx6ull_xxxx_defconfig
    其中:
      当板卡为emmc启动方式时使用配置文件mx6ull_14x14_evk_emmc_defconfig
      当板卡为nand启动方式时使用配置文件mx6ull_14x14_evk_nand_defconfig
    include/configs 头文件
    board/freescale 板级文件
  2. 安装依赖库

    sudo apt-get install libncurses5-dev
    
  3. u-boot根目录下编写shell编译脚本

    vim mx6ull_14x14_emmc.sh
    

    文件中写入如下内容:

    因为我是用的开发板是emmc启动板卡,所以第二条命令使用配置文件mx6ull_14x14_evk_emmc_defconfig

    #!/bin/bash
    
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
    make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
    
  4. 赋予脚本可执行权限

    chomd 777 mx6ull_14x14_emmc.sh
    
  5. 执行脚本,编译u-boot

    ./mx6ull_14x14_emmc.sh
    
  6. 编译完成后终端显示如下镜像信息

    ......
    fg.cfgtmp board/freescale/mx6ullevk/imximage.cfg
      ./tools/mkimage -n board/freescale/mx6ullevk/imximage.cfg.cfgtmp -T imximage -e 0x87800000 -d u-boot.bin u-boot.imx 
    Image Type:   Freescale IMX Boot Image
    Image Ver:    2 (i.MX53/6/7 compatible)
    Mode:         DCD
    Data Size:    425984 Bytes = 416.00 kB = 0.41 MB
    Load Address: 877ff420
    Entry Point:  87800000
    



二、修改源码(适配自己的开发板)

  修改源码,作用其实是将源码中跟自己板卡最接近的平台的【配置文件】和【头文件】和【板级文件】拷贝一份重命名为自己板卡的对应文件,然后修改里面的源码,在进行编译生成zImage/rootfs等文件。

  这里阿尔法开发板芯片为imx6ull,emmc启动方式,所以在后续拷贝文件时,NXP官方evk开发板与阿尔法开发板最为类似,故,拷贝文件名形如【mx6ull_14x14_evk_emmc_xxx】,命名为自己板卡【mx6ull_alientek_emmc_xxx】

2.1 拷贝配置文件

  1. 拷贝类似平台配置文件,重名民为自己的平台配置文件

    cd configs
    cp mx6ull_14x14_evk_emmc_defconfig mx6ull_alientek_emmc_defconfig
    
  2. 修改配置文件

    将第1行和第4行的mx6ullevk修改为mx6ull_alientek_emmc

    vim mx6ull_alientek_emmc_defconfig
    修改为如下内容:
    
    CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ull_alientek_emmc/imximage.cfg,MX6ULL_EVK_EMMC_REWORK"
    CONFIG_ARM=y
    CONFIG_ARCH_MX6=y
    CONFIG_TARGET_MX6ULL_ALIENTEK_EMMC=y
    CONFIG_CMD_GPIO=y
    

2.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值