我正尝试在AMP模式下运行RedPitaya。
我没有找到太多关于remoteproc驱动程序的信息,以及它在设备树源代码中需要什么类型的条目。我找到了this文档,并将其添加到设备树中,但没有那么幸运地使示例工作。此外,我还发现来自不同来源的remoteproc在设备树节点中有不同的变体,这非常令人困惑。
谁能告诉我在哪里可以阅读更多关于Arm-Cortex-A9的AMP特性,并解释一下remoteproc的dts节点中的一些条目。
发布于 2019-07-06 11:20:17
我是行动组的。我设法在ZedBoard上用PetaLinux运行了一些AMP示例。该过程在Libmetal and OpenAMP User Guide中进行了描述。本文档最重要的部分在上面的链接版本的第32页上,标题为“使用OpenAMP设置PetaLinux”。
有两个步骤,在内核中支持remoteproc和在内核配置中指定远程应用程序的空间。第二步是将remoteproc的设备树节点添加到设备树源。
我制作了一个关于如何做的视频教程,我认为这更好地解释了它。这是链接:Tutorial 07 Asymmetric Multi-Processing on ZedBoard (OpenAMP, remoteproc, petalinux)
我仍然在研究如何编译我自己的应用程序以在AMP模式下运行,因为有一些与内存相关的问题我还没有完全掌握。当我弄清楚答案时,我会更新答案。和平结束吧。Waqar
发布于 2019-05-30 13:30:20
什么不同的来源?你是在说内核源代码吗?设备树节点条目将依赖于内核版本及其实际驱动器,如果在驱动器或内核远程进程子系统中存在改变,则改变。
ZynqQ-7000是一款双核Cortex A9。根据对文档的粗略阅读,所讨论的remoteproc驱动程序假设一个内核运行Linux,另一个内核帮助完成其他实时任务。mmio-sram是here描述的。由于不确定具体的ZynqQ硬件设计,设备树绑定文档谈到了什么。
要理解vring,您需要了解open-amp和Linux中使用的virtio和rpmsg。vring可以被认为是一个环形缓冲区,其中一个缓冲区用于从master发送到Slave,另一个缓冲区用于从slave发送到Master。中断与每个vring相关联,当主机或从机在vring中放置某些内容,然后想要通知另一端时,会引发中断。
在基于Linux的系统中,Linux始终是主系统。对于Zynq来说,由于我们使用的是两个A9,这将是一个处理器间中断。对于像恩智浦的iMX7或Vybrid这样的SoC,中断是由一个单独的外围模块引起的,比如iMX7的消息传递单元。
https://stackoverflow.com/questions/56262900
复制相似问题