es32 图形化调试软件 es-dap-viewer
mcu 向调试终端输出信息的方法有很多。今天就介绍一个更炫更酷、可以图形化显示数据的调试法宝——es-dap-viewer。es-dap-viewer 是 essemi 推出的,可以在目标 mcu 运行时,实时分析数据并图形化显示的 pc 端软件。用户可以简单的将目标 es32 芯片连接到 es-link ii 调试器或 es-daplink 调试器,并启动 es-dap-viewer 软件,就可以像示波器一样显示多个变量的值。它支持通过如下三种模式获取数据:
uart-print 模式:用户通过串口将数据以固定的格式发送到 pc 端,上位机软件按照用户界面属性配置将收到的数据绘成波形。 swd-print 模式:这种模式不要额外的 uart 引脚, pc 软件通过 swd 调试接口获取数据,用户只需要使用 essemi_swd_printf 函数将数据写入目标缓冲区即可。 全局变量监视模式:这种模式也是通过 swd 调试接口获取数据,并通过读取一个 axf 文件,允许选择一定数量的变量可视化。 es-dap-viewer下载链接(复制到浏览器打开):http://www.essemi.com/index/product/detail?id=896
1. uart-print 模式
左边为绘图窗口;右边为配置窗口,包括串口选择及参数设置窗口,数据处理窗口和帧格式设置窗口;底部为通道选择栏,最多支持10个通道。
pc 界面操作说明
uart-print 绘图调试的大致流程如下所述:
打开 es-dap-viewer 后选择 uart-print 选项卡,进入 uart-print 界面。 在串口选择及参数设置窗口中选择通信串口,并配置通信参数。根据 uart 通信协议,用户需配置波特率,停止位,数据位和奇偶校验位。 在帧格式设置窗口中设置数据类型,可选 uint8、int8、uint16、int16 以及 uint32 和 int32。 点击 打开串口 开始数据传输,点击 开始显示 便可在绘图窗口看到当前调试数据的实时波形。 点击 保存 可保存接收到的数据。点击 清除缓存 可清空当前显示界面内的图形。点击 初始比例 可当前视图回到初始状态时的显示比例。点击 背景颜色 右侧的颜色框可选择当前视图的背景色。 点击 显示方式 下拉菜单,可选择 波形显示 和 数据显示 。需要注意的是,当选择 数据显示 时,在数据显示窗口中显示的是用户程序发送的原始数据(不包含帧头、功能码、数据长度及校验和),每行显示一帧数据。 点击 开始显示,波形或数据开始动态显示。 输入框 显示时长 默认为 50000ms,可根据实际情况,输入合适的值,在按下回车键后将会更新横坐标的显示范围。 通信协议和程序示例
uart-print 使用的通信协议如下表所示:
关于 es-dap-viewer 的 uart-print 通信协议,详细说明如下:
uart-print 的数据帧由帧头、功能码、数据长度、用户数据以及累加校验和组成,其中,帧头固定为两字节大小的 0xaaaa,功能码固定为 0xf1。 data_len 表示该数据帧内包含的用户数据的字节总长度,不包括帧头、功能码、数据长度和累加校验和。 check_sum 表示从该数据帧第一个字节开始,也就是帧头开始,到用户数据最后一个字节的累加校验和,高位舍去,只保留低八位。 es-dap-viewer上位机按照上述的协议解析收到的数据并进行校验以显示可靠的数据,这意味着用户在使用 uart-print 功能时,必须按照该协议进行发送数据,否则上位机会因校验不通过而丢弃数据。 uart-print 最多支持 10 个通道,每个通道均支持显示 uint8、int8、uint16、int16 以及 uint32 和 int32 格式的数据。 如下程序可产生上面动图所示的效果。
2. swd-print模式
关于 swd-print 的界面使用介绍可参考 uart-print。
使用说明
用户程序需要使用 essemi_swd_printf 函数将数据写入目标缓冲区,es-dap-viewer 将通过 swd 调试接口读取数据后显示在 pc 界面上。swd-print 功能的实现需要用到以下四个配置文件:
essemi_swd_print.h
essemi_swd_print_conf.h
essemi_swd_print.c
essemi_swd_print_printf.c
用户在工程中成功添加上述四个配置文件后,并在需要用到 swd-print 功能的文件中包含如下头文件#include“essemi_swd_print.h”后,即可调用 essemi_swd_printf()函数将需要打印的数据放到 swd 专属内存区域中,然后上位机到该内存区域取出数据,显示到绘图窗口。
配置文件放在 es-dap-viewer 如下安装目录:。..\configure\essemi_swd_print。
需要注意以下几点:
在使用 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 时,配置比较简单,按照该格式即可:
swd-print 目前仅支持字节、半字、字输出,因此当使用函数 int essemi_swd_printf(unsigned bufferindex, const char *sformat, 。..) 时,须根据输出的数据位宽使用 “%.2x” 、“%.4x” 或 “%.8x” 来格式化输出。并且,输出的第一个字符必须为空格。
在连接 dap 调试器时,必须确保目标 mcu 程序正确下载并复位,否则将无法连接 dap 调试器。
程序示例
如下程序可产生上面动图所示的效果。
3. 全局变量监视模式
使用说明
用户首先需点击 选择axf文件 按钮,载入由编译器生成的 axf 文件,然后在页面下方选择需要监视的全局变量。
通过点击下拉框 dap设备 选择上位机已扫描到的 dap 设备,当上位机扫描到目标 cmsis-dap 设备时,点击 打开连接 即可与该设备建立通信。
左边为绘图窗口;右边为配置窗口,包括 axf 文件和 dap 设备选择窗口,数据显示配置窗口;下方为解析到的全局变量列表。
全局变量监视绘图调试的流程如下所述:
打开 es-dap-viewer 后选择全局变量监视选项卡,进入全局变量监视界面。 点击 选择axf文件 按钮,载入由编译器生成的 axf 文件。 点击下拉框 dap设备 选择上位机已扫描到的 dap 设备,当上位机扫描到目标 dap 设备时,点击 打开连接 与该设备建立连接。 在下方全局变量列表中,可查看解析到的全局变量的名称,地址以及数据类型大小,通过点击全局变量所在行中,对应的 color 单元,可选择该全局变量在波形显示窗口中的颜色。此外,尽管目前可以解析到结构体变量,但目前不支持对结构体成员和数组成员进行解析,因此在全局变量列表中勾选结构体类型的全局变量是无效的,勾选数组成员会因数组类型的不同而产生不同的效果。 点击 开始显示 按钮便可在绘图窗口看到当前调试数据的实时变化波形,在下方全局变量列表的 value(0x) 列中可查看全局变量的当前值。 此外,用户还可在数据处理窗口中选择保存数据,显示光标,清除缓存,以及更改背景颜色。 其余操作可参考 uart-print 界面操作说明。 程序示例
如下程序可产生上面动图所示的效果。
三安光电开课了《三安的过去、现在和未来》
iPhone 12的型号和外壳显示了iPhone 4的痕迹
Rust GUI 库发展现状
小米手环3人气火爆,预约人数超61万
人工智能技术将赋能安防报警行业的发展
工程师笔记|ES32 图形化调试软件——ES-DAP-Viewer
安卓8.0大战ios10.3 谷歌Pixel 2现身AOSP代码库 Android8.0首秀,
瑞士推出能量三倍于锂电池的可充电锌氧电池
基于飞兆半导体FAN100控制的LED照明系统设计
蓝牙信标人员定位系统的组成
软件定义雷达技术的出现
AMD正在秘密准备两款新APU TDP热功耗仅为35W
防盗报警系统的电话联网报警的重要性和必配性分析
关于苹果iPhone12 MagSafe磁吸无线充电器测评介绍
让我来告诉你:华为WATCH 2 Pro这块表有多高的科技含量
中科创达与上汽零束战略合作签约仪式在上海汽车举行
i9-9900K性能超Ryzen72700X30%至50%被指造假
三、可调角度移相电路
致钛科技推出了两款SSD硬盘,比三星等厂商的SSD高出10%以上
如何开发直播平台:直播源码推拉流技术的实现(二)