PowerDebugger
小记多年前调试智能车时,抱着电脑连着小车在跑道上一边跑一边看数据的经历,让我就对无线调试方法始终有执念。后来在智能车比赛中开始流行使用各种无线传输模块实时传输数据的技术,在某种程度上减轻了智能车开发者的体力负担(后来兴起的室外越野赛,让平时久坐实验室的学弟学妹们又不得不开始又跑起来了)。但无线传输仍需要配合专门定制开发的上位机,并在MCU端做好适配,配合小车上的控制算法和应用程序尽量不影响运行效率。如果要把这套系统方案开发完善,还是需要花费不少精力的,并且类似的技术通常也不会开放,而且应用层面上的调试远远不如直接调试底层来得直接和深入。最理想的用法,其实很简单,只要把那根连接PC和调试器的USB剪断就好。
收到创芯工坊的Alex邱总寄送过来尝鲜的Arm无线调试器PowerDebugger
,我的心情是无比欣喜的,这么多年了,终于等到了商用的无线调试器面世了(泪奔。。。)。由于是国产自主品牌+调试器大厂出品,天然具备了物美价廉的特点,国内的开发者可以方便地在各种熟悉的线上平台下单,坐等送货上门。
无线调试器PowerDebugger
使用Arm的DAPLink
的协议,使用Wifi无线通信取代了以往调试系统中PC统调试器之间的USB连接线。除了有线变无线,用户在应用中使用没有任何差别,可以在以往的各种集成开发环境或者调试软件工具中使用DAPLink
一样使用PowerDebugger
。
实在是忍不住要连上手头上的MCU开发板,试用一番。
PowerDebugger
无线调试器拿到PowerDebugger
硬件设备后,还需要在PC上安装PowerDebugger客户端软件
(https://www.powerwriter.com/index/index/products.html?p=23&c=files&t=Client)。在创芯工坊的官网上可以下载到PowerDebugger客户端软件
,如图x所示。目前PowerDebugger客户端软件
已经可以支持Windows
、Linux
和MacOS
等三个主流的操作系统平台。
(插播广告,这也是创芯工坊官方对PowerDebugger
的介绍)
PowerDebugger 集成本地USB(HID + Winusb)、本地直连、局域网、公网四种连线的工作模式的实时源码级调试功能,并辅以RTT Viewer,RTT Scope等实时可视化的Trace功能、附加通用串口一体的多功能调试器工具软件,超小的体积和重量,高度集成的功能,用户可用于作为高速调试器、电压隔离调试器、远程实时源码调试 (技术支持) 等应用场景、以及调试辅助Trace功能、并新增其他特色的功能,如全场景模式(本地USB、本地WIFI 直连,跨地区公网)的 UART,并提供全平台支持的小巧高效的调试器设备。
PowerDebugger
的接收器上也带有一个Type-C的USB 接口,PC通过USB线接入这个USB接口,可以把接收机作为一个常规的有线DAPLink
调试器使用。如图x所示。
在PC机上接入PowerDebugger
的发射器后,在调试阶段,就不需要接收器上连USB线(但需要从目标开发板上取电),实现真正的无线连接调试。PowerDebugger
的发射器,如图x所示。
首次使用本地Wifi模式
时,需要先同时将发射端和接收端的设备都通过USB线连到电脑上,执行配对操作。如图x所示。这个配对只要执行一次就好,让手头上的发射器和接收器互相识别,如果以后一直使用这一对收发器,就不用再配对了。
之后就可以断开PC和接收器的USB连线,以无线连接的方式正常使用了。特别注意,PowerDebugger
的接收器需要从目标开发板上取电,调试期间要确保目标开发板有供电,并向PowerDebugger
的接收器供电。
PowerDebugger
客户端软件除了包括PowerDebugger
发射端和接收端的配置工具,还集成了很多其它很实用的工具,例如RTT可视化工具、串口调试软件等等。但建立无线连接的配对之后,就可以关闭PowerDebugger
客户端软件了,之后可以正常使用用户自己常用的调试工具软件,不限定必须使用PowerDebugger
客户端集成的调试工具。
EVB-YTM32B1LE0-Q64
开发板EVB-YTM32B1LE0-Q64
开发板上搭载了国产车规MCU原厂云途半导体的YTM32B1LE05
微控制器,使用Arm Cortex-M0+
处理器内核,片上集成128KB Flash和16KB的SRAM,除了MCU常用的通信、定时器和模拟外设模块,YTM32B1LE05
还集成了FlexCAN
、LinFlexD
等汽车电子系统常用的通信外设模块。
这里需要将EVB-YTM32B1L-Q64
开发板的调试插座同PowerDebugger
的接收器连接起来。如图x所示。
主要连接的信号包括:
SWD
调试端口的SWDIO
和SWCLK
RESET
UART
串口的TX
和RX
PowerDebugger
接收端需要开发板取5V的供电和GND。YTM32开发板可以通过DC电源插座,从外部直流电源接入12V的供电。
YTM32B1LE05
有对应的SDK软件包。这里选取其中的使用Keil MDK集成开发环境的hello_world
样例工程,作为用例,尝试使用无线调试器对下载固件并进行调试。
导入工程到Keil MDK中,在工程属性对话框中,选择使用CMSIS-DAP Debugger
调试器,如图x所示。
进一步在调试器属性的对话框中,可以看到有两个CMSIS-DAP
设备可选,选择其中的HID_CMSIS-DAP
。
从图x中可以看到,此时PowerDebugger
基于无线连接,已经可以识别到连接的Arm处理器内核了。
在Keil MDK
环境中,正常编译工程后,下载、调试,使用过程同原来使用有线连接的DAPLink
没有任何差别,速度也不错,没有因为使用无线通信而降低调试体验。如图x所示。
使用Tera Term
连一下串口,可以正常收发。实际使用的时候,由于测试通信数据量很小,感受不到因为无线通信而产生的延迟。如图x所示。此处相当于在无线下载调试之外,还得到了一个无线串口。真香。
在通信过程中,无论是SWD
通信还是UART
通信,PowerDebugger
的发射器和接收器上的状态指示灯都同步闪烁,指示通信正在进行。
本文记录了试用PowerDebugger
无线调试器调试YTM32微控制器的全过程。创芯工坊发布的产品简介和用户手册对PowerDebugger
功能和用法做了详细的介绍,但笔者在实际试用过程中还总结了一些额外的要点:
PowerDebugger
无线调试器时,需要使用PowerDebugger
客户端软件将发射器和接收器配对,否则大概率这两个设备不会对通。VREF
。PowerDebugger
支持YTM32使用Arm Cortex-M0+
处理器内核的YTM32B1LE
和YTM32B1LD
系列的MCU芯片,暂未支持使用Arm Cortex-M33
处理器内核的YTM32B1ME
和YTM32B1MD
系列的MCU芯片,这个后续可能需要通过更新PowerDebugger的固件实现。PowerDebugger
调试器用户手册:https://docs.powerwriter.com/docs/powerdebugger_for_arm/introPowerDebugger
产品简介:https://www.powerwriter.com/index/index/products.html?se=29PowerDebugger
采购链接及资料页:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-24057373977.12.13af596d6jOEpt&id=748083682258