调试工具使用指南
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调试下载方式如下:
此处默认有跳线帽连接,将跳线帽拔掉,然后连接 SWDIO->ET_SWDIO ,SWCLK->ET_SWCLK,GND->GND。
三、模式配置
RTT 模式
SEGGER RTT 可以实现更快的采样速度,但需要进行一些简单配置。具体配置如下:
RTT 移植
使用 RTT 模式,必须在目标应用程序中实现 RTT。文档末尾提供了一个示例应用程序,该应用程序已经实现了RTT的移植。
RTT 使用
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’的文件“,点击替换覆盖目标中的文件
双击打开 J-Scope.exe
连接 J-Link
选择目标硬件
点击 …, 并在输入 ETMCU,选择对应芯片,点击 OK。
数据显示
点击 Start,即可看到数据波形。
备注
重新下载代码后,若无法显示数据波形。需关闭并重新打开 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 使用
打开 J-Scope.exe
连接 J-Link
选择目标硬件
选择可执行文件(MDK中为.elf,IAR中为.out)
MDK生成.elf文件,需要额外配置,配置方式如下:
在 user command 中输入 $J\..\bin\fromelf.exe --elf --output=@L.elf !L,点击 OK,重新全量编译,即可生成.elf文件。(在工程目录下)
点击 OK,会弹窗选择需要观察的变量,进行勾选,或输入数组元素,点击 OK。
添加变量。
点击 Start,即可看到数据波形。
四、界面操作
波形位置调节
当界面上显示多个波形时,可拖动左侧小三角,调节波形位置。
查看波形实际值
移动光标,将光标悬停在波形上,出现黄色竖直线,即可查看波形实际值。
可修改目标帧率,修改该值可调节黄色光标的移动精度,值越大,进度越高,反之亦然。
波形缩放
上下滚动鼠标滚轮,可对波形进行缩放;按住左键,可左右移动波形。(键盘上的 上、下、左、右 键亦可)。右上角看查看每格对应的时间,也可直接进行选择修改。
采集数据导出
导出数据前,需停止数据采集,然后点击 File->Export Data ,选择保存路径,即可导出数据。 J-Scope 支持导出 CSV 格式或者原始的 RAW 格式数据。J-Scope 实际运行的时候会在右下角显示缓冲大小,当前采样的个数和进度等。
查看官方用户指南
用户指南中包含了 J-Scope 的详细使用说明,快捷键 F1 ,即可查看官方用户指南。也可点击help按钮,选择 User Guide。
Keil Array Visualization 使用指南
Keil Array Visualization是一款keil在线调试工具,连接keil软件,然后读取变量或内存地址,然后用波形显示,可以选择多种不同的数据类型,选择大小端,导出为二进制文件。
一、Keil Array Visualization 获取
可直接在 github 上下载 Keil Array Visualization。 免安装,直接双击运行即可
二、使用方法
设置keil软件,有时需要修改端口
将需要观察的数据存放在一个连续的地址空。
debug 进入程序,查看变量或内存地址。
例如:将待观察数据存放在数组中,选中存储数据的数组,将其添加到观察窗口,可查看到所在内存地址,复制此地址。
双击
Keil Array Visualization V1.5.2.exe打开,根据需求设置对应参数。
配置完成后,点击
读取即可将数据读取到波形显示窗口中。
应用示例
J-Scope调试应用示例: J-Scope