当前位置: 首页 > news >正文

百问网(100ask)提供的烧写工具的原理和详解;将自己编译生成的u-boot镜像文件烧写到eMMC中

百问网(100ask)提供的烧写工具的原理

具体的实现原理见链接 http://wiki.100ask.org/100ask_imx6ull_tool
为了防止上面这个链接失效,我还对上面这个链接指向的页面保存成了mhtml文件,这个mhtml文件的百度网盘下载链接:
https://pan.baidu.com/s/1DCNVMu5hjsedasyMGM35gA?pwd=t6sx

视频讲解链接 https://www.bilibili.com/video/BV1zV411U7H9/?p=14&vd_source=8fb767d1739ea6b35c7177ba909eed36

大致的实现原理我梳理一下如下:
NXP公司给IMX6ULL提供的烧写工具mfgtools缺点多:既不能单独烧写bootloader、内核、设备树,烧写速度还慢,所以有必要另外开发一个烧写工具。

百问网开发的烧写工具的原理概括如下:

借助IMX6ULL本身支持USB启动的特点,将IMX6ULL设置为USB启动后,首先它会运行固化在芯片内部的程序imx6ull boot ROM,我们可以借助这个程序通过SDP协议把某个特制程序发送到IMX6ULL中,然后开始运行这个特制程序,这个特制程序就可以通过FB协议实现我们理想中的烧写工具的各种功能,示意图如下:
在这里插入图片描述
NXP官方已经开发了一个名叫uuu的工具来实现上面这段话的功能了。所以百问网就在工具uuu的基础上进行二次开发,实现了我们理想中的烧写工具的各个功能。

百问网(100ask)提供的这个烧写工具的界面分为基础版和专业版。
“基础版”是专为100ASK_IMX6ULL设计的,点击一下即可完成某项烧写。

专业版则更强大、更灵活、适合所有开发板,专业版的强大在于烧写文件时可以选择任意文件,上传文件时可以指定分区、分区格式、目标路径。

百问网的IMX6ULL开发板的zImage和设备树是放在第2分区的,而有些厂家的开发板,zImage和设备树是在第1个分区里的,所以这些厂家的开发板就无法使用基础版来烧写,需要使用专业版,指定分区、指定分区格式、指定路径,然后再上传文件。

关于什么叫开发板上的第1分区和第2分区,请参见我的另一篇博文:
https://blog.csdn.net/wenhao_ir/article/details/145653766

基础版的使用说明如下:
在这里插入图片描述
专业版的说明如下:
在这里插入图片描述
有些开发板厂家把内核zImage、设备树放在第1个分区里,它通常是FAT分区。那么可以使用专业版来更新内核、更新设备树。
比如:
在这里插入图片描述
几乎所有的开发板的第2个分区都是EXT4格式,我们可以上传文件到它的任意目录下,比如:
在这里插入图片描述
关于什么叫开发板上的第1分区和第2分区,请参见我的另一篇博文:
https://blog.csdn.net/wenhao_ir/article/details/145653766

下载百问网(100ask)提供的烧写工具

在百度网盘中下载下面这个压缩包:
在这里插入图片描述
上面这个截图红框中的压缩包百度网盘下载链接:
https://pan.baidu.com/s/1f6VPeq25LoEo5_zPjFC8Xg?pwd=a2g5

这里有说明下为什么这个压缩包快1GB,因为里面包含开发板的各种镜像文件。

下载完成后解压:
在这里插入图片描述
这里先不忙运行这个工具。

工具files目录下的文件说明

在这里插入图片描述
在这里插入图片描述
你需要烧写哪个文件,就把哪个文件用你要写的文件覆盖掉就行了,注意是覆盖,也就是文件名不能变。

烧写SD卡时要特别注意的地方

在这里插入图片描述
当然,咱们这篇博文中是烧到eMMC中,而不是SD卡中,不过为了为了不必要的麻烦,建议先把SD卡取出放到读卡器中,排除它的干扰。

将烧写工具配置好以便能写入镜像

设置开发板为USB启动

说明一下,为了不必要的麻烦,建议先把SD卡取出放到读卡器,根据教程,就算是要烧写SD卡,也得上电后再插SD卡。

把板子设置为USB启动的方式如下:
在这里插入图片描述

连接USB-OTG接口并安装两个驱动

拿另一根USB线连接USB-OTG接口(注意:这里串口其实可以不连哈):
在这里插入图片描述
连接好后,上电…

上电后请及时让选择连接到主机,而不要连接到虚拟机,然后通常就会自动安装第一个驱动,并获得设备“SE Blank 6ULL”,如下图所示:
在这里插入图片描述
在这里插入图片描述
如果没有自动安装驱动,请参考嵌入式Linux应用开发完全手册V5.2_IMX6ULL_Pro开发板的第136页,这个手册的百度网盘下载链接 https://pan.baidu.com/s/1gB9o–jN0NYhR66gKNzgHg?pwd=9bkp

接下来打开百问网提供的烧写工具,即运行文件100ask_imx6ull_flashing_tool_v4.0.exe
在这里插入图片描述
绿灯亮起,说明连接成功了:
在这里插入图片描述
这样,第一个驱动安装完成,但是“固件未运行”前的绿灯还没有亮,所以需要安装第二个驱动:

切换到专业版界面上,然后点击运行按钮:
在这里插入图片描述
这个按钮的作用相当于是往IMX6ULL里写入原理介绍里说的“特制程序”。“特制程序”写入完成后,这时电脑会识别出“USB download gadget”设备(注意:不要连到虚拟机上了),并且一般情况下都会自动给它安装驱动程序。安装了驱动程序后,如下面的截图所示:
在这里插入图片描述
此时“固件未运行”变成了“固件已运行”,它前面的绿灯也亮了:
在这里插入图片描述
不妨切换到“基础版”界面,因为后面要对百问网的IMX6ULL_PRO开发板作操作嘛。

接下来就可以开始烧写镜像了。

烧写u-boot镜像文件到eMMC

在后续过程中为了不必要的麻烦,建议先把SD卡取出放到读卡器,根据教程,就算是要烧写SD卡,也得上电后再插SD卡。

把目录100ask_imx6ull_pro开发板系统烧写工具\files下的文件u-boot-dtb.imx替换为前面编译u-boot时生成的镜像文件u-boot-dtb.imx

注意:镜像文件u-boot-dtb.imx的位置就是在u-boot的根目录下:
在这里插入图片描述
替换之后files目录的截图如下(我把原来的文件加了个bak的后缀,哈哈):
在这里插入图片描述
按上面的步骤将开发板设置为USB启动,并用数据线连接好PC与开发板上的USB-OTG接口。

然后按照上面的步骤配置好烧写工具(100ask_imx6ull_flashing_tool_v4.0.exe):
在这里插入图片描述
设置那里选择EMMC,然后点击按钮“更新 Uboot”,烧写成功后的截图如下:
在这里插入图片描述

烧写完成后关闭开发板电源,烧写完成后关闭开发板电源,烧写完成后关闭开发板电源,然后设置开发板为eMMC启动方式,打开串口即可看到终端有u-boot的运行信息了。

http://www.lryc.cn/news/537596.html

相关文章:

  • doris:异步物化视图概述
  • 图像缩放的双线性插值实现方式
  • 深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石
  • 40.日常算法
  • CAS单点登录(第7版)11.SSO SLO
  • Bob the Canadian
  • CAS单点登录(第7版)16.模仿
  • 预留:大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)
  • RabbitMQ介绍以及基本使用
  • C++演示中介模式
  • Vue的简单入门 一
  • 【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》
  • export default与export区别
  • 最佳的出牌方法
  • Kotlin 2.1.0 入门教程(二十一)数据类
  • 30天开发操作系统 第 20 天 -- API
  • WEB安全--SQL注入--floor报错注入
  • 【java面向对象的三大特性】封装、继承和多态
  • Hermite 插值
  • 【推理llm论文精度】DeepSeek-R1:强化学习驱动LLM推理能力飞跃
  • arm linux下的中断处理过程。
  • C语言:指针详解
  • github用户名密码登陆失效了
  • 【删除tomcat默认管理控制台】
  • 动态库与静态库:深入解析与应用
  • 【鱼眼镜头12】Scaramuzza的鱼眼相机模型实操,不依赖于具体的相机几何结构,直接从图像数据出发,因此更具灵活性。
  • LVS 负载均衡集群(NAT模式)
  • MATLAB中的APPdesigner绘制多图问题解析?与逻辑值转成十进制
  • 9种慢慢被淘汰的编程语言...
  • vue知识点5