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

相关文章:

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

百问网(100ask)提供的烧写工具的原理 具体的实现原理见链接 http://wiki.100ask.org/100ask_imx6ull_tool 为了防止上面这个链接失效,我还对上面这个链接指向的页面保存成了mhtml文件,这个mhtml文件的百度网盘下载链接: https://pan.baidu.c…...

doris:异步物化视图概述

物化视图作为一种高效的解决方案,兼具了视图的灵活性和物理表的高性能优势。 它能够预先计算并存储查询的结果集,从而在查询请求到达时,直接从已存储的物化视图中快速获取结果,避免了重新执行复杂的查询语句所带来的开销。 使用场…...

图像缩放的双线性插值实现方式

1、双线性插值概念 双线性插值是一种用于在二维网格上进行插值的方法,适用于图像处理、计算机图形学等领域。它通过利用四个邻近点的已知值,估算出任意点的值。双线性插值在两个方向(通常是水平和垂直)上分别进行线性插值&#x…...

深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石

深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石 在前端开发的广阔天地里,Vue.js 凭借其简洁易用的特性和强大的功能,成为众多开发者的心头好。其中,响应式原理作为 Vue 的核心亮点之一,让数据与视图之间实现了高…...

40.日常算法

1.无重复字符的最长子串 题目来源 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 class Solution { public:int lengthOfL…...

CAS单点登录(第7版)11.SSO SLO

如有疑问,请看视频:CAS单点登录(第7版) SSO & SLO 安装IDEA Download IntelliJ IDEA – The IDE for Professional Development in Java and Kotlin 安装Maven Download Apache Maven – Maven MAVEN_HOMED:\apache-maven…...

Bob the Canadian

1:around the house Hi! Bob the Canadian here! Let’s learn English around the house. Come on in! Hi, Bob the Canadian here. Welcome to this video. If this is your first time here, don’t forget to click the subscribe button below, and give…...

CAS单点登录(第7版)16.模仿

如有疑问,请看视频:CAS单点登录(第7版) 模仿 概述 代理身份验证 代理身份验证(模拟),有时称为 Web 的 sudo,是代表其他用户进行身份验证的能力。 在这种情况下,两个参…...

预留:大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)

传送门目录 前期准备 一、JDK的安装 1、安装jdk 2、配置Java环境变量 3、加载环境变量 4、进行校验 二、hadoop的集群搭建 1、hadoop的下载安装 2、配置文件设置 2.1. 配置 hadoop-env.sh 2.2. 配置 core-site.xml 2.3. 配置hdfs-site.xml 2.4. 配置 yarn-site.xm…...

RabbitMQ介绍以及基本使用

文章目录 一、什么是消息队列? 二、消息队列的作用(优点) 1、解耦 2、流量削峰 3、异步 4、顺序性 三、RabbitMQ基本结构 四、RabbitMQ队列模式 1、简单队列模式 2、工作队列模式 3、发布/订阅模式 4、路由模式 5、主题模式 6、…...

C++演示中介模式

避免两个模块之间的耦合&#xff0c;使用中介模式解决。下面是C代码 #include <iostream> #include <vector>using namespace std;class client;//中介 class mediator { public:void addclient(client* client) {clientVec.push_back(client);}void send(const s…...

Vue的简单入门 一

声明&#xff1a;本版块根据B站学习&#xff0c;创建的是vue3项目&#xff0c;用的是vue2语法风格&#xff0c;仅供初学者学习。 目录 一、Vue项目的创建 1.已安装15.0或更高版本的Node.js 2.创建项目 二、 简单认识目录结构 三、模块语法中的指令 1.v-html 1.文本插值…...

【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》

本博主免费赠送读者3本书&#xff0c;书名为《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》。 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 这本书已经公开…...

export default与export区别

1.定义&#xff1a; export default‌&#xff1a;用于导出模块中的默认成员。一个模块中只能有一个export default&#xff0c;通常用于导出模块的主要功能或对象。导入时可以使用任意名称&#xff0c;因为它没有具体的名称‌ ‌export‌&#xff1a;用于导出模块中的多个成…...

最佳的出牌方法

最佳的出牌方法 真题目录: 点击去查看 E 卷 200分题型 题目描述 手上有一副扑克牌,每张牌按牌面数字记分(J=11,Q=12,K=13,没有大小王),出牌时按照以下规则记分: 出单张,记牌面分数,例如出一张2,得分为2出对或3张,记牌面分数总和再x2,例如出3张3,得分为(3+3+3)x2=1…...

Kotlin 2.1.0 入门教程(二十一)数据类

数据类 数据类主要用于存储数据。 对于每个数据类&#xff0c;编译器会自动生成一些额外的成员函数&#xff0c;这些函数支持将实例打印为易读的输出、比较实例、复制实例等操作。 数据类使用 data 关键字标记&#xff1a; data class User(val name: String, val age: Int…...

30天开发操作系统 第 20 天 -- API

前言 大家早上好&#xff0c;今天我们继续努力哦。 昨天我们已经实现了应用程序的运行, 今天我们来实现由应用程序对操作系统功能的调用(即API, 也叫系统调用)。 为什么这样的功能称为“系统调用”(system call)呢&#xff1f;因为它是由应用程序来调用(操作)系统中的功能来完…...

WEB安全--SQL注入--floor报错注入

一、原理&#xff1a; floor()报错注入需要组合count()、rand()、group by()等函数使用&#xff0c;通过一些手段使数据库在处理语句时产生主键重复的报错&#xff0c;从而达到爆出信息的目的 二、内容&#xff1a; ?id-1 or (select 1 from (select count(*),concat(databa…...

【java面向对象的三大特性】封装、继承和多态

目录标题 一、封装&#xff08;Encapsulation&#xff09;&#xff1a;二、继承&#xff08;Inheritance&#xff09;&#xff1a;三、多态&#xff08;Polymorphism&#xff09;&#xff1a;1. 多态的三个必要条件&#xff1a;2.多态的具体实现&#xff1a;3.多态的使用场景&a…...

Hermite 插值

Hermite 插值 不少实际问题不但要求在节点上函数值相等&#xff0c;而且还要求它的导数值相等&#xff0c;甚至要求高阶导数值也相等。满足这种要求的插值多项式就是 Hermite 插值多项式。 下面只讨论函数值与导数值个数相等的情况。设在节点 a ≤ x 0 < x 1 < ⋯ <…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

前端高频面试题2:浏览器/计算机网络

本专栏相关链接 前端高频面试题1&#xff1a;HTML/CSS 前端高频面试题2&#xff1a;浏览器/计算机网络 前端高频面试题3&#xff1a;JavaScript 1.什么是强缓存、协商缓存&#xff1f; 强缓存&#xff1a; 当浏览器请求资源时&#xff0c;首先检查本地缓存是否命中。如果命…...

leetcode_69.x的平方根

题目如下 &#xff1a; 看到题 &#xff0c;我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历&#xff0c;我们是整数的平方根&#xff0c;所以我们分两…...

Redis上篇--知识点总结

Redis上篇–解析 本文大部分知识整理自网上&#xff0c;在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库&#xff0c;Redis 的键值对中的 key 就是字符串对象&#xff0c;而 val…...