STM32MP157D-DK1开发板固件烧录

本篇介绍STM32MP157D-DK1开发板如何烧录官方固件。

1 开发板基础硬件介绍

1.1 常用接口

板子上的各种接口功如下,本篇固件烧录,主要用的接口包括:

  • CN6:供电接口
  • B2:复位按键
  • CN11:ST-LINK USB(用作串口查看信息)
  • CN9:HDMI显示器接口
  • CN7:Type-C数据烧录

1.2 Boot开关

烧录固件时,需要插入MicroSD卡,并切换板子上的BOOT开关。

注:此板子上的"Boot 1"连接GND,始终是0

Boot mode Boot 0 Boot 1 Boot 2
USB启动用于烧录固件 0 0 0
不支持 1 0 0
工程启动 0 0 1
microSD卡启动 1 0 1

烧录时,使用烧录固件模式,烧录完成后,使用microSD卡启动模式。

2 烧录准备工作

2.1 准备的必要的硬件

  • Ubuntu虚拟机:搭建烧录软件环境
  • STM32MP157D-DK1开发板
  • Micro SD卡:烧录到SD卡中
  • 5V/3A Type-C电源:供电
  • Typc-C数据线:烧录的数据线
  • 安卓数据线:串口查看烧录信息
  • HDMI显示器:烧录成功后,查看官方固件的Demo
  • 鼠标:查看Demo时的鼠标操作

2.2 安装软件STM32CubeProgrammer工具

有Windows和Linux两种,这里介绍在Ubuntu虚拟机的Linux系统中安装的操作步骤。

下载STM32CubeProgrammer软件:https://www.st.com/en/development-tools/stm32cubeprog.html#get-software

解压并安装,解压后会多出一个jre文件夹和两个文件,然后执行SetupSTM32CubeProgrammer-2.15.0.linux文件进行安装:

unzip en.stm32cubeprg-lin-v2-15-0.zip
ls
./SetupSTM32CubeProgrammer-2.15.0.linux

会有界面形式的安装提示:

安装完成后,设置环境变量(可以在准备烧录到时候再临时设置)

export PATH=/home/xxpcb/myTest/STM32MP157/tool/cubeprog/bin:$PATH

2.3 安装USB serial link for flashing

安装一个驱动用于识别开发板的USB烧录接口。

还是在Ubuntu虚拟机中操作:

sudo apt-get install libusb-1.0-0

然后将一些文件拷贝到/etc/udev/rules.d中:

cd ~/myTest/STM32MP157/tool/cubeprog/Drivers/rules
sudo cp *.* /etc/udev/rules.d/

2.4 下载镜像

下载STM32MP1 Starter Package镜像,地址https://www.st.com/en/embedded-software/stm32mp1starter.html#get-software

下载后名为:en.flash-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gz

然后拷贝到Ubuntu中并解压:

cd /home/xxpcb/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Starter-Package
tar xvf en.flash-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gz

二进制文件和 Flash 布局文件位于stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/images/stm32mp1/ 目录中:

比如STM32MP157D-DK1开发板需要用的就是FlashLayout_sdcard_stm32mp157d-dk1-optee.tsv这个。

3 烧录

3.1 连接板子与电脑

步骤如下:

  • 板子插入SD卡
  • BOOT拨码开关都拨到0
  • 连接电源线(也可最后上电)
  • 连接Type-C数据线、安卓数据线
  • 按下复位键
  • 安卓数据线本篇是串口功能,连接Windows电脑的串口软件,用于查看信息
  • Type-C数据线是烧录线,连接Ubintu虚拟机,注意是DFU这一个,如下图

3.2 命令行烧录

进入到下载的固件目录,到达stm32mp1这一级

cd ~/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Starter-Package/stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/images/stm32mp1

然后可以线查看烧录工具的版本和板子连接信息是否正常:

STM32_Programmer_CLI --h
STM32_Programmer_CLI -l usb

如下可正常打印出来,即为正常:

然后使用如下命令进行烧录:

STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/optee/FlashLayout_sdcard_stm32mp157d-dk1-optee.tsv

第一次烧录出现了错误提示:

查看串口打印,发现是电源供电电流不够(我第一次使用的是一个2A的电源):

换用3A的电源重新烧录,另外注意,在开始烧录的时候,板子会被自动重启(复位),需要在虚拟器的USB设置处重新连接USB download这个,否则还是会报错。

烧录需要几分钟时间,· 最后烧录成功后的打印信息如下:

4 演示

https://www.bilibili.com/video/BV1uN41157F7

5 总结

本篇介绍了STM32MP157D-DK1开发板烧录官方固件的详细过程,记录了烧录过程的实际操作结果和中间遇到的问题及解决方法,最后演示烧录后的效果。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 06:02:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 06:02:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 06:02:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 06:02:02       18 阅读

热门阅读

  1. What is MySQL Performance Schema?

    2023-12-12 06:02:02       35 阅读
  2. linux的磁盘管理

    2023-12-12 06:02:02       29 阅读
  3. 计算机网络中物理层介绍

    2023-12-12 06:02:02       40 阅读
  4. C++编程:使用boost::gil::channel_type的示例程序

    2023-12-12 06:02:02       41 阅读
  5. MATLAB中的Table数据使用

    2023-12-12 06:02:02       38 阅读
  6. 测试:接口参数测试

    2023-12-12 06:02:02       36 阅读
  7. OpenSSL 编程示例

    2023-12-12 06:02:02       33 阅读
  8. 第20关 快速掌握K8S下的有状态服务StatefulSet

    2023-12-12 06:02:02       44 阅读
  9. 产品经理进阶:以客户为中心的8个维度

    2023-12-12 06:02:02       43 阅读
  10. 猜数字游戏的Python实现

    2023-12-12 06:02:02       37 阅读
  11. Vue3源码梳理:设计一个微型Vue的源码框架环境

    2023-12-12 06:02:02       42 阅读
  12. [go 面试] 缓存策略与应对数据库压力的良方

    2023-12-12 06:02:02       46 阅读