Не..., у современного DMA гораздо больше и разнообразнее функции. Во первых сразу надо понять, что у разных uC DMA может иметь очень разные возможности.
Во вторых, с чем DMA работает а с чем нет надо смотреть в datasheet-е на конкретный чип.
С периферией DMA работает если в периферии есть интерфейс к DMA.
DMA не обязательно работает быстрее memcpy. Я чаще видел обратное.
DMA, конечно, разгружает процессор. Но не факт, что разгрузка будет значительной.
Гораздо интереснее такие фишки DMA как 2D пересылки, цепочечные и пересылки по требованию от периферии.
2D пересылки требуются при приеме видео стримов разных форматов, цепочечные когда идет прием пакетных данных.
По требованию от периферии полезно когда uC работает с периферией в режиме слэйва.
Например, аудиокодек формирует импульс фрейма точно когда ему нужен следующий отсчет. Мы запускаем на кодек DMA и не заботимся с какой частотой выборки работает кодек. DMA сам обслужит кодек и вовремя отправит ему все данные. А мы тем временем по другому каналу DMA читаем с SD карты блок аудиофайла который надо воспроизвести.
Когда кодек заберет все данные DMA взведет флаг окончания и мы укажем ему адрес нового блока для отправки кодеку. Флаг можем и полингом опрашивать это не принципиально.
Так работают аудиодрайвера на смартфонах. И такой у меня выложен пример в проекте
http://aly.projekt …nator/ARMDominator.htm
Кстати STR912FW44 весьма дешевый камень. Можно реально в розницу уже по 9$ взять.