STM32MP157D-DK1开发板固件烧录

news2024/11/18 23:47:11

本篇介绍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.coloradmin.cn/o/1302710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32F407-14.1.0-01高级定时器简介

TIM1 和 TIM8 简介 高级控制定时器(TIM1 和 TIM8)包含一个 16 位自动重载计数器,该计数器由可编程预分频器驱动。 此类定时器可用于各种用途,包括测量输入信号的脉冲宽度(输入捕获),或者生成输出…

WooCommerce商城个人微信支付网关 适合个人微信收款

点击获取WooCommerce商城个人微信支付网关 适合个人微信收款原文https://gplwp.eastfu.com/product/woocommerce-ge-ren-wei-xin-zhi-fu-wang-guan-shi-he-ge-ren/ 个人微信支付网关接口,无需提现,100%资金安全,官方清算,金额无限…

外包干了2年,技术退步明显...

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

Linux系统---基于Pipe实现一个简单Client-Server system

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、题目要求 Server是一个服务器进程,只能进行整数平方运算。Client要计算一个整数的平方的平方的平方,即…

【MATLAB】基于CEEMD分解的信号去噪算法(基础版)

代码的使用说明 【MATLAB】基于CEEMD分解的信号去噪算法(基础版) 代码流程图 代码效果图 获取代码请关注MATLAB科研小白的个人公众号(即文章下方二维码),并回复CEEMD去噪 本公众号致力于解决找代码难,写代…

简单实现Spring容器(六) 实现AOP机制

阶段5: // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象. // 2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map. // 3.初始化单例池并完成getBean() createBean()方法 // 4.完成依赖注入(如果创建某个Bean对象,存在依赖注入,需要进行bean组装操作) // 5.b…

12.11QSS优化界面——对话框

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&#xf…

c语言为什么要引入变量

大家好,今天给大家介绍c语言为什么要引入变量,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 C语言引入变量的原因主要是为了存储数据并且方便后续的操作和计算。 变…

深入解析C++中的虚函数和虚继承:实现多态性与继承关系的高级特性

这里写目录标题 虚函数虚函数实现动态绑定虚继承抽象类 虚函数 虚函数是在C中用于实现多态性的一种特殊函数。它通过使用关键字"virtual"进行声明,在基类中定义,可在派生类中进行重写。虚函数允许在运行时根据对象的实际类型来调用相应的函数…

FTR223限时回归?经典三花再加金翅膀,CL500特别款亮相

FTR223可以说是非常经典的一款本田小攀爬车型了,之前我还有幸玩过一段时间,最近本田在泰国车展上展出了CL500的特别版,其中FTR223纪念版的版画让人眼前一亮,经典的白、红、蓝三色搭配让人眼前一亮。 CL500这台车在国内今年刚上市&…

开关量防抖滤波器(梯形图和SCL源代码)

模拟量防抖超限报警功能块请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/133969425https://rxxw-control.blog.csdn.net/article/details/133969425 1、开关量防抖滤波器 2、防抖滤波 3、梯形图代码

设计模式(二)-创建者模式(5)-建造者模式

一、为何需要建造者模式(Builder)? 在软件系统中,会存在一个复杂的对象,复杂在于该对象包含了很多不同的功能模块。该对象里的各个部分都是按照一定的算法组合起来的。 为了要使得复杂对象里的各个部分的独立性,以及…

透析跳跃游戏

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

轻松构建超市管理小程序

随着科技的发展,越来越多的超市开始使用管理系统来提高效率、提升顾客体验和管理库存。如果你也想要为自己的超市打造一个便捷、高效的小程序,下面将为你提供一些帮助。 首先,你需要打开乔拓云第三方平台。在这个平台上,你可以轻松…

云降水物理基础

云降水物理基础 云的分类 相对湿度变化方程 由相对湿度的定义,两边取对数之后可以推出 联立克劳修斯-克拉佩龙方程(L和R都为常数) 由右式看出,增加相对湿度的方式:增加水汽(de增大)和降低…

【后端学前端】第二天 css动画 动感菜单(css变量、过渡动画、过渡延迟、js动态切换菜单)

目录 1、学习信息 2、源码 3、变量 1.1 定义变量 1.2 使用变量 1.3 calc() 函数 4、定位absolute和fixed 5、transform 和 transition,动画 5.1 变形transform 5.2 transition 5.3 动画animation 6、todo 1、学习信息 视频地址:css动画 动感菜…

大一作业习题

第一题&#xff1a;答案&#xff1a; #include <stdio.h> void sort(int a[], int m) //将数组a的前m个元素(从小到大)排序 {int i 0;for (i 0; i < m - 1; i){int j 0;int flag 1;for (j 0; j < m - 1 - i; j){if (a[j] > a[j 1]){int t 0;t a[j];…

数据科学实践:探索数据驱动的决策

写在前面 你是否曾经困扰于如何从海量的数据中提取有价值的信息?你是否想过如何利用数据来指导你的决策,让你的决策更加科学和精确?如果你有这样的困扰和疑问,那么你来对了地方。这篇文章将引导你走进数据科学的世界,探索数据驱动的决策。 1.数据科学的基本原则 在我们…

AGM离线下载器使用说明

AGM专用离线下载器示意图&#xff1a; 供电方式&#xff1a; 通过 USB 接口给下载器供电&#xff0c;跳线 JP 断开。如果客户 PCB 的 JTAG 口不能提供 3.3V 电源&#xff0c;或仅需烧写下载器&#xff0c;尚未连接用户 PCB 时&#xff0c;采用此种方式供电。 或者&#xff1a…

测距传感器

测距传感器 电子元器件百科 文章目录 测距传感器前言一、测距传感器是什么二、测距传感器的类别三、测距传感器的应用实例四、测距传感器的作用原理总结前言 测距传感器广泛应用于自动化控制、机器人导航、无人驾驶、测量仪器等领域。不同类型的测距传感器具有不同的测距范围、…