ST公司推出的stm32单片受到大家广泛使用,为了支持程序调试,和更好的下载,ST公司还推出了对应的st-link硬件调试器,一端通过USB连接电脑,另一端JTAG或者SW接口连接上板子。那么用户如何使用st-link进行程序的下载和调试呢?(keil等IDE已经集成了下载和调试功能,我们不讨论这个)
stlink调试器作为非常广泛的使用,因此开源库至少需要支持stlink调试器。
至少能让用户操作st-link进行程序下载和调试的库有如下几个:
OpenOCD
这个开源库,不仅可以操控stlink,还能操控其它的所有硬件调试器,比如jlink等。用的人多,网上参考资料特别多。
详情请看这些博客:
跟我一起学OpenOCD(一) - 知乎
stlink
这个开源库,GitHub - stlink-org/stlink: Open source STM32 MCU programming toolset
只能用于操控stlink硬件调试器(其它调试器不支持),对stm32单片机进行 程序下载和调试。用的人少,网上资料较少。主要包含这么几个工具:
-
st-info
- a programmer and chip information tool,用于查看程序和单片机的信息的 -
st-flash
- a flash manipulation tool,用于将目标程序 xx.hex下载到板子里 -
st-trace
- a logging tool to record information on execution -
st-util
- a GDB server (supported in Visual Studio Code / VSCodium via theCortex-Debug plugin),用于支持stm32单片机调试的 -
stlink-lib
- a communication library -
stlink-gui
- a GUI-Interface[optional],为了更方便使用上面的工具,一个可视化操作stlink的界面功能,
我们可以自己编译这个开源库,也可以下载编译好的 exe,链接为:Releases · stlink-org/stlink · GitHub
下载完后,主要就是几个 exe文件了,不需要安装,启动命令行窗口,然后命令行执行它们,给对应的参数就行了
STM32 ST-LINK Utility
这个不是开源的,ST公司专门针对自家的stlink推出的可视化程序下载软件,支持程序下载、芯片信息读取、存储器擦除等很多功能,但是不能进行调试。这个工具对于批量下载代码,用得比较多。
总结
如果只用ST公司的stlink,stm32单片机,那么stlink库就可以了,支持下载和调试。如果还要支持其它厂家的硬件调试器和单片机,那就用 OpenOCD吧,比如自己做IDE,支持各种硬件调试器,就得用OpenOCD了。