ST公司推出的stm32单片受到大家广泛使用,为了支持程序调试,和更好的下载,ST公司还推出了对应的st-link硬件调试器,一端通过USB连接电脑,另一端JTAG或者SW接口连接上板子。那么用户如何使用st-link进行程序的下载和调试呢?(keil等IDE已经集成了下载和调试功能,我们不讨论这个)

stlink调试器作为非常广泛的使用,因此开源库至少需要支持stlink调试器。

至少能让用户操作st-link进行程序下载和调试的库有如下几个:

OpenOCD

这个开源库,不仅可以操控stlink,还能操控其它的所有硬件调试器,比如jlink等。用的人多,网上参考资料特别多。

详情请看这些博客:

嵌入式IDE原理 OpenOCD介绍 以及stlink如何连接stm32板子_标biao的博客-CSDN博客

跟我一起学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 the Cortex-Debug plugin),用于支持stm32单片机调试的
  • stlink-lib - a communication library
  • stlink-gui - a GUI-Interface [optional],为了更方便使用上面的工具一个可视化操作stlink的界面功能,

使用,可以参考这个博客:ubuntu 使用st-flash_Gkbytes的博客-CSDN博客

我们可以自己编译这个开源库,也可以下载编译好的 exe,链接为:Releases · stlink-org/stlink · GitHub

下载完后,主要就是几个 exe文件了,不需要安装,启动命令行窗口,然后命令行执行它们,给对应的参数就行了

STM32 ST-LINK Utility

这个不是开源的,ST公司专门针对自家的stlink推出的可视化程序下载软件,支持程序下载、芯片信息读取、存储器擦除等很多功能,但是不能进行调试。这个工具对于批量下载代码,用得比较多。

总结

如果只用ST公司的stlink,stm32单片机,那么stlink库就可以了,支持下载和调试。如果还要支持其它厂家的硬件调试器和单片机,那就用 OpenOCD吧,比如自己做IDE,支持各种硬件调试器,就得用OpenOCD了。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐