Цитата(vadimuzzz @ Nov 6 2010, 18:25)

переполниться может память, в которую sgdma пишет. если eop не придет, sgdma будет писать до посинения
ВООООТ! А я как раз дошел до программирования дескрипторов.

Мне надо записать-то фиксированное количество байт, EOP,как я говорил у меня нет. Я просто в construct_stream_to_mem_desc указываю конкретное количество
Цитата
length_or_eop—the number of bytes for the transfer. If set to zero (0x0), the transfer continues
until an EOP signal is received from the Avalon-ST interface.
Вопрос остался такой: как сделать такой дескриптор (последний), чтоб дма после него остановился?
До этого делал дескрипторы для LCD - там-то такого вопроса не возникало, там останавливать дма не надо.
UPD: Вопрос по дескрипторам снимается, оказывается процедуры dma сами ставят бит OWNED_BY_HW (что-то такое) в первых дескрипторах - 1, в последнем -0, что означает, что descriptor chain закончился.
Запустил дма для АЦП! На первый взгляд работает!!!
Прокоментируйте если не сложно рисунок сигнал тапа - работа dma. первая строчка - адрес записи слова из дма, вторая - данные записи, третья - входные данные дма, четвертая - строб записи дма(если я правильно понял - это сигнал m_write_write). Клок тапа - 80 МГц, клок АЦП - 4 МГц.
Вопросы такие:
1. Похоже что фифо для дма отдельно не нужен? Там свой фифо в компоненте дма на 128 байт.
2. Правильно я понял, слово как только приходит с АЦП почти сразу уходит в память?
3. Что за затягивание сигнала записи (обозначено квадратиком)? Связано с тем что шина занята?
Спасибо за ответы!