STLink 是一款开源工具集,专为 STM32 微控制器(MCU)提供编程和调试服务。它支持各种 STLINK 编程器开发板(及其克隆版本),这些开发板利用微控制器芯片将来自 USB 的命令转换为 JTAG/SWD,从而实现对 STM32 的灵活控制。
STLink 工具集包含多个功能强大的工具,涵盖了 STM32 开发的各个方面:
• st-info: 用于获取编程器和芯片信息,帮助开发者了解当前连接的设备。
• st-flash: 用于对 STM32 的闪存进行操作,包括烧录固件、擦除闪存、读取闪存数据等。
• st-trace: 用于记录 STM32 运行时的信息,例如代码执行路径、变量值等,帮助调试程序。
• st-util: 一个 GDB 服务器,允许开发者使用 GDB 调试器进行远程调试。它可以与 Visual Studio Code 等 IDE 配合使用,为开发者提供更便捷的调试体验。
• stlink-lib: 通信库,为其他工具提供底层通信支持。
• stlink-gui: 可选的图形界面,提供更友好的操作方式,简化了 STLink 的使用。
STLink 在 STM32 开发中有着广泛的应用,主要包括以下场景:
• 烧录固件: 使用 st-flash 工具将固件烧录到 STM32 的闪存中,实现对 STM32 的功能配置。
• 调试程序: 使用 st-util 工具和 GDB 调试器,远程调试 STM32 代码,分析程序运行状态,定位和解决问题。
• 读取芯片信息: 使用 st-info 工具获取 STM32 的芯片型号、版本信息等,帮助开发者了解目标设备。
• 自定义开发: 由于 STLink 是开源的,开发者可以根据自己的需求修改和定制 STLink,扩展其功能。
STLink 的安装方法因操作系统而异:
• Windows: 可以从项目发布页面下载预编译的二进制文件,也可以从源代码编译安装。
• Linux/Unix: 建议从发行版的软件包存储库中安装,也可以从项目中下载 deb 包进行安装。
• macOS: STLink 在 v1.8.0 版本之后不再支持 macOS,建议使用 v1.7.0 版本,但需要注意的是,该版本不再维护和支持。
STLink 的使用通常需要一些简单的命令行操作,例如:
• 烧录固件:
st-flash write firmware.bin 0x08000000
• 读取闪存内容:
st-flash read firmware.bin 0x08000000 0x1000
• 使用 GDB 调试:
arm-none-eabi-gdb -ex "target remote :3333" program.elf
STLink 是一款功能强大的开源 STM32 编程调试利器,它为开发者提供了灵活、高效的 STM32 开发工具。无论是初学者还是经验丰富的开发者,STLink 都可以帮助你轻松玩转 STM32。
项目地址:https://github.com/stlink-org/stlink