烧写整个系统或更新部分系统到STM32MP157开发板

在线课堂:https://www.100ask.net/index(课程观看)
论  坛:http://bbs.100ask.net/(学术答疑)
开 发 板:https://100ask.taobao.com/ (淘宝)
     https://weidongshan.tmall.com/(天猫)
交流群一:QQ群:869222007(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
交流群二:QQ群:536785813(单片机-嵌入式)
公 众 号:百问科技


版本日期作者说明
V12020韦东山技术文档

7.1 100ASK_STM32MP157 启动开关

7.1.1 全功能版

板子上的红色拨码开关用来设置启动方式,支持这四种方式:EMMC 启动、SD 卡启动、USB 烧写以及 M4(debug)模式。

板子背后画有一个表格,表示这四种方式如何设置。表格中 BOOT0 对应开关 1,BOOT1 对应开关 2,BOOT2对应开关 3,如下:
在这里插入图片描述
这四种启动方式的设置示意图如下:
在这里插入图片描述

刚出厂的板子在 EMMC 上烧写了系统,你可以设置为 EMMC 启动方式。

其中的 USB 启动模式主要用来烧写系统。

7.2 在 Windows 使用 STM32CubeProgrammer 烧写工具

ST 公司给 stm32mp157 系列开发板提供了烧写工具:STM32CubeProgrammer。它的使用界面如下所示:

详细参考页面:http://wiki.100ask.org/STM32CubeProgrammer
在这里插入图片描述

7.2.1 安装烧写工具

在 100ASK_IMX6ULL 的配套资料中,有文件:“01_Tools (工具)/ST/ en.stm32cubeprog.zip”,把它解压后可得如下目录:
在这里插入图片描述
解压后会发现此烧写工具支持三种系统运行环境,这里我们默认使用 windows 版本,其它版本暂不做讲解。

解压后双击执行 SetupSTM32CubeProgrammer-2.1.0.exe 可执行程序,首次安装如果没有安装 java 运行环境会有如图 7.2.1.1 的提示信息,需要安装 jdk8 来运行此烧写工具。
在这里插入图片描述

  1. 下载网盘中板子配套资料下 “01_Tools (工具)”目录下的 01_Tools.zip,并解压。由于某些软件压缩包会导致网盘链接经常失效,所以我们对其进行加密压缩,使用解压缩工具右键解压到当前文件夹,会提示输入密码,如图 7.2.1.2 所示,此时输入密码 100ask.org 点击确定开始解压缩,解压缩完成后可以看到如图 7.2.1.3 所示 jdk_8.0.1310.11_64.exe 这个安装包,双击安装。

在这里插入图片描述
2) 在图 7.2.1.4 所示弹出的 Java SE 安装界面点击 “下一步“,之后在图 7.2.1.5 所示界面继续点击”下一步“。
在这里插入图片描述
3) 继续参考下图 7.2.1.6 所示点击下一步(不建议修改安装目录),之后会如图 7.2.1.7 显示安装状态进度,等待进度条显示完成。
在这里插入图片描述
4) 安装完成后如图 7.2.1.8 所示,点击关闭即可(自此,java 运行环境已经安装完成)。
在这里插入图片描述
5) 接下来我们双击执行 SetupSTM32CubeProgrammer-2.1.0.exe 可执行程序,如图 7.2.1.9 所示在弹出的界面上点击 “Next”,之后在新的页面如图 7.2.1.10 继续点击“Next“。
在这里插入图片描述
6) 在如图 7.2.1.11 新弹出的页面选中”I accept the terms of this lincese agreement.”,继续点击”Next”,进入下个界面,如图 7.2.1.12,这里提示选择安装路径,保持默认即可,继续点击“Next
“。
在这里插入图片描述
7) 在图 7.2.1.13 新的窗口提示 这个目录将会被创建 ,点击”确定”即可,之后进入到安装软件选择界面,这里保持默认即可,点击”Next”。
在这里插入图片描述
8) 如图 7.2.1.15 所示显示烧写工具的安装进度,等待安装完成,安装完成后如图 7.2.1.16 所示。
在这里插入图片描述
9) 安装完成后提示是否创建开始菜单和桌面快捷方式以及此软件的使用者,这些参考图 7.2.1.17 所示,使用默认设置,继续点击”Next”,最后提示 STM32CubeProgrammer Installation done 表示安装完成,点击 “Done”,即可关闭安装界面,之后我们可以在桌面看到多出来一个 STM32CubeProgrammer的应用程序 。

在这里插入图片描述

7.2.2 连接 USB OTG 线

接线、设置 USB 启动的方式如下:
注意:USB 串口线可接可不接,接上只是为了观察烧写过程。

(1) 全功能版接线方式
在这里插入图片描述

7.2.3 安装 STM32MP157 的 USB 驱动程序

通过 USB 下载或是烧写程序时,需要把开发板的 OTG 口参考 7.2.2 链接 USB OTG 线章节用 USB 线连接到电脑,并设置为 USB 启动方式,然后启动电源,此时打开 wind10 设备管理器,在通用串行总线设备 会出来一个名为 “DFU in HS Mode @Device ID /0x500.@Revision ID /0x0000 ”设备,此时打开STM32CubeProgrammer 烧写工具,如图 7.2.3.2 所示红色箭头指示,先选择“USB1”再点击刷新按钮,会在Port 那里显示出来一个 USB1 的设备,这里就表示已经连接成功,可以进行下一步的烧写操作。
在这里插入图片描述

7.2.3.1 USB 驱动没有自动安装

通过 USB 下载或是烧写程序时,需要把开发板的 OTG 口用 USB 线连接到电脑。目前暂未遇到无法安装驱动的问题,如果您在烧写的时候没有设备,请联系百问网相关技术人员以请求支持。

7.2.4 烧写方法

STM32CubeProgrammer 烧写是根据后缀名为 tsv 的分区配置文件来匹配分区和文件。

我们可以根据自己的需求来更新自己所需的内容,分区配置信息文件内容简介如下图所示。参考示例来源 于 网盘中开发板配套资料02_Images\Yocto_Dunfell\flashlayout_100ask-image-qt\trusted FlashLayout_emmc_stm32mp157c-100ask-512d-v1-trusted-tfa.tsv 文件。

在这里插入图片描述
其中烧写状态标识区域支持如下图所示 5 中方式,用户可以根据自己的需要修改相应的烧写状态标识来选择更新/删除某些分区。
在这里插入图片描述
目前仅支持烧写二进制文件,也就是各类映像文件,它们会被原原本本地烧写到 EMMC 上。

配置文件详细的配置说明请参考页面:http://wiki.100ask.org/STM32CubeProgrammer_flashlayout

7.2.5 更新 Emmc 整个系统

7.2.5.1 连接设备

首先我们打开安装好的烧写工具 STM32CubeProgrammer ,设置开发板启动方式为 USB 下载模式启动,连接好 usb otg 下载线,开启电源,操作方式参考下图。
在这里插入图片描述
切换到烧写工具 STM32CubeProgrammer 软件界面,首先点击刷新按钮来查找 usb 下载设备,如果查找到 Port 哪里将会显示出一个 USB1 的设备,点击右上角的 Connect 按钮来连接此设备。
在这里插入图片描述
连接成功后如下图红框所示,其中右上角会提 Connected 以及右下角会有连接设备的详细信息。
在这里插入图片描述

7.2.5.2 更新 yocto 系统

连接成功后我们点击 Open file 按钮来打开需要烧写的系统的配置文件,操作步骤如下图所示:
在这里插入图片描述
其中 Emmc 所需的系统烧写配置文件在资料光盘 02_Images\Yocto_Dunfell\flashlayout_100askimage-qt\trusted 目录下,如下图所示。
在这里插入图片描述
加载完成烧写所需系统配置文件后,会进入如下图所示界面,此时需要我们选择一下烧写所需的二进制文件所在路径,点击 “Browse”按钮来选择,系统镜像二进制文件在资料光盘 02_Images\Yocto_Dunfell目录下,选择成功后点击“Download”按钮开始更新系统。

在这里插入图片描述
7.2.5.3 更新 buildroot 系统(默认)
连接成功后我们点击 Open file 按钮来打开需要烧写的系统的配置文件,操作步骤如下图所示:
在这里插入图片描述
其中 Emmc 所需的系统烧写配置文件在资料光盘 02_Images\Buildroot_2020\ Flashlayout 目录下,如
下图所示。

在这里插入图片描述
加载完成烧写所需系统配置文件后,会进入如下图所示界面,此时需要我们选择一下烧写所需的二进制文件所在路径,点击 “Browse”按钮来选择,系统镜像二进制文件在资料光盘 02_Images\Buildroot_2020目录下,选择成功后点击“Download”按钮开始更新系统。
在这里插入图片描述

7.2.5.4 烧写进度显示

此时可以观察到烧写工具 STM32CubeProgrammer 下面有烧写状态日志输出,以及最下面的烧写进度进度条的显示,同时打开串口也可以看到 uboot 下的烧写信息打印。
在这里插入图片描述
由于根文件系统比较大,所以烧写较慢,大概需要 6-10 分钟,等待软件提示烧写成功,如下图所示。
在这里插入图片描述
烧写成功后我们先关闭电源开关,然后设置启动方式为 Emmc 启动,打开电源开关即可启动烧写好的emmc 系统。

7.3 单独更新部分系统

注意:此教程只支持更新与板子配套的 QtGUI 版本相应镜像/分区文件,其它版本暂不支持。有些时候并不需要更新整个系统,一般只需要更新某个分区或者某个文件就可以,需要先将编译好的二进制文件拷贝到资料光盘”02_Images\Flashlayout 文件夹内,之后根据自己的需要进行更新相应分区。

7.3.1 单独更新 tfa 方法

下面介绍如何使用烧写工具 STM32CubeProgrammer 来单独更新 tfa 镜像。

7.3.1.1 更新 yocto tfa

  1. 先将第六章 6.4 编译 Tfa 编译好的 Tfa 文件拷贝到资料光盘“02_Images\Flashlayout” 目录下,可以通过 Filezilla 传输。
    在这里插入图片描述

  2. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。

  3. 电脑端使用 STM32CubeProgrammer 烧写工具打开 YoctoQt_Emmc_TfaBootloader.tsv 配置文件,选择 Binaries path 为资料光盘 02_Images\Flashlayout 路径,请留意如下红框所标提示是否一致,软件是否和 usb 下载模式已经连接成功。
    在这里插入图片描述

7.3.1.2 更新 buildroot tfa

  1. 先 将 第 六 章 6.4 编 译 Tfa 编 译 好 的 Tfa 文 件 拷 贝 到 资 料 光 盘“02_Images\Buildroot_2020\Flashlayout” 目录下,使用可以通过 Filezilla 传输。
    在这里插入图片描述
  2. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  3. 电脑端使用 STM32CubeProgrammer 烧写工具打开 YoctoQt_Emmc_TfaBootloader.tsv 配置文件,选择 Binaries path 为资料光盘 02_Images\Flashlayout 路径,请留意如下红框所标提示是否一致,软件是否和 usb 下载模式已经连接成功。

在这里插入图片描述

7.3.1.3 更新成功提示

开发板和软件提示连接成功以后,点击 Download 按钮,开始下载,下载成功后有如下提示,关闭电源,移除 usb otg 线,设置启动方式为 emmc 启动,打开电源即可看到更新。
在这里插入图片描述

7.3.2 单独更新 Trust uboot 方法

下面介绍如何使用烧写工具 STM32CubeProgrammer 来单独更新 Trust uboot 镜像。

7.3.2.1 更新 yocto 系统 Trust uboot

  1. 先 将 第 六 章 6.5 编 译 u-boot 镜 像 将 编 译 好 的 u-boot.stm32 文 件 拷 贝 到 资 料 光 盘“02_Images\Flashlayout” 目录下,可以通过 Filezilla 传输。
    在这里插入图片描述
  2. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  3. 电脑端使用 STM32CubeProgrammer 烧写工具打开 YoctoQt_Emmc_TrustUbootBootloader.tsv 配置文件,选择 Binaries path 为资料光盘 02_Images\Flashlayout 路径,请留意如下红框所标提示是否一致,软件是否和 usb 下载模式已经连接成功。
    在这里插入图片描述
    开发板和软件提示连接成功以后,点击 Download 按钮,开始下载,下载成功后有如下提示,关闭电源,移除 usb otg 线,设置启动方式为 emmc 启动,打开电源即可看到更新。

7.3.2.2 更新 yocto 系统 Trust uboot

  1. 先 将 第 六 章 6.5 编 译 u-boot 镜 像 将 编 译 好 的 u-boot.stm32 文 件 拷 贝 到 资 料 光 盘“02_Images\Flashlayout” 目录下,可以通过 Filezilla 传输。
    在这里插入图片描述
  2. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  3. 电脑端使用 STM32CubeProgrammer 烧写工具打开 Buildroot_Emmc_TrustUbootBootloader.tsv配置文件,选择 Binaries path 为资料光盘 02_Images\Flashlayout 路径,请留意如下红框所标提示是否一致,软件是否和 usb 下载模式已经连接成功。

在这里插入图片描述
开发板和软件提示连接成功以后,点击 Download 按钮,开始下载,下载成功后有如下提示,关闭电源,移除 usb otg 线,设置启动方式为 emmc 启动,打开电源即可看到更新。

7.3.3 单独更新 rootfs 方法

下面介绍如何使用烧写工具 STM32CubeProgrammer 来单独更新 buildroot 编译生成的 rootfs.ext4 文件系统分区。

  1. 先将第六章 6.4 编译 Tfa 编译好的 Tfa 文件拷贝到资料光盘“02_Images\Flashlayout” 目录下,可以通过 Filezilla 传输。
    在这里插入图片描述
  2. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  3. 电脑端使用 STM32CubeProgrammer 烧写工具打开 Buildroot_Emmc_Rootfs.tsv 配置文件,选择Binaries path 为资料光盘 02_Images\Flashlayout 路径,请留意如下红框所标提示是否一致,软件是否和 usb 下载模式已经连接成功。
    在这里插入图片描述
    开发板和软件提示连接成功以后,点击 Download 按钮,开始下载,下载成功后有如下提示,关闭电源,移除 usb otg 线,设置启动方式为 emmc 启动,打开电源即可看到更新。

7.4 使用 win32diskimage 通过读卡器烧写 SD/TF 卡

每次烧写 SD 卡都需要先格式化:新卡、曾经烧写过的卡都需要先格式化,否则 Windows 无法识别出盘符导致 win32diskimage 无法烧写。

7.4.1 格式化 sd 卡

首先把 SD 卡通过读卡器接到电脑上。
然后打开 Windows 自带的磁盘管理工具,如下图所示:
在这里插入图片描述

接着在磁盘管理工具中找到 SD 卡,如果它没有分区,或者那些分区没有分配得到盘符(因为分区不是FAT 或 NTFS 格式),就需要重新格式化。

7.4.1.1 第 1 次使用的空白 SD 卡

有些 SD 卡出厂时就已经格式化了,如果能在文件浏览器中看到它的盘符,或是在磁盘工具中看到盘符(如下图所示),则无需再次格式化。
在这里插入图片描述
如果没有盘符,按照下一小节“曾经烧录过 SD 卡”来处理。

7.4.1.2 曾经烧录过的 SD 卡

可以看到类似如下图所示的 SD 卡分区情况:
在这里插入图片描述
接着删除第 1 个主分区,重新建立、格式化分区,如下图所示:
在这里插入图片描述
成功之后,可以看到 Windows 为该分区分配了盘符:
在这里插入图片描述
最后就可以看下一小节,使用 win32diskimager 来烧写 SD 卡了。

7.4.2 烧写 sd 卡系统镜像

安装映象烧写工具 win32diskimager 后,插卡到电脑上,直接烧写即可。

  1. 安装软件
    在 “ 网 盘 配 套 资 料 \01_Tools ( 工 具 )\01_Tools.zip” 中 解 压 得 到 win32diskimager-1.0.0-install.exe 软件,以后运行它时要“以管理员身份运行”。

  2. 把 SD/TF 卡接入读卡器,读卡器插到电脑上

  3. 烧写映像文件
    “以管理员身份运行”win32diskimager,如下图选择 SD 卡、选择资料光盘 02_Images\Yocto_Dunfell映像文件 FlashLayout_sdcard_stm32mp157c-100ask-512d-v1-trusted.raw,然后点击“写入”,操作步骤如下图所示:
    在这里插入图片描述
    上图中各序号含义为:

  1. 选择 SD 卡
  2. 选择映象文件,比如 FlashLayout_sdcard_stm32mp157c-100ask-512d-v1-trusted.raw
  3. 点击“写入”
  4. 确定要写入。

烧写成功后,弹出对话框“写入成功”,如下图:
在这里插入图片描述
此时点击 OK,拔下 SD 卡,将启动开关拨到 SD 卡处,上电启动开发板。

-end-