<strong><font color="#4e5e9e">J-Scope简介 </font> </strong>
<strong>什么是J-Scope</strong>
J-Scope是Segger推出的一款免费软件,用于MCU运行时,实时显示数据的波形。
J-Scope分为HSS和RTT两种模式:
1)HSS模式直接使用J-Scope加载MDK或IAR的可执行文件即可,操作简单但采样速度较慢;
2)RTT模式只需要在用户程序里添加Segger的RTT组件,操作稍麻烦但是采样速度更快更实用。
<strong>软/硬件版本</strong>
硬件-JLINK:常见的JLINK BASE需要V9及以上版本;而JLINK PRO或JLINK ULTRA使用V4及以上版本即可。
软件-MDK:MDK4或MDK5皆可。本专题配套的例程需使用MDK5。
<strong>支持的设备</strong>
1)J-Scope在HSS(High-Speed-Sampling)模式下支持的内核如下:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264010-1.png&…; alt=“图1. HSS模式支持的设备" /></center><center><i>图1. HSS模式支持的设备</i></center>
2)J-Scope在RTT(Real-Time Transfer)模式下支持的内核如下:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264011-2.png&…; alt=“图2. RTT模式支持的设备" /></center><center><i>图2. RTT模式支持的设备</i></center>
<strong>不同版本JLINK速度对比</strong>
截图中的数据主要对于HSS模式说的,而RTT模式没有这些限制,基本JLINK速度支持到多大,RTT就可以达到多大。
对于JLINK BASE来说,基本都是截图里面的Other选项,也就是说在HSS模式下支持10个变量采集,采样速度1KHz。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264012-3.png&…; alt=“图3. J-Link采样速度" /></center><center><i>图3. J-Link采样速度</i></center>
<strong><font color="#4e5e9e">J-Scope环境准备 </font> </strong>
此处以MDK5为例,硬件以AT32F403A为例。
<strong>J-Scope安装</strong>
1)解压xx\AN0044_Segger_Jscope_on_AT32_MCU\JScopeTool\Setup_JScope_V6xxm.zip;
2)双击Setup_JScope_V6xxm.exe,开始安装。
3)点击点击NEXT,继续安装。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264013-4.png&…; alt=“图4. JScope安装 点击NEXT" /></center><center><i>图4. JScope安装 点击NEXT</i></center>
4)点击I Agree同意协议。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264014-5.png&…; alt=“图5. JScope安装 点击I Agree" /></center><center><i>图5. JScope安装 点击I Agree</i></center>
5)选择快捷方式添加位置,此处选择了添加到开始菜单,然后点击NEXT继续安装。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264015-6.png&…; alt=“图6. JScope安装 点击NEXT" /></center><center><i>图6. JScope安装 点击NEXT</i></center>
6)点击Browse选择安装路径。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264016-7.png&…; alt=“图7. JScope安装 点击Browse选择安装路径" /></center><center><i>图7. JScope安装 点击Browse选择安装路径</i></center>
7)在弹出的界面选择路径,然后点击确认。用户可自行选择安装路径,本示例选择安装在D:\tool\J_Scope。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264017-8.png&…; alt=“图8. JScope安装 选择安装路径" /></center><center><i>图8. JScope安装 选择安装路径</i></center>
8)点击Install开始安装。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264018-9.png&…; alt=“图9. JScope安装 点击Install" /></center><center><i>图9. JScope安装 点击Install</i></center>
9)点击Finish完成安装。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264019-10.png…; alt=“图10. JScope安装 点击Finish" /></center><center><i>图10. JScope安装 点击Finish</i></center>
<strong>安装AT32相关package</strong>
先解压xx\AN0044_Segger_Jscope_on_AT32_MCU_2.x.x\JScopeTool\PACKs_V2.x.x.zip;
然后再解压Keil5_AT32MCU_AddOn.zip
然后分别安装ArteryTek.AT32F403A_407_DFP.2.x.x.packSegger_AT32MCU_AddOn.exe。
安装ArteryTek.AT32F403A_407_DFP.2.x.x.pack
1)双击ArteryTek.AT32F403A_407_DFP.2.x.x.pack开始安装。
2)点击NEXT继续安装。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264020-11.png…; alt=“图11. AT32 package安装 点击NEXT" /></center><center><i>图11. AT32 package安装 点击NEXT</i></center>
3)点击Finish完成安装。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264021-12.png…; alt=“图12. AT32 package安装 点击Finish" /></center><center><i>图12. AT32 package安装 点击Finish</i></center>
安装Segger_AT32MCU_AddOn.exe
1)双击Segger_AT32MCU_AddOn.exe开始安装。
2)在弹出界面点击Browse以选择安装路径。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264022-13.png…; alt=“图13. AT32 package安装 点击Browse" /></center><center><i>图13. AT32 package安装 点击Browse</i></center>
3)选择安装路径:注意,安装路径必须选择JLink的安装路径,否则找不到JLinkDevices.xml,无法安装。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264023-14.png…; alt=“图14. AT32 package安装 选择安装路径" /></center><center><i>图14. AT32 package安装 选择安装路径</i></center>
4)点击Start,开始安装。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264024-15.png…; alt=“图15. AT32 package安装 点击Start" /></center><center><i>图15. AT32 package安装 点击Start</i></center>
5)若安装成功,会绿色字体提示安装成功。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264025-16.png…; alt=“图16. AT32 package安装 安装成功" /></center><center><i>图16. AT32 package安装 安装成功</i></center>
6)若安装失败,则会红色字体提示失败原因:此处是安装路径不对,因此找不到JLinkDevices.xml文件。重新安装,正确选择安装路径为JLink安装路径即可。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264026-17.png…; alt=“图17. AT32 package安装 安装失败" /></center><center><i>图17. AT32 package安装 安装失败</i></center>
<strong><font color="#4e5e9e">HSS(High Speed Sampling) 模式</font> </strong>
<strong>HSS模式简介</strong>
HSS模式比较简单,仅需大家将MDK生成的可执行文件xxx.axf或者IAR生成的可执行文件xxx.out文件加载到JScope软件里面即可。
硬件连接:使用标准的下载接口(VCC,GND,SWDIO,SWCLK和NRST)或三线JLINK-OB(GND,SWDIO,SWCLK)即可。
优势:随时可以连接目标板,不影响目标板的正常功能,不需要额外资源。无需用户写目标板代码。
劣势:相对RTT模式,采样速度慢,基本固定在1KHZ左右,仅适用于变量变化速度低于1KHZ的情况。
<strong>使用方法</strong>
此处以MDK5为例,硬件以AT32F403A为例。
生成可执行文件
打开MDK工程,编译、下载程序,并生成可执行文件HSS.axf。
新建工程
打开J-Scope后,新建工程:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264027-18.png…; alt=“图18. 新建工程(HSS)" /></center><center><i>图18. 新建工程(HSS)</i></center>
配置工程
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264028-19.png…; alt=“图19. 配置工程(HSS)" /></center><center><i>图19. 配置工程(HSS)</i></center>
1)JLINK接口选择:大家通常使用的JLINK都是USB接口,所以此处选择USB。
2)目标器件选择:此处选择AT32F403AVGT7。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264029-20.png…; alt=“图20. 目标器件选择(HSS)" /></center><center><i>图20. 目标器件选择(HSS)</i></center>
3)目标接口和速度选择:
目标接口:根据应用程序配置,选择SWD/JTAG均可。本例程选择的SWD,所以这里也选择SWD。
JLINK速度:JLINK速度配置不要太高,这里选择4000kHz。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264030-21.png…; alt=“图21. 接口、速度选择(HSS)" /></center><center><i>图21. 接口、速度选择(HSS)</i></center>
4)模式选择:此处选择HSS。
5)选择可执行文件:此处在MDK例程的路径里找到可执行文件(HSS.axf)。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264031-22.png…; alt=“图22. 选择可执行文件(HSS)" /></center><center><i>图22. 选择可执行文件(HSS)</i></center>
6)配置完成,点击ok,完成配置。
选择要查看的变量
1)打勾选中;
2)点击ok。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264032-23.png…; alt=“图23. 选择要查看的变量(HSS)" /></center><center><i>图23. 选择要查看的变量(HSS)</i></center>
开始运行
1)单击红点,开始显示数据。
2)此时跳出警告,点击OK即可。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264033-24.png…; alt=“图24. 开始运行(HSS)" /></center><center><i>图24. 开始运行(HSS)</i></center>
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264034-25.png…; alt=“图25. 显示的波形(HSS)" /></center><center><i>图25. 显示的波形(HSS)</i></center>
<strong><font color="#4e5e9e">RTT(Real Time Transfer) 模式</font> </strong>
<strong>RTT模式简介</strong>
RTT模式类似于串口上传数据。需要移植RTT组件,配置上行缓冲区,发送数据等操作。
硬件连接:使用标准的下载接口(VCC,GND,SWDIO,SWCLK和NRST)或三线JLINK-OB(GND,SWDIO,SWCLK)即可。
优势:
<ul>
<li>允许比HSS更高的数据采样速度,高达2 MB/S。即使目标上有512字节的小缓冲区,也可以达到1 MB/S。</li>
<li>数据采集与目标板应用程序的执行同步,因为应用程序决定何时采样数据。</li>
<li>时间戳等数据可以添加到数据样本中。</li>
</ul>
劣势:
<ul>
<li>需要移植RTT组件等操作,较HSS模式更麻烦一些。</li>
</ul>
<strong>使用方法</strong>
移植RTT组件
1)将以下4个文件复制到MDK工程路径下,并添加进工程。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264035-26.png…; alt=“图26. RTT组件(RTT)" /></center><center><i>图26. RTT组件(RTT)</i></center>
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264036-27.png…; alt=“图27. 将RTT组件添加到MDK工程(RTT)" /></center><center><i>图27. 将RTT组件添加到MDK工程(RTT)</i></center>
2)使用下述函数,配置上行缓冲区:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264037-28.png…; alt=“Segger Jscope波形软件在AT32 MCU的使用" /></center>
第一个参数:buffer索引--此处选择1;
第二个参数:数据格式--固定格式为JScope_xy;
xy支持的格式如下:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264038-29.png…; alt=“表1. 数据格式" /></center><center><i>表1. 数据格式</i></center>
例如:
"JScope_u4u2":表示包含32bit无符号数据和16bit无符号数据,且数据顺序按照u4u2的排列顺序。
"JScope_t4i4u2":表示包含32bit 时间戳,32bit有符号数据和16bit无符号数据,且数据顺序按照t4i4u2的排列顺序。
第三个参数:缓冲区buffer选择;
第四个参数:buffer size;
第五个参数:模式--使用RTT模式的话,最后一个参数仅支持SEGGER_RTT_MODE_NO_BLOCK_SKIP和SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL。此处选择SEGGER_RTT_MODE_NO_BLOCK_SKIP。
3)调用SEGGER_RTT_Write函数发送数据:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264039-30.png…; alt=“Segger Jscope波形软件在AT32 MCU的使用" /></center>
4)编译、下载应用程序。
打开J-Scope,新建工程
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264040-31.png…; alt=“图28. 新建工程(RTT)" /></center><center><i>图28. 新建工程(RTT)</i></center>
配置工程
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264041-32.png…; alt=“图29. 配置工程(RTT)" /></center><center><i>图29. 配置工程(RTT)</i></center>
1)JLINK接口选择:大家通常使用的JLINK都是USB接口,所以此处选择USB。
2)目标器件选择:此处选择AT32F403AVGT7。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264041-32.png…; alt=“图30. 目标器件选择(RTT)" /></center><center><i>图30. 目标器件选择(RTT)</i></center>
3)目标接口/速度选择:
目标接口:根据应用程序配置,选择SWD/JTAG均可。本例程选择的SWD,所以这里也选择SWD。
JLINK速度:这里选择默认的4000kHz。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264043-34.png…; alt=“图31. 接口/速度选择(RTT)" /></center><center><i>图31. 接口/速度选择(RTT)</i></center>
4)模式选择:此处选择RTT。
5)配置完成,点击ok,完成配置。
开始运行
单击红点,开始显示数据。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264044-35.png…; alt=“图32. 开始运行(RTT)" /></center><center><i>图32. 开始运行(RTT)</i></center>
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264045-36.png…; alt=“图33. 显示的波形(RTT)" /></center><center><i>图33. 显示的波形(RTT)</i></center>
<strong><font color="#4e5e9e">J-Scope软件介绍</font> </strong>
<strong>界面介绍</strong>
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264046-37.png…; alt=“图34. J-Scope界面介绍" /></center><center><i>图34. J-Scope界面介绍</i></center>
<strong>数据导出</strong>
J-Scope支持导出CSV或原始的RAW格式的数据。
1)若采样正在进行,则需要先停止运行:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264047-38.png…; alt=“图35. 停止运行" /></center><center><i>图35. 停止运行</i></center>
2)点击File->Export Data:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264048-39.png…; alt=“图36. 导出数据" /></center><center><i>图36. 导出数据</i></center>
3)填写文件名->点击保存:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264049-40.png…; alt=“图37. 保存数据文件" /></center><center><i>图37. 保存数据文件</i></center>
4)打开RTT.CSV可以看到存储的数据,如下图:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264050-41.png…; alt=“图38. 查看数据文件" /></center><center><i>图38. 查看数据文件</i></center>
<strong>快捷键</strong>
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264051-42.png…; alt=“图39. 快捷键" /></center><center><i>图39. 快捷键</i></center>
<strong><font color="#4e5e9e">例程</font> </strong>
注:所有project都是基于keil 5而建立,若用户需要在其他编译环境上使用,请参考AT32xxx_Firmware_Library_V2.x.x\project\at_start_xxx\templates中各种编译环境(例如IAR6/7,keil 4/5)进行简单修改即可。
<strong>HSS模式</strong>
1)解压并打开xx\AN0044_Segger_Jscope_on_AT32_MCU_2.x.x\SourceCode\J-Scope_HSS_V2.x.x。
2)应用程序定义两个全局变量Test_Data1,Test_Data2。
3)新建J-Scope工程,再选中采样变量(Test_Data1,Test_Data2),再点击开始运行即可。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264052-43.png…; alt=“图40. 应用程序HSS" /></center><center><i>图40. 应用程序HSS</i></center>
<strong>RTT模式</strong>
1)解压并打开xx\AN0044_Segger_Jscope_on_AT32_MCU_2.x.x\SourceCode\J-Scope_RTT_V2.x.x.
2)移植RTT组件;
3)main.c包含SEGGER_RTT.h文件;
4)定义两个全局变量Test_Data1,Test_Data2;5)上行缓冲区配置:
5)上行缓冲区配置:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264053-44.png…; alt=“Segger Jscope波形软件在AT32 MCU的使用" /></center>
6)数据输出:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264054-45.png…; alt=“Segger Jscope波形软件在AT32 MCU的使用" /></center>
7)然后新建J-Scope RTT工程,再点击运行即可观察波形。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100562648-264055-46.png…; alt=“图41. 应用程序RTT" /></center><center><i>图41. 应用程序RTT</i></center>
来源:<a href="https://mp.weixin.qq.com/s/ZRmq__qf-h2rSbZveoDeqQ">AT32 MCU 雅特力科技</a>
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。