【发布时间】:2023-03-27 23:15:01
【问题描述】:
我正在尝试研究我的双核 Arm-Cortex 处理器上的各种内核间通信机制。其中一个核心运行裸机应用程序,另一个运行 Linux 操作系统。我刚刚遇到了 remoteproc 框架(rpmsg),我在网上找不到太多信息。我发现的唯一信息是http://lwn.net/Articles/489009/,这很难上手。有没有人可以帮我解决这个问题?
【问题讨论】:
-
您需要一个框架来与 dsp 通信吗? remoteproc 看起来像这样的目的。
-
不,我只有一个裸机应用程序在一个内核上执行实时任务,而另一个内核正在运行 linux。我需要将实时任务中的一些信息传递给另一个运行 linux 的进程。我认为该框架也可以用于此目的。
-
如果两个 CPU 都支持,您可以使用 总线锁定 指令,如
ldrex和strex来实现 lockfree IPC 算法。可能你可以找到这样的框架。如果两个 CPU 都不支持这一点,那么您需要一些其他特定于 SOC 的硬件机制;并非所有 Cortex 芯片都支持strex和ldrex,所以我们需要了解更多。 -
嗨,Artless Noise,您能否推荐一些我应该研究的 IPC 算法或框架。我实际上是在尝试在运行完全不同程序的 2 个内核之间实现 IPC。一个正在运行 linux,另一个正在运行裸机应用程序。我看到这种基于 Remoteproc(rpmsg) 的通信被广泛用于非对称多处理设置中。但是没有多少论文解释了相同的内容以及相同的性能。
-
@artlessnoise
{ldr,str}ex在 IPC 中经常使用,但它的级别太低了,与 Linux 内核中的 remoteproc 模块无关。