调试工具使用指南

J-Scope 使用指南

J-Scope 是一款免费软件,用于实时分析和可视化微控制器上的数据,同时目标运行。J-Scope 需要一个 J-Link / Flasher 作为与目标硬件的接口。 采样可以使用 SEGGER 高速采样(HSS)或 SEGGER 实时传输(RTT)技术。这两种技术对所有提供后台内存访问的微控制器(MCU)都可用。SEGGER HSS 可以无需任何进一步准备即可使用。 SEGGER RTT 可以实现更快的采样速度,但需要进行一些简单配置。

一、J-Scope安装

J-Scope 包含在J-Link 驱动安装包中(低版本没有),可以从 SEGGER 的官方网站下载。 https://www.segger.com/downloads/jlink 下载后并安装后(示例使用的是 V7.60),在J-Link 驱动安装目录下找到 J-Scope.exe双击打开。

二、硬件连接

使用J-Scope 需要将 J-Link 与目标硬件连接。 ET6002-EVB 默认使用CMSIS-DAP调试下载,修改为J-LINK调试下载方式如下:

../_images/J-Scope13.png

此处默认有跳线帽连接,将跳线帽拔掉,然后连接 SWDIO->ET_SWDIO ,SWCLK->ET_SWCLK,GND->GND。

三、模式配置

RTT 模式

SEGGER RTT 可以实现更快的采样速度,但需要进行一些简单配置。具体配置如下:

RTT 移植

使用 RTT 模式,必须在目标应用程序中实现 RTT。文档末尾提供了一个示例应用程序,该应用程序已经实现了RTT的移植。

RTT 使用
  1. J-Link 配置添加芯片支持,

gitee仓库 下载 device_support。 打开 device_support 下的 JLINK 文件夹,根据JLink版本选择对应的文件夹,将文件复制到JLink安装路径中。

  • JLink版本小于V7.62 - 将【V7.62版本以下】文件夹内的所有文件与文件夹复制至JLink的安装路径(安装路径一般为C:Program FilesSEGGERJLink) - 如果提示”目标已包含一个名为‘xxx’的文件“,点击替换覆盖目标中的文件

  • JLink版本大于等于V7.62 - 将【V7.62版本及以上】文件夹内的所有文件与文件夹复制至JLink的安装路径 - 如果提示”目标已包含一个名为‘xxx’的文件“,点击替换覆盖目标中的文件

  1. 双击打开 J-Scope.exe

../_images/J-Scope1.png
  1. 连接 J-Link

../_images/J-Scope2.png
  1. 选择目标硬件

点击 , 并在输入 ETMCU,选择对应芯片,点击 OK

../_images/J-Scope3.png
  1. 数据显示

点击 Start,即可看到数据波形。

../_images/J-Scope4.png

备注

重新下载代码后,若无法显示数据波形。需关闭并重新打开 J-Scope.exe,重复 步骤2 ~ 步骤5。

RTT 的API函数说明

RTT的移植完成后,只需要调用两个函数即可实现数据传输。

  • 函数 int SEGGER_RTT_ConfigUpBuffer (unsigned BufferIndex, const char* sName, void* pBuffer,unsigned BufferSize, unsigned Flags)

    • BufferIndex: 通道号,实测通道0不可用

    • sName: 数据格式,字符串 JScope_是固定的,主要是下划线后面的字符。

类型

支持数据大小

描述

t

4

表示每次发送的数据包前面都将带 1 个时间戳,32 位变量,单位 us

i

1,2,4

表示有符号数 8 位,16 位或者 32 位

u

1,2,4

表示无符号数 8 位,16 位或者 32 位

JScope_t4u1i4:表示数据包格式为 32 位时间戳,8 位无符号数和 32 位有符号数组成。并且数据顺序也是按照这个排列。

  • pBuffer: 数据缓冲区

  • BufferSize: 缓冲区大小

  • Flags: 操作模式

    • SEGGER_RTT_MODE_NO_BLOCK_SKIP: 表示如果上行缓冲区不够存储要发送的数据,将放弃写入缓冲区。

    • SEGGER_RTT_MODE_NO_BLOCK_TRIM: 表示如果上行缓冲区不够存储这些数据,能写多少写多少,无法写入的将丢弃。

    • SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL: 表示如果上行缓冲区满,将被阻塞,等待有空间可用。

  • 函数 int SEGGER_RTT_Write (unsigned BufferIndex, const void* pData, unsigned BufferSize)

    • BufferIndex: 通道号,与上述一致。

    • pData: 数据缓冲区。

    • BufferSize: 数据大小。

HSS 模式

HSS模式只需使用J-Scope加载MDK或者IAR的可执行文件即可,而且随时随地都可以连接目标板,不影响目标板的正常功能,不需要额外资源,但速率低于RTT模式。

HSS 使用
  1. 打开 J-Scope.exe

  2. 连接 J-Link

  3. 选择目标硬件

  4. 选择可执行文件(MDK中为.elf,IAR中为.out)

../_images/J-Scope9.png

MDK生成.elf文件,需要额外配置,配置方式如下:

user command 中输入 $J\..\bin\fromelf.exe --elf --output=@L.elf !L,点击 OK,重新全量编译,即可生成.elf文件。(在工程目录下)

../_images/J-Scope10.png
  1. 点击 OK,会弹窗选择需要观察的变量,进行勾选,或输入数组元素,点击 OK

../_images/J-Scope11.png
  1. 添加变量。

../_images/J-Scope12.png
  1. 点击 Start,即可看到数据波形。

四、界面操作

  • 波形位置调节

当界面上显示多个波形时,可拖动左侧小三角,调节波形位置。

../_images/J-Scope5.png
  • 查看波形实际值

移动光标,将光标悬停在波形上,出现黄色竖直线,即可查看波形实际值。

../_images/J-Scope6.png

可修改目标帧率,修改该值可调节黄色光标的移动精度,值越大,进度越高,反之亦然。

../_images/J-Scope14.png
  • 波形缩放

上下滚动鼠标滚轮,可对波形进行缩放;按住左键,可左右移动波形。(键盘上的 上、下、左、右 键亦可)。右上角看查看每格对应的时间,也可直接进行选择修改。

../_images/J-Scope15.png
  • 采集数据导出

导出数据前,需停止数据采集,然后点击 File->Export Data ,选择保存路径,即可导出数据。 J-Scope 支持导出 CSV 格式或者原始的 RAW 格式数据。J-Scope 实际运行的时候会在右下角显示缓冲大小,当前采样的个数和进度等。

../_images/J-Scope7.png
  • 查看官方用户指南

用户指南中包含了 J-Scope 的详细使用说明,快捷键 F1 ,即可查看官方用户指南。也可点击help按钮,选择 User Guide

../_images/J-Scope8.png

Keil Array Visualization 使用指南

Keil Array Visualization是一款keil在线调试工具,连接keil软件,然后读取变量或内存地址,然后用波形显示,可以选择多种不同的数据类型,选择大小端,导出为二进制文件。

一、Keil Array Visualization 获取

可直接在 github 上下载 Keil Array Visualization。 免安装,直接双击运行即可

二、使用方法

  1. 设置keil软件,有时需要修改端口

../_images/keil-Array1.png
  1. 将需要观察的数据存放在一个连续的地址空。

  2. debug 进入程序,查看变量或内存地址。

例如:将待观察数据存放在数组中,选中存储数据的数组,将其添加到观察窗口,可查看到所在内存地址,复制此地址。

../_images/keil-Array2.png
  1. 双击 Keil Array Visualization V1.5.2.exe 打开,根据需求设置对应参数。

../_images/keil-Array3.png
  1. 配置完成后,点击 读取 即可将数据读取到波形显示窗口中。

应用示例

  • J-Scope调试应用示例: J-Scope