Foreword
想尝试一下无线版本的J-Link,仔细调研了一下发现,实际上是CMSIS-DAP来实现的。而无线版本的J-Link全都断货了,只好找一些其他厂家的,于是看到了Vllink。比较巧的Vllink是基于AIC8800的,之前刚好调研过。
Vllink
http://vllogic.com/
官方文档,介绍了主要功能。
Vllink可以用有线模式,也可以用无线模式。
有线的话就是一个DAP-Link,走CMSIS-DAP,无线需要两个模块,一个作为AP,一个做STA,二者配对以后才能进行无线调试(他竟然用的是wifi6的ap)。
用起来还是比较方便的,双击两下按钮就能切模式,AP配对也只需要几秒钟就行了。
Vllink 支持的IDE比较多,基本各个厂家的都支持了
购买链接
https://vllogic.taobao.com/shop/view_shop.htm?shop_id=216739170
配合Keil使用
很简单,直接连好SWD三根线,切换到DAP v1或者v2版本就能正常使用了。
无线单步调试也比较流程
配合SES使用
建议不要配合SES使用,实际体验并不行
首先需要刷固件,只需要修改连接USB的电脑端固件即可
SES作为J-Link官方IDE,对于CMSIS-DAP支持十分有限,仅支持DAP v1版本,所以需要固件变更到这个版本。
升级也非常简单,直接访问在线升级即可
https://devanlai.github.io/webdfu/dfu-util/
实际进度条走满以后可能会报错,这里就可以忽略了,重启即可。
Vllink说只需要将工程的Target Connection
修改为J-Link即可,默认就是了
实际上不止于此,SES对于J-Link的延迟要求很高,这里的Speed需要降速,否则会一直提示J-Link连接失败,DAP 初始化失败什么的
SWD selected. Executing JTAG -> SWD switching sequence.
Error: Failed to initialized DAP.
降速之后,就可以100%连接成功了。但是实际体验非常差,单步调试,每步都需要消耗三四秒才反应到下一步,非常的慢,基本可以说是不能用的级别了。
配合OpenOCD使用
首先下载OpenOCD
https://gnutoolchains.com/arm-eabi/openocd/
然后将openocd.exe
所在文件夹加入path
路径,比如D:\OpenOCD-20230712-0.12.0\bin
- 注意新版的openocd只支持CMSIS-DAV v2 ,所以Vllink需要升级到新版本,而不能用v1的版本
将SES中的调试配置切换到GDB Server
GBD server这里,使用OpenOCD,并且要自己写命令行,后面必须指定interface和target是什么,否则可能识别不了。
openocd.exe -f interface\cmsis-dap.cfg -f target\stm32h7x_dual_bank.cfg
interface一律都是cmsis-dap.cfg
,而目标芯片根据需要改就行了。
interface和target等等,都在openocd安装路径中,多数常用的芯片都有,所以不需要额外自行配置,找到合适的即可
经过测试可以正常使用,并且单步调试延迟也非常低
也有一点缺点,就是OpenOCD下载或者是读取的时候,没有进度反馈,SES处于假死状态,只有下完了才会提示
OpenOCD报错,其实就是-f
路径出错了,如果是指定到自己的cfg文件,那么内部包含的各种文件路径都会对不上,解决这个问题最好的办法就是直接使用内置的cfg,或者把内部引用文件的路径改成绝对的,否则一定会出错的
Error: unable to select a session transport. Can't continue.
Summary
Vllink基本可用,只是想要更深度配合SES有点困难了
Quote
https://vllogic.com/software/segger_embedded_studio
https://wiki.segger.com/Embedded_Studio_with_GDB_Server