一款开源的无线CMSIS DAP ARM芯片下载调试器详细说明

文章目录

    • 概要
    • 1. 一般概念
      • 1.1 CMSIS—DAP的一般概念
      • 1.2 支持的芯片
      • 1.3 典型应用场景
    • 2. 原理图与尺寸图
      • 2.1 Host端(发送端)原理图
      • 2.2 Target(目标)端原理图
      • 2.3 Host尺寸图
      • 2.4 Target尺寸图
      • 2.5 实物图
    • 3. 使用方法
      • 3.1 连接方法
        • 3.1.1 整体连接
        • 3.1.2 Target与目标板连接
      • 3.2 使用步骤
        • 3.2.1 HOST端准备
        • 3.2.2 TARGET端准备
        • 3.2.3 配置调试环境(以keil MDK5为例)
      • 3.3 下载与仿真演示
        • 3.3.1 下载
        • 3.3.2 仿真
    • 4. 常见问题
      • 4.1 问题1
      • 4.2 问题2
      • 4.3 问题3
      • 4.4 问题4
      • 4.5 问题5

概要

DRG WL-CMSIS-DAP V1.0模块专用于Cortex-M内核下载、调试和仿真的开发学习。

1. 一般概念

1.1 CMSIS—DAP的一般概念

CMSIS-DAP是用于将调试端口连接到USB的调试单元的接口固件。
DRG WL-CMSIS-DAP V1.0是基于CMSIS-DAP的无线调试器,即插即用,速度快,支持虚拟串口。无线调试器包括HOST/TARGET,基于2. 4G无线通信,可对10m范围内的目标进行程序烧录和调试。

1.2 支持的芯片

WL-CMSIS-DAP支持的常见Cortex-M内核的Arm芯片,如stm32、gd32等。参考常见问题4。

1.3 典型应用场景

在某些有线仿真器不便调试的场景, 例如目标始终处于移动状态(飞行器、小车、机器人等),目标产品已经组装成产品形态,或者已安装在墙上或者高处等,此时使用无线调试器能较好的解决这些场景下的调试问题,有效提高
研发效率。

2. 原理图与尺寸图

2.1 Host端(发送端)原理图

在这里插入图片描述

2.2 Target(目标)端原理图

在这里插入图片描述

2.3 Host尺寸图

在这里插入图片描述

2.4 Target尺寸图

在这里插入图片描述

2.5 实物图

host与target的正面图
host与target的背面图

3. 使用方法

3.1 连接方法

3.1.1 整体连接

无线传输模块使用WiFi模块ESP8266, PA为25DB, 功率较高,可有效保证信号稳定性(WiFi使 用扩频原理实现无线通信,带宽和稳定性是其他无线通信方式如蓝牙、GFSK通信无法比的)
整体连接图
使用上和有线仿真器一样简单方便,无需使用上位机配置参数,也无需下载驱动。
使用TCP协议进行无线数据传输,全双工通信,带数据确认,丢包重传,能有效保证传输的可靠性和稳定性。

3.1.2 Target与目标板连接

TARGET端和目标板连接

3.2 使用步骤

3.2.1 HOST端准备

HOST端接入PC的USB端口,HOST端的USB生成了CMSIS DAP设备和CDC串口设备,CMSIS DAP设备可以在keil软件中配置作为下载器,CDC串口设备可以用串口调试助手打开作为一个串口设备,插入PC后显示如下图所示,
图4-1 设备管理器显示

3.2.2 TARGET端准备

当接受端和目标板连接之后,使用Type-C给接受端供电。当接受端和发射端都供电之后,3~5秒之后WiFi连接指示灯同时亮起,表示连接成功。

3.2.3 配置调试环境(以keil MDK5为例)

  • 配置路径
    启动keil5,在option→Debug栏中选择CMSIS-DAP Debugger
    配置路径
    配置路径
  • FLASH下载设置
    在这里插入图片描述

3.3 下载与仿真演示

3.3.1 下载

按照前面所述步骤配置好之后,即可下载。
下载图标

3.3.2 仿真

进入调试状态:单击下图红框中的图标,可以进入或退出调试模式
在这里插入图片描述
进入调试模式后,会多一个调试的快捷工具栏,如下
在这里插入图片描述
复位:使程序复位到初始位置等待重新运行。
在这里插入图片描述
单步调试:也就是每点一次按钮,程序运行一步。遇到函数会进入函数。点击图标按钮,或者按快捷键F11。
在这里插入图片描述
逐步调试:即逐行调试,也就是每点一次按钮,程序运行一行。遇到函数不会进入函数。点击图标按钮,或者按快捷键F10。
在这里插入图片描述
跳出调试:即跳出函数调试,也就是每点一次按钮,程序跳出一个函数,直到跳出最外面的函数(main函数)。点击图标按钮,或者按快捷键Ctrl + F11。
在这里插入图片描述
运行到光标处:即将光标放在某一处,点击该按钮(或Ctrl + F11),程序执行到光标的位置就会停止下来(前提是程序能执行到光标的位置)
在这里插入图片描述
跳转到当前运行到的暂停行:这个功能在程序停止运行时有效,主要的作用就是我们打开了很多文件,不知道将程序翻到哪里去了,点击改按钮即可知道我们的程序暂停在那个位置。
在这里插入图片描述
调试窗口:是在调试的时候可以查看的窗口,这里有别于平时编辑状态下的窗口。平时编辑时View菜单下面的选项很小,但是进入调试模式,这里就多了很多选项,这些选项就是调试时查看的窗口(见下图)
在这里插入图片描述
内存窗口OR变量窗口:选中一个变量,鼠标右键即可选在“Add ‘变量名’ to…”添加到指定的观察窗口
在这里插入图片描述
系统外设窗口:即外设寄存器数值查看窗口
在这里插入图片描述

4. 常见问题

4.1 问题1

发射机和接收机的各种LED状态表示什么含义?
在这里插入图片描述

4.2 问题2

无线通信会断开,导致调试失败如何解决?
由于无线调试器工作在ISM 2.4G公共频段内,而蓝牙、wifi、以及部分遥控器均工作在此频段内,此频段内的电磁干扰较大,有一定可能会造通信失败。且假若您在室内进行调试,室内的物体遮挡、天线的位置,通信的径效应均有可能导致连接断开。当检测到连接断开后,发射器和接收机间会自动重新建立连接,请观察连接状态指示灯,即可重新进行调试。假若通信频繁断开,请检查接收机的供电是否稳定,适当调整位置、距离,其均有可能影响通信的稳定性。

4.3 问题3

可以支持多长距离的无线通信?
在空旷场地上,可以实现10m内的无线调试。

4.4 问题4

目前支持哪些芯片的调试烧录?
典型的使用场景为对单片机进行编程调试,理论上Cortex-M系列的内核均可以使用DAP进行烧录调试,典型的芯片如STM32全系列的芯片,GD32全系列,nRF51/52系列等,由于也支持JTAG协议,理论上可支持更多的芯片调试,如ARM Cortex-A系列,MIPS、DSP、 FPGA等。

4.5 问题5

在Linux下可以使用无线仿真器进行调试吗?
Linux下可以使用openocd配合DAP仿真器进行调试(windows下亦可使用openocd),openocd是目前全世界流行且功能强大的开源调试器上位机,由于openocd是跨 平台的,你也可以在windows下使用openocd,通过编写适当的配置脚本,可以实现对芯片的调试、烧录等操作。由于涉及内容较多,更多说明请读者自行搜索,或者留言咨询。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/26215.html

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

相关文章

4-5.配置信息和路由信息

一、配置信息 app.run()的参数 参数1:host,如果我们不指定,默认值是127.0.0.1。参数2:port,如果我们不指定,默认值是5000。参数3:debug,调试模式,如果不指定&#xff0…

电力系统直流潮流计算研究【IEEE9节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

皮卡丘反射型XSS

1.反射型xss(get) 进入反射型xss(get)的关卡,我们可以看到如下页面 先输入合法数据查看情况,例如输入“kobe” 再随便输入一个,比如我舍友的外号“xunlei”,“666”,嘿嘿嘿 F12查看源代码,发现你输入的数…

什么是SOME/IP?

SOME/IP 是"Scalable service-Oriented MiddlewarE over IP"的缩写,即可扩展的面向服务的IP中间件,由AUTOSAR发布。它是一种自动/嵌入式通信协议,它支持远程过程调用、事件通知和底层序列化/线格式。唯一有效的缩写是SOME/IP&#…

软件测试想要高薪资,不仅要卷还要学会跳槽

都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作都没两年,跳槽到我们公司起薪20K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了…

正在破坏您的协程(Coroutines)的无声杀手(Silent Killer)

正在破坏您的协程的无声杀手 处理 Kotlin 中的取消异常的唯一安全方法是不重新抛出它们。 今天生产服务器再次停止响应流量。 上个星期,你刚重新启动它们并将其视为故障。但是你总觉得有些奇怪,因为日志中没有任何错误的痕迹,甚至没有警告。…

求图的最短路径长度的弗洛伊德(Floyd)算法

弗洛伊德算法的适用情况:弗洛伊德算法既可以用来求解有向网的最短路径长度,也可以用来求无向网的最短路径长度,但是对于图中出现负权环的情况,弗洛伊德无法的得到正确的答案 弗洛伊德的算法思想: 以此图为例讲解弗洛…

从git上拉取项目

目录 一、前期准备,获取git下载链接 二、idea下载 2.1.打开git下载界面 2.2.进入下载界面 2.3.下载前期配置 2.4.输入账号密码 2.5.下载完成后idea打开 2.6.下载完成后文件目录展示 三、命令行下载 3.1.打开所需要下载的项目路径 3.2.进入黑窗口 …

c#快速入门(下)

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析2 目录 👉🏻Inline和lambda委托和lambda 👉&#x1f…

操作系统(2.8)--线程的实现

目录 线程的实现方式 1.内核支持线程(KST) 2.用户级线程(ULT) 3.组合方式 线程的实现 1.内核支持线程的实现 2.用户级线程的实现 线程的创建和终止 线程的实现方式 1.内核支持线程(KST) 内核支持线程,与进程相同,是在内核的支持下运行的&#x…

前端使用tailwindcss 快速实现主题切换方案

使用Tailwind CSS在黑暗模式下为你的网站设计样式。 现在,黑暗模式是许多操作系统的第一流功能,为你的网站设计一个黑暗版本以配合默认设计,变得越来越普遍。 为了使这一点尽可能简单,Tailwind包括一个暗色变体,让你…

JVM之类的初始化与类加载机制

类的初始化 clinit 初始化阶段就是执行类构造器方法clinit的过程。此方法不需定义,是javac编译器自动收集类中的所有类变量的赋值动作和静态代码块中的语句合并而来。构造器方法中指令按语句在源文件中出现的顺序执行。clinit不同于类的构造器。(关联:…

连锁药店系统:如何提高效率和客户满意度?

连锁药店系统是一种用于提高效率和客户满意度的软件系统,它能够管理多个药店的日常营运。通过这种系统,药店可以更好地管理库存、员工、销售和客户信息等方面,从而提高整体的经营效率。 首先,连锁药店系统能够帮助药店管理库存。系…

算法刷题总结 (十一) 二叉树

算法总结11 二叉树 一、二叉树的概念1.1、什么是二叉树?1.2、二叉树的常见类型1.2.1、无数值(1)、满二叉树(2)、完全二叉树 1.2.2、有数值(3)、二叉搜索树(4)、平衡二叉搜…

数字孪生与物流园区:优化布局规划的关键

随着全球贸易的增长和物流行业的发展,物流园区作为重要的物流枢纽和供应链管理中心,扮演着至关重要的角色。而数字孪生技术的出现为物流园区的运营和管理带来了革命性的变化。数字孪生技术是一种将实体物体与其数字化模型相结合的创新技术,通…

【UEFI】BIOS 阶段全局变量类型

BIOS的几个阶段需要不同阶段的数据传递,下面介绍4个全局变量。 1 固件存储介绍 本规范描述了应该如何在非易失性存储器中存储和访问文件。固件实现必须支持标准的PI固件卷和固件文件系统格式(下文所述),但可能支持其他存储格式。…

什么是一致性哈希?一致性哈希是如何工作的?如何设计一致性哈希?

1.什么是一致性哈希?一致性哈希是如何工作的?如何设计一致性哈希?05-25 2.系统设计:从零用户扩展到百万用户05-28 收起 如果你有 n 个缓存服务器,一个常见的负载均衡方式是使用以下的哈希方法: 服务器索…

强连通分量-tarjan算法缩点

一. 什么是强连通分量? 强连通分量:在有向图G中,如果两个顶点u,v间(u->v)有一条从u到v的有向路径,同时还有一条从v到u的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每…

NLP实战:调用Gensim库训练Word2Vec模型

目录 一、准备工作 1. 安装Gensim库 2. 对原始语料分词 二、训练Word2Vec模型 三、模型应用 1.计算词汇相似度 ​编辑 2. 找出不匹配的词汇 3. 计算词汇的词频 四、总结 🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学…

Flask-RESTful的使用

Flask-RESTful的使用 Flask-RESTful基本使用安装定义资源Resources创建API实例添加资源到API运行Flask应用 请求处理请求解析参数校验 响应处理数据序列化定制返回格式 其他功能蓝图装饰器集合路由命名规范路由名称 Flask-RESTful Flask-RESTful是一个用于构建RESTful API的扩展…