rtt operation用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rtt operation用法相关的知识,希望对你有一定的参考价值。

参考技术A RTT的用户手册中也有介绍到,最上层一套面向嵌入式系统,专门优化过的虚拟文件系统(接口)。通过它,RT-thread操作系统能够适配下层不同的文件系统格式。
在RTT源码文件.\\components\\dfs\\src目录下的dfs_posix.c源文件就是具体实现这些接口的源代码,其共实现了接口有20个与文件目录相关的posix接口函数:chdir 修改工作目录close 关闭一个文件closedir 关闭一个目录fstat 获取一个文件的状态信息getcwd 获取当前的工作目录seek 移动文件滑标操作mkdir 新建一个目录open 打开一个文件opendir 打开一个目录read 从一个打开的文件中读取数据readdir 读取下一个目录节点rename 重命名一个文件rewinddir 重置目录流rmdir 删除一个目录seekdir 与lseek相似,这里操作的是目录,设置目录滑标的位置stat 获取文件相关信息statfs 获取一个挂载的文件系统相关信息telldir 获取当前目录流中滑标的位置unlink 将一个目录从文件系统中移除write 将数据写入文件

RTT 查看器未识别 Segger RTT 控制块

【中文标题】RTT 查看器未识别 Segger RTT 控制块【英文标题】:Segger RTT control block is not identified by RTT viewer 【发布时间】:2020-07-03 15:00:26 【问题描述】:

我正在尝试使用 Segger 的 RTT (Real Time Transfer), 但我无法在 RTT 查看器上看到任何输出。 我怀疑根本原因是 RTT 查看器未识别 RTT 控制块。

设置

主机 PC 使用 Seggers 连接 J-Link 调试器(JTAG 接口)到基于 ARM-CORTEX-M4 的板,如下所示:

[PC] <---- J-Link -----> [ generic CORTEX-M4 board]

我正在努力实现的目标

我正在尝试集成 Segger 特有的 RTT 功能,但我无法在主机 PC 上的 RTT 查看器软件中看到来自 RTT 的打印件

    segger提供的集成代码

    SEGGER_RTT_Conf.h
    SEGGER_RTT_printf.c
    SEGGER-RTT.c
    SEGGER_RTT.h
    

    在我的主文件中包含 SEGGER_RTT.h 并添加了一个调用

    SEGGER_RTT_WriteString(0, "Hello World from SEGGER RTT!\r\n");
    

    main()内。

    使用Eclipse和arm-none-eabi-工具链编译应用程序,以及

    JLINK_GDBserverCL.exe -- 调试服务器 arm-none-eabi-gdb -- 调试客户端 Segger J-Link -- 硬件调试器(连接其 JTAG 接口)

    在主机 PC 上使用 RTT 查看器软件在步骤 #2 中接收打印。

我希望在第 3 步中看到打印,请帮助我继续。

【问题讨论】:

你设置搜索范围了吗?设置RTTSearchRanges 我发现在 JLinkGdbServer 运行时使用 RTT(通过 Segger SysView)非常间歇性地工作( 【参考方案1】:

您需要在调用 JLinkRTTViewer / JLinkRTTClient 时指定要连接的特定设备,或者您需要在 .map 文件中找到“_SEGGER_RTT”的内存地址并将其传递给工具。

【讨论】:

以上是关于rtt operation用法的主要内容,如果未能解决你的问题,请参考以下文章

C++,关于operator的详细总解,(原理和用法)

关于python中的operator.itemgetter()函数的用法

operator 的两种用法

c++ operator 的CONST应用

C++ operator=的问题

OpenCV中operator的隐式类型转换