广告

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

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软件,就可以像示波器一样显示多个变量的值。它支持通过如下三种模式获取数据:72Bednc

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

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

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

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

一.UART-Print 模式72Bednc

72Bednc

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

PC界面操作说明72Bednc

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

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

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

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

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

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

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

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

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

通信协议和程序示例72Bednc

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

72Bednc

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

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

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

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

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

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

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

72Bednc

72Bednc

二.SWD-Print模式72Bednc

72Bednc

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

使用说明72Bednc

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

essemi_swd_print.h72Bednc

essemi_swd_print_conf.h72Bednc

essemi_swd_print.c72Bednc

essemi_swd_print_printf.c72Bednc

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

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

需要注意以下几点:72Bednc

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

72Bednc

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

72Bednc

程序示例72Bednc

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

72Bednc

.全局变量监视模式72Bednc

72Bednc

使用说明72Bednc

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

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

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

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

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

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

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

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

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

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

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

程序示例72Bednc

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

72Bednc

  • 看得我都想干工程师了
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 可解决工业自动化和IIoT挑战的MCU 工业自动化和工业物联网(IIoT)设计人员的性能要求不断变化。就MCU而言,他们希望获得更快的处理速度、更多的内存、更好的连接性和更多的安全功能。
  • 第三代半导体——碳化硅材料之制程与分析 SiC功率电子是加速电动车时代到来的主要动能。以SiC MOSFET取代目前的Si IGBT,不仅能使电力移转时的能源损耗降低80%以上,同时也可让芯片模块尺寸微缩至原本的1/10,达到延长电动车续航里程及缩短充电时间的功效。
  • 苹果iPhone 14 Pro、iPhone 14 Pro Max 将采用更快的 随着iPhone 14系列发布的临近,iPhone 14系列的内存供应商也被曝光。一份由DigiTimes发表的报道显示,今年晚些时候到达的"Pro"型号将配备6GB LPDDR5内存,这比当前一代的iPhone 13 Pro和iPhone 13 Pro Max都有6GB LPDDR4X内存提升了一代。
  • 国际象棋机器人Chessrobot夹断对手手指,意外还是设计缺 据悉,在7月19日的莫斯科国际象棋公开赛期间,一位7岁小男孩疑似因提前走子犯规手,意外被“对手”国际象棋机器人Chessrobot夹住手指,造成指骨骨折,该事件登上了热搜榜。该男孩是莫斯科9岁以下最强的30位棋手之一。
  • M2 Pro 和 M2 Max 或是苹果首款采用台积电3nm 工艺的 M1 Pro 和 M1 Max 最多可配置 10 核 CPU 和 32 核 GPU。借助 M2 Pro 和 M2 Max,Apple 有望突破这一门槛,为这两个领域带来更多的核心数量。目前M2 Pro相关的爆料很少,但据称M2 Max 有12 核 GPU 和 38 核 GPU。12 核 CPU 将包括 10 个性能核心和两个能效核心。
  • 中信拆了辆特斯拉Model 3,发现多个领域技术引领行业 EDN电子技术设计在6月底报道了海通国际手动拆解十万元的比亚迪“元”的详细拆解图,如今不到一个月的时间,中信证券微信公众号发表了一篇《从拆解Model 3看智能电动汽车发展趋势》的文章,文中称对特斯拉Model 3的E/E架构、三电、热管理、车身等进行了详细深入地分析,并坚定看好中国智能电动化发展趋势,引起了广泛关注。
  • 小米12S Ultra游戏性能超越iPhone 13 Pro Max?高通骁龙 高通将骁龙8 Plus Gen 1的量产交给台积电之后,其生产技术带来了许多改进,其中之一是提高了游戏性能。众所周知,Apple 的 A15 Bionic 是目前公认的最快的移动 SoC,但这一认知却被小米 12S Ultra 搭配高通骁龙8 Plus Gen 1所颠覆。
  • 为什么步进电机的微步没有想象的那么好? 在使用步进电机设计运动控制系统时,不能假设电机的额定保持转矩在微步时仍然适用,因为增量转矩会大大降低。这可能会导致意外的定位误差。在某些情况下,增加微步分辨率并不能提高系统精度。
  • AIoT生态发展大会智慧两轮车分论坛圆桌讨论:智慧两轮车 在AspenCore举办的“2022国际AIoT生态发展大会”上,“智慧两轮车分论坛”的圆桌讨论环节邀请到全志科技、威灵电机、发掘科技、台铃科技和灵动微电子五家两轮车市场的芯片商、方案商、系统商和整车厂,围绕“智慧两轮车市场如何弯道超车?”的主题展开了讨论。
  • 电动两轮车需要什么样的MCU方案? 电机控制器作为智慧电动两轮车的“控制中心”,操控着车辆的加速、定速巡航、能量回收。在6月29日全球领先的专业电子机构媒体AspenCore和深圳市新一代信息通信产业集群联合主办的“2022国际AIoT生态发展大会-智慧两轮车分论坛”上,专注于MCU研发和生产的灵动微电子,分享了智慧两轮车需要什么样的电机驱动芯片。
  • 面向未来物联网的高密度、高可靠、高安全性的计算平台 在AspenCore举办的“全球MCU生态发展大会”上,安谋科技解决方案总监邹伟发表了“面向未来物联网的高密度、高可靠、高安全性的计算平台”主题演讲。
  • 世界上尺寸最大的芯片Wafer Scale Engine-2打破了在单 Cerebras公司售价数百万美元的“全球最大AI芯片”Wafer Scale Engine-2又有新消息,在基于单个Wafer Scale Engine-2芯片的CS-2系统上训练了世界上最大的拥有200亿参数的NLP(自然语言处理)人工智能模型。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了