打印
[应用相关]

Jlink之J-Scope虚拟示波器

[复制链接]
644|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
htmlme|  楼主 | 2023-2-24 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
虚拟示波器
01、J-Scope是什么
J-Scope是J-link的功能之一,J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。简单地说,是一个JTAG协议转换盒。

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
提取码:eqxx
02、HSS模式
首先编写测试代码,将程序下载到单片机内
#include "main.h"
#include <math.h>       /* sin */

RCC_ClocksTypeDef RCC_Clocks;

float x = 0;
double sin_o = 0;
double cos_o = 0;
int main(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处选择对应的单片机型号,在③处选择不同接口,我这里使用的SWD接口,在④处选择HSS模式,额外说明⑤处的中文乱码是us。
特别说明,在⑥处加载keil工程生成的.axf文件或IAR工程生成的.out文件。路径中最好不要有中文。点击OK完成配置。
接下来选择要观察的变量,不仅仅如下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只能读取全局变量的数据,我们使用硬件串口可以将函数的局部变量发给虚拟示波器。

使用特权

评论回复
沙发
jobszheng| | 2023-2-24 10:21 | 只看该作者
分享真棒!
一直想使用J-scope功能,看上去实现非常不简单。
P.S.
话说,现在SWD模式是不是主流了啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

2936

帖子

3

粉丝