Arm 基于remoteproc的核心间通信

Arm 基于remoteproc的核心间通信,arm,ipc,multicore,Arm,Ipc,Multicore,我正在尝试研究我的双核Arm Cortex处理器上的各种核心间通信机制。其中一个核心是运行裸机应用程序,另一个核心是运行Linux操作系统。我刚刚遇到remoteproc框架(rpmsg),在网上找不到太多信息。我发现的唯一信息是,这是非常少开始。有人能帮我吗 我也遇到了同样的问题。我发现了一些额外的资源: 与往常一样,在内核树中创建文档: 提供设计概述的OMAP wiki: 顺便说一句,感谢lwn链接。这很有帮助。因为Xilinx的Zynq SoC还包括2个ARM Cortex-A9内核,

我正在尝试研究我的双核Arm Cortex处理器上的各种核心间通信机制。其中一个核心是运行裸机应用程序,另一个核心是运行Linux操作系统。我刚刚遇到remoteproc框架(rpmsg),在网上找不到太多信息。我发现的唯一信息是,这是非常少开始。有人能帮我吗

我也遇到了同样的问题。我发现了一些额外的资源:

  • 与往常一样,在内核树中创建文档:

  • 提供设计概述的OMAP wiki:


  • 顺便说一句,感谢lwn链接。这很有帮助。

    因为Xilinx的Zynq SoC还包括2个ARM Cortex-A9内核,他们发布了一份应用说明,其中他们让Linux内核通过remoteproc/rpmsg与FreeRTOS系统通信。您可以在此处找到该文档:

    虽然文档非常具体,但您可能能够提取一些信息。您可以在此处下载源代码:(需要Xilinx帐户)。可以将*.bsp文件重命名为*.tar.gz,然后可以提取该文件


    如果您有任何进一步的问题,请毫不犹豫地提问。

    您是否需要一个框架来与dsp通信?remoteproc看起来就是为了这个目的。不,我只有一个纯金属应用程序在一个内核上执行实时任务,而另一个内核运行linux。我需要将实时任务中的一些信息传递给另一个运行linux的进程。我认为该框架也可以用于此目的。如果两个CPU都支持,您可以使用总线锁定指令,如
    ldrex
    strex
    来实现IPC算法。您可能会找到这样的框架。如果两个CPU都不支持这一点,那么您需要一些特定于SOC的其他硬件机制;并不是所有的Cortex芯片都支持strex和ldrex,所以我们需要了解更多。Hi Artless Noise,你能推荐一些我应该研究的IPC算法或框架吗。实际上,我正在尝试在运行完全不同程序的两个内核之间实现IPC。一个运行linux,另一个运行裸机应用程序。我看到这种基于Remoteproc(rpmsg)的通信被广泛应用于非对称多处理设置中。但是没有太多的文章来解释这一点,也没有太多的文章来解释它的性能。@artlessnoise
    {ldr,str}ex
    在IPC中经常使用,但它的级别太低,与Linux内核中的remoteproc模块无关。