nxp官方uboot移植到野火开发板PRO(无任何代码逻辑的修改)

简介: nxp官方uboot移植到野火开发板PRO(无任何代码逻辑的修改)

1. 解压官方uboot压缩包

将NXP官方uboot拷贝到虚拟机,并解压,命名为my_uboot,然后进入该目录

f9bfa929693947b4ac61e0a55e085c63.png


2. 添加开发板默认配置文件

官方nxp样板为evk,我们本次移植也是在他的基础上移植的。所以拷贝一份它的配置文件,并进行一些修改8aa38b85401848a4b0550f25912ef5dd.png

修改前:

710d58ac8140434692a7f1f050b74aa4.png


修改后:

131e38b6943645d7932134aacc5d6e07.png


这两个修改部分时候后面的修改相关联的,看到后面自然就知道了为什么会修改了

3. 添加开发板默认的头文件

同样也是拷贝的evk样板的头文件。只需要将开头的条件编译改下。这个文件定一些一系列的宏定义,目的有使能某个uboot命令,配置一些uboot环境变量,设置栈大小,系统时钟等等。


aeeb62d7e0fe43399aa09e12b2bf3127.png

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

4.1 拷贝evk开发板的板级文件夹

72ffb432cd0b41cf9270ae2a01ac3a0a.png


4.2 将该文件夹下的mx6ullevk.c改为mx6ull_fire_emmc.c

0ef8dffddee34386a6cf275c93c0e48f.png


4.3 修改该路径下的Makefie

上一步将文件名改了,这一步当然得该Makefile了

4.4 修改该路径下的imximage.cfg

修改后如下:

08e07a3749494bed860d12c07a593dbf.png


我们最后编译的u-boot.bin和u-boot.imx的区别就在于imx文件比bin文件多了个头部数据,头部数据就定义在该文件内,如下图:



0c234e7d1aaf44ec9d48a3adb26a2d84.png

4.5 修改当前目录下的Kconfig文件

修改前:

3111cd4769aa46a1ae782047fdb547ba.png

修改后:

2ea2fbdef6034bf5944148ee7017ef2c.png


第一步修改的地方就与第二部分(2. 添加开发板默认配置文件)修改的地方关联起来了

4.6 修改该目录下的MAINTAINERS

修改前:

007175f856434d5e85ae24efa2ad4691.png

修改后:

88aadcf8e54d47198fb12b7c5a0acd47.png


5. 修改U-boot图形界面配置文件

修改文件/arch/arm/cpu/armv7/mx6/Kconfig,添加你自定义的配置,在207行添加(因为我们还是参考的evk配置,evk配置就在201行)

2dde222dd7ca453d9729e9cd2707539b.png

还需要在该文件默认添加:

bf6e5fd03c6f4b9da61250136c7a101d.png


6. 编译初始

6.1 编译

切换到uboot根目录, 使用如下命令配置uboot,生成配置文件.config


b8f685327caa4e7bb5ce4e0ffba11efc.png

编译

V=1 和-j6可要可不要。

  • V=1 表示显示详细的编译信息
  • -j+数字 表示使用几核编译,根据你电脑的处理器来指定数字,可加快编译速度

a2a51e095fbb4848855bf877a7c05fac.png

  • 编译成功
  • 1f3fb8569c0646aaa6893f4dbfc1130c.png

6.2 拷贝到开发板测试

首先将生成u-boot.imx烧录到SD卡内(使用dd命令)

397286bd6493464786ecae6d2f74ebbe.png


将SD插入开发板并重启开发板

176e84ccf1ac4339bb992389fd792a36.png

ac9a8da8e3784734ba9669f3f4492f82.png

7. 注意

  • 每次烧录u-boot.imx到SD卡的时候都需要将SD卡重新格式化,并且不能用Windows自带的格式化功能,因为没有用,不然会残留上次系统的一些信息。建议使用SDFormatter软件进行格式化。



目录
相关文章
|
Java Linux Shell
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
2416 0
|
Ubuntu
Ubuntu 安装使用yum
Ubuntu 安装使用yum
3174 0
|
SQL 开发框架 .NET
高级主题:Visual Basic 中的多线程和并发编程
【4月更文挑战第27天】本文深入探讨了Visual Basic中的多线程和并发编程,阐述了其基本概念,如何使用`System.Threading.Thread`类创建线程,以及借助`ThreadPool`、`Monitor`和`SyncLock`进行同步管理。文章还提到了多线程编程面临的挑战如竞态条件、死锁和资源竞争,并介绍了VB的异步编程、TPL和并发集合等高级技术。通过实例展示了多线程在文件处理、网络通信和图像处理中的应用,并给出了多线程编程的最佳实践。总之,理解并掌握VB的多线程和并发编程能有效提升应用程序的性能和响应能力。
553 1
|
并行计算 算法 大数据
Dask 与图形处理:大规模图数据的并行分析
【8月更文第29天】在大数据时代,图数据结构因其能够高效表达实体之间的复杂关系而变得越来越重要。然而,处理大规模图数据集往往需要高效的并行计算框架。Dask 是一个灵活的并行计算库,它能够与 Python 的现有科学计算生态系统无缝集成。本文将介绍如何利用 Dask 来处理和分析大规模的图数据结构。
596 4
|
网络协议 Ubuntu Linux
在IPad Pro上怎么实现代码自由,如何让IPad Pro变成你的生产力工具?
如何让IPad Pro变成你的生产力工具?在IPad上用Vscode写代码搞开发
665 1
在IPad Pro上怎么实现代码自由,如何让IPad Pro变成你的生产力工具?
|
安全 编译器 异构计算
在CPU设计中,为了提高能效比并减少能源消耗,采用了多种节能技术
【10月更文挑战第2天】在CPU设计中,为了提高能效比并减少能源消耗,采用了多种节能技术
418 5
|
数据采集 供应链 监控
一文看懂:MES定义和功能是什么,以及在数字化工厂的应用
MES是制造企业信息化的关键,适应个性化和敏捷制造需求,助力生产精益管理。作为数字化与智能化的核心,MES系统在数字化工厂中发挥重要作用,实现实时监控、资源优化和生产流程自动化。系统功能包括一站式生产业务流程、生产进度追踪、灵活功能修改、数据可视化和移动端报工。发展历程从数据采集到智能制造,现正向MOM发展,整合更多环节,强调数据实时性、智能化、灵活性和整体优化,以提升制造业效率和竞争力。
|
存储 XML JavaScript
手把手教你进阶VUE,猴子都能看懂的教程(上)
VUE是动态构建用户界面的渐进式 JavaScript 框架,编码简洁, 体积小, 运行效率高,,今天我们通过超多图解、代码进阶vue核心
1403 3
手把手教你进阶VUE,猴子都能看懂的教程(上)
|
存储 边缘计算 运维
开源物联网平台ThingsBoard数据库40张数据表设计一览
开源物联网平台ThingsBoard数据库40张数据表设计一览
3110 15
开源物联网平台ThingsBoard数据库40张数据表设计一览