英飞凌
直播中

张玉珍

7年用户 1059经验值
私信 关注

JScope RTT模式无法找到区块是怎么回事?

我目前正在使用 JScope 工具监控应用程序代码中的几个变量。 我目前正在研究 TLE9879x MCU 的 FOC 应用。 我在使用该工具时遇到了以下问题。

1.RTT 模式- 在 RTT 模式下,我配置了一个向上缓冲区,并正在更新引用中的值。 但是,当我运行 Jscope 工具时,它无法找到定义的 RTT 块(截图附后)。 我是否遗漏了任何配置/代码?
下面是一个示例代码。


/* 代码部分开始 */
#include"SEGGER_RTT.h"

.....
main(){
char JS_RTT_UpBuffer[100];
int JS_RTT_Channel = 1;

SEGGER_RTT_ConfigUpBuffer(JS_RTT_Channel,"JScope_I2", JS_RTT_UpBuffer[0], sizeof(JS_RTT_UpBuffer), SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL);
.....
while(1) {
var = updated_value();
SEGGER_RTT_Write(JS_RTT_Channel, var, sizeof(var) );   /* 代码部分结束 */ 2.));
}}
/* 代码部分结束 */

2.HSS 模式- 我可以在 HSS 模式下运行工具并监控变量,但无法在工具中查看超过 5 个变量。我得到的提示是,我选择了太多的区块进行监控(屏幕截图附后)。是否有办法让我们同时监控 5 个以上的变量?


回帖(1)

李俊

2024-5-20 15:37:21
根据您提供的信息,您在使用 JScope 工具监控 TLE9879x MCU 的 FOC 应用时遇到了 RTT 模式无法找到区块的问题。为了解决这个问题,请按照以下步骤操作:

1. 确保 SEGGER_RTT.h 文件已正确包含在您的项目中。检查您的项目设置,确保 SEGGER_RTT.h 文件的路径正确。

2. 检查您的 RTT 配置代码是否正确。根据您提供的代码片段,您的代码似乎已经包含了 SEGGER_RTT_ConfigUpBuffer 函数。请确保该函数调用正确,例如:

```c
SEGGER_RTT_ConfigUpBuffer(JS_RTT_Channel, "JScope_I2", JS_RTT_UpBuffer, sizeof(JS_RTT_UpBuffer), SEGGER_RTT_MODE_NO_BLOCK_SKIP);
```

3. 确保您在 main 函数中正确地初始化了 RTT。在 main 函数的开始处添加以下代码:

```c
int main(void) {
    SEGGER_RTT_Init();
    // 其他初始化代码...
}
```

4. 确保您的 JScope 工具配置正确。在 JScope 中,您需要选择正确的目标设备和通道。请检查您的 JScope 配置,确保它们与您的代码设置相匹配。

5. 如果问题仍然存在,请尝试重新编译和下载您的应用程序代码。有时候,重新编译和下载代码可以解决一些奇怪的问题。

6. 如果以上步骤都无法解决问题,请检查您的 J-Link 连接是否稳定。不稳定的连接可能导致 JScope 无法正确读取 RTT 数据。

7. 最后,您可以尝试在 SEGGER 论坛或相关社区寻求帮助。那里可能有其他开发者遇到过类似的问题,并提供了解决方案。

希望以上步骤能帮助您解决 JScope RTT 模式无法找到区块的问题。
举报

更多回帖

×
20
完善资料,
赚取积分