Здравствуйте. Есть проблема при использовании режима DMA в PCI9056 (плата разработана самостоятельно).
После запуска драйвером (драйвер написан самостоятельно) трансфера DMA, иногда (1 из ~1000) по неизвестной причине DMA останавливается. Бит "DMA Channel 0 Done" регистра DMACSR0 (стр. 329 PCI 9056BA Data Book), который после окончания DMA должен установиться в 1, почему-то после такого останова равен 0 (то есть DMA не завершен). После выполнения принудительного "аборта" (запись 0->"DMA Channel 0 Enable" и запись 1->"DMA Channel 0 Abort") ситуация нормализуется и DMA можно запускать снова.
Не сталкивались ли кто с подобной проблемой? Может ли проблема быть в обвязке PCI9056?
|