uboot的移植和编译

1.uboot的作用

初始化硬件,将内核读到内存,根据环境变量去启动内核,传递参数给内核,内核启动后生命就结束

2.编译野火提供的uboot

1.下载源码—>野火修改后的uboot源码
git clone -b ebf_v2020_10_imx https://gitee.com/Embedfire/ebf_linux_uboot

2.执行以下命令
make distclean //清除环境
make mx6ull_fire_mmc_defconfig //配置板极文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- //开始编译

编译前:
在这里插入图片描述
编译后:
在这里插入图片描述
3.编译成功的效果
uboot.bin:是 u-boot 编译生成的原始的 image 文件,很多 image 文件的生成都需要 依赖于它
u-boot.imx:是 uboot.bin 添加了头部信息生成的最终镜像
编译生成的 uboot-dtb.imx 文件就是我们想要文件

至此编译野火的uboot就成功了!!!!

移植NXP官方提供的uboot到野火开发板

前面我们的使用的是野火提供的已经配制好的uboot,这个uboot经过配置后适用于野火的开发板,而NXP提供的只是适用于自己的板子,所以我们移植就是给开发板适配
废话少说,来看步骤!!!!

1.下载NXP的uboot

ftp://ftp.denx.de/pub/u-boot/获取(后缀有 rcx 表示测试版本)
ftp://ftp.denx.de/pub/u-boot/
这里下载的是
在这里插入图片描述

2.解压

在这里插入图片描述

3.编译官方的uboot

首先要找到对应芯片的配置文件,配置文件在源码目录下的configs里面,里面有不同型号和大小的配置文件,这里使用
注意编译成功后的uboot的镜像可能适用开发板,也可能不适用,所以接下来,我们重新配置来适用开发板

4.头文件

1.复 制include/configs/mx6ullevk.h,并重命名为 ljm_6ull.h
在这里面修改我们的配置
在这里插入图片描述
修改内容:在这里插入图片描述

5.添加开发板对应的板极文件夹

注意:
NXP 的 I.MX 系列芯片的所有板级文件夹都存放在 board/freescale 目录下,在这个目录下有个名为 mx6ullevk 的文件夹,这个文件夹就是 NXP 官方 I.MX6ULL EVK 开发板的板级文件夹在这里插入图片描述
我们需要做的就是赋值一份mx6ullevk,命名为ljm_6ull在这里插入图片描述
这个是编译后才有这么多文件,要不然就只有官网那几个文件,那几个文件就是我们需要修改的

1.复制该目录并修改名字为ljm_6ull

下面这幅图是我截图也野火的,说明各种文件作用
在这里插入图片描述
在这里插入图片描述

2.修改Makefile文件

要和ljm_6ull.c文件名对应起来,这样才会编译ljm_6ull.c
在这里插入图片描述

3.修改imximage.cfg 文件

改前:在这里插入图片描述改后:在这里插入图片描述

4.修改Kconfig 文件在这里插入图片描述

5.修改MAINTAINERS 文件 在这里插入图片描述

6.添加开发板配置文件

1.我们在源码目录的configs目录下拷贝,原厂的6ull的配置文件

复制 mx6ull_14x14_evk_emmc_defconfig,
然后重 命名为 ljm_6ull_defconfig
要和前面配置对应起来如图:
在这里插入图片描述

2.修改ljm_6ull_defconfig文件的以下内容

CONFIG_TARGET_LJM_6ULL=y
CONFIG_DEFAULT_DEVICE_TREE=“ljm-6ull” 这行参数是设备树名称,要与uboot设备树对应
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/ljm_6ull/imximage.cfg"这行参数是配置头部信息的,指向的是板子目录的cfg文件
在这里插入图片描述

7.修改图形配置

修改文件arch/arm/mach-imx/mx6/Kconfig
找到onfig TARGET_MX6ULL_14X14_EVK

添加以下红线内容
在这里插入图片描述
找到source "board/freescale/mx6ullevk/Kconfig"添加下面内容
在这里插入图片描述

8.添加设备树

1.复制设备树

cp arch/arm/dts/imx6ull-14x14-evk.dts arch/arm/dts/ljm-6ull.dts
在这里插入图片描述

2.添加设备树

在arch/arm/dts/Makefile
找到dtb-$(CONFIG_MX6ULL) +=
添加以下
在这里插入图片描述

9.再次编译

make distclean
make ljm_6ull_defconfig //这个文件在源码目录的configs下
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

编译成功

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知道起个啥名“”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值