MyLink软件使用指南-实时传输RTT

内存地址:通常是MCU的SRAM区域。
扫描长度:根据芯片实际SRAM或已用大小填写。
右上角的历史记录按钮可以显示最近使用过的内存地址和长度,其中上次使用的以绿色字体标记。

控制块名称:可以自定义,但需要和SEGGER_RTT.c文件的_DoInit函数中定义相同。
// Finish initialization of the control block.
// Copy Id string in three steps to make sure "SEGGER RTT" is not found
// in initializer memory (usually flash) by J-Link
STRCPY(&p->acID[7], "RTT", 9);
RTT__DMB();
STRCPY(&p->acID[0], "SEGGER", 7);
RTT__DMB();
p->acID[6] = ' ';
RTT__DMB();
刷新周期:轮询RTT通道的间隔。
通信超时:轮询失败的超时时间,超时后关闭轮询并提示错误。
点击扫描按钮检索目标芯片的RTT控制块信息,勾选列表中的通道,点击左上角连接RTT打开。

RTT采用终端操作模式,在文本区域输入内容按下回车键后将发送到单片机。这里展示输入112233,单片机收到后打印收到数据: \n112233。

RTT文本区快捷键
| 按键 | 功能 |
|---|---|
| 方向键上/下 | 输入历史记录翻页 |
| 方向键左/右 | 左右移动当前行光标 |
| HOME/END | 移动光标当行首/尾 |
| 回车键 | 确认输入内容 |
当打开多个通道时,鼠标左键单击底部标签栏对应通道可以进行切换。所有通道按顺序显示所有通道接受到的内容,在所有通道输入的内容也会发送给所有通道,切换到具体的通道0,通道1输入的内容只会发给当前选中的通道。

在特定的通道0,通道1鼠标右键可以打开通道信息对话框,除了查看当前通道的基本信息,还可以开启通道转发,例如在VOFA+等串口绘图软件开启了TCP服务器,此时可以将IP和端口输入,打开TCP转发开关;此时该通道接收到的数据将转发给该TCP服务器,TCP服务器收到的内容也会写入对应的通道。
当通道用于传输大量文本或者原始字节流时,建议勾选屏蔽文本显示开关,来屏蔽软件文本区的内容显示,防止文本区出现乱码或者大量数据引起软件卡顿。

点击左侧功能菜单的发送文件可以直接向打开的通道写入原始二进制数据,从文件发送或者手动输入16进制字符串。

文件传输采用阻塞模式,循环检查通道的可用空间并写入数据,直至文件或者输入内容发送完成或者达到阻塞超时。在单片机端,需要开启一个RTT通道轮询线程或定时器,循环读走通道内容。

while(1) {
unsigned char filebuf[128];
uint32_t num = rtt_read(0, filebuf, 128);
if(num) {
// TODO write to file
}
}
减小传输间隔(程序限制不得小于轮询间隔)或者调大单片机RTT的BUFFER_SIZE_DOWN可以提升传输效率。

浙公网安备 33010602011771号