Я пытаюсь написать драйвер linux для устройства PCIe - высокоскоростной цифровой карты ввода-вывода Adlink PCIe 7300A.DMA из Linux-пространства ядра на PCIe-карту
Драйвер отлично работает для нормальной передачи данных, но попытка использовать возможности шинирования шины для инициирования передачи DMA буфера из памяти ЦП в выходной буфер FIFO устройства просто не работает.
Я пытался решить эту проблему по порядку недель, а не по порядку дней.
Любое понимание на самом деле действительно будет оценено.
код драйвера - https://github.com/sbrookes/timing_driver_sdarn/blob/master/kernel_land/timing.c
Устройство Datasheet - http://www.acceed.com/manuals/adlink/P7300A%20Manual.PDF
PLX 9080 PCI интерфейс чипа Datasheet - http://www.der-ingo.de/bin/milanhelp/PLX9080.pdf
Я не могу объяснить, насколько я был бы признателен за любую немного понимания.
Спасибо,
Скотт
Этот драйвер ужасно багги по всему, но SO не является правильным сайтом для просмотра кода. В любом случае, какова ценность 'dma_bus_addr'? –
@CL. - Извините, если я загрязняю SO с плохими вопросами. Я не знаю, куда еще повернуть. –
@CL. - Не хотел так скоро это представить ... в любом случае 'dma_virt_addr = pci_alloc_consistent (dev, 20 * 1024, & dma_bus_addr); printk (KERN_DEBUG) dma_bus_addr - 0x% x \ n ", dma_bus_addr);' reports ** dma_bus_addr - 0x2c538000 **, но я не знаю, что каждый раз я загружаю модуль ... Я хочу играть хорошо на этом сайте, скажите, что я могу сделать, чтобы убедиться в этом? Я не могу объяснить, насколько я ценю вашу помощь. Интересует все ошибки, а также «лучшие практики», кстати. Спасибо. –