|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
使用的altera PCIE 的官方例程链式chaining DMA ,底层约束一个链表上的描述符最大为256个,在上位机开发驱动层用的是winDriver,为每个描述符对应的数据分配内存时只能分配一个内存的页,就是4KB,这样的话,每次发起一次链式DMA,能传的数据最大是256*4KB = 1MB,这样的话太小了,如果要传多一点的数据,就要发起很多次DMA。发起DMA这个过程是由上位机做的,需要先准备链表,再写DMA控制寄存器来启动。这样效率真的很低。
不知道是我哪里理解错了,还是由其他的工作方法。还请用过这个例程的大牛指点指点。
上层开发不是我做的,我看了部分winDriver的API,再准备链表这个阶段,用的是WDC_DMASGbufLock这个函数,好像是一个描述符只能锁定一个4KB的页,不知道这是不是可以实现的更大。
如果大牛做过xilinx的链式DMA的应用,请指点一下在描述符和每一个描述符对应的数据亮是什么情况。谢谢嘞 |
|