Skip to main content

3.4 映像文件烧写、运行

3.4 映像文件烧写、运行

​ 我们编译出来的映像文件有2类后缀:imx、img。imx文件开头就是IVT,可以把它烧写到TF卡1024偏移位置处;img文件开头是1024字节的0值数据,后面才是IVT等,它可以通过win32diskimger等工具直接烧写到TF卡0偏移位置处。

​ 另外,我们还可以通过USB把imx文件直接下载到板子上,并运行。

​ 注意:通过USB下载方式,可以烧写程序到EMMC、TF卡上,但是并非“直接烧写”。它的过程如下:

​ a. 通过USB下载u-boot到内存,

​ b. 通过USB下载用户程序到内存,

​ c. 通过USB发送命令运行u-boot,

​ d. 用u-boot烧写把内存中的用户程序烧写到EMMC、TF卡上

​ 最新版本的IMX6ULL烧写工具名为uuu:Universal Update Utility,又名mfgtools 3.0。

源码地址为:

https://github.com/NXPmicro/mfgtools

编译好的可执行程序下载地址:

https://github.com/NXPmicro/mfgtools/releases

3.4.1 使用USB下载、运行裸机程序

​ 使用USB来下载、运行裸机程序,是最简单的方法,不需要烧写。

步骤如下:

① 开发板设置为USB启动,或称为USB下载模式:

对于100ASK_IMX6ULL开发板,启动开关设置为下图所示的样子:

② 使用USB线连接电脑和开发板的OTG口:

对于100ASK_IMX6ULL开发板,接线如下所示:

接好线后上电。

③ 使uuu命令下载、运行IMX文件:

我们提供的程序中在tools目录下预先放置了uuu.exe(windows用)、uuu(Linux用)。

以Windows为例,如下操作:

a. 进入程序目录,打开命令行:

b. 执行命令:

在命令行中执行:tools\uuu.exe led.imx ,如下图所示。如果一切正常,可以看到开发板上的绿灯开始闪烁。

如果不成功,请确认:

a. 开发板的启动开关是否设置为USB模式

b. 开发板不要插上TF卡

c. 开发板复位一下,再执行uuu命令

d. 要下载运行的是imx文件,不是bin文件,也不是img文件

3.4.2 使用读卡器烧写裸机程序到TF卡上并运行

​ 这需要借助读卡器,在电脑上烧写TF卡。步骤如下:

​ a. 烧写TF卡:

​ 把TF卡通过读卡器接到电脑上,使用win32diskimager把img文件烧写到SD卡上,如下图所示操作,烧写成功后会有提示:

​ b. 启动开发板:

​ 把烧写好的TF卡插到开发板,开发板设置为SD/TF启动模式(如下),上电即可:

​ 注意:使用win32diskimager烧写时,一定要选择img文件,不能选择imx文件。

3.4.3 使用USB下载、烧写程序到EMMC

​ USB只有下载、运行的功能,烧写要借助u-boot。所以我们要下载2个文件:u-boot-dtb.imx、我们的程序比如led.imx,然后运行u-boot,执行u-boot命令来烧写。

步骤如下:

① 开发板设置为USB启动,或称为USB下载模式:

对于100ASK_IMX6ULL开发板,启动开关设置为下图所示的样子:

② 使用USB线连接电脑和开发板的OTG口:

对于100ASK_IMX6ULL开发板,接线如下所示:

接好线后上电。

③ 使uuu命令下载、运行IMX文件:

我们提供的程序中在tools目录下预先放置了uuu.exe(windows用)、uuu(Linux用)。

以Windows为例,如下操作:

a. 进入程序目录,打开命令行:

b. 执行命令:

在命令行中执行:tools\uuu.exe -b emmc tools\u-boot-dtb.imx led.imx ,如下图所示。

命令解析:“-b emmc”表示要烧写emmc,需要借助于tools\u-boot-dtb.imx,要烧写的文件是led.imx。

如果一切正常,把开发板设置为EMMC启动后重新上电,可以看到绿灯闪烁。

如果烧写不成功,请确认:

a. 开发板的启动开关是否设置为USB模式

b. 开发板不要插上TF卡

c. 开发板复位一下,再执行uuu命令

d. 烧写成功后,开发板断电,设置为EMMC启动,再重新上电观察效果