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.
美好的一天
我有两个应用程序运行在内核0-0 (main)和1-0 (substable)上,并且彼此通信。
从主内核0-0停止内核1-0 (卫星)应用程序的正确方法是什么?
假设在内核1-0停止后、主内核将执行必要的作业、并且整个系统将重新启动。
谢谢!
您好、Volodymyr:
由于两个内核独立运行;我认为没有办法可以从 R5F_0_0中停止 R5F_1_0。 正确的方法是使用 IPC 在两个内核之间同步。 如果 R5F_0_0想要停止/重新启动 R5F_1_0、只需发送 IPC 消息/通知。 R5F_1_0将执行 R5F_0_0要求它执行的任何操作。
请参考 IPC 示例: ipc_notify_echo_am263x-cc_system_freertos_nortos 和
以了解详细信息。
此致、
明
您好、Volodymyr:
根据 AM263x TRM、您可以通过将 R5SS*_CORE*_HALT 寄存器设置为0x7来停止 R5F 内核:
您当然可以尝试它。
此致、
明
你好 Ming
我尝试了这种方法、但没有任何效果。 此外、AM263x TRM 文档指出该寄存器只能写入一次。
不管怎样、我现在决定继续使用依赖于 IPC 消息的解决方案、以通知特定内核停止并执行命令序列:
Hwip_disable ();
_isb();
_dsb();
while (true)__ asm__ volatile ("wfi");
WFI 命令会在 while 循环内保持 、以防止在调试活动期间发生转义。
我已将您的上述建议标记为解决方案。 如果您在我的实施过程中发现任何问题、请随时发表评论。
谢谢!
我试过这种方法,但没有任何效果。 此外、AM263x TRM 文档还指出此寄存器只能写入一次。
您是否检查了寄存器是否已解锁? 您可以使用 SDK API 来执行此操作-
SoC_controlModuleUnlockMMR (SOC_DOMAIN_ID_MAIN、TOP_RCM_PARTIION0);
希望它有所帮助。
此致、
Aakash
尊敬的 Volodymr:
您应该能够使用以下地址从 R5F0_0访问 R5F0_1中的 TCMA 和 B。
此致、
明