我可以使用ST-Link对各种SWD可编程芯片(ARM-MCU)进行编程吗?
我可以使用ST-Link对各种SWD可编程芯片(ARM-MCU)进行编程吗?
Answers:
您也可以闪烁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美元)。
添加到现有答案中;已知某些芯片不能与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一起使用筹码。
是的,尽管我没有尝试过,但我相信这是可能的。如果您尝试使用非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