一种wifi无线DAP-LINK调试器的设计

这篇具有很好参考价值的文章主要介绍了一种wifi无线DAP-LINK调试器的设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        CMSIS-DAP是由ARM主导开发的调试器项目,主要为了便于进行ARM芯片寄存器级的在线调试(因为采用JTAG实际上也可以用于RISC-V等处理器架构的调试),最初名称叫CMSIS-DAP v1,该版本调试器采用USB-HID免驱动协议,直接连接PC端配合IDE(IAR、KEIL等)即可实现微控制器的在线调试,由于USB-HID在全速设备中最快中断传输时间间隔为1ms,故调试速度上稍慢于JLINK等商业调试器。

        鉴于上述缺点后续CMSIS-DAP进行了协议升级,升级为CMSIS-DAP v2也叫DAP-LINK。DAP-LINK采用BULK传输,可以以更快的速率与调试接口交互(USB速度可以与JLINK-OB等全速设备持平),DAP-LINK同样采用免驱的WINUSB协议(针对WIN8.1以上)。由于DAP-LINK需要WIN8.1以上操作系统支持故兼容性不如CMSIS-DAP v1,在旧操作系统上如WIN7则只能使用USB-HID协议。另外KEIL从5.29才开始支持CMSIS-DAP v2,而IAR则从8.32版本才支持CMSIS-DAP v2。总之CMSIS-DAP v2速度更快但兼容性不如CMSIS-DAP v1。

        CMSIS-DAP标准由ARM制定并随CMSIS库将源代码提供给用户,用户可以自由移植该调试接口库。通过CMSIS-DAP库也衍生了很多开源调试器。目前市面上多数DAP-LINK调试器是通过移植ARM的CMSIS-DAP库实现的。

        目前市面上的DAP-LINK调试器多采用有线USB连接,本文介绍并开发了一种使用无线wifi的DAP-LINK调试器,通过wifi连接目标MCU和PC端,实现调试器的无线连接。由于在传输层面上多增加了一层wifi传输协议,将不可避免的导致调试速度的降低,这是无线调试的一项缺点,但是在某些特殊需求下可能获得的优势大于其缺点。下面介绍无线wifi调试器的设计方法和成品特性。

        对于无线调试器其适用的范围如下:

  1.         替换JLINK等调试器
  2.         需要电气隔离的调试场合
  3.         有高压电击危险的调试场合
  4.         空间受限或机械伤人的调试场合
  5.         需要无线USB转串口通信的场合

        无线DAP-LINK需要使用wifi协议,目前成本较低wifi-soc可选择ESP32系列。ESP32具备完善的wifi协议层且运行速度较快,适合作为调试器的承载方案。无线DAP-LINK的硬件结构较为简单如图1所示:

一种wifi无线DAP-LINK调试器的设计,嵌入式系统应用,开源协议,单片机
图1 硬件结构

硬件ESP32部分的设计原理如图2所示:

一种wifi无线DAP-LINK调试器的设计,嵌入式系统应用,开源协议,单片机
图2 ESP32部分原理图

         整体硬件原理较为简单,实际上以上电路可以即可实现有线DAP-LINK调试器,因为ESP32自带一个全速的USB接口。

        下面介绍软件设计,区别于有线DAP-LINK,无线DAP-LINK的主要变更点在于软件的接口设计,需要在USB和DAP协议中间穿插一层wifi协议。传统的有线方式软件结构如图3所示:

一种wifi无线DAP-LINK调试器的设计,嵌入式系统应用,开源协议,单片机
图3 有线DAP-LINK软件结构

         无线方式在数据传输层使用Socket代理,软件结构如图4所示:

一种wifi无线DAP-LINK调试器的设计,嵌入式系统应用,开源协议,单片机
图4 无线DAP-LINK软件结构

         所以,对于软件层面,主要工作只是在USB数据收发函数中增加一层Socket服务端和客户端应用即可,另外增加部分连接状态管理功能即可成功实现无线DAP-LINK。

        基于以上思路,博主使用ESP32成功设计了一款使用wifi的无线调试器。为提高资源使用效率,博主设计的DAP-LINK调试器可使用有线模式和无线模式,无线模式需要两个调试器配合使用,其中一个作为客户端另一个作为服务端即可。当不使用无线模式时,可以得到两个相同的有线调试器。设计成品如图5所示:

一种wifi无线DAP-LINK调试器的设计,嵌入式系统应用,开源协议,单片机
图5 无线调试器成品

         博主打样时还有好几块剩余,如有需要可点击

        使用过程中欢迎提出BUG及优化意见,以便博主进一步优化。

        感谢网友“微触的冰凉”反馈调试器使用过程中的问题,调试器已经优化稳定性并测试。稳定性测试如图6所示:

        

一种wifi无线DAP-LINK调试器的设计,嵌入式系统应用,开源协议,单片机
图6 调试器稳定性测试

         一种wifi无线DAP-LINK调试器的设计,嵌入式系统应用,开源协议,单片机

 文章来源地址https://www.toymoban.com/news/detail-658741.html

到了这里,关于一种wifi无线DAP-LINK调试器的设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux--调试器:gdb

    gcc与g++默认动态链接形成的可执行程序(比如a.out)是 release 版本,不可调试!!! 如何搞成debug可调试版本? 查看可执行程序存储了哪些内存空间:   调试语法:

    2024年02月13日
    浏览(49)
  • 水比赛专用-蓝牙调试器

    做比赛的时候免不了要做一些页面方面的展示,亦或者一些遥控什么的方面的远程启动 ,常见的无线通信方式如蓝牙,wifi等是很多大学生竞赛中的常客,因此这里我就把我之前用的很熟的一款蓝牙调试器给分享下,同时也算是做个记录吧! 该调试器是某大佬做的,我只是应

    2024年02月01日
    浏览(41)
  • Linux调试器gdb

    本文已收录至《 Linux知识与编程 》专栏! 作者: ARMCSKGT 演示环境: CentOS 7     ​ 目录 前言 正文 下载gdb 生成可调式文件 进入gdb gdb常用指令 查看代码 l  运行程序 r  断点设置 b  显示信息 info  查看断点 info b  删除断点 d  禁用断点 disable breakpoints  启用断点 enable brea

    2024年02月14日
    浏览(51)
  • Linux——gdb调试器

    目录    前言: 二.gdb定义及指令: 如何查看该exe文件是否为Debug版本?两种方法: 三.gdb调试:         调试指令1:l指令(小写L) run指令:运行程序,相当于VS中的直接运行不调试——可简化输入r  break指令:设置断点——指令可简化输入为b ​编辑  info b指令:查看整个代码

    2024年02月07日
    浏览(36)
  • Windows高级调试(学习笔记)-第二章-调试器介绍

    2.1.1 Debugger Types调试器类型 User Mode Deduggers(用户态调试器) 实时调试(Living Debugging)、事后调试(Postmortem Debugging) 三个用户态调试器:cdb.exe、nstd.exe及windbg.exe Kernel Mode Debugger(内核态调试器) 可以分析计算机系统 二个内核态调试器:kd.exe及windbg.exe 2.1.2 Debugger Commands调试器命令 buil

    2024年01月18日
    浏览(66)
  • Linux调试器之gdb

    我们前面介绍了几个基本的环境开发工具。例如通过yum我们可以安装和卸载软件、通过vim我们可以写代码、通过gcc和g++我们可以编译代码成可执行程序。但是如何在Linux下调试代码呢?我们并未介绍,本期我们将来介绍最后一个工具 --- 调试器gdb。 程序的发布方式 gdb基本的调

    2024年04月16日
    浏览(65)
  • 调试器是个大骗子!

    我叫GDB,是一个调试器,程序员通过我可以调试他们编写的软件,分析其中的bug。 作为一个调试器,调试分析是我的看家本领,像是给目标进程设置断点,或者让它单步执行,又或是查看进程中的变量、内存数据、CPU的寄存等等操作,我都手到擒来。 你只要输入对应的命令

    2024年02月02日
    浏览(39)
  • Linux | 调试器GDB的详细教程【纯命令行调试】

    学习了【vim】知道了如何 编辑 一个代码文本 学习了【gcc】知道了如何 编译 一个代码文本 学习了【make/Makefile】知道了如何 自动化构建 一个代码文本 但是如何对一段代码去进行调试呢,此时就要使用到 Linux下的调试器gdb 了。对于这个调试器来说,不像是VS中那样的图形化界

    2024年02月02日
    浏览(52)
  • 【Linux】gdb调试器的使用

    文章目录 一、gdb简介 二、调试前的准备 1、生成调试文件 2、启动 gdb  三、gdb 使用方法  1、查看源代码 2、设置 / 查看断点(多种方式设置断点) 方法一 方法二 方法三 3、run  4、删除断点、断点无效 5、逐过程调试(以函数为单位) 6、逐语句调试 7、查看调用链 8、查看变

    2024年02月02日
    浏览(50)
  • 【Linux】——调试器-gdb的使用

    序言: 本期,我将带领大家学习的关于linux下的 调试器gdb 的使用,废话不多说跟着我一起去看看吧!! 目录 前言 (一)背景介绍 1、debug模式和release模式 2、为什么Release不能调试但DeBug可以调试 3、初步见识 1️⃣readelf (二)调试代码 1、命名大全 2、具体演示 0️⃣行号显

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包