当前位置: 首页 > article >正文

试用无线调试器PowerDebugger小记

试用无线调试器PowerDebugger小记

文章目录

  • 试用无线调试器`PowerDebugger`小记
    • 引言
    • 准备软硬件环境
      • `PowerDebugger `无线调试器
      • `EVB-YTM32B1LE0-Q64` 开发板
    • 开始调试
    • 小结
    • 参考文献

引言

多年前调试智能车时,抱着电脑连着小车在跑道上一边跑一边看数据的经历,让我就对无线调试方法始终有执念。后来在智能车比赛中开始流行使用各种无线传输模块实时传输数据的技术,在某种程度上减轻了智能车开发者的体力负担(后来兴起的室外越野赛,让平时久坐实验室的学弟学妹们又不得不开始又跑起来了)。但无线传输仍需要配合专门定制开发的上位机,并在MCU端做好适配,配合小车上的控制算法和应用程序尽量不影响运行效率。如果要把这套系统方案开发完善,还是需要花费不少精力的,并且类似的技术通常也不会开放,而且应用层面上的调试远远不如直接调试底层来得直接和深入。最理想的用法,其实很简单,只要把那根连接PC和调试器的USB剪断就好。

收到创芯工坊的Alex邱总寄送过来尝鲜的Arm无线调试器PowerDebugger,我的心情是无比欣喜的,这么多年了,终于等到了商用的无线调试器面世了(泪奔。。。)。由于是国产自主品牌+调试器大厂出品,天然具备了物美价廉的特点,国内的开发者可以方便地在各种熟悉的线上平台下单,坐等送货上门。

在这里插入图片描述

图x 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客户端软件已经可以支持WindowsLinuxMacOS等三个主流的操作系统平台。

在这里插入图片描述

图x 在创芯工坊官网下载PowerDebugger客户端软件

(插播广告,这也是创芯工坊官方对PowerDebugger的介绍)

PowerDebugger 集成本地USB(HID + Winusb)、本地直连、局域网、公网四种连线的工作模式的实时源码级调试功能,并辅以RTT Viewer,RTT Scope等实时可视化的Trace功能、附加通用串口一体的多功能调试器工具软件,超小的体积和重量,高度集成的功能,用户可用于作为高速调试器、电压隔离调试器、远程实时源码调试 (技术支持) 等应用场景、以及调试辅助Trace功能、并新增其他特色的功能,如全场景模式(本地USB、本地WIFI 直连,跨地区公网)的 UART,并提供全平台支持的小巧高效的调试器设备。

PowerDebugger的接收器上也带有一个Type-C的USB 接口,PC通过USB线接入这个USB接口,可以把接收机作为一个常规的有线DAPLink调试器使用。如图x所示。

在这里插入图片描述

图x PowerDebugger接收器

在PC机上接入PowerDebugger的发射器后,在调试阶段,就不需要接收器上连USB线(但需要从目标开发板上取电),实现真正的无线连接调试。PowerDebugger的发射器,如图x所示。

在这里插入图片描述

图x PowerDebugger的发射器

首次使用本地Wifi模式时,需要先同时将发射端和接收端的设备都通过USB线连到电脑上,执行配对操作。如图x所示。这个配对只要执行一次就好,让手头上的发射器和接收器互相识别,如果以后一直使用这一对收发器,就不用再配对了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

图x 在PowerDebugger上位机上配置配对

之后就可以断开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还集成了FlexCANLinFlexD等汽车电子系统常用的通信外设模块。

这里需要将EVB-YTM32B1L-Q64开发板的调试插座同PowerDebugger的接收器连接起来。如图x所示。

在这里插入图片描述

图x EVB-YTM32B1L-Q64连接无线调试器

主要连接的信号包括:

  • SWD调试端口的SWDIOSWCLK
  • 复位信号线RESET
  • UART串口的TXRX
  • PowerDebugger接收端需要开发板取5V的供电和GND。

YTM32开发板可以通过DC电源插座,从外部直流电源接入12V的供电。

YTM32B1LE05有对应的SDK软件包。这里选取其中的使用Keil MDK集成开发环境的hello_world样例工程,作为用例,尝试使用无线调试器对下载固件并进行调试。

开始调试

导入工程到Keil MDK中,在工程属性对话框中,选择使用CMSIS-DAP Debugger调试器,如图x所示。

在这里插入图片描述

图x 在Keil MDK环境中配置调试器

进一步在调试器属性的对话框中,可以看到有两个CMSIS-DAP设备可选,选择其中的HID_CMSIS-DAP

在这里插入图片描述

图x 选择CMSIS-DAP设备

从图x中可以看到,此时PowerDebugger基于无线连接,已经可以识别到连接的Arm处理器内核了。

Keil MDK环境中,正常编译工程后,下载、调试,使用过程同原来使用有线连接的DAPLink没有任何差别,速度也不错,没有因为使用无线通信而降低调试体验。如图x所示。

在这里插入图片描述

图x 在Keil MDK下调试MCU工程

使用Tera Term连一下串口,可以正常收发。实际使用的时候,由于测试通信数据量很小,感受不到因为无线通信而产生的延迟。如图x所示。此处相当于在无线下载调试之外,还得到了一个无线串口。真香。

在这里插入图片描述

图x 使用PowerDebugger的无线串口

在通信过程中,无论是SWD通信还是UART通信,PowerDebugger的发射器和接收器上的状态指示灯都同步闪烁,指示通信正在进行。

在这里插入图片描述

图x 使用PowerDebugger和YTM32开发板联调

小结

本文记录了试用PowerDebugger无线调试器调试YTM32微控制器的全过程。创芯工坊发布的产品简介和用户手册对PowerDebugger功能和用法做了详细的介绍,但笔者在实际试用过程中还总结了一些额外的要点:

  • 首次使用PowerDebugger无线调试器时,需要使用PowerDebugger客户端软件将发射器和接收器配对,否则大概率这两个设备不会对通。
  • 配对过程需要同时将发射器和接收器通过USB线连接PC。(别问我是怎么知道的,我也是一顿乱试之后碰巧发现的)
  • 接收器从开发板取5V电和GND,不需要连VREF
  • 目前PowerDebugger支持YTM32使用Arm Cortex-M0+处理器内核的YTM32B1LEYTM32B1LD系列的MCU芯片,暂未支持使用Arm Cortex-M33 处理器内核的YTM32B1MEYTM32B1MD系列的MCU芯片,这个后续可能需要通过更新PowerDebugger的固件实现。

参考文献

  • PowerDebugger调试器用户手册:https://docs.powerwriter.com/docs/powerdebugger_for_arm/intro
  • PowerDebugger产品简介:https://www.powerwriter.com/index/index/products.html?se=29
  • PowerDebugger采购链接及资料页:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-24057373977.12.13af596d6jOEpt&id=748083682258

http://www.kler.cn/a/136098.html

相关文章:

  • TypeScript进阶
  • k8s 优雅监控jvm及dump heap的方案探讨
  • 介绍8款开源网络安全产品
  • NanoLog起步笔记-6-StaticLogInfo
  • 【电子元器件】音频功放种类
  • Unexpected token ‘<‘, “<!doctype “... is not valid JSON
  • ES6有何新特性?(下篇)
  • 【C语法学习】26 - strcat()函数
  • 智能门禁刷脸照片格式gif、bmp,png转换,转换base64
  • 力扣labuladong——一刷day44
  • 网络参考模型与标准协议(一)
  • ORA-00600 【3948】,ORA-00600 【3949】
  • 何时使用Elasticsearch而不是MySql?
  • 虚拟化逻辑架构: 创建KVM中的VM与实现VNC远程登录
  • 键盘控制ROS车运动
  • Linux 串口应用编程
  • 阿里国际站(直通车)
  • 【开题报告】基于SpringBoot的膳食营养健康网站的设计与实现
  • WebGoat通关攻略之 SQL Injection (intro)
  • 持续集成交付CICD:Jenkins Sharedlibrary 共享库
  • Java语言基础第四天
  • centos oracle11g开启归档模式
  • 下一代搜索引擎会什么?
  • 力扣贪心——跳跃游戏I和II
  • 【整顿C盘】pycharm、chrome等软件,缓存移动
  • 记一次线上bug排查-----SpringCloud Gateway组件 请求头accept-encoding导致响应结果乱码