2013-07-05 3 views
2

Я пытаюсь написать драйвер 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

Я не могу объяснить, насколько я был бы признателен за любую немного понимания.

Спасибо,

Скотт

+0

Этот драйвер ужасно багги по всему, но SO не является правильным сайтом для просмотра кода. В любом случае, какова ценность 'dma_bus_addr'? –

+0

@CL. - Извините, если я загрязняю SO с плохими вопросами. Я не знаю, куда еще повернуть. –

+0

@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 **, но я не знаю, что каждый раз я загружаю модуль ... Я хочу играть хорошо на этом сайте, скажите, что я могу сделать, чтобы убедиться в этом? Я не могу объяснить, насколько я ценю вашу помощь. Интересует все ошибки, а также «лучшие практики», кстати. Спасибо. –

ответ

2

Я, кажется, решить эту проблему. Похоже, в обработчике прерываний было неправильное условие, которое прерывало передачу DMA в неподходящее время, никогда не позволяя передаче даже начать.

Серьезный момент «духа», но для его поиска потребовалась серьезная борьба.

Согласно комментариям, извините, если я загрязнил SO своим отчаянием. Все еще учиться быть хорошим гражданином.

Не уверен, что код, связанный выше, останется статичным при изменении моего проекта или будет ли эта ссылка соответствовать самой последней версии. В основном, будьте осторожны, чтобы не прерывать передачу в неподходящее время.

 Смежные вопросы

  • Нет связанных вопросов^_^