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

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.
您好、
感谢您分享日志。
查看时间戳、当 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:
rmmod rpmsg_client_sample
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