• 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-

    编译成功

    在这里插入图片描述

  • 相关阅读:
    IP179N NI H Hl参考资料和引脚图
    Weblogic IIOP协议反序列化(CVE-2020-2551)漏洞复现
    React中setState方法详细讲解
    十三、Vue CLI(1)
    【第2次JavaWeb上机练习】
    abc280
    java 快速生成javaBean类
    【AI视野·今日NLP 自然语言处理论文速览 第三十六期】Tue, 19 Sep 2023
    掌握Golang匿名函数
    目标检测算法——YOLOv5结合轻量化网络MobileNetV3
  • 原文地址:https://blog.csdn.net/qq_24093081/article/details/126502576