专栏首页韦东山嵌入式烧写整个系统或更新部分系统到STM32MP157开发板

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

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 传输。
  1. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  2. 电脑端使用 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 传输。
  1. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  2. 电脑端使用 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 传输。
  1. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  2. 电脑端使用 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 传输。
  1. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  2. 电脑端使用 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 传输。
  1. 开发板断电,连接好 usb otg 接口至电脑 usb 接口,设置启动方式为 usb 启动模式,然后上电。
  2. 电脑端使用 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-

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 构建一个适合stm32mp157系列开发板的嵌入式Linux系统

    Linux平台上有许多开源的嵌入式linux系统构建框架(框架的意思就是工具),这些框架极大的方便了开发者进行嵌入式系统的定制化构建,目前比较常见的有OpenW...

    韦东山
  • 【鸿蒙OS最新进展】鸿蒙内核liteos-a体验

    上周鸿蒙2.0开源,想必很多人都想第一时间体验。 今天,百问网发布鸿蒙IMX6ULL烧写工具以及鸿蒙体验手册,欢迎下载体验。

    韦东山
  • 开发板的第 1 个驱动程序

    请按前面第七章使用 GIT 下载源码、使用 repo 下载工具链,并配置了交叉编译工具链。

    韦东山
  • 嵌入式开发之交叉编译程序万能命令_以freetype为例

    6.4 交叉编译程序:以freetype为例 使用buildroot来给ARM板编译程序、编译库会很简单, 以后系统讲解buildroot时再使用build...

    韦东山
  • ESP32 DevKitC 编译烧写 AliOS Things

    作者简介: 邵国际,计算机专业大四学生,擅长动手,热衷物联网。用技术表达自我,虽然是个玩过单片机的渣渣,但一直想做出好玩有趣的东西(软/硬件),并享受其中的乐趣...

    刘盼
  • FPGA系统性学习笔记连载_Day20【ZYNQ7000系列】 之 《PS端程序固化》篇

    本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。

    FPGA技术江湖
  • BeagleBone Black 固件升级

    以前以为自己把自己的BeagleBone Black(简称 BBB)板子玩坏了,然后项目上又给了一个 BBB 板子,后来发现上面的 Linux 系统是不全的,连...

    剑影啸清寒
  • 嵌入式 Linux 的学习新路线

    很多人喜欢从系统启动流程开始学习:先学习裸机,裸机集合起来就是 u-boot,再学习内核移植、驱动开发,接下来学习根文件系统,最后学习 APP 开发。

    韦东山
  • dnw驱动更新,支持全系统(xp,win7,win8/win10)

    前言: 本文用于解决win7以上系统使用dnw难装驱动问题,使用新驱动: zadig-2.3.exe,支持xp,win7/win8/win10系统,安装方便...

    韦东山
  • easyopenjtag使用教程(最新版)

    op或者eop支持将代码烧写到Nor flash或nand flash,而市面上的jlink只能将代码烧写到nor flash中。    

    韦东山
  • 第006课 开发板熟悉与体验

    我们买开发板的目的就是把电脑上编写编译好的程序烧写到板子上验证学习。因此开发板上一定有个烧写口,例如JTAG烧写口。但电脑上是不会有这个JTAG口的,因此需要一...

    韦东山
  • 原创 | DIGI开发板救砖指南

    前段时间接到一个Ripple 20漏洞研究的任务,配套的设备为DIGI开发板,在研究过程中发生了悲剧的一幕——开发板变砖,为了能够继续顺利进行研究于是决定一定要...

    绿盟科技研究通讯
  • stm32mp157开发板入门使用教程

    请参考: 《第 1 篇 新学习路线、视频介绍、资料下载》 《第二章 资源下载方法》

    韦东山
  • S3C2440① | JZ2440开发板上手

    2019新年伊始,为了系统的学习嵌入式系统的开发,入手了一块韦东山的JZ2440,入坑之旅开始~

    Mculover666
  • 在 RISC-V 芯片 GD32V 上运行 RT-Thread

    去年九月份的时候 RT-Thread 的 Andy Chen 组织定做了一块 GD32V 开发板,托 Andy 的福,我也搭车买了一块。

    HackforFun
  • Linux基础(挽系统崩溃之狂澜)

    啊!秋高气爽,朗朗乾坤,晴天霹雳,星汉灿烂!喝下一碗无相汤,吃完半根游离面,不禁心醉神摇,抹了抹嘴,定了定神,心想道:拥此良辰美景,断断不能虚度光阴!说时迟那时...

    用户2617681
  • 基于FPGA的轻量级RISCV SoC

    随着以RISC-V(RISC,精简指令集计算机;V表示为第五代)为代表的新型开源ISA(instruction set architecture,指令集架构)的...

    FPGA技术江湖
  • 嵌入式开发板LInux更新系统、安装软件、下载资源碰到的问题

    对于开发板来说,千万别乱改官方源,上面问题的根源是不支持https,所以先把源都改成http

    痴者工良
  • 装修甲醛怎么办?自制小程序监控的甲醛检测仪

    装修甲醛怎么办?很多人想要购买甲醛检测仪,但在电商平台面对纷繁杂乱的商品列表还是有点手足无措。大家最关心的还是甲醛检测准不准,而单凭商家的广告实在难以判断。

    twowinter

扫码关注云+社区

领取腾讯云代金券