当前位置: 首页 > 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的运行信息了。

相关文章:

  • vue2.x与vue3.x生命周期的比较
  • deepseek + embeding模型搭建本地知识库
  • 算法面试题
  • 设置libvirtd支持远程TCP连接
  • 【动手学强化学习】03马尔可夫决策过程
  • 【指令集】Nginx
  • day12摄影平台活动
  • 浏览器标签页通信实现打开新窗口播放音乐
  • BDF(MD)
  • DeepSeek学术秘籍:如何让DeepSeek辅助论证?
  • 2月第九讲“探秘Transformer系列”
  • 无人机航迹规划: 梦境优化算法(Dream Optimization Algorithm,DOA)求解无人机路径规划MATLAB
  • Android设备 网络安全检测
  • CAS单点登录(第7版)27.开发人员
  • wx061基于ssm+vue+uniapp的疫情期间学生请假与销假系统小程序
  • Vue CLI 配置与插件
  • 1.【BUUCTF】[SUCTF 2019]EasyWeb
  • 【Docker】Docker Run 中指定 `bash` 和 `sh` 参数的区别:深入解析与实践指南
  • openGauss 3.0 数据库在线实训课程16:学习逻辑结构:表管理4
  • 小白零基础如何用cursor
  • 践行自由贸易主义理念,加快区域合作进程
  • 同路人才是真朋友——驻南苏丹使馆援助东赤道州人道主义物资交接仪式侧记
  • 贵州黔西游船发生侧翻事故,游客:事发时能见度只有一米,所乘船只停靠礁石避险
  • 文旅局局长回应游客住家里:“作为一个宣恩市民我也会这么做”
  • 泽连斯基拒绝普京72小时停火提议,坚持应尽快实现30天停火
  • 赵厚均评《唐诗与唐代园林景观的审美建构研究》|林泉恣探历,风景暂徘徊