Цитата(defunct @ Feb 23 2007, 17:45)

SPI 25Mhz... байты будут поступать с частотой 25Mhz/8 = ~3Mhz. Проц без кеша в среднем работает на частоте 50-60Mhz. В итоге SPI DMA займет (3 / 60) * 100% = 5% шинного времени..
Котроллер DMA займет шину на все время пересылки указаннной ему порции информации. Порцией для
SPI Ethernet является не байт (Нет, Вы конечно можете DMA и побайтно дергать, но накладные расходы првысят все разумные пределы). Одно из решений проблемы я уже поминал - отдельный банк памяти под DMA. Еще один вариант - за SPI стоит не только DMA, но и перед ним FIFO, что позволяет теоретически организовать освобождение шины между накоплениями порций размером с FIFO.
Голый DMA сам по себе в общем случае не блещет эффективностью.