PCIE EP 通过DMA 通过post write 方式写data 到 Host ddr,在DMA done 时,软件如何确认 data 已经写到host memory了呢?
时间: 2024-03-29 09:37:20 浏览: 258
基于Xilinx_PCIe_Core的DMA设计.rar_PCIE DMA_XILINX PCIE_XILINX_DMA_dm
5星 · 资源好评率100%
在 PCIE EP 通过 DMA 发送 Post-Write TLP 将数据写入 Host DDR 时,可以使用以下两种方式来确认数据已经写入 Host Memory:
1. 使用 DMA 完成中断:当 DMA 完成时,PCIE EP 可以触发一个 DMA 完成中断。在中断处理程序中,可以检查 DMA 的状态寄存器以确认数据已经成功写入 Host DDR。
2. 使用 Completion TLP:PCIE EP 可以在将数据写入 Host DDR 后,向 Host 发送一个 Completion TLP 以确认数据已经成功写入 Host DDR。Host 可以通过检查 Completion TLP 来确认数据已经成功写入 Host DDR。
需要注意的是,使用 Post-Write TLP 写入数据时,需要在 TLP 的头部指定一个有效的 DMA 内存地址和大小。这样,PCIE EP 才能将数据写入正确的 Host DDR 地址,并且可以在 DMA 完成时,正确地通知 Host 数据已经写入完成。
此外,需要注意的是,Post-Write TLP 是无需响应的数据包,因此 Host 不会向 PCIE EP 发送 ACK 或 NAK 等响应。因此,如果使用 Post-Write TLP 写入数据,需要确保写入数据的正确性和完整性。
阅读全文