说明:
本文原创作者『strongerHuang』
本文首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop
一、写在前面
一些人可能看了上一篇关于ST-Link的内容,就会产生疑惑。。。
ST-Link有那么多硬件版本,那么里面的软件(固件)都一样吗?
我的ST-Link可以升级不同版本的固件吗?
二、关于ST-Link固件
固件Firmware,一般指写入硬件(芯片)里面的程序。
相信大家都看到过ST-Link硬件,里面的MCU就是一块STM32F103R8或RB芯片(不同硬件有差异)。
其实,里面就是STM32程序 ,我们称里面的程序为ST-Link固件。
所以,只要你有固件,设计一样的硬件,就可以做成一个ST-Link了,这就是所谓的山寨ST-Link(后续文章讲述如何自制ST-Link)。
三、ST-Link命名规则
由于ST-link硬件和功能的多样性,ST-Link的固件同样也具有多样性,也就是有多种版本。
比如,在升级的时候,我们会看到类似如下版本信息V2.J33.S7,你们知道这代表什么吗?
ST-Link固件命名遵循一定规则,相信很多朋友都没有关注过这个问题,下面详细讲述。
3.1 命名规则
主要版本 1:代表ST-LINK/V1 2:代表ST-LINK/V2, ST-LINK/V2-1,ST-LINK/V2-A和 ST-LINK/V2-B 3:代表STLINK-V3SET 和 STLINK-V3E
比如V2.J33.S7就是属于V2版本的ST-Link。
次要版本 J:支持STM32调试接口的版本(JTAG和SWD协议)。值0表示不支持该接口(对于STM8的Discovery板,如:V2.J0.S4)。
S:支持STM8调试接口的版本(SWIM协议)。值0表示不支持该接口(对于某些STM32的Discovery和Eval板,如:V2.J33.S0)
M:用于大容量存储和虚拟COM端口接口的版本(如:V2.J33.M25)。
B:桥接界面版本(V3.J1.M1.B1.S1)。
3.2 举例说明
为了让大家进一步了解,下面举几个例说明一下。 V1.J13.S4:是ST-LINK/V1独立版本。
V2.J27.S6:是ST-LINK/V2独立版本(具有STM32和STM8调试接口)。
V2.J27.S0:是32F401CDISCOVERY开发板自带ST-Link(具有STM32调试接口,没有STM8调试接口,没有大容量存储接口,没有虚拟COM端口)的版本。
V2.J27.M15:是用于核板和其他ST-LINK/V2-1、ST-LINK/V2-A、ST-LINK/V2-B板(具有STM32调试接口、大容量存储接口、虚拟COM端口)的版本。
V3.J1.M1.B1.S1:是STLINK-V3SET的一个版本(具有STM8和STM32调试接口、大容量存储接口、虚拟COM端口、网桥接口)。
3.3 强调说明
ST-Link固件的类型与硬件紧密相连。因此,不可能更改给定板的固件类型(例如:从V2.J27.S6更改为V2.J27.M15)。只能更新同一类型固件的版本(例如:V2.J25.M14到V2.J27.M15)。
所以,ST-Link升级时,固件类型是升级工具自动识别类型,一般不能更改的类型。(后面文章讲述升级相关内容)。
四、说明
1.该文档仅供个人学习使用,版权所有,禁止商用。
2.本文由我一个人编辑并整理,难免存在一些错误。
3.为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该教程同步更新于微信公众号『嵌入式专栏』,关注微信公众号回复【ST-Link资料】即可查看全系列教程。
五、最后
我的博客:http://www.strongerhuang.com
我的GitHub:https://github.com/EmbeddedDevelop
我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus...等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号『strongerHuang』。