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.

[参考译文] AM62A7:[AM62A7]添加新的 IPC 与 DM R5F 内核侧的 A53内核进行通信时、将发生错误。

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1340604/am62a7-am62a7-an-error-occur-when-add-a-new-ipc-to-communicate-with-a53-core-on-dm-r5f-core-side

器件型号:AM62A7

您好、TI 专家!

我们添加了一个本地 IPC、以便与 DM R5F 内核上的 A53内核通信。

运行"source /opt/vision_apps/vision_apps_init.sh "命令时遇到错误。

登录如下:

before.txt 不添加本地 IPC。

after.txt 添加了本地 IPC。

接收 IPC 任务的优先级设置为3、堆栈大小设置为128 * 1024。

我们可以看到在 foter.txt 中创建了 IPC 通信、并且该通信能够很好地工作。

[MCU1_0] 13.293364 s:rtosIPCMgrInit:初始化...!!
[MCU1_0] 13.293414 s:rtosIPCMgrCreateRpmsgRxLinuxTask
[MCU1_0] 13.293576 s:remote_service:初始化...!!
[MCU1_0] 27.984385 s:[1]从 A53核心 IPC 接收心脏!

但我们看不到远程服务模块的初始化完成日志。

我们可以 在 previous.txt 中看到远程服务模块的初始化完成日志。

[MCU1_0]   13.367020 s:remote_service:初始化...完成!!

e2e.ti.com/.../0167.before.txte2e.ti.com/.../3782.after.txt

我尝试将    appMain 任务的优先级设置为8。 但 APP_INIT()也无法完成运行。

它还会在步骤中停止以初始化远程服务。

[MCU1_0]   13.293576 s:remote_service:初始化...!!

您能帮助我们一起分析一下吗?

谢谢!

此致、

林松庆

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

    您好!

    主题专家不在办公室 、将在下周结束时与您联系。

    此致、
    克鲁纳尔

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

    尊敬的  Krunal:

    谢谢您重播!

    明白了!

    添加新信息:

    我们尝试在 mcu1_0上删除远程服务初始化过程、

    MCU1_0可以运行完成。

    此致、

    林松庆

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

    尊敬的  Songqing Lin:

    我又回来了、这看起来像是一个视觉应用问题、而不是一个"在通用应用中使用 IPC"的问题。 因此、我将把你的线程重新分配给更熟悉视觉应用程序的团队成员。

    请提供有关您所做确切更改的更多详细信息:"我们添加了本地 IPC 以便与 DM R5F 内核上的 A53内核进行通信。"

    此致、

    尼克

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

    您好、 Nick、

    请提供有关您在此处所做确切更改的更多详细信息:"我们添加了本地 IPC,以便在 DM R5F 内核上与 A53内核通信。"

    在 SDK9.1的源代码中、我们可以看到用于 tiovx IPC 的 Endpt、其编号为13。  

    因此、我们需要添加一个新的本地 IPC 直通、其 数量不等于13。

    我们选择一个新的"结束"、其编号为25。 并使用它 通过  RPMessage_building ()和 RPMessage_announce ()创建 IPC 直通。

    宣布之后、我们还会创建一个接收任务、如果接收 IPC 任务的优先级设置为3、堆栈大小设置为128 * 1024。

    此致、

    林松庆

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

    尊敬的  Songqing Lin:

    我是一个 IPC 专家、但我不熟悉视觉应用。 我已将您的线程重新分配给一位更熟悉愿景的团队成员、以便进行评论。

    假设视觉应用中的 IPC 与常规 Linux 应用中的 IPC 工作方式相同、我会看到一些潜在的问题。

    1) Linux RPMsg 驱动程序仅支持发送512字节的数据包,每个消息最多包含496字节的信息(为标头保留16字节)

    2)默认情况下,我们在每个方向设置256个缓冲区(称为 VRNG),总共512个缓冲区,每个缓冲区的大小为512字节。 从理论上讲、应该能够分配较少的缓冲区、但是此时我还没有使其能够使用较少数量的缓冲区。 我首先要分配默认数量的缓冲区。

    3) 3)看起来您正在 R5F 内核上设置多个 RPMsg 端点吗? 我们提供了一个示例、说明如何让多个 RPMsg 端点在这里工作:
    AM62Ax Academy >多核模块>如何使用 RPMsg IPC 进行开发> RPMsg IPC 高级主题>
    如何将多个 RPMsg 端点添加到一个运行 RTOS 的远程内核中?
    https://dev.ti.com/tirex/explore/node?node=A__AUcFeivQIlcT9WsOz3y0VA__AM62A-ACADEMY__WeZ9SsL__LATEST

    有关其他优秀的 RPMsg 资源的链接、请查看同一学院页面的页首:
    https://dev.ti.com/tirex/explore/node?node=A__AUcFeivQIlcT9WsOz3y0VA__AM62A-ACADEMY__WeZ9SsL__LATEST

    此致、

    尼克

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

    您好、 Nick、

    感谢您的回复!

    是的、我们参考了上述 IPC 示例。

    由于我们可以通过新的 IPC 直通与 A53内核通信、因此我认为新的 IPC 直通已成功创建。

    现在我们遇到的问题是、当我们运行新的 IPC 任务时、远程服务任务将被卡住。

    此致、

    林松庆

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

    尊敬的 Songqing:

    您是如何构建应用的? 您能提供更多详细信息吗?

    谢谢你。

    建中市

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

    您好、建中:

    1、向 concerto _mcu1_0_inc.mak 添加新的 IPC 库

    2、 向 vision_apps 添加新的 IPC 源代码

     

    3、在 app_init.c 中调用新的 IPC 初始化函数

    4、构建 SDK。

    此致、

    林松庆

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

    尊敬的 Songqing:

    1) 1)我不熟悉标准 MCU+ SDK 中的 app_init.c 文件。 您能帮助我找到此文件所在的位置吗? 例如、这是固件生成器下载中的内容吗?

    2) 2)请帮助我们了解您在这里要做的事情。 为什么要修改远程内核上的视觉代码?

    此致、

    尼克

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

    您好、 Nick、

    1)我不熟悉我们标准的 MCU+ SDK 中的 app_init.c 文件。 您能帮助我找到此文件所在的位置吗? 例如,这是在固件构建器下载中吗?

    是的、它位于固件构建器包中。  

    app_init.c 的路径是 ti-firmware-builder-am62axx-evm-09_01_00_07/vision_apps/platform/am62a/rtos/common。

    2)请帮助我们了解您想在这里做什么。 为什么要修改远程内核上的视觉代码?

    由于我们在 DM R5F 内核中开发 ISP 功能、因此它将与 A53内核应用进行通信。

    因此、我们还需要开发一个新的 IPC 直通。

    此致、

    林松庆

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

    松青市

    提供固件构建器源仅用于修改系统存储器映射、不支持任何低级驱动程序或源代码更新。 n`t AM62A、DM R5 (设备管理固件和 VPAC 驱动程序及固件构建器)上运行的代码被黑盒化、因此我们不支持任何源代码更新。

    请将更新限制为仅使用系统内存映射。 所需的 IPC 接口和 TIOVX 实现包含在固件构建器的源中、并针对应用开发人员进行抽象化、因此请利用 gstreamer/TIOVX 节点或 TISCI 调用来调用 VPAC 函数或 RM/PM 函数。

    谢谢。此致、

    拉胡尔·帕布胡

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

    尊敬的  Rahul:

    感谢您的回复!

    但是、我们当前的项目需要额外的自开发 ISP、MCU、IPC 以及其他功能。

    如您所说、如果无法更新固件构建器中的驱动程序或代码、

    那么上述职能应在哪里发展?

    此致、

    林松庆

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

    您好,Songqing,

      以下是有关如何 通过 tiovx 框架添加传感器的指南。  https://downloads.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/psdk_rtos/docs/user_guide/developer_notes_image_sensor.html

     请提供反馈、了解其是否符合您的要求。

     如果您已经了解了 IPC 通信问题、还请向我们提供反馈。 我会提前为您提供支持。  谢谢。

    林君

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

    您好 Linjun:

    感谢您的回复!

    可能出现了错误。

    我们可以在 DM R5F 中添加 ISP 节点、并能够正常运行。

    但我们想添加一个新的 IPC 直通、用于与 A53上的模块通信。

    当我们添加新的 IPC 直通时、便会出现问题。

    我们无法看到远程服务模块的初始化完成日志。

    细节如开始时所描述的那样。

    此致、

    林松庆

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

    、您对 Songqing 的 IPC 有什么建议吗?

    谢谢你。

    建中市

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

    您好,Songqing,

    您能否 通过 此处的链接再次确认您添加 A53和 DM R5F 之间的 IPC 的步骤 https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/09_02_00_38/exports/docs/api_guide_am62ax/IPC_GUIDE.html

     我检查了你 所附的日志,没有找到关键字"bagad_server"的源代码, 这些代码由自己添加?

    谢谢。

    林君

     

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

    您好 Linjun:

    是的、我们根据 TI 指南中的示例开发 IPC。

    新 IPC 也可以正常运行、并具有日志功能。 它可以定期接收来自 A53的心脏信息

    但 MCU1_0会在初始化远程服务的步骤中停止。

    我检查了您 连接的日志,但没有找到关键字"bagad_server"的源代码, 这些代码由您自己添加?

    是的、 bagad_server 位于 A53端、并且由我们自己添加。  

    此致、

    林松庆

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

    您好 Linjun:

    添加新信息、

    当我们调用 RPMessage_announce (),然后调用 IpcNotify_syncall (SystemP_WAIT_FOREVER)时;

    它将永远等待。

    因此、MCU1_0无法运行至下一步。

    如果我们未调用  IpcNotify_syncall (SystemP_WAIT_FOREVER);、MCU1_0可以运行到下一步。

    同步永远等待有什么原因吗?

    此致、

    林松庆

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

    尊敬的 Songqing:

       请通过以下脚本转储邮箱寄存器并与我们共享。 谢谢。

       在这种情况下、哪一方不按预期作出响应?

       /cfs-file/__key/communityserver-discussions-components-files/791/AM62A.zip

       谢谢。

    此致、

    林君

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

    尊敬的 Songqing:

       我不知道电话是否解决了问题,请帮助更新状态. 谢谢。

    林君

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

    您好 Linjun:

    感谢您的支持!

    此票证可以关闭。

    此致、

    林松强