Allregia 9 24 июля, 2019 Опубликовано 24 июля, 2019 · Жалоба Вопрос про DMA (STM32F4/F7): для чего нужна работа DMA с double buffer? Чем оно в принципе отличается от работы с двумя прерываниями, по половине и по концу? Пока вижу только одно отличие - ограничение в 65535 байт в одном случае для каждого из двух буферов, а в другом для одного (который из двух половинок), но может еще чего-то недочитал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 24 июля, 2019 Опубликовано 24 июля, 2019 · Жалоба 15 минут назад, Allregia сказал: Чем оно в принципе отличается от работы с двумя прерываниями, по половине и по концу? Тем что используются два разных буфера, несмежных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 24 июля, 2019 Опубликовано 24 июля, 2019 · Жалоба 59 minutes ago, jcxz said: Тем что используются два разных буфера, несмежных. А чем это так существенно? P.S. Мне вобще больше нравится как это было в LPC1768 сделано - буферов не два а сколко угодно, связным списком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 25 июля, 2019 Опубликовано 25 июля, 2019 · Жалоба 18 hours ago, Allregia said: А чем это так существенно? Пример из головы: буфер - данные, приписываем заголовок и хвост, отправляем куда-то дальше. 18 hours ago, Allregia said: как это было в LPC1768 У NXP вообще всё лучше было сделано. И уарты, и I2C, и фифо в SPI (блин, примитивная ж вещь, но ST её рожала лет 8). Но зоопарк "каждому желающему - свой камень", да ещё и за три копейки, сделали именно ST'шники. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 25 июля, 2019 Опубликовано 25 июля, 2019 · Жалоба 20 часов назад, Allregia сказал: А чем это так существенно? Существенно когда нужно отправлять данные из разных, несмежных участков памяти. Без остановки на границе между этими двумя участками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 25 июля, 2019 Опубликовано 25 июля, 2019 · Жалоба Модератор:беседу "какой УАПП лучше" перенес в отдельную ветку: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 26 июля, 2019 Опубликовано 26 июля, 2019 · Жалоба 20 hours ago, jcxz said: Существенно когда нужно отправлять данные из разных, несмежных участков памяти. Без остановки на границе между этими двумя участками. Я понимаю, просто мне это пока ниразу не понадобилось. Чаще всего у меня передается или принимается поток, и пока одна половинка буфера передает/принимает по ДМА, во вторую я пишу/читаю. В таком режиме, как я сказал, разница только в максимальной величине "половинки" - 32768 или 65535. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RedHeadIvan 0 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба Кажется, в случае Double Buffer можно менять адреса "на лету". Т.е. по идее это не Double Buffer, а Multi Buffer. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 4 часа назад, RedHeadIvan сказал: Кажется, в случае Double Buffer можно менять адреса "на лету". Т.е. по идее это не Double Buffer, а Multi Buffer. Это просто double buffer. Так как для смены адреса нужен CPU. В связном списке можно сразу запрограммировать цепочку буферов, не дёргаясь в прерывание после каждого куска. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться