当前位置:首页 > 芯闻号 > 充电吧
[导读]      SEGGER的Real Time Transfer (RTT)是一项新技术,可以在嵌入式应用中进行用户I/O交互。它结合了SWO和半主机的优点,具有极高的性能。它的主要特点有可以与目标应

      SEGGER的Real Time Transfer (RTT)是一项新技术,可以在嵌入式应用中进行用户I/O交互。它结合了SWO和半主机的优点,具有极高的性能。它的主要特点有


可以与目标应用进行双向通信 极高的传输速率,同时不影响应用的实时响应 在目标板上不需要额外的硬件或引脚 在任何J-Link模式下都能正常使用 ARM Cortex-M0/M0+/M1/M3/M4/M7和Renesas RX100/200/600都支持该功能有完整的代码来提供需要的功能和灵活的自由度


 

什么是RTT?

       在不影响目标实时响应的情况下,RTT可以从目标MCU快速输出信息,也可以发送信息给目标应用。SEGGER RTT可以用在任何J-Link模式下(具体模式见https://www.segger.com/jlink-debug-probes.html)。可以在支持后台存储器访问的处理器如Cortex-M及RX系列上运行。

RTT支持双向多通道通信,可用于不同目的并为用户提供了灵活的自由度。默认情况下两个个方向分别使用一个通道,用于终端输入和输出。利用J-Link RTT Viewer 上位机软件,这个通道可以用于多个虚拟终端,允许打印到多个窗口但仅仅利用了一个目标缓冲区。(例如一个用于标准输出,一个用于错误输出,一个用于调试输出)。上传通道可以用于发送事件追踪数据。




RTT通信?

在目标应用中使用RTT是非常简单的。具体的实现代码可以自由下载并集成到目标应用中。你可以利用任何J-Link与RTT进行通信。

J-Link软件包中有更多适用于不同目的高级应用。


J-Link RTT Viewer




J-Link RTT Viewer是主要的windowsGUI,可以使用RTT的全部功能。RTT Viewer可以单独使用,与J-Link及目标板建立自己的连接。也可以在调试状态下与调试接口并行运行。 RTT Viewer支持RTT的主要特性:


在通道0上终端输出发送文本到通道0只有一个目标通道的情况下具有高达16个虚拟终端在任何J-Link模式下都能正常使用控制文本输出:给文本着色,擦除控制台在通道1上记录数据...

J-Link RTT Viewer的完整文档请参考J-Link用户手册(UM08001),  RTT章节。

J-Link RTT Viewer是J-Link软件文档包的一部分,可以免费获取。



J-Link RTT Client


J-Link RTT客户端作为一个远程登陆客户端,当调试部分关闭时可以自动重建J-Link连接。J-Link RTT客户端也是J-Link软件文档包的一部分,可以用于简单的RTT应用场景。


J-Link RTT Logger


利用J-Link RTT采集器,可以读取上传通道1的数据并记录到一个文件中。这个通道可以用来向主机发送性能分析数据。J-Link RTT采集器与J-Link建立特定的连接,可以被单独使用,不需要运行调试器。



RTT是如何工作的?

        实时传输利用了目标存储器上的SEGGER RTT 控制块来管理数据的读写。控制块包含有一个ID号,这样接上J-Link之后,就可以在存储器中发现控制块并且每个通道都有一个环形缓冲区结构,用来描述通道缓冲区及其状态。最大的通道数可以在编译时进行配置,应用运行时也可以配置及添加缓冲区,而且上传和下行的缓冲区可以分开处理。每个通道都可以配置成阻塞和非阻塞模式。在阻塞模式下,当缓冲区满的时候,应用将进行等待,直到所有的存储器都可以写入,这将导致应用进入阻塞状态,但可以防止数据丢失。在非阻塞状态下,只有适合缓冲区的数据才能被写入,或者没有数据写入缓冲区,其它的数据将被丢弃。这将使应用实时运行,即使不连接调试器也可以。这样开发者就不必创建特定的调试版程序,这些代码可以保留在发布版程序中。







        当RTT在主机上激活时,不管是使用RTT Viewer还是通过Telnet 连接应用,J-Link都会自动在目标已知的RAM区搜索SEGGER RTT 控制块。当不能自动发现控制块时,主机应用可以设置控制块所处的RAM区,从而加速检测。

      左图显示了控制块在目标应用中的简单结构。上传和下行的Buffer可能有多个,每个Buffer的大小都可以单独配置。Buffer中的灰色区域包含了有效数据。对于上传Buffer来说,写指针由目标应用来负责,读指针由调试探针(J-Link,host)来写入。读写指针指向同一位置时,缓冲区为空。这样就不会产生竞争情形。

       SEGGER RTT 除了J-Link及标准调试端口之外,不需要任何额外的引脚或硬件。它不需要对目标板及调试环境进行任何的配置。RTT在程序调试期间也可以运行,不需要其它的开发环境或者调试器。

       SEGGER RTT向外输出数据时非常快,显著高于其它方式。实际运行效果如下:











RTT数据输出到主机端的最大速度取决于目标缓冲区的大小及接口速度。即使目标缓冲区只有512字节,在高端J-Link模式下,RTT速度也可以达到>1 MByte/sec,而基本J-Link模型的速度也有 0.5 MByte/sec。



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

基于商汤科技自研大语言模型的智能编程助手——代码小浣熊Raccoon,即日起全面开放公测。它功能覆盖软件需求分析、架构设计、代码编写、软件测试等环节,满足用户代码编写、数据分析、编程学习等各类需求。

关键字: 大语言模型 代码编写 软件测试

DevEco Testing Hypium通过提供以上测试能力集,有效解决测试开发常见痛点、提升脚本开发效率及开发体验,让HarmonyOS NEXT自动化测试效率有效提升30%。

关键字: 软件测试 HarmonyOS

在这篇文章中,小编将为大家带来人工智能AI的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 人工智能 AI 软件测试

本文中,小编将对人工智能AI予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: AI 人工智能 软件测试

步入高效时代,开发团队要如何在提升速度的同时保证软件质量,从而保证用户体验?答案就测试自动化。

关键字: 软件测试

摘要:针对冷水机组的应用现状,结合高等学校冷水机组的教学实训情况,开发了一套教学与工程并用的冷水机组性能测试实验台,对设备进行性能检测,在计算机控制下实现数据采集与输出,绘制出压缩机性能检测曲线与冷水机组在不同工况下的性...

关键字: 冷水机组 软件测试 性能曲线

摘 要 :为了在早期发现软件里存在的缺陷,文中在对测试技术进行大量研究的技术上,设计了基于武警救援系统的软件测试策略,选取了适合有效的测试方法和测试类型,执行了规范的测试流程,实现了对武警救援系统从单元到系统级别的全面测...

关键字: 软件测试 测试策略 测试过程 缺陷 救援系统

(全球TMT2021年10月21日讯)近日,由中国金融出版社主办的“2021金融业软件测试成果交流会”(以下简称“金测会”)在北京召开。本届会议全面升级为整个金融行业测试人的盛会,正式更名为“金融业软件测试成果交流会”...

关键字: 软件测试

摘要:软件测试是软件开发过程中非常重要的一个环节,直接关系着软件的质量。文中阐述了软件各个开发阶段需要进行的测试,并以B/S结构ERP管理软件为代表,着重介绍了系统实现阶段软件测试的方法,同时简要描述了软件维护阶段测试的...

关键字: 软件测试 ERP软件测试 测试方法 B/S结构

北京2021年10月15日 /美通社/ -- 10月13日,由中国金融出版社主办,中电金信等单位支持的“2021年中国金融业软件测试成果交流会”在京成功举办。中电金信与中国人...

关键字: 软件测试
关闭
关闭