广告

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

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

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

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

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

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

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

一.UART-Print 模式d70ednc

d70ednc

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

PC界面操作说明d70ednc

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

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

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

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

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

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

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

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

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

通信协议和程序示例d70ednc

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

d70ednc

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

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

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

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

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

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

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

d70ednc

d70ednc

二.SWD-Print模式d70ednc

d70ednc

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

使用说明d70ednc

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

essemi_swd_print.hd70ednc

essemi_swd_print_conf.hd70ednc

essemi_swd_print.cd70ednc

essemi_swd_print_printf.cd70ednc

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

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

需要注意以下几点:d70ednc

在使用 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 时,配置比较简单,按照该格式即可:d70ednc

d70ednc

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

d70ednc

程序示例d70ednc

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

d70ednc

.全局变量监视模式d70ednc

d70ednc

使用说明d70ednc

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

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

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

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

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

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

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

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

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

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

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

程序示例d70ednc

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

d70ednc

  • 看得我都想干工程师了
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 嵌入式Rust:我们如今身处何方? Rust对于一般应用开发来说很有意义,但对于嵌入式软件团队来说真的有意义吗?Rust如今的情况如何,它是否就是大家所鼓吹的最美好的解决方案?
  • 毫米波雷达与音频技术重塑汽车驾乘新体验 汽车行业的发展正由两大创新领域主导:更为精准可靠的车内感知系统和高质量音频系统。传统方法如增加传感器或音频设备数量,虽可提升性能但会带来成本上升和复杂性增加的问题。
  • 创新的FPGA技术实现低功耗、模块化、小尺寸USB解决方 本文总结了业界用于高性能 USB 3 设备的一些典型解决方案,并介绍了一种新的架构,这种架构既能节省功耗和面积,又能提高灵活性和易用性···
  • 盘点CES 2025上基于Arm架构的AI创新和技术亮点 近期在美国拉斯维加斯举行的 CES 2025 再次彰显了其作为展示最新科技创新的重要平台。今年展会上所呈现的众多前沿产品和新的发布将推动各个行业的变革与发展···
  • 通嘉PD快充适配器高效能及小型化之氮化镓集成方案 随着消费者对便携性和高效充电的需求增加,手机厂商和充电器品牌纷纷推出小型化PD快充产品,以满足市场需求···
  • Arm 技术预测:2025 年及未来的技术趋势 Arm 对 2025 年及未来的技术发展做出了预测,范围涵盖技术的各个方面,从 AI 的未来发展到芯片设计,再到不同技术市场的主要趋势···
  • CES 2025:洞察汽车创新未来 从CES 2025的汽车方案展示可以看到,汽车OEM正从黑盒解决方案转变为区域架构为主的处理主干,传感器功能也逐渐优化,结合多模态输入数据与情境感知的 ML...
  • CES 2025:Edge AI硬件加速再掀热潮 边缘计算/边缘人工智能(Edge AI)一直是热门话题,在CES 2025也不例外。然而,实现边缘计算/智能的底层硬件是什么?又是如何实现与应用的呢?
  • 2024是AI MCU元年? 2024年开启了MCU领域的AI时代,2025年可望见证更多轻量化AI模型在MCU上的进一步突破...
  • 下载|汽车动力与底盘MCU市场现状研究报告 本报告选择汽车动力(Powertrain)与底盘(Chassis)系统中的MCU做探讨,一方面是因为,就车规MCU的角度来看,这两个组成部分更为关键、复杂,对安全性要求更高,更具实现难度;另一方面,即便是传统汽车角度,动力与底盘系统的电子控制也更加由来已久和具代表性。
  • 新一代MCU向着边缘AI和实时控制发展 在工业和汽车领域,电机驱动和数字电源转换是典型的实时控制系统,要求处理器具有高实时性和强大的数学计算与处理能力。这些应用需要优质的ADC和PWM功能,并通过联动机制,形成高效、有机的实时控制系统。
  • 下一代汽车微控制器:意法半导体技术解析 意法半导体(ST)深耕汽车市场已有30余年的历史,其产品和解决方案覆盖普通车辆的大多数应用系统。随着市场的发展,意法半导体的产品也在不断升级改进,其中的重要产品汽车微控制器(MCU)也不例外···
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了