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

news2025/1/11 14:23:57

文章目录

    • 概要
    • 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,通过编写适当的配置脚本,可以实现对芯片的调试、烧录等操作。由于涉及内容较多,更多说明请读者自行搜索,或者留言咨询。

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

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

相关文章

群晖折腾记1—群晖NAS使用docker中的ddns-go,DDNS阿里云ali实现Ipv6访问

群晖折腾记1—群晖NAS使用docker中的ddns-go,DDNS阿里云ali实现Ipv6访问 前置条件科普时间具体步骤1. 域名购买2. 获取AccessKey ID和Secret3. 获取免费SSL证书4. 在docker中运行ddns-go6.设置反向代理 前置条件 1、移动宽带只有IPv6公网地址,若你的宽带为电信或联…

Eslint配置指南

ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。ESLint 是一个开源的 JavaScript 代码检查工具,它是用来进行代码的校验,检测代码中潜在的问题,比如某个变量定义了未使用、函数定义的参数重复、变量名没有按规范命名等等。 中…

logging 模块因权限问题写入日志失败

哈喽大家好,我是咸鱼 今天跟大家分享一个使用 Python 的 logging 模块写入日志文件时遇到的权限问题,不知道你们有没有遇到过 1.案例现象 今天上班的时候手机短信收到了 zabbix 告警,但是发现了不对劲的地方:微信没有收到告警信…

【C++】虚函数相关常见问题

【C】虚函数相关常见问题 文章目录 【C】虚函数相关常见问题1.说说为什么要虚析构?2. C默认的析构函数为什么不是虚函数?3. 构造函数能不能是虚函数4. 说说什么是虚继承,解决什么问题,如何实现?5. 说说什么是虚函数6.说说虚函数的…

VESC操作入门——PPM输入控制和ADC输入控制

目录 一、PPM输入控制1.1、硬件准备1.2、PPM信号1.3、校准电机1.4、输入设置 二、ADC输入控制2.1、硬件准备2.2、更改固件2.3、电压信号2.4、校准电机2.5、输入设置 三、电动车转把控制3.1、转把说明3.2、转把测试 ODrive、VESC和SimpleFOC 教程链接汇总:请点击 一、…

SpringBoot作日志切面记录

目录 1.WebLogAspect 2.配置log4j2.yml 3.效果 话不多说,直接上代码: 1.WebLogAspect import java.util.Arrays;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.Str…

第Y2周:训练自己的数据集

我的环境: 训练自己的数据集 一、准备自己的数据集1. 编写split_train_val.py文件2.生成训练文件索引文件 二、创建训练yaml文件三、开始训练 一、准备自己的数据集 数据集来源:kaggle水果检测 目录结构如下: 1. 编写split_train_val.py…

ClickHouse基本使用总结

查看系统配置 查看系统表 select * from system.clusters; 验证zookeeper #验证zookeeper是否与当前数据库clickhouse进行了正确的配置 SELECT * FROM system.zookeeper WHERE path /clickhouse; 建表 创建本地表 MergeTree,这个引擎本身不具备同步副本的功能&…

Kali Linux 2023.2 发布(Hyper-V 和 PipeWire)

Kali Linux 2023.2 发布(Hyper-V 和 PipeWire) 请访问原文链接:https://sysin.org/blog/kali-linux-2023/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 更新说明 2023 年 5 月 30 日&…

国产上新!芯驰D9多核Cortex-A55核心板,国产车规级平台

随着信息技术的快速发展,市场对芯片的需求越来越大,中国芯片行业自20世纪80年代开始起步,经过近40年的努力,也进入了一个新的时代,芯片国产化乃未来发展的大势所趋。米尔电子作为行业领先的嵌入式模组厂商,…

【Difussion Model】理解和编程

目录 理论框架text-to-imgaedecodergeneration modelclip的原理 FID指标:评估图像生成的好坏数学原理 理论 框架 不断的进行去噪,并且在这个过程中,step也作为“去噪模型(其实就是扩散模型)”的输入: de…

iOS应用上架详细图文教程

App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些…

项目管理与任务管理:关键的差异和共同点

在商业世界中,了解项目和任务之间的区别对于有效的工作流程管理至关重要。项目和任务经常被混淆,但它们需要不同的技术和方法来有效管理。本文将比较和对比项目和任务,强调它们的主要区别和各自带来的独特挑战。 项目与任务管理的主要区别在…

三分钟了解Spring Boot 的启动流程

👏作者简介:大家好,我是冰点,从业11年,目前在物流独角兽企业从事技术方面工作,🍂博主正在努力完成2023计划中:以梦为马,扬帆起航,2023追梦人📝联系…

MySQL - 分库分表、MyCat配置、分片规则

文章目录 分库分表一、概述1.1 分库分表原因1.2 拆分策略1.2.1 垂直拆分1.2.2 水平拆分 1.3 实现技术 二、安装Mycat2.1 介绍2.2 安装 三、MyCat入门3.1 环境准备3.2 分片配置3.2.1 schema.xml3.2.2 server.xml 3.3 启动测试 四、MyCat配置4.1 schema.xml 配置文件4.1.1 schema…

你知道探针台的功能有哪些吗

探针台的主要用途是为半导体芯片的电参数测试提供一个测试平台,探针台可吸附多种规格芯片,并提供多个可调测试针以及探针座,配合测量仪器可完成集成电路的电压、电流、电阻以及电容电压特性曲线等参数检测。适用于对芯片进行科研分析&#xf…

你还在用 top?这有几个更牛逼的选择

简介 作为一个运维人员,很多时候需要知道服务器的实时情况,比如 Windows 系统的任务管理器,下面我描述的是基于 Linux 系统,你可能听说最流行的就是‘top’【基于终端的系统监视工具】。 top:实时程序可帮助显示所有正…

< axios封装篇 :一文看懂Axios + ElementUi 配置全局遮罩loading >

axios封装篇 :一文看懂axios配置全局遮罩loading 👉 实现原理👉 Axios封装> loading配置文件> axios封装文件 往期内容 💨 今天这篇文章,主要是用于补充上次的 axios封装相关文章,用于补充全局配置接…

拿捏 二叉树前序遍历、中序遍历、后序遍历非递归实现!

二叉树前序遍历非递归实现 在不使用递归的方式遍历二叉树时,我们可以使用一个栈模拟递归的机制。二叉树的前序遍历顺序是:根 → 左子树 → 右子树,我们可以先将二叉树的左路结点入栈,在入栈的同时便对其进行访问,此时就…

安装Docker使用Docker安装部署MySQL和Redis

Docker安装 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine sudo yum remove -y yum-utils sudo yum install -y yum-utils sudo yum-config-manager --add-re…