我有一台 GigE 相机。我正在使用 Zynq 板。现在使用 linux 编程,我对 Zynq 处理器的 PS 部分进行编程并捕获视频,现在我有了具有捕获图像数据的 imagebuffer 变量。我想使用 AXI 接口将数据从 PS 传输到 PL 部分我可能会使用 AXI_VDMA 互连,问题是 Imagebuffer 存储在内存中的哪个位置,以便我可以将它带到 Zynq 中的 PL 部分。
这是 Zynq 处理器的图像。
通常,CPU 使用内核或用户空间虚拟地址访问视频图像缓冲区。可编程逻辑使用物理地址,因此您需要将虚拟地址转换为物理地址并配置 AXI_VDMA 以使用该地址。
在 Linux 内核中有一个用于 xilinx_axi_vdma 的设备驱动程序,它使用 dma-mapping 来解决虚拟/物理映射问题。
有关如何使用它的更多详细信息,请参阅XAPP792:及其相应的参考设计。