广告

工程师最炫酷的武器竟然是它?

2021-10-29 柠檬豆平台 阅读:
MCU向调试终端输出信息的方法有很多。今天,檬妹就给大家介绍一个更炫更酷、可以图形化显示数据的调试法宝——ES-DAP-Viewer。

MCU向调试终端输出信息的方法有很多。今天,檬妹就给大家介绍一个更炫更酷、可以图形化显示数据的调试法宝——ES-DAP-Viewer。ES-DAP-Viewer是essemi推出的,可以在目标MCU 运行时,实时分析数据并图形化显示的PC端软件。用户可以简单的将目标ES32芯片连接到ES-Link II调试器或ES-DAPLink调试器,并启动ES-DAP-Viewer软件,就可以像示波器一样显示多个变量的值。它支持通过如下三种模式获取数据:Zt3ednc

1.UART-Print 模式:用户通过串口将数据以固定的格式发送到 PC 端,上位机软件按照用户界面属性配置将收到的数据绘成波形。Zt3ednc

2.SWD-Print 模式:这种模式不要额外的 UART 引脚, PC 软件通过 SWD 调试接口获取数据,用户只需要使用 essemi_swd_printf 函数将数据写入目标缓冲区即可。Zt3ednc

3.全局变量监视模式:这种模式也是通过 SWD 调试接口获取数据,并通过读取一个 axf 文件,允许选择一定数量的变量可视化。Zt3ednc

下面,檬妹就带各位看客老爷对以上三种模式进行逐一解读:Zt3ednc

一.UART-Print 模式Zt3ednc

Zt3ednc

左边为绘图窗口;右边为配置窗口,包括串口选择及参数设置窗口,数据处理窗口和帧格式设置窗口;底部为通道选择栏,最多支持10个通道。Zt3ednc

PC界面操作说明Zt3ednc

UART-Print绘图调试的大致流程如下所述:Zt3ednc

1.打开ES-DAP-Viewer后选择UART-Print选项卡,进入UART-Print界面。Zt3ednc

2.在串口选择及参数设置窗口中选择通信串口,并配置通信参数。根据 UART 通信协议,用户需配置波特率,停止位,数据位和奇偶校验位。Zt3ednc

3.在帧格式设置窗口中设置数据类型,可选Uint8、Int8、Uint16、Int16以及Uint32Int32Zt3ednc

4.点击打开串口开始数据传输,点击开始显示便可在绘图窗口看到当前调试数据的实时波形。Zt3ednc

5.点击保存可保存接收到的数据。点击清除缓存可清空当前显示界面内的图形。点击初始比例可当前视图回到初始状态时的显示比例。点击背景颜色右侧的颜色框可选择当前视图的背景色。Zt3ednc

6.点击显示方式下拉菜单,可选择波形显示数据显示。需要注意的是,当选择数据显示时,在数据显示窗口中显示的是用户程序发送的原始数据(不包含帧头、功能码、数据长度及校验和),每行显示一帧数据。Zt3ednc

7.点击开始显示,波形或数据开始动态显示。Zt3ednc

8.输入框显示时长默认为50000ms,可根据实际情况,输入合适的值,在按下回车键后将会更新横坐标的显示范围。Zt3ednc

通信协议和程序示例Zt3ednc

UART-Print 使用的通信协议如下表所示:Zt3ednc

Zt3ednc

关于 ES-DAP-Viewer 的 UART-Print 通信协议,详细说明如下:Zt3ednc

1.UART-Print 的数据帧由帧头、功能码、数据长度、用户数据以及累加校验和组成,其中,帧头固定为两字节大小的 0xAAAA,功能码固定为 0xF1。Zt3ednc

2.data_len 表示该数据帧内包含的用户数据的字节总长度,不包括帧头、功能码、数据长度和累加校验和。Zt3ednc

3.check_sum 表示从该数据帧第一个字节开始,也就是帧头开始,到用户数据最后一个字节的累加校验和,高位舍去,只保留低八位。Zt3ednc

4.ES-DAP-Viewer上位机按照上述的协议解析收到的数据并进行校验以显示可靠的数据,这意味着用户在使用 UART-Print 功能时,必须按照该协议进行发送数据,否则上位机会因校验不通过而丢弃数据。Zt3ednc

5.UART-Print 最多支持 10 个通道,每个通道均支持显示Uint8、Int8、Uint16、Int16以及Uint32和Int32格式的数据。Zt3ednc

如下程序可产生上面图所示的效果。Zt3ednc

Zt3ednc

Zt3ednc

二.SWD-Print模式Zt3ednc

Zt3ednc

关于 SWD-Print 的界面使用介绍可参考 UART-Print。Zt3ednc

使用说明Zt3ednc

用户程序需要使用essemi_swd_printf函数将数据写入目标缓冲区,ES-DAP-Viewer 将通过 SWD 调试接口读取数据后显示在 PC 界面上。SWD-Print 功能的实现需要用到以下四个配置文件:Zt3ednc

essemi_swd_print.hZt3ednc

essemi_swd_print_conf.hZt3ednc

essemi_swd_print.cZt3ednc

essemi_swd_print_printf.cZt3ednc

用户在工程中成功添加上述四个配置文件后,并在需要用到 SWD-Print 功能的文件中包含如下头文件#include“essemi_swd_print.h”后,即可调用essemi_swd_printf()函数将需要打印的数据放到 SWD 专属内存区域中,然后上位机到该内存区域取出数据,显示到绘图窗口。Zt3ednc

配置文件放在 ES-DAP-Viewer 如下安装目录:。..\configure\essemi_swd_print。Zt3ednc

需要注意以下几点:Zt3ednc

在使用 SWD-Print 功能的函数时,必须先调用函数int essemi_swd_configupbuffer以及函数int essemi_swd_configdownbuffer来初始化上行(MCU 端到 PC 端)和下行(PC 端到 MCU 端)缓冲区,其中,对于第一个参数 BufferIndex = 0 的时候,SWD 组件已为其配置了缓冲和默认大小,其大小配置是在essemi_swd_print_conf.h中通过宏定义进行的#define BUFFER_SIZE_UP(1024)#define BUFFER_SIZE_DOWN(16),因此,在使用缓冲区 0 时,配置比较简单,按照该格式即可:Zt3ednc

Zt3ednc

SWD-Print 目前仅支持字节、半字、字输出,因此当使用函数int essemi_swd_printf(unsigned BufferIndex, const char *sFormat, 。..)时,须根据输出的数据位宽使用 “%.2x” 、“%.4x” 或 “%.8x” 来格式化输出。并且,输出的第一个字符必须为空格。Zt3ednc

Zt3ednc

程序示例Zt3ednc

如下程序可产生上面图所示的效果Zt3ednc

Zt3ednc

.全局变量监视模式Zt3ednc

Zt3ednc

使用说明Zt3ednc

用户首先需点击 选择axf文件 按钮,载入由编译器生成的 axf 文件,然后在页面下方选择需要监视的全局变量。Zt3ednc

通过点击下拉框DAP设备选择上位机已扫描到的 DAP 设备,当上位机扫描到目标 CMSIS-DAP 设备时,点击打开连接即可与该设备建立通信。Zt3ednc

左边为绘图窗口;右边为配置窗口,包括 axf 文件和 DAP 设备选择窗口,数据显示配置窗口;下方为解析到的全局变量列表。Zt3ednc

全局变量监视绘图调试的流程如下所述:Zt3ednc

1.打开ES-DAP-Viewer后选择全局变量监视选项卡,进入全局变量监视界面。Zt3ednc

2.点击选择axf文件按钮,载入由编译器生成的 axf 文件。Zt3ednc

3.点击下拉框DAP设备选择上位机已扫描到的 DAP 设备,当上位机扫描到目标 DAP 设备时,点击打开连接与该设备建立连接。Zt3ednc

4.在下方全局变量列表中,可查看解析到的全局变量的名称,地址以及数据类型大小,通过点击全局变量所在行中,对应的Color单元,可选择该全局变量在波形显示窗口中的颜色。此外,尽管目前可以解析到结构体变量,但目前不支持对结构体成员和数组成员进行解析,因此在全局变量列表中勾选结构体类型的全局变量是无效的,勾选数组成员会因数组类型的不同而产生不同的效果。Zt3ednc

5.点击开始显示按钮便可在绘图窗口看到当前调试数据的实时变化波形,在下方全局变量列表的Value(0x)列中可查看全局变量的当前值。Zt3ednc

6.此外,用户还可在数据处理窗口中选择保存数据,显示光标,清除缓存,以及更改背景颜色。Zt3ednc

7.其余操作可参考 UART-Print 界面操作说明。Zt3ednc

程序示例Zt3ednc

如下程序可产生上面动图所示的效果。Zt3ednc

Zt3ednc

  • 看得我都想干工程师了
本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 英特尔、AMD、Arm等九大企业宣布UCIe开放标准,推动Chip 英特尔、AMD、Arm 和所有领先的代工厂商齐聚一堂,包括高通、三星、台积电、日月光,以及Google Cloud、Meta、微软,宣布他们正在为小芯片互连制定一个新的开放标准Universal Chiplet Interconnect Express (UCIe),希望以UCIe 1.0规范建立芯片互连、兼容运作,让更多业者能依照此标准打造新款处理器,并且能配合不同微芯片建构差异化设计。
  • 瑞萨电子汽车级半导体被Honda用于其ADAS系统 瑞萨R-Car SoC和RH850 MCU将被用于Honda SENSING系统
  • “中国IC设计成就奖”提名产品简介:IVCR1401 35V 4A Si IVCR1401是一款4A单通道高速智能栅极驱动器,能够高效,安全地驱动SiC MOSFET和IGBT, 对比传统的栅极驱动,8引脚设计更简洁,使用更方便,能大大节约开发时间成本。
  • “中国IC设计成就奖”提名产品简介:显示触控一体化驱动 集创北方研发的显示触控一体化驱动芯片(TDDI)突破了CDMA抗干扰技术、驱动控制与触控侦测分时复用全驱动技术、减光罩、低功耗等前沿技术,形成了TDDI特有的显示横纹 (Hline)解决方案
  • “中国IC设计成就奖”提名产品简介:高可靠性隔离式双通 纳芯微NSi6602-Q1是国内首款车规级高压隔离半桥驱动芯片,该芯片集高隔离耐压、高可靠性、高集成度、低延时、灵活封装配置等特性于一体,可应用在车载电源OBC/DCDC、车载电驱、充电桩、光伏储能、数字电源等泛能源重点发展领域。
  • 用TinyML开始设计——开发评估套件 本文中展示的开发套件和评估板得到一些流行的机器学习库和用于 TinyML 工作流程资源的支持,包括用于微控制器的 Google TensorFlow Lite 和 Edge Impulse,因而它们能够成为您第一个项目的理想起点。
  • “中国IC设计成就奖”提名产品简介:数字隔离器Pai122M3 荣湃数字隔离器产品采用自主知识产权的智能分压技术开发设计而成,相比同类隔离产品,该专利技术可以实现更低的功耗,更高的速率和更优的时序特性。智能分压技术相比传统隔离传输技术,采用更简洁的电路架构实现更优的隔离传输性能,采用智能分压锁存放大模块电路,替代传统架构中的高频发生电路,高频调制电路和高频解调三部分电路,因此芯片面积只有传统架构芯片面积的1/2~1/3。
  • “中国IC设计成就奖”提名产品简介:集成隔离电源的隔离 CA-IS3062W是川土微电子在2020年12月推出的一款隔离式控制区域网络(CAN)物理层收发器,同时内部集成隔离式DC-DC转换器。符合ISO11898-2标准的技术规范。此器件采用片上二氧化硅(SiO2)电容作为隔离层,在CAN协议控制器和物理层总线之间创建一个完全隔离的接口,配合内部集成的隔离式DC-DC,可隔绝噪声和干扰并防止损坏敏感电路。
  • 自耦变压器SPICE建模 自耦变压器又称为单绕组变压器,可分升压变压器及降压变压器;它是一种只有一组线圈的变压器,其中一个线圈作为另一线圈的一部份...
  • “中国IC设计成就奖”提名产品简介:KungFu内核32位车规 KF32A156采用了ChipON自主研发的KungFu32内核架构处理器,该处理器采用3级流水线,16位/32位混合指令集,KF32A156最高主频为120Mhz,Flash达到512KB。KF32A156使用自主内核处理器,不存在芯片IP授权问题,也没有被禁用的风险。同时,ChipON还自主研发了开发工具,包括集成开发环境、C编译器和仿真器。真正意义上实现了从芯片到工具链的全自主。
  • “中国IC设计成就奖”提名产品简介:HK32MCU优势 航顺凭借积累的技术和能力,在55nm工艺平台上设计出世界第一款待机功耗低至7nA的高性能+低能耗的MCU。2019年航顺芯片量产了全球第一颗1元人民币32位MCU-HK32F030M系列产品,从技术层面解决了长期以来32位MCU因成本问题无法突破替换旧生产工艺的8位MCU的市场局面。迄今,短短几年时间,航顺MCU已经在4家晶圆厂共5个不同的工艺平台上量产了多种产品。产品线涵盖高性能、低能耗、主流型、经济型和专用型5大维度。不断进行工艺迭代、大批量量产专用领域芯片,包括光模组、汽车专用芯片、AIOT专用芯片、ARM+RISC-V内核芯片。航顺目前致力于世界最高12寸40/28nm的数模混合E-FLASH工艺研发,已经量产了中国第一颗 M3+RISC-V 多核 MCU,大幅度降低了单芯片的制造成本并实现了超过国外芯片性能一倍以上的提升;在高性能创新方面,实现了多核异构、触摸+指纹算法、AI语音识别、AI图像识别单芯片化、未来产品将不断赋能AIoT、智能驾驶、智慧家庭,电机驱动等市场。航顺芯片将覆盖32位MCU所有的市场,以汽车电子、物联网、人工智能为核心,打造全产业链。
  • “中国IC设计成就奖”提名产品简介:SS881X优势 SS881X是珠海昇生微电子有限责任公司集成了充放电管理的AD型Flash单片机系列,具有丰富的接口功能和灵活的配置模式,支持不同的低功耗选项,适用于需要电池充电以及智能控制的便携式电子产品,通过使用SS881X可为产品带来精简的外围,优秀的性能和灵活便捷的开发。针对TWS产品的智能化趋势,SS881X系列已经与各大主流耳机平台实现双向通信功能,产品可以快速迭代。而且芯片集成专门接口,支持USB整机升级和产测。目前包括小米、OPPO、万魔、漫步者、红米、紫米、realme、FIIL、Anker、联想、聆耳、阿思翠、努比亚、雷蛇、HTC、声阔等品牌在内的多款TWS耳机充电盒均大量采用了昇生微的方案。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了