[应用相关] STM32自动化烧录脚本

[复制链接]
470|1
荣陶陶 发表于 2025-10-11 07:47 | 显示全部楼层 |阅读模式
实现目标
客户有这样的需求:需要先修改STM32的选项字节(关闭DBANK,使用单bank模式),然后再通过STM32片上的ISP串口接口烧录代码,因为是提供给产线工人使用,所以希望 “一键操作” 来实现该功能。

需求分析
先分析需求,最省事儿,又可靠,还高效的方案就是选择一家烧录器厂商,购买他们的烧录器,就能搞定这件事儿,就是“费钱”。那么“小作坊”如何折腾呢?

事实上,ST提供了丰富的生态,可以助我们快速实现这个功能,使用STM32ProgrammerCLI.exe,自己写一个自动化的脚本就能轻松搞定这个了,让我们一起来实现吧。

实现步骤
刚好我手里有一块STM32G474的NUCLEO开发板,板载了STLink,并且有VCP(虚拟串口)功能,这样的话,硬件就是现成的,只要准备一根USB线和一个跳帽就可以了。

如何通过STM32ProgrammerCLI的串口命令连接STM32?
执行以下脚本内容即可:
:: Configure tools installation path
set stm32programmercli="C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe"

:: Configure the type of connection
set connect_uart=-c port=COM32 br=9600

:: Establish the connection
%stm32programmercli% %connect_uart%




注意,需要这里的串口号,需要插上开发板后,在设备管理器中查看,比如我这里是COM32,我上面的代码中也是COM32。特别要留意,如果连接多个STLink时,要注意别搞错了,还有就是串口波特率,根据线束长度调整,9600速率不高,但是比较稳定,该参数可以修改。

4937068e8832cae1d5.png

如何修改OptionByte(DBANK位)呢?
%stm32programmercli% %connect_uart% -ob DBANK=0


这样一条命令就可以将Flash 的双Bank配置为单Bank了,是不是很简单。

如何烧录STM32呢?
在硬件上,我们需要将BOOT pin上拉,然后按下复位键,使得STM32进入system boot模式

3368e88322178cf.png

假设在脚本的同级目录下,有一个“build”文件夹,里面有升级文件:“G4_makefile.bin”,
我们可以这样来实现:
        set "download_file=%~dp0/build/G4_makefile.bin"
        %stm32programmercli% %connect_uart% -d %download_file% 0x08000000


搞定!,这样一个自动化烧录脚本的基本功能就实现了。

当然,你还可以优化脚本,比如加上升级失败时的处理,脚本执行出错时的异常机制等等。

操作:只需上拉BOOT引脚,按下复位键(产线上可以通过夹具实现),
双击执行脚本,我们就实现了串口修改OB,和STM32的烧录啦。
————————————————
版权声明:本文为CSDN博主「AlexXu_XXD」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xxd_8450343/article/details/151655708

jf101 发表于 2025-10-12 22:41 | 显示全部楼层
STM32自动化烧录脚本
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

286

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部