试用无线调试器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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ES6有何新特性?(下篇)

目录 函数参数的默认值设置 rest参数 扩展运算符 Symbol 迭代器 生成器 Promise Class 数值扩展 对象方法扩展 模块化 大家好呀!今天这篇文章继续为大家介绍ES6的新特性,上上上篇文章介绍了一部分,这篇文章会将剩下的部分新增的特…

【C语法学习】26 - strcat()函数

文章目录 1 函数原型2 参数3 返回值4 使用说明5 示例5.1 示例1 1 函数原型 strcat():将src指向的字符串附加在dest指向的字符串末尾,将两个字符串拼接成一个字符串,函数原型如下: char *strcat(char *dest, const char *src);2 …

网络参考模型与标准协议(一)

OSI参考模型 OSI 模型(Open Systems Interconnection Model),由国际化标准组织ISO (TheInternational Organization for Standardization )收录在ISO 7489标准中并于1984年发布。 OSI参考模型又被称为七层模型,由下至上依次为: 物理层: 在设备之间传输比…

虚拟化逻辑架构: 创建KVM中的VM与实现VNC远程登录

目录 一、实验 1.安装KVM环境管理工具并创建VM(虚拟机) 2.Windows使用VNC Viewer连接KVM中的VM(虚拟机) 二、问题 1.如何下载安装VNC Viewer 一、实验 1.安装KVM环境管理工具并创建VM(虚拟机) (1) 采…

键盘控制ROS车运动

键盘控制ROS车运动 上位机 使用pyseria库与stm32单片机进行通信控制 #!/usr/bin/env python # -*- coding: utf-8 -*import sys, select, termios, tty import serialmsg """ ---------------------------w a x ds w : x a : y s : -x …

Linux 串口应用编程

1 串口 API Linux串口通信: 在 Linux 系统中,操作设备的统一接口就是: open/ioctl/read/write 。 对于 UART ,又在 ioctl 之上封装了很多函数,主要是用来设置行规程。所以对于 UART ,编程的套路就是…

阿里国际站(直通车)

1.国际站流量 2.直通车即P4P(pay for performance点击付费) 2.1直通的含义:按点击付费,通过自助设置多维度展示产品信息,获得大量曝光吸引潜在买家。 注意:中国大陆和尼日利尼地区点击不扣费。 2.2扣费规…

WebGoat通关攻略之 SQL Injection (intro)

SQL Injection (intro) 1. What is SQL? 本题练习SQL查询语句,就是写一句SQL获取叫Bob Franco所在的department SELECT department FROM employees WHERE first_name Bob AND last_name Franco成功通关! 2. Data Manipulation Language (DML) 本题…

持续集成交付CICD:Jenkins Sharedlibrary 共享库

目录 一、理论 1.共享库 2.共享库配置 3.使用共享库 4.共享库扩展 二、实验 1.连接共享库 2.使用共享库 三、问题 1.路径报错 2.readJSON 报错 一、理论 1.共享库 (1)概念 1)共享库这并不是一个全新的概念,其实在编…

下一代搜索引擎会什么?

现在是北京时间2023年11月18日。聊一聊搜索。 说到搜索,大家首先想到的肯定是谷歌,百度。我把这些定义成上一个时代的搜索引擎。ChatGPT已经火热了有一年的时间了,大家都认为Ai搜索是下一代的搜索。但是AI搜索,需要的是很大算力&a…

力扣贪心——跳跃游戏I和II

1 跳跃游戏 利用边界进行判断,核心就是判定边界,边界内所有步数一定是最小的,然后在这个边界里找能到达的最远地方。 1.1 跳跃游戏I class Solution {public boolean canJump(int[] nums) {int len nums.length;int maxDistance 0;int te…

【整顿C盘】pycharm、chrome等软件,缓存移动

C盘爆了,特来找一下巨大的软件缓存,特此记录,跟随的各大教程,和自己的体会 一、爆炸家族JetBrains 这个适用于pycharm、idea、webstorm等等,只要是JetBrains家的,2020版本以上,都是一样的方法 p…

记一次线上bug排查-----SpringCloud Gateway组件 请求头accept-encoding导致响应结果乱码

基于公司的业务需求,在SpringCloud Gateway组件的基础上,写了一个转发服务,测试开发阶段运行正常,并实现初步使用。但三个月后,PostMan请求接口,返回异常,经排查,从日志中获取到转发…

pytho你-opencv划痕检测

pytho你-opencv划痕检测 这次实验,我们将对如下图片进行划痕检测,其实这个比较有难度,因为清晰度太差了。 我们做法如下: (1)读取图像为灰度图像,进行自适应直方图均衡化处理,增强…

浅谈无线测温产品在菲律宾某工厂配电项目的应用

摘要:配电系统是由多种配电设备和配电设施所组成的变换电压和直接向终端用户分配电能的一个电力网络系统。由于配电系统作为电力系统的一个环节直接面向终端用户,它的完善与否直接关系着广大用户的用电可靠性和用电质量,因而在电力系统中具有…

手机照片误删解决方法分享

几个要点 1.检查回收站:一些情况下,我们会在删除文件时将它们移动到回收站中,查看回收站中是否有被删除的照片,这样可以直接恢复文件。 2.使用手机自带的恢复功能:一些手机自带照片恢复功能,可尝试在相册…

【Android】画面卡顿优化列表流畅度六(终篇)

上一篇: 【Android】画面卡顿优化列表流畅度五之下拉刷新上拉加载更多组件RefreshLayout修改 场景回顾: 业务经过一年半左右的运行后,出现了明显的列表卡顿情况;于是开始着手进行列表卡顿优化。目前的情况是: 网络图…

通过easyexcel实现数据导入功能

上一篇文章通过easyexcel导出数据到excel表格已经实现了简单的数据导出功能,这篇文章也介绍一下怎么通过easyexcel从excel表格中导入数据。 目录 一、前端代码 index.html index.js 二、后端代码 controller service SongServiceImpl 三、功能预览 四、后端…

Django 入门学习总结6 - 测试

1、介绍自动化测试 测试的主要工作是检查代码的运行情况。测试有全覆盖和部分覆盖。 自动测试表示测试工作由系统自动完成。 在大型系统中,有许多组件有很复杂的交互。一个小的变化可能会带来意想不到的后果 测试能发现问题,并以此解决问题。 测试驱…

开源简历生成器OpenResume

什么是 OpenResume ? OpenResume 是一个功能强大的开源简历生成器和简历解析器。OpenResume 的目标是为每个人提供免费的现代专业简历设计,让任何人都能充满信心地申请工作。 OpenResume 有 5 个核心特点: 特征描述1. 实时UI更新当您输入简历…
最新文章