我可以使用 ST-Link 对各种 SWD 可编程芯片 (ARM-MCU) 进行编程吗?
我可以将 ST-Link 编程器用于非 ST 芯片吗?
您还可以闪烁 st-link 并将其转换为Black Magic Probe。同样的图像也会将蓝色药丸转换为 BMP。
我都做过。Blue Pill 的优势在于,USB-rs232 桥接 BMP 出口很容易获得。
BMP 支持一系列芯片,包括但不限于:
ST Microelectronics STM32F0、STM32F1、STM32F3、STM32F2、STM32F4、STM32F7、STM32L0、STM32L1、STM32L4
Atmel SAM3N、SAM3X、SAM3S、SAM3U、SAM4S、SAM4L、SAM D20、D21
Nordic nRF51、nRF52(这就是我使用 BMP 的原因)
BMP 是开源的,可用于商业编程,硬件价格便宜(“真正的”BMP 成本约为 60 美元,亚马逊的蓝色药丸 5 包运费不到 20 美元)。
添加到现有答案;已知某些芯片无法与 ST-LINK 和 OpenOCD 一起正常工作。
特别是,如果您的目标来自 Atmel SAMD21 系列 MCU,您可能会遇到奇怪的问题,即检测到处理器,但任何擦除闪存扇区的尝试都会失败并出现错误。
原因相当复杂,引用:
AFAIK 问题在于半字(16 位)写入 NVMCTRL->CTRLA 寄存器。STLink 不实现半字内存访问,OpenOCD 模拟为两字节操作。不幸的是,CTRLA 寄存器包括键和命令,必须以原子方式编写。如果 STLink 写入两个字节,NVM 控制器会在 STATUS 中设置 PROGE 位:“在 NVM 命令寄存器中写入了无效命令和/或错误关键字”
解决方法涉及使用代码补丁重新编译 OpenOCD。不好玩。
但是,如果您不介意刷新您的 ST-Link(通过另一个 ST-Link),您可以将其转换为 CMSIS-DAP 适配器,它适用于 SAMD,也应该适用于 STM32 和其他 Cortex-M筹码。
是的,我相信这是可能的,尽管我还没有尝试过。如果您尝试对 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
是的,有可能。我正在使用带有 Coocox IDE 的 stlink v2(原版以及中文 USB 棒型克隆)。Coocox 也有独立的编程应用程序 - CoFlash,可用于对大量芯片进行编程。我只有两个系列的经验:LPC176x 和 LPC175x,通过 SWD 接口。我对这些芯片没有任何问题。我也没有对程序员进行任何具体的更改或更新(除了原始的 st 链接需要 TVCC(PIN1)的高电压电平,否则,它不允许对芯片进行编程,所以我直接连接了 pin 19(3.3vcc)在 stlink v2 上固定 1)。