当前位置: 首页 > 科技观察

本文带你了解Jlink的J-Scope虚拟示波器

时间:2023-03-17 20:57:44 科技观察

01虚拟示波器说到虚拟示波器,大家应该都不陌生了。在学校开发智能汽车和调整PID时,虚拟示波器是必备工具。有很多虚拟示波器软件。之前也分享过一篇文章《一个超赞的开源串口虚拟示波器项目》,是一款基于QT的开源软件。如果你有兴趣,你可以看看。虚拟示波器软件一般通过串口接收数据,因此需要MCU将数据打包成软件支持的协议,通过串口发送给虚拟示波器软件。02什么是J-Scope?J-Scope是J-link的功能之一。J-Link是SEGGER推出的一款支持ARM核心芯片仿真的JTAG仿真器。简单的说就是一个JTAG协议转换盒。关于J-Link,可以看之前的文章《关于JTAG你知道和不知道的都在这里》《JLink cmd的使用》。J-Scope也是由SEGGER推出的。使用Jlink连接MCU后,可以实时分析数据,并在目标MCU运行时图形化展示。J-Scope可以以类似示波器的方式显示多个变量的值。它读取elf或axf文件,并允许选择多个变量进行可视化。只需将目标微控制器连接到J-Link并启动J-Scope,只需几步即可配置J-Scope,然后选择要显示的符号。如下图所示,J-Scope主要有两种工作模式:RTT和HSS。RTT模式:用户需要在MCU上添加代码,类似于通过串口上传数据。因为有多余的代码,需要占用MCU的资源。优点是速度快,缺点是需要额外的代码。HSS模式:用户无需在MCU上添加任何代码,只需要使用J_Scope加载MDK或IAR的可执行文件,即可随时链接MCU,不影响MCU的正常功能,以及不需要额外的资源。只需使用标准的SWD接口即可。优点是不需要加代码,缺点是速度比较慢,一般1K。因为HSS模式不需要额外的代码,所以我比较喜欢HSS模式,日常开发中也经常使用HSS模式。下面将着重讲解HSS模式。软件准备,要使用J-Scope功能,除了一个JLink,还需要安装J-Flash和J-Scope软件。下载链接如下下载链接:https://pan.baidu.com/s/1KO13rZw8RVyIQPN4Qpp4-w提取码:eqxx03HSS模式首先编写测试代码,下载程序到单片机#include"main.h"#include/*sin*/RCC_ClocksTypeDefRCC_Clocks;floatx=0;doublesin_o=0;doublecos_o=0;intmain(void){RCC_GetClocksFreq(&RCC_Clocks);while(1){x+=1;if(x>=360)x=0;sin_o=sin(x*3.14/180);cos_o=cos(x*3.14/180);}}J-Scope软件配置新建工程,在①处选择USB,大多数情况下我们使用USB进行连接的Jlink,②处SpecifyTargetDevice处选择对应的MCU型号,③处选择不同的接口,我这里使用的SWD接口,④处选择HSS模式,另外说明⑤处的中文乱码是us。特别是在⑥处加载keil工程生成的.axf文件或者IAR工程生成的.out文件。路径最好不要有中文。单击“确定”完成配置。接下来选择要观察的变量,不仅是下面的cos_o变量,RCC_Clocks结构体变量也可以监测。只能选择全局变量,这也是J-Scope的局限性。如果选择完成,需要添加其他变量,可以在折线图框内右击,点击AddSymbols添加变量,选中已经添加的变量,按del键删除。点击红色按钮开始跑两招:移动下图中①处的三角,可以快速上下移动波形。例如,如果右键单击变量,则可以使用快捷菜单。04总结J-Scope个人认为是个不错的工具,可以很方便的查看一些数据的波形,在ADC采集,温度传感器等方面有一定的作用。例如一种情况:MCU采集温度数据,通过串口上报给其他设备。此时其他设备会显示很多温度异常值。这时候就需要定位是MCU采集到了错误的数据,还是其他设备对数据进行了错误的分析。如果还在开发中,此时debug就可以了。但是在发布的软件中,使用示波器监测和分析串口数据是一件比较麻烦的事情。这时使用J-Scope可以显示MCU采集到的温度(保存在一个全局变量中)。但是,这需要在发布版本时保存一个.ou文件或.axf文件。J-Scope这么强大,但是还是不能代替软件通过硬件串口发送给PC虚拟示波器,因为J-Scope只能读取全局变量的数据,我们可以使用硬件串口发送本地函数的变量到虚拟示波器。本文提供了一种无需其他“埋点”打印即可监控发布软件全局变量的方法。上一篇文章《JLink cmd的使用》也提供了解决类似问题的方法。有兴趣的同学可以看看。在文章的最后,我想说几句。开发使用的工具没有好坏之分,只是使用场景不同而已。如果你掌握了几种工具,你可以用更多的方法解决一些棘手的问题。本文转载自微信公众号《知乎编程》【编者推荐】复制不翻车:可承受千万级流量的大规模分布式系统架构设计五开数字化转型的七大热点趋势三渐变源码游戏化工具2021冷潮Windows11新预览版22449推送:开机动画变了怎么办?游戏玩家大规模退居Windows7:Windows10暴跌