试用无线调试器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.mzph.cn/news/152622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计选题推荐-家庭理财微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

Vue使用基本教程(基本介绍及对比,初步使用,构建项目,编辑器等)

一、Vue及与其他前端框架的异同。 Vue.js(通常简称为Vue)是一个用于构建用户界面的渐进式JavaScript框架。它专注于视图层,采用简单的API设计,使得开发者能够更轻松地构建交互式的单页面应用(SPA)和用户界…

leetcode:504. 七进制数

一、题目: 链接: 504. 七进制数 - 力扣(LeetCode) 函数原型: char* convertToBase7(int num) 二、思路 本题要将十进制数转换为二进制数,只要将十进制num数模7再除7,直到num等于0 每次将模7的结…

编写高效的消息传递代码-对消息进行降维

DGL优化了消息传递的内存消耗和计算速度。利用这些优化的一个常见实践是通过基于内置函数的 update_all() 来开发消息传递功能。 除此之外,考虑到某些图边的数量远远大于节点的数量,DGL建议避免不必要的从点到边的内存拷贝。对于某些情况,比…

hologres 索引与查询优化

hologres 优化部分 1 hologres 建表优化1.1 建表中的配置优化1.1 字典索引 dictionary_encoding_columns1.2 位图索引 bitmap_columns1.2.2 Bitmap和Clustering Key的区别 1.3 聚簇索引Clustering Key 1 hologres 建表优化 1.1 建表中的配置优化 根据 holo的 存储引擎部分的知…

【AI视野·今日Robot 机器人论文速览 第六十四期】Fri, 27 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 27 Oct 2023 Totally 27 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers 6-DoF Stability Field via Diffusion Models Authors Takuma Yoneda, Tianchong Jiang, Gregory Shakhnarovich, Matthew R. …

JVM:内存模型、内存分配机制、内存分配冲突、JVM垃圾标记算法、JVM1.8增加元数据区缘由

文章目录 JVM 内存模型线程共享区:堆方法区(元空间) 线程私有区线程栈 本地方法栈程序计数器 为什么JDK1.8会增加对方法区的实现/为什么JDK1.8将方法区更改为元数据区JVM内存分配机制指针碰撞空闲列表 内存分配冲突CAS乐观锁解决TLAB解决 JVM垃圾标记算法1、引用计数…

PostgreSQL数据库结合内网穿透实现公网远程连接

文章目录 前言1. 安装postgreSQL2. 本地连接postgreSQL3. Windows 安装 cpolar4. 配置postgreSQL公网地址5. 公网postgreSQL访问6. 固定连接公网地址7. postgreSQL固定地址连接测试 前言 PostgreSQL是一个功能非常强大的关系型数据库管理系统(RDBMS),下…

智能门禁刷脸照片格式gif、bmp,png转换,转换base64

随着刷脸闸机的普及,很多场所都使用了刷脸金闸机,很多时候对方传来的照片格式不对。 刷脸闸机对应的格式都是jpg 照片来源:访客手机上传,管理员上传,团队购票上传 在转换的语言很多,在网站中php使用较为…

Python的os.path.join()详解

当你需要构建文件路径时,os.path.join() 是一个很有用的方法。这个方法会根据你的操作系统使用正确的路径分隔符(例如,在 Windows 上是反斜杠 \,在类 Unix 系统上是正斜杠 /)来连接路径中的各个部分。这样你就可以确保…

44-设计问题-最小栈

原题链接: 198. 打家劫舍 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入&a…

【洛谷 P3743】kotori的设备 题解(二分答案+循环)

kotori的设备 题目背景 kotori 有 n n n 个可同时使用的设备。 题目描述 第 i i i 个设备每秒消耗 a i a_i ai​ 个单位能量。能量的使用是连续的,也就是说能量不是某时刻突然消耗的,而是匀速消耗。也就是说,对于任意实数,…

数据结构--串的基本概念

目录 串的基本概念 串的定义 串与线性表对比 ​串的基本操作​ 串的比较 字符集编码 乱码问题​编辑 总结 ​串的存储结构 ​串的顺序存储​编辑 串的链式存储 串的基本操作 1、求字串 2、比较 3、定位操作 总结 串的基本概念 串的定义 串与线性表对比 串的…

python的socket模块以及通信相关学习笔记

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯(最初设计是为了是使同一台计算机中的不同进程进行信息传递通信),最后拓展到可以使网络上两台计…

俄罗斯方块游戏制作

创建包和文件夹 1.创建小方块类 package eluosifangkuai; import java.awt.image.BufferedImage; import java.util.Objects;/*** author xiaoZhao* date 2022/5/7* describe* 小方块类* 方法: 左移、右移、下落*/ public class Cell {// 行private int row;//…

CentOS部署Skywalking

一、安装Docker #yum -y install gcc #yum -y install gcc-c #yum install -y yum-utils 设置国内的镜像仓库 #yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更新yum软件包索引 #yum makecache fast 安装Docker引擎 #yum …

Java对List的操作

List<Person>转成map&#xff0c;并自定义key 假设有一List中有如下数据 Person{id100, name张三0100} Person{id101, name张三1100} Person{id102, name张三2100} Person{id103, name张三3100} Person{id104, name张三4100} Person{id105, name张三5100} Person{id106…

猫12分类:使用多线程爬取图片的Python程序

本文目标 对于猫12目标检测部分的数据集&#xff0c;采用网络爬虫来制作数据集。 在网络爬虫中&#xff0c;经常需要下载大量的图片。为了提高下载效率&#xff0c;可以使用多线程来并发地下载图片。本文将介绍如何使用Python编写一个多线程爬虫程序&#xff0c;用于爬取图片…

小黑子的SSM整合

SSM整合 一、基于restful页面数据交互1.1 后台接口开发1.2 页面访问处理 二、ssm整合2.1 流程分析2.2 整合配置2.3 功能模块开发2.4 接口测试2.5 表现层与前端数据传输协议定义2.5.1 协议实现 2.6 异常处理器2.6.1 RestControllerAdvice2.6.2 ExceptionHandler2.6.3 项目异常处…

.Net6 Api Swagger配置

1、定义个Swagger版本&#xff08;组&#xff09;的枚举 namespace WebApp.Enums {/// <summary>/// api版本枚举/// </summary>public enum ApiVersion{/// <summary>/// v1版本/// </summary>v1 1,/// <summary>/// v2版本/// </summary&…