Vllink无线调试上手体验

J-Link,CMSIS-DAP,SES,Keil,ST

Views:  times Updated on July 22, 2023 Posted by elmagnifico on July 22, 2023

Foreword

想尝试一下无线版本的J-Link,仔细调研了一下发现,实际上是CMSIS-DAP来实现的。而无线版本的J-Link全都断货了,只好找一些其他厂家的,于是看到了Vllink。比较巧的Vllink是基于AIC8800的,之前刚好调研过。

img

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使用

image-20230722141652122

很简单,直接连好SWD三根线,切换到DAP v1或者v2版本就能正常使用了。

无线单步调试也比较流程

img

配合SES使用

建议不要配合SES使用,实际体验并不行

首先需要刷固件,只需要修改连接USB的电脑端固件即可

image-20230722142145181

SES作为J-Link官方IDE,对于CMSIS-DAP支持十分有限,仅支持DAP v1版本,所以需要固件变更到这个版本。

升级也非常简单,直接访问在线升级即可

https://devanlai.github.io/webdfu/dfu-util/

image-20230722153237120

实际进度条走满以后可能会报错,这里就可以忽略了,重启即可。

Vllink说只需要将工程的Target Connection修改为J-Link即可,默认就是了

image-20230722142508529

实际上不止于此,SES对于J-Link的延迟要求很高,这里的Speed需要降速,否则会一直提示J-Link连接失败,DAP 初始化失败什么的

SWD selected. Executing JTAG -> SWD switching sequence.
Error: Failed to initialized DAP.

image-20230722142524116

降速之后,就可以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

image-20230722155002389

GBD server这里,使用OpenOCD,并且要自己写命令行,后面必须指定interface和target是什么,否则可能识别不了。

image-20230722155017902

openocd.exe -f interface\cmsis-dap.cfg  -f target\stm32h7x_dual_bank.cfg

interface一律都是cmsis-dap.cfg,而目标芯片根据需要改就行了。

interface和target等等,都在openocd安装路径中,多数常用的芯片都有,所以不需要额外自行配置,找到合适的即可

经过测试可以正常使用,并且单步调试延迟也非常低

image-20230722155649283

也有一点缺点,就是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