简介
RTT( Real Time Terminal)是SEGGER公司新出的可以在嵌入式应用中与用户进行交互的实时终端。J-Link驱动4.90之后的版本都支持RTT。RTT既可以从MCU上输出信息、也可以向应用程序发送信息,由于其高速的特性,所以不影响MCU的实时性。
使用RTT可以从MCU非常快速输出调试信息和数据,且不影响MCU实时性。这个功能可以用于很多支持J-Link的设备和MCU,兼容性强。
RTT支持两个方向的多个通道,上到主机,下到目标,它可以用于不同的目的,为用户提供尽可能多的自由。默认实现每个方向使用一个通道,用于可打印终端输入和输出。
使用J-Link RTT Viewer,可用于“虚拟”终端,允许打印到多个窗口(例如,一个用于标准输出,一个对于错误输出,一个用于调试输出)。
RTT测试传输21k字节,耗时28.00ms。计算可知RTT通信速率为715k/s。相对于串口11.5k/s (115200bps)的速率,优势非常明显。在一些对时间敏感的场景,串口无法胜任,可考虑使用RTT。
移植
1.Segger 官网下载并安装jlink。[Software Development Tools by SEGGER – The Embedded Experts](https://www.segger.com/)
2.进入下面目录
3.复制RTT文件到你的工程,并添加到工程,并不需要做什么修改。
4.包含头文件#include "SEGGER_RTT.h" ,然后使用SEGGER_RTT_printf进行LOG输出。
5.编译,下载。
连接Jlink RTT Viewer
这里注意几个地方, Specify Target Device 如果能选择到你的芯片就选,选不到就选一个内核相同的。然后就是RTT Control Block,如果你的芯片是主流的在上面可以选择到,就选Auto Detection,否则需要选择Address,然后从你工程的Map文件中找到如下地址。这个是RTT 输出缓存空间。
点击OK,连接成功。
使用Secure CRT打印RTT日志
这里使用的是Telnet方式,配置如下
效果如图
CRT上设置日志存储文件,及存储时间配置,即可实现RTT 日志输出到文件,并带时间戳。
OK~~~~~~~~~~~~~~