DMA, швидше за все, використовується тут, щоб ЦАП міг мати певні регулярні моменти часу, генерувати форму хвилі, змінюючи аналоговий вихід на деякий відомий інтервал.
Так, якщо це спільний автобус, то ... ви повинні поділитися.
Процесор не завжди використовує шину, тому іноді корисно поділитися з dma двигуном. І, звичайно, це означає, що пріоритети повинні бути залучені, іноді це саме той, хто першим потрапив (наприклад, майте команду fifo перед ресурсом та виконайте запити, в тому порядку, коли вони надійдуть, так, це не обов'язково-детерміновано ). У такому випадку, можливо, ви хочете, щоб dma мав пріоритет над процесором, щоб такі речі, як ЦАП або АЦП, що залежать від часу, мали детерміновані терміни. Залежить від того, як вони вирішили це здійснити.
Люди часто мають таке неправильне припущення, що dma вільна. Це не все-таки витрачає час на автобус, якщо його поділяють з процесором (який він, зрештою, відбувається під час спілкування з ресурсом, на якому може говорити процесор), тоді процесор і / або dma затримуються, тому процесор все ще повинен почекати час, у деяких реалізаціях (швидше за все, це не ваш мікроконтролер) процесор повністю затримується до завершення dma, процесор зупиняється на час. Просто залежить від реалізації. Вільна частина цього полягає в тому, що процесор не повинен постійно перебиватися, опитуватися чи затримувати дихання на якусь подію для подачі даних. Щоб створити наступний буфер для dma, може знадобитися час. Слід спостерігати за завершенням передачі dma та вирішувати це, але замість того, щоб говорити кожен байт, це тепер кілька байтів, якийсь блок даних.
Універсальної відповіді немає. "Це залежить" ... від конкретного дизайну конкретної речі, яку ви використовуєте. Навіть у межах одного дизайну мікросхем / плати / системи може бути декілька dma двигунів, і немає підстав припускати, що вони працюють однаково. Для кожного екземпляра ви повинні це розібратися, і, на жаль, вони часто не документують його або документують досить добре. Тож вам, можливо, доведеться створити кілька експериментів, якщо це викликає занепокоєння.