4

我正在尝试为 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

我无法解释我会多么感激任何一点洞察力。

谢谢,

斯科特

4

1 回答 1

3

我似乎已经解决了这个问题。中断处理程序中似乎存在不正确的条件,在错误的时间中止了 DMA 传输,甚至从未让传输开始。

一个严肃的“duh”时刻,但要找到它需要付出很大的努力。

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

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

于 2013-07-09T03:41:45.190 回答