• NXP官方开发板uboot编译


    一.  uboot简介

    之前有文章简单介绍过, uboot源码包的来源有三种:

    1.  uboot 官方的 uboot:由 uboot 官方维护开发的 uboot 版本,版本更新快,基本包含所有常用的芯片。

    2. 半导体厂商的 uboot:半导体厂商维护的一个 uboot,专门针对自家的芯片,在对自家芯片支持上要比 uboot 官方的好(他们也常常会有支持自己芯片的开发板,所以,就有相应的 uboot)。

    3. 开发板厂商的uboot:开发板厂商在半导体厂商提供的 uboot 基础上加入了对自家开发板的支持。

    这里的NXP(恩智浦)提供的 uboot源码包,就是第二种来源即半导体厂商提供的uboot。

    本文学习如何将 NXP 官方的 uboot 移植到正点原子的  I.MX6ULL 开发板上。

    二.   NXP官方开发板uboot 的编译

    正点原子提供了 NXP官网的 uboot源码包,目录如下:

    【正点原子】阿尔法Linux开发板(A盘)-基础资料-2022 /【正点原子】阿尔法Linux开发板(A盘)-基础资料 / 例程源码 / NXP官方原版Uboot和Linux

    将以上目录下的 uboot源码包拷贝到 ubuntu系统下,并解压 uboot源码包。

    1.  查找 NXP 官方的开发板默认配置文件

    uboot 的移植并不是说我们完完全全的从零开始将 uboot 移植到我们现在所使用的开发板或者开发平台上。这个对于我们来说基本是不可能的,这个工作一般是半导体厂商做的,半导 体厂商负责将 uboot 移植到他们的芯片上,因此半导体厂商都会自己做一个开发板,这个开发板就叫做原厂开发板
    半导体厂商会将 uboot 移植到他们自己的原厂开发板上,测试好以后就会将这个 uboot 发布出 去,这就是大家常说的原厂 BSP 包。我们一般做产品的时候就会参考原厂的开发板做硬件,然 后,在原厂提供的 BSP 包上做修改,将 uboot 或者 linux kernel 移植到我们的硬件上。

    这个就是 uboot 移植的一般流程:

    uboot 中找到参考的开发平台,一般是原厂的开发板。
    ② 参考原厂开发板移植 uboot 到我们所使用的开发板上。

    正点原子的 I.MX6ULL 开发板参考的是 NXP 官方的 I.MX6ULL EVK 开发板做的硬件,因此,我们在移植 uboot 时就可以以 NXP 官方的 I.MX6ULL EVK 开发板为蓝本。

    (1)  首先,查找 uboot配置文件。

    进入 uboot根目录下,进入 configs目录下,可以看到很多配置文件,这里只列出了 与IMX6ULL相关的配置文件:

    1. wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/nxp_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga/configs$ ls mx6ull*
    2. mx6ull_14x14_ddr3_arm2_defconfig mx6ull_14x14_evk_defconfig
    3. mx6ull_14x14_ddr3_arm2_emmc_defconfig mx6ull_14x14_evk_emmc_defconfig
    4. mx6ull_14x14_ddr3_arm2_epdc_defconfig mx6ull_14x14_evk_nand_defconfig
    5. mx6ull_14x14_ddr3_arm2_nand_defconfig mx6ull_14x14_evk_qspi1_defconfig
    6. mx6ull_14x14_ddr3_arm2_qspi1_defconfig mx6ull_9x9_evk_defconfig
    7. mx6ull_14x14_ddr3_arm2_spinor_defconfig mx6ull_9x9_evk_qspi1_defconfig
    8. mx6ull_14x14_ddr3_arm2_tsc_defconfig

    这里选择使用的配置文件是 mx6ull_14x14_evk_nand_defconfig

    注意:这些配置文件名,9x9(或者 14x14)的意思是:芯片封装大小是 9mm x 9mm,这里所用的封装是 14x14。

    2.  编译 NXP 官方开发板对应的 uboot

    编译 uboot源码 有三种方法。三种方法如下:

    (1)   方法一:直接在 Linux控制台终端输入命令进行配置。

    (2)  方法二:直接更改 uboot源码的顶层目录的 Makefile文件,进行配置。

    (3)  方法三:编写一个 shell脚本文件进行配置,并编译。

    这里学习第一种方法:直接在 Linux控制台终端输入命令进行配置编译

    (1)  首先,清除工程,进入 Uboot根目录下,输入如下命令:

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
    

    (2)  其次,配置 uboot,输入配置命令:

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_nand_defconfig

    (3)  编译 uboot,输入编译命令:

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 
    

    编译结束后,会在 uboot根目录下生成如下的可执行程序:

    wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/nxp_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga$ ls -l

    .........

    -rwxrwxr-x   1 wangtian wangtian 2681216 10月 15 17:47 u-boot
    -rw-rw-r--   1 wangtian wangtian  471284 10月 15 17:47 u-boot.bin
    -rw-rw-r--   1 wangtian wangtian   38494 10月 15 17:47 u-boot.cfg
    -rw-rw-r--   1 wangtian wangtian  478208 10月 15 17:47 u-boot.imx

  • 相关阅读:
    学习分享-FutureTask和消息队列的区别
    java计算机毕业设计河池市旅游信息系统MyBatis+系统+LW文档+源码+调试部署
    Android中的KeyEvent详解
    人工智能、深度学习、机器学习常见面试题41~55
    除汞树脂CH-95性能测试
    Kerberos认证
    [附源码]java毕业设计农村电商平台
    javaScript:DOM元素的获取(静态/动态获取)
    Spring框架
    yocs_velocity_smoother速度平滑库知识
  • 原文地址:https://blog.csdn.net/wojiaxiaohuang2014/article/details/133812548