Цитата(adnega @ Sep 13 2014, 02:14)

1. DMA и CPU разделяют общие шины.
И что? USB тоже использует внутреннюю шину (да и прочая периферия), это тоже CPU?
Функционирование DMA (после инициализации) и выполнение команд CPU - совершенно разные и асинхронные вещи.
То что они разделяют общий ресурс к делу не относится.
Откройте reference manual или user manual или как там и найдите что такое Core Cortex-M3/M4 и что такое DMA/GPDMA/uDMA или как там в конкретном МК. Везде одинаково.
Цитата(adnega @ Sep 13 2014, 02:14)

2. Инициализация DMA тоже занимает ресурс CPU.
В задаче ТС этот этап делается один раз - при старте ПО (если делать как хочет ТС). Так что - тоже к делу не относится.
Цитата(adnega @ Sep 13 2014, 02:14)

3. Пересылка крошечными блоками не эффективна.
Пересылка малыми блоками в любом случае неэффективна.
Дёрганье в ISR и такая пересылка CPU - ещё менее эффективны чем заранее настроенный DMA в режимах flip-flop, связные списки и т.п.
Цитата(adnega @ Sep 13 2014, 02:14)

4. DMA транзакция может выполняться с задержкой, считая от момента возникновения запроса (больше 12 тактов).
Как ни странно - вход в ISR тоже выполняется с задержкой + ещё и шину грузит.
Цитата(adnega @ Sep 13 2014, 02:14)

DMA хорош только на больших объемах данных, не привязанных строго к тактам.
Это можно сказать о любом методе пересылки любым bus master-ом. Это общее свойство.
Цитата(AHTOXA @ Sep 13 2014, 12:35)

Если вы не в теме, то зачем лезть со своими глупостями? Причём так уверенно, безапелляционно. Вы же так не помогаете топикстартеру, а наоборот, мешаете.
Вот и сейчас: вы, похоже, нервничали, и опять понаписали кучу глупостей.
Вы сейчас говорите о себе? Где это я обижался?
У Вас ни в одном сообщении ни капли полезной информации. Вам по делу нечего сказать.
И не пытался я Вас оскорбить, просто написал, что несёте полную чушь.