BlackMagic Probe 折腾

Last updated: 2021-08-17

blackmagic commit: 3b8502c

前言

这个东西:

  • 很便宜(自制的话; 原版不仅是Micro B接口和少见的调试接口, 而且贵得很, 毕竟电平转换什么的都搞定了)
  • 很方便(直接适配GDB/板上GDB Server, 不需要额外开openocd或者其它东西)
  • 源码开放 Git仓库
  • 功能全

缺点:

  • 支持的ARM芯片类型有限
  • 可能没商业解决方案稳
  • 只能用GDB那套通信协议

折腾简记

简单说下我做过的折腾:

  • 尝试自己画板子还原一个廉价版(失败/放弃)
  • 尝试自己修改固件适配Weact的Bluepill(成功,不过是修改引脚定义)
  • 尝试将该固件安装到我买的STLink V2.1仿品(Type C接口)上

本文将进一步介绍第3部分内容

将STLink改为Blackmagic Probe

注意点:

  • 按照官方教程没啥大问题, 有些细节在后面说
  • 如果之前有把STLink刷成Jlink OB, 一定要先把它改回来再刷BMP

编译固件

无需特殊设置, 按流程来.

按我这里提供的操作(即官方文档里的操作), 原STLink的Bootloader是会保留的, 以后还能还原回去, 大可放心

git clone https://github.com/blacksphere/blackmagic
cd blackmagic
git submodule init
git submodule update
make PROBE_HOST=stlink ST_BOOTLOADER=1

编译完成后取src/blackmagic.bin备用

刷写固件

使用社区研究成果stlink-tool

git clone https://github.com/jeanthom/stlink-tool
cd stlink-tool
git submodule init
git submodule update
make

注意: 截至2021年2月2日 UTC+8, STLink V2.1及更高版本暂时需要用 UweBonnes的stlinkv21分支 才能正常升级

编译好后取stlink-tool备用

blackmagic.binstlink-tool放在一起(方便点), 插上你的STLink, 执行下面的命令

./stlink-tool blackmagic.bin

这样就刷写完毕了

一些注意点:

  • 对于STLink V2及更低版本, 每次使用都需要执行stlink-toolblackmagic(后者是对应的PC端程序)以激活板上的BMP应用程序. 如果不喜欢, 你可以选择像他们一样patch一下bootloader

啊这, 我不想翻译了, 就自己去那里看吧

写一下注意点: + STLink V2.1及以上版本需要在上电时将NRST短接GND一下(对,只要碰一下), 才能回到Bootloader模式
可以用dfu-util让BMP进入bootloader模式(只不过是ST-Link的bootloader), 甚至可以直接用修改后的stlink-tool刷回去