reply for “谁枫而飘”:是的,(先申明数据从板卡到主机为写操作,反之为读操作)FPGA准备好了写回PC的数据后,发出中断,并且把BAR0的中断状态寄存器的“写开始中断”标志位拉高,,,驱动收到中断后,清理中断,并且PIO读中断状态寄存器,断言写开始中断后进入DMA写服务程序,配置一系列关于DMA写的参数包括写地址,写大小,写个数等,最后驱动通过PIO写往BAR0的控制状态寄存器的写开始标志位拉高,,,硬件检测到写开始为1时就会开始封装DMA写请求包
reply for “谁枫而飘”:是的呢,FPGA硬件发出写开始中断(发送模块有个专门发送中断的子模块,里边就是cfg_interrupt_*系列中断时序信号)的同时,将mwr_start_interrupt信号拉高并且把此信号拉入到中断状态寄存器的某一位(暂且定义为“写开始中断”标志位),这样驱动收到中断后,PIO读中断状态寄存器的值,断言这一位为1,表示要开始DMA写