使用Linux在处理器之间共享连续的RAM

时间:2017-10-09 12:00:09

标签: linux linux-kernel embedded driver shared-memory

我正在与赛灵思的Zynq 7合作。在Zynq上有一个FPGA,一个ARM处理器和512 MiB的DDR RAM。当电路板上电时,ARM处理器启动Ubuntu,它初始化DDR RAM并声称它是自己的。在FPGA上,我正在开发另一个处理器,我想给它一块DDR内存。由于我还在开发中,我想以某种方式从linux用户空间分配一块64 MiB的连续DDR RAM(该设备有一个MMU)。然后,我将获得这块RAM的起始地址,将其传递给FPGA处理器,它可以使用它。虽然它适用于它,但我可以在Ubuntu中检查同一程序中的一切是否正常。

问题是Linux方面的问题,这会是一个好方法吗?

这是我自己收集的内容: 我读了一下cma,我注意到Ubuntu实例已经在启动时分配了128 MiB的cma RAM。因此,我认为最好的方法是找到或开发一个驱动程序,它需要一些RAM并“锁定”它,以便操作系统不会将其发送给其他程序。然后我仍然需要一种从用户空间访问它的方法。这是正确的思考轨道吗?

0 个答案:

没有答案