[X]关闭

PCIE的中断如何与上位机进行交互的?

文档创建者:黄亮瑜
浏览次数:7469
最后更新:2019-10-23
问题1:xdma的IP核的 usr_irq_reg=1 后,PC端是通过哪个函数来获取这个信号的?
问题2:手册上说 usr_irq_reg=1 后,如果 usr_irq_ack =1 则 usr_irq_reg=0。如何让PC产生usr_irq_ack =1这个信号?

问题3:FPGA有一段数据写入到DDR3之后,需要让PC来读取,要如何通知PC ?用中断 ?

问题4:PC有一段数据要写入FPGA,如何通知FPGA,“我要写”,或者“我已经写完”?

发表评论已发布 3

uisrc

发表于 2019-10-23 09:06:57 | 显示全部楼层

1、XDMA已经封装了PCIE的中断,usr_irq_reg=1就会触发PCIE中断,驱动程序里面会处理这个中断,目前的XDMA没有提供回调,所以只能开线程一直访问中断事件,判断中断是否产生
2、FPGA写入一段数据后,可以设置一个中断,但是对于XDMA来说,中断只有1个信号,如果多个中断触发,可能会不能知道DDR的地址空间。建议由2种处理方式:
1)、数据突发间隔时间长的只要每次中断后读取FPGA DDR地址空间数据就可以
2)、数据量大速度快的,可以采用中断+AXI-lite寄存器的方式,中断后读取AXI-lite寄存器的内存片区计数器,读取对应的DDR空间数据。
越努力越幸运!加油!

黄亮瑜

发表于 2019-10-23 21:16:30 | 显示全部楼层

本帖最后由 黄亮瑜 于 2019-10-23 21:23 编辑
msxbo 发表于 2019-10-23 09:06
1、XDMA已经封装了PCIE的中断,usr_irq_reg=1就会触发PCIE中断,驱动程序里面会处理这个中断,目前的XDMA没 ...

感谢您的回复,我还有一些疑问:例程:CH08_IMAGE_PRJ 里面的上位机

如果没有收到中断是否会卡在 wait_for_s2mm_intr();  直到收到中断才会执行下去?
就是会读不出来?


如果要让xdma的 usr_irq_ack 输出0和1 上位机要调用哪个函数?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

uisrc

发表于 2019-10-23 21:35:08 | 显示全部楼层

1、会一直等待中断到来,你可以看下wait_for_s2mm_intr();这个函数里面的内容,是一直在访问中断事件
2、没有 0 和1  只有上升沿 中断,具体的可以看XDMA的datasheet
越努力越幸运!加油!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则