如何与PCI设备共享用户空间静态内存?

时间:2013-07-21 10:53:58

标签: fortran shared-memory device-driver dma fortran-common-block

上下文

嗨,我正在将一台古老的1977飞行模拟器程序从SEL计算机移植到Windows 7 x64 PC系统。该程序是用Fortran编写的500.000行,具有可在所有模块中访问的大/公共/内存块。此内存是静态分配的。

此外,在我的问题开始时,还有一个硬件设备,用于使用DMA访问/ common / block。我们已成功将硬件设备移植到FPGA PCI设备,为其编写了设备驱动程序,并且DMA运行良好。

问题:

我想与PCI设备共享Fortran应用程序的静态内存。

可能的解决方案

我考虑过的事情:

  • 在驱动程序中分配内存,并将用户空间Fortran公共块重新映射到该区域。

  • 锁定物理内存中的用户空间公共块,并告诉PCI设备读/写的位置。

我的偏好是第一选择,因为这样可以避免生命问题。到目前为止,我还没有找到可接受的解决方案您可以与我分享的任何提示吗?

亨克。

注意:我们可以完全控制硬件和驱动程序,因为我们自己构建了它,因此异国情调的想法也可能有所帮助......

0 个答案:

没有答案