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.

[参考译文] AM2432:R5F0_0中读取的 R5F0_0日志部分缺失

Guru**** 2455360 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1496193/am2432-r5f1_0-log-partially-missing-read-from-r5f0_0

器件型号:AM2432

工具与软件:

尊敬的 TI 专家:

客户正在使用 SDK9.2。

他们发现、 R5F0_0只能读取部分写入共享存储器的 R5F1_0日志。 它们的日志仅包含多行、小于编码中的最大值2KB。

源代码的详细信息后再进行了解  DebugP_shmLogReaderGetString (R5F0_0的对数读取器功能)、和  DebugP_shmLogWriterPutLine (R5F1_0的日志编写器功能)、以下两个问题可能导致此问题。

1: 无锁定和解锁/资源互斥机制

与 Jacinto 器件中的应用手册一样、理论相同、其他内核将日志写入共享存储器、而内核读取日志并打印。 我们可以在下面的编码中看到锁定保护。

https://www.ti.com/lit/pdf/spradg5

appLogWrLock 是其他内核写入共享存储器之前使用的函数。

2: 中缺少易失性  DebugP_shmLogReaderGetString

我们可以在中看到  DebugP_shmLogWriterPutLine 、 wr_idx、rd_idx 具有使用 volatile 的保护、如下所示。

不过、在中  DebugP_shmLogReaderGetString 、  wr_idx、rd_idx 不再具有如下所示的保护 volatile。

我们担心阅读器函数可能会读取过时的 wr_idx,导致错误计算缓冲区的剩余空间,从而跳过新写入的日志 。 同样、Writer 更新 wr_idx 后、阅读器可能无法感知最新值、从而导致未读日志。

您能否帮助检查是否有人建议修改上述两点?

谢谢!

Kevin

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

    Kevin 老师、您好!

    我正在查看您的问题,您可能希望在一两天内得到回复。

    此致、

    Anil。