我正在尝试为PCIe设备- Adlink PCIe 7300A高速数字IO卡编写一个linux驱动程序。
对于正常的内存传输,驱动程序工作得很好,但尝试使用卡的总线主控功能启动从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
PLX9080PCI接口芯片数据表-- http://www.der-ingo.de/bin/milanhelp/PLX9080.pdf
我无法解释我有多感激任何一点的洞察力。
谢谢,
史考特
发布于 2013-07-09 11:41:45
我似乎已经解决了这个问题。中断处理程序中似乎有一个错误的条件,它在错误的时间中止DMA传输,甚至从未让传输开始。
一个严肃的“废话”时刻,但它花了很大的努力才找到它。
根据评论,如果我的绝望污染了我,我很抱歉。还在学习如何做一个好公民。
不确定上面链接的代码是否会在我的项目更改时保持不变,或者该链接是否会反映最新版本。基本上,只需小心不要在错误的时间中止您的传输。
https://stackoverflow.com/questions/17495971
复制相似问题