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 EVK 开发板的相关信息,点击进入 ==>
可以看出,这里就是 I.MX6ULL EVK 开发板资料的下载页面了。
继续往下翻,可以看到有个快速入门,这里有个快速入门指导文档和最新发布的镜像文件,当前最新的镜像文件是 L4.1.15_2.0.1 版本,如果你有 I.MX6ULL EVK 开发板,那么就可以下载这个压缩包,将里面的镜像文件烧录到 I.MX6ULL EVK 开发板上进行测试。
快速入门手册里面主要是介绍了 I.MX6ULL EVK 开发板的硬件资源,以及如何使用 I.MX6ULL EVK 开发板。
点击下载 ==> i.MX 6ULL EVK 开发板快速入门手册
点击下载 ==> L4.1.15_2.0.1-patch_images_MX6ULLEVK
很明显,这些资料并不是我现在最想要的资料,因为我手上并没有 i.MX 6ULL EVK 开发板,继续往下看,在支持信息里面,有很多 DOCS 结尾的文档,根据下面的描述,可以知道这些就是 NXP 官方关于 BSP 的指导文档,足足有 10 个版本。
那么问题来了,那么多个版本的文档,选择哪一个版本的文档才是我们需要的呢?
说实话,我也不知道哪个合适,所以我的选择是全部都下载下来看一下再决定选择哪一个版本。其实,不管你打开哪个版本的文档,其实里面的内容都差不多,其中都有一个以 ''Porting_Guide" 结尾的文档,这个就是跟移植相关的指导文档。
我查阅了这 10 个版本的 ''Porting_Guide" ,发现主要有两种不同的移植方式:一种是传统的修改源码的移植方式,另一种是基于 Yocto Project 的移植方式。
例如我打开 L4.14.98_2.0.0 这个版本的 ''Porting_Guide" ,找到里面关于 U-Boot 移植的内容如下:
可以看到,这个指导文档的基于 Yocto Project 的移植,我的建议呢,是先使用传统的修改源码的方式来移植U-Boot,熟练掌握U-Boot的移植以后,再学习基于 Yocto Project 的移植,所以这个不是我想寻找,继续。
这里顺便讲一下这个版本号的意义,我们打开 L4.14.98_2.0.0 版本的Release_Notes,在 Release contents 章节可以看到版本号的含义,其他版本号的含义。
好,继续我们的查找,最终,我在 L4.1.15_2.0.0 版本的 ''Porting_Guide" 中找到了我想要的内容:
点击下载 ==> L4.1.15_2.0.0 版本文档
注意看,这里有两个重点:第一个重点是 step-by-step guide,手把手教你移植基于 I.MX6 和 I.MX7 的 U-Boot 到自己的板子上;第二个重点是用到的 U-Boot 是基于 v2016.03 这个版本的。
继续往下看,有如下内容,这个就是NXP官方 U-Boot 的移植教程了。
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
页面最下面是 GitHub 的仓库地址,所以我们可以 GitHub 上导入该仓库,然后再下载我们需要的源码。
点击进入 ==> GitHub
点击左上角的 “导入仓库”
然后填入需要导入的仓库地址和仓库名称,点击开始导入。
https://source.codeaurora.org/external/imx/uboot-imx
开始导入后,可以看到进度条,导入的速度很慢,耐心等待即可。
导入完成后,直接点击进度条下面的路径即可进入仓库。
上面说了,我们需要下载 v2016.03 这个版本的U-Boot ,点击 “master” ,往下拉,找到 “v2016.03_4.1.15_2.0.0” 这个版本的源码,这个版本的源码刚好就对应我们上面下载的 L4.1.15_2.0.0 版本的官方指导文档。
选择好 U-Boot 源码版本后,选择下载方式下载即可,我这里选择下载 ZIP 压缩包。
从 GitHub 上下载源码的速度比较慢,我们可以到 “码云” 上下载,速度相对快一点。
点击进入 ==> 码云 gitee
跟 GitHub 操作一样,导入仓库。
把 NXP 官方 U-Boot 源码仓库地址填入时,可以看到提示目前导入仓库在 Gitee 上已有公开同步仓库,你可以直接点击访问,也可以继续导入。
后续的操作和 GitHub 上的操作一样,选择相应的版本,然后下载源码即可。
点击获取 ==> NXP 官方 v2016.03_4.1.15_2.0.0 版本 U-Boot 源码
总结
至此,我们已经下载好了我们需要的 NXP 官方指导文档以及U-Boot 源码了,前期准本工作已完成,下一步就可以开始移植 U-Boot 到开发板上了。
I.MX6ULL 官方 U-Boot 移植系列教程 1 —— 前期准备相关推荐
- STM32MP157系列教程连载-Linux系统移植篇4:STM32MP1微处理器之Bootloader移植
STM32MP157系列教程连载-Linux系统移植篇4:STM32MP1微处理器之Bootloader移植 第 1 章 BootLoader(Uboot)移植 1.1 实验原理 1.1.1 概念 简 ...
- maven web项目导入sts_Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...
- docker 打包镜像_Spring Boot2 系列教程(四十一)部署 Spring Boot 到远程 Docker 容器
不知道各位小伙伴在生产环境都是怎么部署 Spring Boot 的,打成 jar 直接一键运行?打成 war 扔到 Tomcat 容器中运行?不过据松哥了解,容器化部署应该是目前的主流方案. 不同于传 ...
- 玩转RT-Thread系列教程(6)--移植STemwin
玩转RT-Thread系列教程(6)–移植STemwin 一.STemwin介绍 在实际应用中我们时常需要制作 UI 界面来实现人机交互,简单的 UI 我们可以自己直接写代码,但是对于那些复杂的交互方 ...
- Provisioning Services 7.8 入门系列教程之十三 使用 Boot Device Management(BDM)
续Provisioning Services 7.8 入门系列教程之十二 实现高可用性 可以使用 Boot Device Management 实用程序将 IP 和引导信息(引导设备)交付给目标设备, ...
- springboot整合oracle_SpringBoot2.x系列教程67--Spring Boot整合分布式事务简介
SpringBoot2.x系列教程67--Spring Boot整合分布式事务简介 作者:一一哥 一. 分布式事务简介 1. 什么是分布式事务 百度百科对分布式事务的解释如下: 分布式事务就是指事务的 ...
- freemarker ftl模板_Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker
今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...
- spring boot 跨域请求_SpringBoot 系列教程 web 篇之自定义请求匹配条件 RequestCondition...
191222-SpringBoot 系列教程 web 篇之自定义请求匹配条件 RequestCondition 在 spring mvc 中,我们知道用户发起的请求可以通过 url 匹配到我们通过@R ...
- channelfuture怎么拿到数据_SpringBoot2.x系列教程66--Spring Boot整合分布式事务之数据库事务回顾
SpringBoot2.x系列教程66--Spring Boot整合分布式事务之数据库事务回顾 作者:一一哥 本节主要内容 一. 事务出现的原因 转账是生活中常见的操作,比如从A账户转账100元到B账 ...
最新文章
- react项目部署nginx服务器
- spring之旅第四篇-注解配置详解
- oracle怎么设置sql每隔一段时间执行一次_Oracle大规模数据快速导出文本文件
- python返回元组_python – numpy.where返回一个元组的目的是什么?
- 雷蛇鼠标安全漏洞 装上就能获得管理员权限
- assets目录与res/raw目录下文件的区别
- .Net 2.0 文档生成工具
- flex----其他交互设计
- 重磅!阿里巴巴Blink正式开源,重要优化点解读\n
- [NOIP2013] 华容道
- android 获得资源图片,快速获取app(ios和安卓)资源图片
- RS-485 接口电路--转载
- Ubuntu下载工具uGet+aira2
- github协同工作流程(一)
- 畅购商城_第9章SpringSecurity整合Oauth2
- 读书记:认知觉醒(三)元认知、自控力
- VBox 快照备份虚拟机
- selenum登录163邮箱
- java start with_Java中startWith方法的使用!
- Java正则表达式email