ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
9 июля
305578 Топик полностью
Гудвин, волшебник (06.02.2012 20:35, просмотров: 159) ответил Леонид Иванович на Не понял. Что положить данные в буфер ПДП, что вывести на порт - затраты одинаковые.
В LPC навороченный DMA. В произвольном месте в памяти размещается связанный список. Контроллер DMA при окончании текущей пересылки сам выбирает оттуда следующие параметры для новой пересылки, выполняет ее. И т.д. Можно весьма замысловатые комбинации применять - и блоками, и побайтно, с периферией и с памятью... Сам - без всяческого участия процессора. Генерит прерывания по необходимости. Я так сделал пересылку 2 буферов в DAC UDA1334 по I2S. Пока в один выводится, во второй можно спокойно не отвлекаясь читать usb флэху (кстати, тоже в фоне - в usb хосте там тоже DMA - автоматом), декодировать MP3 фрейм, фильтровать средние частоты и пр. херь. Потом остается только ждать прерывания от DMA, и заполнять другой буфер. Да еще в DMA контроллере и FIFO имеется в 4 слова (это типа, чтобы не прерывать поток данных в скоростных пересылках, например). Весьма удобно, однако... Причем, чтобы эта вся байда не мешала друг-другу, в LPC память разделена на отдельные участки- общая и для скоростных интерфейсов - ethernet и usb на отдельных внутренних шинах. Неудобно немного, зато тот же LPC17 рвет STM32F10x, как тузик грелку. На таких вот операциях на одинаковой тактовой...