打印
[其他ST产品]

STM32芯片烧录的三种方式介绍

[复制链接]
楼主: 9dome猫
手机看帖
扫描二维码
随时随地手机跟帖
21
9dome猫|  楼主 | 2024-1-31 23:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
当我们不希望擦除Bootloader时,我们可以选择Sector擦除,擦除APP对应的地址段。

使用特权

评论回复
22
9dome猫|  楼主 | 2024-1-31 23:29 | 只看该作者
此时程序回退到没有下载APP时的运行状态。可以继续下载新的APP应用程序。


使用特权

评论回复
23
9dome猫|  楼主 | 2024-1-31 23:29 | 只看该作者
3.2 Linux操作系统中烧录(STLINK)
3.2.1 软件安装
软件直接使用命令行安装即可,UBUNTU的源自带此软件,无需在github上下载源码编译安装。

//安装STLINK
sudo apt install stlink-tools

//查看STLINK的版本,确认是否安装成功,如果成功会返回版本号
st-info --version

//安装STLINK-GUI界面
sudo apt install stlink-gui

//使用命令行进行下载
sudo st-flash write test.bin 0x8000000

使用特权

评论回复
24
9dome猫|  楼主 | 2024-1-31 23:29 | 只看该作者
使用命令行进行软件的烧写工作,下载命令的格式,比如说可以使用st-flash erase对芯片进行擦除

whs@whs-hp:~/Downloads$ st-flash
invalid command line
stlinkv1 command line: ./st-flash [--debug] [--reset] [--format <format>] [--flash=<fsize>] {read|write} /dev/sgX <path> <addr> <size>
stlinkv1 command line: ./st-flash [--debug] /dev/sgX erase
stlinkv2 command line: ./st-flash [--debug] [--reset] [--serial <serial>] [--format <format>] [--flash=<fsize>] {read|write} <path> <addr> <size>
stlinkv2 command line: ./st-flash [--debug] [--serial <serial>] erase
stlinkv2 command line: ./st-flash [--debug] [--serial <serial>] reset
                       Use hex format for addr, <serial> and <size>.
                       fsize: Use decimal, octal or hex by prefix 0xXXX for hex, optionally followed by k=KB, or m=MB (eg. --flash=128k)
                       Format may be 'binary' (default) or 'ihex', although <addr> must be specified for binary format only.
                       ./st-flash [--version]
example write option byte: ./st-flash --debug --reset --area=option write 0xXXXXXXXX
example read option byte: ./st-flash --debug --reset --area=option read > option_byte

使用特权

评论回复
25
9dome猫|  楼主 | 2024-1-31 23:29 | 只看该作者
3.2.2 命令行软件烧录(ST-FLASH)
软件下载示例,烧录文件为bin格式,需要带地址信息,sudo为非必须的,这里使用的版本是1.6.0

whs@whs-hp:~/STM32CubeIDE/workspace_1.6.1/Cube_fl03_led/Debug$ sudo st-flash write Cube_fl03_led.bin 0x8000000
[sudo] whs 的密码:
st-flash 1.6.0
2021-08-27T00:28:36 INFO common.c: Loading device parameters....
2021-08-27T00:28:36 INFO common.c: Device connected is: F1 Medium-density device, id 0x20036410
2021-08-27T00:28:36 INFO common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 1024 bytes
2021-08-27T00:28:36 INFO common.c: Attempting to write 15400 (0x3c28) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08003c00 erased
2021-08-27T00:28:36 INFO common.c: Finished erasing 16 pages of 1024 (0x400) bytes
2021-08-27T00:28:36 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2021-08-27T00:28:36 INFO flash_loader.c: Successfully loaded flash loader in sram
16/16 pages written
2021-08-27T00:28:37 INFO common.c: Starting verification of write complete
2021-08-27T00:28:37 INFO common.c: Flash written and verified! jolly good!
whs@whs-hp:~/STM32CubeIDE/workspace_1.6.1/Cube_fl03_led/Debug$

使用特权

评论回复
26
9dome猫|  楼主 | 2024-1-31 23:30 | 只看该作者
当烧录文件为hex格式时,由于hex文件里边包含地址信息,因此不需要再指定地址了,但是需要指明烧录的格式。

whs@whs-hp:/media/whs/HP_D/STM32/F103/trunk/FSMLED/Project$ st-flash --format ihex write output\(mdk\).hex

使用特权

评论回复
27
9dome猫|  楼主 | 2024-1-31 23:30 | 只看该作者
3.2.3 使用GUI界面进行烧录(STLINK)
安装STLINK-GUI后,可以使用GUI程序进行下载,GUI的显示界面如下

使用特权

评论回复
28
9dome猫|  楼主 | 2024-1-31 23:30 | 只看该作者
3.2.4 更多详细信息
命令行模式仅支持V1和V2版本的仿真器,并不支持V3版本的仿真器。
更多详细信息,可以参见GitHub的官方资料

https://github.com/stlink-org/stlink

使用特权

评论回复
29
9dome猫|  楼主 | 2024-1-31 23:30 | 只看该作者
4 STM32CubeProgrammer
4.1 使用STLINK进行下载
STM32CubeProgrammer软件是ST新推出的烧录软件,支持更多的方式设置,官方定位是替代ST-LINK Utility。打开如下图所示,支持STLINK、USB、UART以及OTA(均需要对应的烧录工具)下载,支持SWD和JTAG。但是需要说明的是,这个软件烧录时,需要STLINK固件为最新。使用正点原子Nano开发板时,会提示软件非最新,不能进行连接。

使用特权

评论回复
30
9dome猫|  楼主 | 2024-1-31 23:31 | 只看该作者

使用特权

评论回复
31
9dome猫|  楼主 | 2024-1-31 23:31 | 只看该作者
弹出的固件需要升级的错误

使用特权

评论回复
32
9dome猫|  楼主 | 2024-1-31 23:31 | 只看该作者
如果买的是官方出品的STLINK,可以正常对固件进行升级,如果不是官方的烧录器,升级前请三思,升级后有可能导致烧录器不能正常使用。下图为点击firmware update后出现的弹框。

使用特权

评论回复
33
9dome猫|  楼主 | 2024-1-31 23:31 | 只看该作者
使用正点原子Nano开发板也无需担心会升级导致不能用,因为你尝试升级时会弹出另外一个提示,需要额外的9856B空间,不能进行升级,原因是我们板载的STLINK芯片采用的STM32F103C8T6只有64K空间,这部分空间已经全部用完,不能再写入更新更大的固件。

使用特权

评论回复
34
9dome猫|  楼主 | 2024-1-31 23:31 | 只看该作者
另外这个软件也集成在STM32CUBEIDE软件中,STM32CUBEIDE为ST将eclipse、STM32CUBEMX和STM32CUBEPROGRAMMER集成整合到一起的综合编程软件,目前用的人还很少,挺好用,而且免费,跨平台。连接成功的示意图如下,默认会把芯片内部的程序读出来,可以对此程序进行另存为等操作。

使用特权

评论回复
35
9dome猫|  楼主 | 2024-1-31 23:32 | 只看该作者
使用此烧录工具,烧录时还可以对芯片进行读写保护,避免芯片被恶意读出盗窃烧录底层。

使用特权

评论回复
36
9dome猫|  楼主 | 2024-1-31 23:32 | 只看该作者
在ubuntu中此软件和windows下是相同的。

使用特权

评论回复
37
9dome猫|  楼主 | 2024-1-31 23:32 | 只看该作者
4.2 使用串口进行下载(ISP)
我们在此软件中,可以使用串口进行连接烧录,这样做的好处是不需要使用第三方串口烧录工具,另外cubeprogrammer也不会对STLINK的版本信息进行核验。

使用特权

评论回复
38
9dome猫|  楼主 | 2024-1-31 23:32 | 只看该作者
1.BOOT设置,将BOOT1跳到0(开发板已经默认拉到地),BOOT0跳到1(3.3V)。按一下RESET按键

使用特权

评论回复
39
9dome猫|  楼主 | 2024-1-31 23:32 | 只看该作者
2,打开软件,选择Uart和正确的COM口,由于用的是串口,因此就和stlink无关了,用一个USB转串口线也可以进行下载。

使用特权

评论回复
40
9dome猫|  楼主 | 2024-1-31 23:32 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则