硬汉嵌入式论坛

 找回密码
 立即注册
查看: 874|回复: 13
收起左侧

[J-Link] RTT打印有问题

[复制链接]

4

主题

8

回帖

20

积分

新手上路

积分
20
发表于 2025-2-11 14:23:25 | 显示全部楼层 |阅读模式
我现在用JLINK V9测试rtt打印出现了问题,单片机是hc32f460。可以连接上,但是没有打印信息出来。后面我用pyocd+daplink测试是可以正常接收到rtt的打印信息的。

具体提代码如下:

        while(1)
        {
                osDelay(500);
                GPIO_TogglePins(GPIO_PORT_B, GPIO_PIN_14);
                SEGGER_RTT_printf(0, "hello segger00000 =%d\r\n",i);
                SEGGER_RTT_printf(1, "hello segger11111 =%d\r\n",i);
                i++;
        }

捕获.PNG
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2025-2-11 14:29:57 | 显示全部楼层
这个是pyocd+daplink的打印效果
捕获.PNG
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2025-2-11 14:40:05 | 显示全部楼层
用pyocd+jlink也是可以正确的接收到rtt的打印信息的
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2025-2-11 14:44:39 | 显示全部楼层
可以了,要把rtt的地址写上
捕获.PNG
回复

使用道具 举报

82

主题

510

回帖

756

积分

金牌会员

积分
756
发表于 2025-2-11 16:30:54 | 显示全部楼层
应该可以自动搜索的,而且我也试过有时出不来,看上去和连接rtt和调试的顺序有关
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2025-2-11 17:06:40 | 显示全部楼层
现在还有个问题,使用JScope的时候需要加载.JLinkScript脚本文件,不然找不到RTT控制块。网络上查不到相关的资料,有好心人可以分享一个例程吗。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116219
QQ
发表于 2025-2-12 07:37:11 | 显示全部楼层
vvyywy 发表于 2025-2-11 17:06
现在还有个问题,使用JScope的时候需要加载.JLinkScript脚本文件,不然找不到RTT控制块。网络上查不到相关 ...

使用HSS模式
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2025-2-12 08:34:00 | 显示全部楼层

HSS可以用,但是我想试试RTT,这个速度快一些。我这边做了个数字电源,想看一下100KHz的曲线。
回复

使用道具 举报

2

主题

71

回帖

77

积分

初级会员

积分
77
发表于 2025-2-12 11:07:18 | 显示全部楼层
如果自动搜索RTT control block失败,可以把RTT control block的地址加上2,手动写入Cortex-M中断向量表的地址0x20,以帮助J-Link识别。地址0x20在向量表里一般是保留不用的。

https://kb.segger.com/RTT#Example_vector_table
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2025-2-12 13:52:52 | 显示全部楼层
qinfeng173 发表于 2025-2-12 11:07
如果自动搜索RTT control block失败,可以把RTT control block的地址加上2,手动写入Cortex-M中断向量表的 ...

还是找不到控制块
捕获.PNG
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2025-2-12 15:50:58 | 显示全部楼层
我把RTT控制块的地址加载到了0x20000000,JScope就能搜到了,但是还是想学一下JLINK脚本文件
回复

使用道具 举报

2

主题

71

回帖

77

积分

初级会员

积分
77
发表于 2025-2-13 10:37:30 | 显示全部楼层
vvyywy 发表于 2025-2-12 15:50
我把RTT控制块的地址加载到了0x20000000,JScope就能搜到了,但是还是想学一下JLINK脚本文件

这个功能需要最新的J-Link DLL和软件。你用的v7.68c太老了。

如果用J-Link script的话,可以写:

int ConfigTargetSettings (void)
{
  JLINK_ExecCommand("SetRTTAddr 0x1FFF820C");
  return 0;
}
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2025-2-15 08:38:53 | 显示全部楼层
qinfeng173 发表于 2025-2-13 10:37
这个功能需要最新的J-Link DLL和软件。你用的v7.68c太老了。

如果用J-Link script的话,可以写:

大佬可以给个样例吗,我按照你的方式写了还是不行。软件版本是V7.68C
回复

使用道具 举报

2

主题

71

回帖

77

积分

初级会员

积分
77
发表于 2025-2-18 14:26:30 | 显示全部楼层
RTT地址好像写错了,按照你之前RTT Viewer图片里面,应该是0x1FFF810C
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 10:35 , Processed in 0.370642 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表