I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备

文章目录

  • 前言
  • 一、搭建开发环境
  • 二、获取官方资料
    • 1. 获取官方开发板资料
    • 2. 获取官方 U-Boot 源码
  • 总结


前言

去年入手了一块正点原子的 I.MX6U-ALPHA 开发板,跟着其配套的指导文档一步一步操作,很轻松就完成了 u-boot 移植、内核移植以及根文件系统的构建。就我个人感觉而言,我仅仅是跟着教程完成了操作,得到了想要的结果,但是并不知道个中原因,有种 知其然而不知其所以然 的感觉。

为此,我查阅了 NXP 提供的官方指导文档,按照官方提供的资料将 NXP 提供的 u-boot 一步一步的移植到正点原子的 I.MX6U-ALPHA 开发板上,在此过程中,我感觉收获良多,此前很多不解的问题也在官方文档上找到了答案,所以我打算将这次探索的过程写成文章,分享给更多需要的小伙伴!


一、搭建开发环境

我的开发环境是在 WSL 下搭建的,关于如何在 WSL 下搭建嵌入式开发环境,我在此前的文章中有做介绍,感兴趣的小伙伴可以去看看。

WSL嵌入式开发系列教程 1 —— 安装指南
WSL嵌入式开发系列教程 2 —— Windows 与 Linux 的文件互传
WSL嵌入式开发系列教程 3 —— 安装交叉编译工具链
WSL嵌入式开发系列教程 4 —— 安装VS code

在虚拟机环境下搭建开发环境操作也是一样的,小伙伴不必纠结这个问题。

二、获取官方资料

正点原子的 I.MX6U-ALPHA 开发板设计参考的是 NXP 官方的 I.MX6ULL EVK 开发板,因此我们需要到 NXP 官网上查找 I.MX6ULL EVK 开发板相关的资料。


1. 获取官方开发板资料

NXP的英文网站和中文网站有点差异,并不是完全一样,不过这不影响我们查找资料,这里我以中文网站为例,讲讲如何在 NXP 官网上查找 I.MX6ULL EVK 开发板相关的资料。

点击进入 ==> NXP官方中文网站
点击进入 ==> NXP官方英文网站


首先进入 NXP 官网,在设计版块上可以看到有 I.MX 系列开发板的相关信息,点击进入 ==>
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第1张图片
点击查看全部 ==>
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第2张图片
然后我们可以看到 I.MX6ULL EVK 开发板的相关信息,点击进入 ==>
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第3张图片
可以看出,这里就是 I.MX6ULL EVK 开发板资料的下载页面了。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第4张图片
继续往下翻,可以看到有个快速入门,这里有个快速入门指导文档和最新发布的镜像文件,当前最新的镜像文件是 L4.1.15_2.0.1 版本,如果你有 I.MX6ULL EVK 开发板,那么就可以下载这个压缩包,将里面的镜像文件烧录到 I.MX6ULL EVK 开发板上进行测试。

I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第5张图片
快速入门手册里面主要是介绍了 I.MX6ULL EVK 开发板的硬件资源,以及如何使用 I.MX6ULL EVK 开发板。

I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第6张图片
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第7张图片

点击下载 ==> i.MX 6ULL EVK 开发板快速入门手册

点击下载 ==> L4.1.15_2.0.1-patch_images_MX6ULLEVK


很明显,这些资料并不是我现在最想要的资料,因为我手上并没有 i.MX 6ULL EVK 开发板,继续往下看,在支持信息里面,有很多 DOCS 结尾的文档,根据下面的描述,可以知道这些就是 NXP 官方关于 BSP 的指导文档,足足有 10 个版本。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第8张图片
那么问题来了,那么多个版本的文档,选择哪一个版本的文档才是我们需要的呢?

说实话,我也不知道哪个合适,所以我的选择是全部都下载下来看一下再决定选择哪一个版本。其实,不管你打开哪个版本的文档,其实里面的内容都差不多,其中都有一个以 ''Porting_Guide" 结尾的文档,这个就是跟移植相关的指导文档。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第9张图片
我查阅了这 10 个版本的 ''Porting_Guide" ,发现主要有两种不同的移植方式:一种是传统的修改源码的移植方式,另一种是基于 Yocto Project 的移植方式。

例如我打开 L4.14.98_2.0.0 这个版本的 ''Porting_Guide" ,找到里面关于 U-Boot 移植的内容如下:
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第10张图片
可以看到,这个指导文档的基于 Yocto Project 的移植,我的建议呢,是先使用传统的修改源码的方式来移植U-Boot,熟练掌握U-Boot的移植以后,再学习基于 Yocto Project 的移植,所以这个不是我想寻找,继续。

这里顺便讲一下这个版本号的意义,我们打开 L4.14.98_2.0.0 版本的Release_Notes,在 Release contents 章节可以看到版本号的含义,其他版本号的含义。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第11张图片
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第12张图片

好,继续我们的查找,最终,我在 L4.1.15_2.0.0 版本的 ''Porting_Guide" 中找到了我想要的内容:

点击下载 ==> L4.1.15_2.0.0 版本文档

I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第13张图片
注意看,这里有两个重点:第一个重点是 step-by-step guide,手把手教你移植基于 I.MX6 和 I.MX7 的 U-Boot 到自己的板子上;第二个重点是用到的 U-Boot 是基于 v2016.03 这个版本的。


继续往下看,有如下内容,这个就是NXP官方 U-Boot 的移植教程了。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第14张图片


2. 获取官方 U-Boot 源码

NXP 官方的 U-Boot 移植教程我们是成功找到了,但是 NXP 官方 U-Boot 源码我们应该上哪里找呢?

开始,我看到是基于 v2016.03 版本的 U-Boot 进行移植的,所以我就去 U-Boot 的官网上下载了 v2016.03 版本的源码,然后跟着文档一步一步移植,发现不少地方对应不上,后来我才猛然想起,我应该是要去下载 NXP 基于v2016.03 版本修改后发布 U-Boot 源码,而不是直接下载 v2016.03 版本的 U-Boot 源码。


我在 NXP 官网找了好几遍,也没有找到 U-Boot 相关下载页面,然后在百度搜索 "imx u-boot" 关键字,一下就找到了,哈哈!

在这里插入图片描述
点击进入 ==> uboot-imx

I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第15张图片
页面最下面是 GitHub 的仓库地址,所以我们可以 GitHub 上导入该仓库,然后再下载我们需要的源码。


点击进入 ==> GitHub

点击左上角的 “导入仓库”
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第16张图片
然后填入需要导入的仓库地址和仓库名称,点击开始导入。

https://source.codeaurora.org/external/imx/uboot-imx
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第17张图片
开始导入后,可以看到进度条,导入的速度很慢,耐心等待即可。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第18张图片
导入完成后,直接点击进度条下面的路径即可进入仓库。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第19张图片
上面说了,我们需要下载 v2016.03 这个版本的U-Boot ,点击 “master” ,往下拉,找到 “v2016.03_4.1.15_2.0.0” 这个版本的源码,这个版本的源码刚好就对应我们上面下载的 L4.1.15_2.0.0 版本的官方指导文档。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第20张图片
选择好 U-Boot 源码版本后,选择下载方式下载即可,我这里选择下载 ZIP 压缩包。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第21张图片


从 GitHub 上下载源码的速度比较慢,我们可以到 “码云” 上下载,速度相对快一点。

点击进入 ==> 码云 gitee

跟 GitHub 操作一样,导入仓库。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第22张图片
把 NXP 官方 U-Boot 源码仓库地址填入时,可以看到提示目前导入仓库在 Gitee 上已有公开同步仓库,你可以直接点击访问,也可以继续导入。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第23张图片
后续的操作和 GitHub 上的操作一样,选择相应的版本,然后下载源码即可。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第24张图片
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备_第25张图片

点击获取 ==> NXP 官方 v2016.03_4.1.15_2.0.0 版本 U-Boot 源码


总结

至此,我们已经下载好了我们需要的 NXP 官方指导文档以及U-Boot 源码了,前期准本工作已完成,下一步就可以开始移植 U-Boot 到开发板上了。

你可能感兴趣的:(u-boot,嵌入式,c语言)