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 modeBoot 0Boot 1Boot 2
USB启动用于烧录固件000
不支持100
工程启动001
microSD卡启动101

烧录时,使用烧录固件模式,烧录完成后,使用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开发板烧录官方固件的详细过程,记录了烧录过程的实际操作结果和中间遇到的问题及解决方法,最后演示烧录后的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/266298.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【QT入门】基础知识

一.认识Qt qt是一套应用程序开发库,与MFC不同是跨平台的开发类库,主要用来开发图形界面。完全面向对象容易扩展。 优点:1.封装性强,简单易学 2.跨平台 3.独立编译为本地代码 二.qt工程 1.常见的工程文件有这两种…

4fiddler抓包工具的使用

一、定义 1.1 抓包的定义 说明:客户端向服务器发送请求以及服务器响应客户端的请求,都是以数据包来传递的。 抓包(packet capture):通过工具拦截客户端与服务器交互的数据包 1.2 fiddler的介绍 Fiddler是一个http协议调试代理工具&#…

计算机丢失msvcp140dll怎么恢复?快速解决dll缺失问题

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp140dll丢失”。msvcp140.dll是一个动态链接库文件,它包含了许多C标准库函数的实现。这些动态链接库文件是程序运行所必需的,它们包含了许多函数和资源&#xf…

TCP协议实现一对一聊天与UDP协议实现群聊

tcp一对一聊天: 服务端代码 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner;/*** 发送消息线程…

银河麒麟v10系统SSH远程管理及切换root用户的操作方法

📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​ 🌟在这里,我要推荐给大家我的专栏《Linux》。🎯🎯 🚀无论你是编程小白,还是有一…

word一键接受所有修订并保留修订痕迹

目的:让word修订插入的内容在接受修订后保留痕迹。 文章目录 目的:让word修订插入的内容在接受修订后保留痕迹。1. 打开批注的word文件2. 同时按住:*AltF11*,然后右键:Normal -->插入--> 模块3. 在出现的代码框中…

Go json 差异比较 json-diff(RFC6902)

Go json 差异比较 json-diff(RFC 6902) 毕业设计中过程中为了比较矢量图的差异而依据 RFC 6902 编写的一个包,现已开源: Json-diff 使用 go get -u github.com/520MianXiangDuiXiang520/json-diff序列化与反序列化 与官方 json 包的序列化和反序列化不…

手把手教你玩转ESP8266(原理+驱动)

在嵌入式开发中,无线通信的方式有很多,其中 WIFI 是绕不开的话题。说到 WIFI 通信,就不得不提 ESP8266了。 ESP8266 是一款高性能的 WIFI 串口模块,实现透明传输。只要有一定的串口知识,不需要知道 WIFI 原理就可以上…

C语言中的一维数组与二维数组

目录 一维数组数组的创建初始化使用在内存中的存储 二维数组创建初始化使用在内存中的存储 数组越界 一维数组 数组的创建 数组是一组相同类型元素的集合。 int arr1[10]; char arr3[10]; float arr4[10]; double arr5[10];下面这个数组能否成功创建? int count…

建筑可视化数据大屏汇总,UI源文件(PC端大屏设计)

酷炫的大屏设计让数据更好的展现,方便业务人员分析数据,辅助领导决策。现在分享大屏Photoshop源文件,以下为部分截图示意。 划重点:文末可获得完整素材包~ 01 科技建筑平台数据可视化 02 建筑公司可视化数据汇总平台 03 深蓝…

字符统计[c]

#include<stdio.h> #include<string.h> int main() {int a,b,c;abc0;char s[100];int i0;while(1){i;scanf("%c",&s[i]);if(s[i]?)break;}for(int k1;k<i;k){if(s[k]>48&&s[k]<57){a;//数字}else if((s[k]>65&&s[k]<…

透析跳跃游戏

关卡名 理解与贪心有关的高频问题 我会了✔️ 内容 1.理解跳跃游戏问题如何判断是否能到达终点 ✔️ 2.如果能到终点&#xff0c;如何确定最少跳跃次数 ✔️ 1. 跳跃游戏 leetCode 55 给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。数组中的每个元素代表…