我可以将ST-Link编程器用于非ST芯片吗?


12

我可以使用ST-Link对各种SWD可编程芯片(ARM-MCU)进行编程吗?


“ ST-LINK / V2是STM8和STM32微控制器系列的在线调试器和编程器。” 我认为您不能马上做到,但是从理论上讲应该是可以实现的。有人设法将其连接到LPC MCU:lpcware.com/content/forum/…–
Fluffy

1
也许在某些情况下,如果您使用像openocd这样的东西而不是ST软件。如果遇到困难,可以使用开源的CMSIS-DAP实现,可以通过将其置于对细节的更好控制中来实现通用性。
克里斯·斯特拉顿

这不是您要的,但是也有涵盖多个目标的调试器,例如PE微型调试器。
mkeith '16

2
我使用ST链接对lpc1549进行编程,它可以工作。
user2425240

Answers:


6

您也可以闪烁st-link并将其转换为Black Magic Probe。同一张图片还将将蓝色药丸转换为BMP。

我都做过 Blue Pill的优点是可以轻松获得BMP导出的usb-rs232桥接器。

BMP支持的芯片范围包括但不限于:
ST Microelectronics STM32F0,STM32F1,STM32F3,STM32F2,STM32F4,STM32F7,STM32L0,STM32L1,STM32L4
Atmel SAM3N,SAM3X,SAM3S,SAM3U,SAM4D,SAM4U,
北欧nRF51,nRF52(这就是为什么我使用BMP的原因)

BMP是开源的,可用于商业编程,并且硬件价格便宜(“真正的” BMP成本约为60美元,来自亚马逊的5片蓝色药片的运价不到20美元)。


4

添加到现有答案中;已知某些芯片不能与ST-LINK和OpenOCD一起正常工作。

特别是,如果您的目标来自Atmel SAMD21系列MCU,则很可能会遇到奇怪的问题,即检测到处理器,但是任何擦除闪存扇区的尝试均会失败,并显示错误。

原因很复杂,引用:

AFAIK问题是半字(16位)写入NVMCTRL-> CTRLA寄存器。STLink不实现半字存储器访问,OpenOCD模拟为两个字节操作。不幸的是,CTRLA寄存器由键和命令组成,必须原子编写。如果STLink写入两个字节,则NVM控制器将STATUS中的PROGE位置1:“在NVM Command寄存器中写入了无效的命令和/或错误的关键字”

解决方法是使用代码补丁重新编译OpenOCD。不好玩。

但是,如果您不介意(通过另一个ST-Link)刷新ST-Link,则可以将其转换为CMSIS-DAP适配器,该适配器与SAMD可以很好地兼容,并且还可以与STM32和其他Cortex-M一起使用筹码。


1

是的,尽管我没有尝试过,但我相信这是可能的。如果您尝试使用非ST的设备进行编程,则可能会违反ST许可协议

例如,Segger(调试器和编程器的市场领导者之一)支持将您的ST-Link转换为J-link(实际上是用Segger代码覆盖ST-Link芯片)。这也是可逆的,因此,如果要将ST-link设备恢复为原始格式,则可以。

但是,有几种版本的ST-Link。看一下以下链接,这些链接提供了更多信息以及如何执行此操作的指南。

https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html


1
我一直在大多数主要的cortex-m品牌的核和发现板上使用stlink头...而我无法解决的问题是配置openocd而不是stlink的问题。
old_timer

1
将ST-Link闪烁到J-Link仅在Nucleo或Discovery板上有效(并且是合法的),并且只能与目标MCU一起使用。阅读Seggar许可条款,它们具有限制性。据我所知,Seggar闪光灯甚至无法在独立的ST-Link上使用。
GB-AE7OO,

1

是的,有可能。我在Coocox IDE中使用了stlink v2(原始的以及中文的USB记忆棒类型的克隆)。Coocox还拥有独立的编程应用程序- CoFlash,这可能是用来编写了大量的筹码。我只有两个系列的经验:通过SWD接口的LPC176x和LPC175x。而且我对那些芯片没有任何问题。我也没有对程序员进行任何特定的更改或更新(除了原始的st链接需要TVCC(PIN1)处的高电压电平,否则,它不允许对芯片进行编程,因此我直接连接了引脚19(3.3vcc))到stlink v2的引脚1)。


0

具有最新固件的STLink V2 / V2.1或V3也可以与PC托管的Blackmagic pc-stlinkv2平台一起使用。使用“ make PROBE_HOST = pc-stlinkv2”进行编译,使用“ blackmagic_stlinkv2”启动调试服务器,并在gdb中连接到:2000,或者使用“ blackmagic_stlinkv2”直接加载二进制文件。这适用于BMP知道的所有目标。但是,V3主动拒绝在非ST目标上工作,而V2则不在乎。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.