This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/66AK2H12:LoggerBuf 使用问题

Guru**** 2577385 points
Other Parts Discussed in Thread: SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/627327/rtos-66ak2h12-loggerbuf-usage-questions

器件型号:66AK2H12
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

SYS/BIOS 6.50、XDCtools 3.50、CCS 7.2

我使用 的是 xdc.runtime.Log 和 xdc.runtime.LoggerBuf。 使用 ROV Classic、我可以看到我的日志信息/警告/错误按预期显示、但我有几个问题;

1) 1)我是否使用了正确的封装?

2) 2)目前我们不使用 SMP、但我看到有一个等效的软件包: TI.SYSBIOS.SMP.LoggerBuf。 如果我们转向 SMP、我需要切换吗?  

3) 3)我认为我可以使用 LoggerBuf_enable()和 LoggerBuf_disable()通过我的应用程序打开和关闭日志记录,并且禁用后,对资源和性能的影响极小。 但是、如果我只想禁用信息级别日志记录、我不清楚如何执行该操作。 我看到了过滤器和掩码、但我不清楚它们与信息/警告/错误级别的关系。

4) 4)我希望能够通过应用程序代码读取日志条目并将其解码/呈现为文本。 我看到 LoggerBuf_getNextEntry()。 不幸的是、它会清除事件(我更希望不发生)、并且它们不按时间顺序显示(我认为它们在 ROV Classic 中按顺序显示?)  使用该调用获取 Log_EventRec 后、是否有直接将事件呈现为文本的方法? 我看到 Log_doPrint(),但它使用 System_printf。 我正在尝试填充一个本地缓冲区。

目标是能够控制日志记录并在部署后通过串行链路或 TCP 查看记录的事件。

Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike:

    我已将您的疑问转发给 TI-RTOS 专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mike、

    您是否了解过 UIA 记录器? 这与 CCS 的系统分析器集成在一起。 有几种不同类型的记录器(例如 LoggerIdle),它们调用用户指定的回调,以允许用户将日志记录从某些外设等发送出去

    下载页面如下: e2e.ti.com/.../627355

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好。 我没有查看过 UIA 记录器。 此时我并不担心与 CCS 系统分析器的集成(老实说、目前不知道这是什么)、而是更关注部署后、在部署后、我的客户将在串行端口上有一个终端。 我的应用程序将有一个菜单驱动系统、用于通过串行链路与用户交互。 我希望能够打开/关闭日志记录并查询通过此任务记录的数据。 我想知道 xdc.runtime.LoggerBuf 是否支持这一点。 您认为是或否? 也许吧? UIA 记录器会给我这个吗?
    此致、
    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike:

    如果您没有在寻找系统分析器集成、LoggerBuf 将为您提供帮助。 您可以启用/禁用它们。 您可以使用 LoggerBuf_getNextEntry 获取记录并将其发送到串行端口(或任何其他端口)。 然后、您需要在主机上对它们进行解码、因为它们只是二进制记录、而不是 ASCII 记录。

    您可以使用 Log_doPrint 对目标上的日志记录进行解码。 该 API 使用 System_printf、不过您也可以将其路由到串行端口。 注意:LoggerBuf_flush 对内部缓冲区中的所有记录调用 Log_doPrint。

    Todd