在 H2C 流程示例中,loaddriver.sh 会为所有可用通道加载器件。dma_to_device 用户程序用于将数据从主机传输到卡。
H2C 流程示例顺序如下:
- 打开 H2C 器件并初始化 DMA。
- 用户程序会读取数据文件、分配缓冲器指针并将该指针随特定器件 (H2C) 和数据大小一起传递到写入函数。
- 驱动程序会基于输入数据/大小创建描述符,并以描述符起始地址和任何相邻描述符(如有)来初始化 DMA。
- 驱动程序写入控制寄存器,以启动 DMA 传输。
- DMA 从主机读取描述符,并开始处理每个描述符。
- DMA 从主机提取数据并将数据发送至用户侧。基于设置完成所有数据的传输后,DMA 会向主机生成中断。
- ISR 驱动程序会处理中断以确定正在发送中断的引擎,并检查状态以查看是否存在任何错误。它还会检查正在处理的描述符数量。
- 状态正常后,驱动会将传输字节长度返回至用户侧,以便在用户侧执行相同的检查。