1.1-综述
从事stm32开发的话,肯定绕不开stlink,使用stlink开发stm32时用到的知识点。对于常规开发而言,80%时候会使用keil或vscode对目标芯片进行下载与在线调试,简单的bug我们一般反复下载就行了,复杂的bug需要进行单步调试、查看寄存器、输出swo信息等。本文简单介绍stlink的两个工具st-utility和cubeProgrammer,重点介绍st-link的命令行的使用,因为越来越多的人会(抛弃keil)转向使用vscode调用stlink进行开发,最后对stlink和jlink进行简单对比。
1.2-stlink是啥?
stlink或st-link是一个解决方案,有st-link下载器和对应安装在windows上的驱动与工具。这个解决方案用于实现st自家芯片的下载与在线调试功能。在嵌入式开发领域,涉及的知识点太多,所以每一块都是分层的,有严格的架构,层与层之前发展出标准的通讯接口。stlink硬件与驱动,它连接了目标芯片与电脑上的开发软件,如KEIL调用"stlink驱动+stlink下载器硬件"实现对目标芯片的访问,就能进行程序下载与调试。另外,再在上面加一个gdb server接口,这下就可以被通用的编译器调用,如vscode就实现了keil的下载与调试功能,具体在其他博客中详解。
2.1-stlink的软件与硬件
在st的官网STM32 ST-LINK utility上可以购买stlink的硬件及免费下载st-link的软件,stlink的硬件在国内有很多变体或仿器,应当注意这些都是侵权的,所以硬件很容易获得,而且大部分是V2.1版本的;关于软件工具,有utility和cubeproprammer两个,官网已经称前者被后者取代,两者在开发中一般是用于下载bin文件以及解锁芯片的