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.

[参考译文] PROCESSOR-SDK-AM64X:AM6422:RPMsg -从 A53 Linux 到 R5 FreeRTOS 的连续消息导致 R5进入数据中止异常

Guru**** 2482225 points
Other Parts Discussed in Thread: AM6422

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1439597/processor-sdk-am64x-am6422-rpmsg---continuous-messages-from-a53-linux-to-r5-freertos-lead-to-r5-enter-data-abort-exception

器件型号:PROCESSOR-SDK-AM64X
主题中讨论的其他器件:AM6422

工具与软件:

尊敬的 TI 专家:

我使用的是基于 AM6422的定制电路板。 基于 SDK 09.02.00.08的 Linux 和基于09_02_01_05的 MCU SDK。

我做了一些关于从 A53 Linux 到 R5 FreeRTOS 的 RPMsg 的测试。 我 在 Linux 端使用了 rpmsg_char_simple、在 R5 FreeRTOS 端使用了带传输 RPMsg 代码的空工程。

我将 rpmsg_char_simple 更改为每1连续发送 rpmsg(长度为8字节)、R5端的项目 永远执行 RPMessage_recv ()。  几十秒后、R5侧将进入数据中止异常。

以下是 Linux 端的控制台输出:

和 CCS 调试信息:

如何检测 R5侧 RPMSG 使用中是否存在内存泄漏? 是否有任何工具可以检查 R5 FreeRTOS 的内存泄漏?

此致

xixiguo

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

    尊敬的西西西国:

    感谢您的提问。

    [quote userid="206269" url="~/support/processors-group/processors/f/processors-forum/1439597/processor-sdk-am64x-am6422-rpmsg---continuous-messages-from-a53-linux-to-r5-freertos-lead-to-r5-enter-data-abort-exception 几十秒后、R5端将输入数据中止异常。

    通常、当您尝试访问无效或不具有读取/写入权限的存储器时、会出现数据中止异常。

    您能否签入代码是否在使用此类内存位置? 或者、您能否与我们分享该代码?

    此致、

    Tushar

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

    尊敬的 Tushar:

    bellow 是我的 empty.c 和 main.c ,用于接收 RPMsg ,

    e2e.ti.com/.../0488.empty.c

    e2e.ti.com/.../1643.main.c

    e2e.ti.com/.../example.syscfg.c

    我无法在此直接插入 example.syscfg、因此将其命名为 exmple.syscfg.c、请将其重命名为 example.syscfg。

    此致

    xixiguo

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

    尊敬的 Tushar:

    我想我发现了出现此问题的原因。

    我使用了 CCS12.1.0和 TI Clang v3.2.2.LTS

    我发现我的 empty.c 代码中存在错误、但编译器或 CCS 未在"重建后的说明"中显示该错误。

    #define IPC_RPMESSAGE_NUM_RECV_TASKS         (1u) 
    
    ...
    
    TaskP_Object gIpcTask[IPC_RPMESSAGE_NUM_RECV_TASKS];
    
    ...
    
    status = TaskP_construct(&gIpcTask[1], &taskParams);

    HERE  STATUS = TaskP_CONFIGURATION (&gIpcTask[1]、&taskParams);错误、应该是  status = TaskP_CONFIRM (&gIpcTask[0]、&taskParams);

    但是、在"重建"之后、我无法在"说明"中看到它、  

    如果我使用了  status = TaskP_built (&G IpcTask[2]、&taskParams); 我可以在 Description 中看到警告、

    此致

    xixiguo

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

    嗨、xixiguo:

    感谢您发送编修。

    关闭螺纹。

    此致、

    Tushar

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

    尊敬的 Tushar:

    谢谢、我想知道 CCS 或编译器何时会解决此问题。

    此致

    xixiguo

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

    尊敬的 Xixgu:

    我将把您的查询发送给 CCS 团队以进行进一步更新。

    此致、

    Tushar

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

    xixigo、

    对于消息未出现的情况和出现的情况、您能否在编译控制台中提供所有输出? 您可以将输出复制并传递到文本文件、然后将其附加到此主题

    谢谢

    Ki

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

    尊敬的 Ki:

    构建控制台的两个输出、

    e2e.ti.com/.../no_2D00_warning_2D00_about_2D00_Warray_2D00_bounds.txte2e.ti.com/.../has_2D00_warning_2D00_Warray_2D00_bounds.txt

    此致

    xixiguo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此处 状态= TaskP_building (&gIpcTask[1]、&taskParams);错误、应该是  status = TaskP_built (&gIpcTask[0]、&taskParams);

    虽然我无法确定、但我有信心 glpcTask[1] glpcTask[0] 都是有效的表达式。  在这种情况下、编译器无法帮助您找到该特定错误。

    谢谢。此致、

    -George.

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

    您好、George:

    谢谢、但我无法理解  glpcTask  数组只有一个定义如下、的元素

    #define IPC_RPMESSAGE_NUM_RECV_TASKS      (1U)  

    TaskP_Object gIpcTask[IPC_RPMSSAGE_NUM_RECV_TASKS]

     glpcTask[1] 是否应为无效表达式?

    此致

    xixiguo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
      glpcTask[1]是否 应为无效表达式?

    但在这种情况下、编译器不需要发出诊断。  在更简单的情况下、tiarmclang 编译器会发出诊断。  但在您的情况下不是这样。  我不知道为什么。  我不想问一个测试用例。  因为、虽然我不确定、但我怀疑、一旦我们理解了你为什么看不到诊断、结果就会发现更改编译器来检测你的情况非常困难。  我想避免这种印象可以轻松修复。

    谢谢。此致、

    -George.

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

    好的、如果有任何与此相关的更新、请告诉我。

    BR

    xixiguo

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

    我没想到我给人留下了 TI 计划做进一步事情的印象。  虽然没有进行完整的调查、但我很有信心、我们只能为这一特定案例提供很少的帮助。  您是否认为应进一步调查此问题?

    谢谢。此致、

    -George.

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

    您好、George:

    我认为应该进一步调查。 如果 在这种情况下它不应该是编译器来发出诊断、请将其路由到您认为它所属的团队。

    或者、我应该在其他任何地方创建一个其他问题吗?

    BR

    xixiguo

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

    具有无效引用的源文件的文件夹 gIpcTask[1] 、并且构建时不会发出诊断、 请按照 如何提交编译器测试用例一文中的说明进行操作。

    谢谢。此致、

    -George.

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

    好的、谢谢。

    BR

    xixiguo