2.1在 U-Boot 中添加自己的开发板

一、NXP 官方的 I.MX6ULL EVK 开发板为例

2.1 添加开发板默认配置文件,在cinfigs目录下创建配置文件(已经省略路径为:1、例程源码->4、NXP 官方原版 Uboot 和 Linux->uboot-
imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2。将 uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 发送到 Ubuntu的步骤)

cd configs
cp mx6ull_14x14_evk_emmc_defconfig    mx6ull_alientek_emmc_defconfig

然后修改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 添加开发板对应的头文件

在 目 录 include/configs 下 添 加 I.MX6ULL-ALPHA 开 发 板 对 应 的 头 文 件 , 复 制 include/configs/mx6ullevk.h,并重命名为 mx6ull_alientek_emmc.h

cp include/configs/mx6ullevk.h mx6ull_alientek_emmc.h

完成后将如下内容:

#ifndef __MX6ULLEVK_CONFIG_H
#define __MX6ULLEVK_CONFIG_H

更改为:

#ifndef __MX6ULL_ALIENTEK_EMMC_CONFIG_H
#define __MX6ULL_ALIENTEK_EMMC_CONFIG_H

2.3 添加开发板对应的板级文件夹

在NXP的board/freescale 目录下有个名为 mx6ullevk 的文件夹,这个文件夹就是 NXP 官方 I.MX6ULL EVK 开发板的板级文件夹,复制 mx6ullevk,将其重命名为 mx6ull_alientek_emmc

cd board/freescale/ 
cp mx6ullevk/ -r mx6ull_alientek_emmc 

进 入 mx6ull_alientek_emmc 目 录 中 , 将 其 中 的 mx6ullevk.c 文 件 重 命 名 为
mx6ull_alientek_emmc.c

cd mx6ull_alientek_emmc
mv mx6ullevk.c mx6ull_alientek_emmc.c

2.4修改 mx6ull_alientek_emmc 目录下的 Makefile 文件

mx6ull_alientek_emmc 下的 Makefile 文件内容改为如下:

# (C) Copyright 2015 Freescale Semiconductor, Inc. 
# 
# SPDX-License-Identifier:   GPL-2.0+ 
# 
   
obj-y  := mx6ull_alientek_emmc.o 

extra-$(CONFIG_USE_PLUGIN) :=  plugin.bin 
$(obj)/plugin.bin: $(obj)/plugin.o 
$(OBJCOPY) -O binary --gap-fill 0xff $< $@ 

重点是第 6 行的 obj-y,改为 mx6ull_alientek_emmc.o,这样才会编译 mx6ull_alientek_emmc.c
这个文件。

2.5修改 mx6ull_alientek_emmc 目录下的 imximage.cfg 文件

将 imximage.cfg 中的如下内容进行更改:

PLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000

更改为:

PLUGIN board/freescale/mx6ull_alientek_emmc /plugin.bin 0x00907000

2.6、修改 mx6ull_alientek_emmc 目录下的 Kconfig 文件 修改后内容如下:

if TARGET_MX6ULL_ALIENTEK_EMMC
 
    config SYS_BOARD 
    default "mx6ull_alientek_emmc"
    

    config SYS_VENDOR 
    default "freescale"
    
    config SYS_SOC 
    default "mx6" 
    

    config SYS_CONFIG_NAME 
   default "mx6ull_alientek_emmc" 
  
endif 

2.6修改 mx6ull_alientek_emmc 目录下的 MAINTAINERS 文件

修改后内容如下:

MX6ULL_ALIENTEK_EMMC BOARD 
M:    Peng Fan <peng.fan@nxp.com> 
S:    Maintained 
F:    board/freescale/mx6ull_alientek_emmc/ 
F:    include/configs/mx6ull_alientek_emmc.h 

2.7修改 U-Boot 图形界面配置文件

uboot 是支持图形界面配置,修改文件arch/arm/cpu/armv7/mx6/Kconfig,在207行加入如下内容:

config TARGET_MX6ULL_ALIENTEK_EMMC 
    bool "Support mx6ull_alientek_emmc" 
    select MX6ULL 
    select DM 
    select DM_THERMAL 

在最后一行的 endif 的前一行添加如下内容:

source "board/freescale/mx6ull_alientek_emmc/Kconfig" 

如图:在这里插入图片描述

2.8使用新添加的板子配置编译 uboot

在 uboot 根目录下新建一个名为 mx6ull_alientek_emmc.sh 的 shell 脚本
内容为:

#!/bin/bash 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- (加空格) 
mx6ull_alientek_emmc_defconfig 
make V=1  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 

给予mx6ull_alientek_emmc.sh脚本可执行权限

chmod 777 mx6ull_alientek_emmc.sh    //给予可执行权限,一次即可 
./mx6ull_alientek_emmc.sh        //运行脚本编译 uboot 

等 待 编 译 完 成,查 看 一 下mx6ull_alientek_emmc.h 这个头文件有没有被引用

grep -nR "mx6ull_alientek_emmc.h" 

编译完成以后就使用 imxdownload,将u-boot.bin烧写到SD卡中,在串口输出如图
在这里插入图片描述
由图可知:此时的 Board 还是“MX6ULL 14x14 EVK”,要是屏幕没有显示的话是屏幕参数不对,需要修改屏幕参数(下次更新即为屏幕参数的修改,期待会遇到啥bug)

2.9遇到的问题:

1、“board/freescale/mx6ull_alientek_emmc/Kconfig”
make[1]: *** [scripts/kconfig/Makefile:114:mx6ull_alientek_emmc_defconfig] 错误 1
如图:在这里插入图片描述
是因为对应的路径文件名没有改对,将其修改过来,如图所示即可!注意看路径!!!!
在这里插入图片描述

2、遇到:‘endif’ in different file than ‘if’ 的问题时,如图所示:

在这里插入图片描述**

解决方法:在endif下添个回车即可解决,如图所示

**:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值