RTT in JsCope
相较于vofa,使用HSS模式下的jscope最大的缺点在于可加变量较少(四五个左右就寄几),采样帧率较低(v9能到1000帧,普通jilnk 100帧),无法查看C++文件中的变量,RTT模式下的jscope可以克服这些弱点,采用和vofa一样的指令式发送曲线数据(而不是像HSS一样从elf文件里读取变量地址),且相较于vofa可以少占用一个串口,且系统开销远小于vofa,理论采样速率上限远高于vofa(RTT指令速度接近一个memcpy的时间)
REF
RTT源码迁移
这一点与RTT Viewer那里的迁移方法一致
代码端配置
1.初始化
1 |
|
SEGGER_RTT_ConfigUpBuffer注意事项
第一个参数buffer号必须填 1,因为0 buffer应该是默认被RTT Viewer占用(因此RTT Viewer和JSCOPE RTT可以同时使用)
第二个参数向RTT表明了数据类型,这里一定要严格按格式写
第三个参数是BUFF长度
第四个参数是RTT模式,就选SEGGER_RTT_MODE_NO_BLOCK_SKIP就可以了
2. 循环调用
1 | uint16_t demo_; |
SEGGER_RTT_Write参数
第一个是buffer号,跟初始化第一个参数一样
第二个是数据地址
第三个是数据长度
Jscope端配置
为了解决JSCOPE 的RTT内核找RTT地址大概率失败的问题,我们直接用jlinkscript指定地址
用RTT VIEWER教程中同样的方法在 .map中找出 _SEGGER_RTT的地址(我这里是0x24000f88 ),然后在工程总目录里手动创建jscope配置文件 demo.JLinkScript ,指定RTT地址。
demo.JLinkScript文件内容如下:
1 | /********************************************************************* |

然后在jscope中创建新工程:
- 一定要选中最具体的MCU,而不是M4 或者M7之类的
- 选刚刚创建的demo.JLinkScript
- 选RTT
然后先启动keil debug,开始运行,然后就可以开始Jscope了
- 标题: RTT in JsCope
- 作者: Porcovsky
- 创建于 : 2025-06-16 21:51:45
- 更新于 : 2025-06-16 22:00:53
- 链接: https://pocro.github.io/2025/06/16/RTT-in-Jscope/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论