繁体   English   中英

从Linux内核空间到PCIe卡的DMA

[英]DMA from Linux kernel-space to PCIe card

我正在尝试为PCIe设备编写一个Linux驱动程序--Adlink PCIe 7300A高速数字IO卡。

驱动程序适用于正常的内存传输,但尝试使用卡的总线主控功能来启动缓冲区从CPU内存到设备输出FIFO缓冲区的DMA传输根本不起作用。

我一直试图在几周的时间内解决这个问题,而不是几天。

任何见解都真的非常值得赞赏。

驱动程序代码 - https://github.com/sbrookes/timing_driver_sdarn/blob/master/kernel_land/timing.c

设备数据表 - http://www.acceed.com/manuals/adlink/P7300A%20Manual.PDF

PLX 9080 PCI接口芯片数据表 - http://www.der-ingo.de/bin/milanhelp/PLX9080.pdf

我无法解释我多么欣赏任何洞察力。

谢谢,

斯科特

我好像已经解决了这个问题。 看起来中断处理程序中的错误条件是在错误的时间中止DMA传输,从不让转移开始。

一个严肃的“呃”时刻,但找到它需要认真的努力。

根据评论,抱歉,如果我绝望地污染了SO。 还在学习如何成为一个好公民。

不确定上面链接的代码是否会在我的项目更改时保持静态,或者该链接是否会反映最新版本。 基本上要小心,不要在错误的时间中止您的转移。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM