本篇介绍STM32MP157D-DK1开发板如何烧录官方固件。
板子上的各种接口功如下,本篇固件烧录,主要用的接口包括:
烧录固件时,需要插入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卡启动模式。
有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
安装一个驱动用于识别开发板的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/
下载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这个。
步骤如下:
进入到下载的固件目录,到达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这个,否则还是会报错。
烧录需要几分钟时间,· 最后烧录成功后的打印信息如下:
https://www.bilibili.com/video/BV1uN41157F7
本篇介绍了STM32MP157D-DK1开发板烧录官方固件的详细过程,记录了烧录过程的实际操作结果和中间遇到的问题及解决方法,最后演示烧录后的效果。