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.

[参考译文] AM625:关于 Am625 rpmsg

Guru**** 2847400 points

Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1632905/am625-about-am625-rpmsg

器件型号: AM625

你(们)好

 大家好、我的 AM62 在从 MCU_GPIO0_12 接收到低电平信号后、保留了内核 SoM 板的电源、以便在关断之前执行记录数据的操作。 但是、其他触发器偶尔会导致我的应用程序执行出现延迟和中断、如图片中的日志所示。 rpmsc_client 的操作是什么? 我没有 MCU 程序、我禁用这部分内容或降低优先级。

 

rpmsg_client.png

 

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

    您好、

    感谢您分享日志。

    查看时间戳、当 MCU_GPIO0_12 变为低电平并且按预期调用 CAL_AppSaveAllRetainAreas 时、CODESYS 关断序列正在正确触发。 这个问题是发生在同一时间—在时间戳 79.643 和 79.663 之间,内核被击中来自 rpmsg_client_sample 的 100 条快速触发消息,所有填充到大约 20 毫秒,并在您的保存操作的中间交错。

    rpmsg_client_sample 实际是做什么的呢? AM625 有两个内核同时运行:一个是运行 Linux/CODESYS 应用程序的 A53、另一个是后台运行 TI 默认 SDK 演示固件的 M4F 内核。 该固件在每次启动时都会自动向 Linux 端发送 100 条乒乓消息、以验证处理器间通信是否正常工作、而 rpmsg_client_sample 是响应这些消息的 Linux 内核驱动程序。 每条消息在 A53 上触发一个硬件中断、导致 Linux 停止、处理该消息、写一条日志行、并连续恢复一百次。

    若要解决此问题、由于您没有 MCU 固件、最干净的方法是删除 Linux 端的 rpmsg_client_sample:

    • 删除 rpmsg_client_sample — 。
      rmmod rpmsg_client_sample
    • 如果 CODESYS 应用程序中未使用 M4F 内核、请完全停止它:
      echo stop > /sys/class/remoteproc/remoteproc0/state

    有关平稳关断的更多信息、请参阅多核 Academy 页面 — AM62x 上的正常关断

    此致、
    Harshith

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

    嗨、Harshith

    我感谢你的答复、但我仍有一些问题:

    1、我已禁用这两个驱动程序(rpmsg_client_sample)virtio_rpmsg_bus、。 我没有 M-CORE 计划、也没有进行远程核心测试。 为什么要进行此驱动程序测试? 这是因为系统立即关闭吗?

    2 μ s 在、中、我将使用 M 内核、rpmsgchar_init、rpmsg_char_open、读写来与 M 内核通信。 在 rmmod 中直接使用两个驱动程序是否会产生任何影响?

    此致

    好的

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

    您好、

    感谢您提出后续问题。

    1、我禁用了这两个驱动程序(rpmsg_client_sample)virtio_rpmsg_bus、。 我没有 M-CORE 计划、也没有进行远程核心测试。 为什么要进行此驱动程序测试? 是因为系统立即关闭了吗?

    即使没有您自己的 M4F 代码、TI SDK 也包含一个预构建的默认 IPC 演示固件 (am62-mcu-m4f0_0-fw)、该固件在启动时由 Remoteproc systemd 服务自动加载、这就是会触发 100 条乒乓消息的原因。 要完全停止此操作、请执行以下操作:

    systemctl disable remoteproc

    2、在下面、我将使用 M 内核 rpmsgchar_init、rpmsg_char_open、读写与 M 内核通信。 在 rmmod 中直接使用两个驱动程序是否会产生任何影响?

    由于您计划使用 rpmsg_char 与 M4F 通信、因此请记住 virtio_rpmsg_bus 是 rpmsg_char 也依赖的底层传输—因此如果您删除了它、则在使用 rpmsg_char 之前需要重新加载它。 只有 rpmsg_client_sample 是安全的。

    此致、
    Harshith