本帖最后由 sy12138 于 2022-11-29 14:17 编辑
#申请原创# #技术资源#
@21小跑堂 @安小芯
测试条件
| IDE
| 硬件
| 软件
| 其他
| MDK 5.37
| N32G457XVL-STB V1.1J-LINK V9
| SEGGER-J-LINK V7.54d
|
| J-Scope是J-link的功能之一,使用Jlink连接MCU后,可以在目标MCU运行时,实时分析数据并图形化显示的软件。J-Scope可以以类似示波器的方式显示多个变量的值。它读取elf或axf文件并允许选择多个变量进行可视化。
所有提供后台存储的MCU,都可以被J-LINK通过高速采样(HSS)或实时传输(RTT)技术所访问,数据访问与程序运行是同步的,需要被观察的全局变量会被同步显示出来。
通过RTT进行数据采集(同步模式)
使用此技术时,目标应用程序执行数据采样并将结果存储在 RTT 缓冲区中,驻留在目标的内存中。J-Link 定期从 RTT 缓冲区读取数据并将其传输到 J-Scope 应用程序。
J-Scope RTT 配置
为了使用 RTT 模式,必须在目标应用程序中实现 RTT。具体使用方法参考如下连接:https://wiki.segger.com/UM08028_J-Scope#RTT:_Instrumenting_an_application_to_use_it_with_J-Scope
下面将解释这种技术的优缺点。
优点:
允许比 HSS 高得多的数据吞吐量。最高可达 2 MB/s。即使目标上有一个 512 字节的小缓冲区,也可以达到 1 MB/s
数据采集与目标应用程序执行同步,因为应用程序决定何时以及什么数据被采样
J-Scope 不需要知道变量的位置。J-Scope 在连接时自动检测 RTT 缓冲区的位置。
时间戳等可以添加到数据样本中,允许将上下文中获取的数据设置为目标应用程序执行状态
不需要额外的硬件(比如 Cortex-M 上用于 SWO 的额外引脚)
缺点:
需要检测目标应用程序以提供缓冲区并在需要时将采样数据存储到其中
需要小的 RTT 缓冲区
通过HSS进行数据采集(异步模式)
使用此技术时,J-Link 会定期从后台目标上的指定地址以固定间隔读取数据,并将数据传输到 J-Scope 应用程序。
HSS 模式通过定期对内存位置进行采样来工作。因此,采样率和 elf 文件是强制性的。ELF 文件用于确定采样符号的内存地址。最好将符号声明为“易失性”,以便尽快将它们写入内存。
J-Scope HSS 配置
要使用 HSS,请选择您的目标设备和 elf 文件,然后单击确定。
J-Scope 变量选择对话框
选择您要查看和分析的应用程序变量。您可以使用底部的搜索输入快速搜索变量名称、类型或地址。要选择数组元素,请输入要查看的数组索引。对于多维数组,用点、逗号或空格分隔维度索引。
单击确定以完成设置。
下面将解释这种技术的优缺点。
优点:
不需要目标应用程序的任何检测。J-Scope 可以附加到现有应用程序并开始采样
不需要额外的硬件(比如 Cortex-M 上用于 SWO 的额外引脚)
缺点:
相对较低的采样频率和最大值。与 RTT 方法相比的数据吞吐量。
最大速度。采样频率很大程度上取决于 J-Link 类型和被采样变量的数量。
数据采集以固定的间隔发生,并且与应用程序异步执行,因此无法将采集的数据同步到应用程序
接下来看一下实际使用过程
程序中设置3个全局变量,让3个全局变量在主循环内不断变化,并将程序下载到开发板中运行。
打开J-Scope
设置相关参数
添加.axf文件
勾选要查看的全局变量
点击
开始运行
由于是HSS模式,会有速度提示信息
界面说明如下:
源码:
Nationstech.N32G45x_Library.2.1.0.zip
(3.69 MB)
应用笔记:
视频地址:
|