jcxz 184 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба 2 минуты назад, AlexandrY сказал: Вот уж не однозначно. Оконный движок может рисовать в том же буфере, который отправляет на дисплей. Если рисовать в том же буфере, то с DMA - всё равно плюс, так как есть 1-й и 3-й пункты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 2 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба Just now, jcxz said: Если рисовать в том же буфере, то с DMA - всё равно плюс, так как есть 1-й и 3-й пункты. Никакие пункты не помогут если на экране артефакты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 11 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба 10 minutes ago, AlexandrY said: Никакие пункты не помогут если на экране артефакты. если использовать на десктопных процессорах те же подходы что и на микроконтроллерах то артефакты на экране не самая большая беда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 12 августа, 2019 Опубликовано 12 августа, 2019 (изменено) · Жалоба А вот использование DMA для чтения-записи SD-карты при использовании FAT FS весьма сомнительное удовольствие. Следующий сектор неизвестно какой может быть, если не прочитан текущий. Как тут быть? По теме надумалось еще. Может чтение фреймбуфера из DDR с частотой 60 Гц съедает полосу? Упомянуто относительно высокое разрешение дисплея и LTDC. Сюда же ещё и DMA-копирование. А память общая и внешняя DDR. И всё-же дисплей со своей видеопамятью и растеризатором - лучшее решение, когда надо разгрузить центральный процессор :) Изменено 12 августа, 2019 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 12 августа, 2019 Опубликовано 12 августа, 2019 (изменено) · Жалоба 16 минут назад, __inline__ сказал: А вот использование DMA для чтения-записи SD-карты при использовании FAT FS весьма сомнительное удовольствие. Следующий сектор неизвестно какой может быть, если не прочитан текущий. Как тут быть? А какая разница - известен или нет? Ещё раз повторю: выигрыш от использование DMA - уменьшение загрузки процессора избавлением его от элементарных операций копирования. Да и насчёт неизвестности тоже не факт: в файловых системах размер кластера как правило во много раз больше размера сектора. А значит - если много ОЗУ, то можно сделать упреждающее чтение в low-level-драйвере и, пока код FatFS пережёвывает предыдущие данные, успеть дочитать следующие сектора. Да и вероятность того, что номер следующего кластера цепочки кластеров файла, будет на 1 больше предыдущего - намного больше 50% (достаточно посмотреть фрагментирование реальных файлов). Изменено 12 августа, 2019 пользователем jcxz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 33 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба 5 часов назад, AlexandrY сказал: 5 часов назад, jcxz сказал: И использование DMA в данном случае однозначно плюс. Вот уж не однозначно. В этом случае именно плюс, я уже писал, что анимацию можно поставить на автоматическую перерисовку с ДМА, не загружая процессор. А вот рисовать элементы ГУЯ, и шрифты ДМА не выгодно - медленно и все-равно нужно ждать отрисовки одного квадратика, чтоб рисовать другой... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 33 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба 4 часа назад, __inline__ сказал: А вот использование DMA для чтения-записи SD-карты при использовании FAT FS весьма сомнительное удовольствие. Следующий сектор неизвестно какой может быть, если не прочитан текущий. Как тут быть? Я в таких случаях делал так, чтоб не ввязываться во всякие РТОСы ради этого, просто даю команду грузить сектор, и выхожу обратно, ставя флаг, что сектор загружается, а сам в это время ушел обслуживать LWIP, например. После этого проверяю, загрузился сектор или нет, загрузился, ставлю запрос на след-й и т.д. В результате и весь опрос делаю и файл грузится... 3 часа назад, jcxz сказал: в файловых системах размер кластера как правило во много раз больше размера сектора. А значит - если много ОЗУ, то можно сделать упреждающее чтение в low-level-драйвере и Да даже не обязательно упреждающее, даже если грузить блоками по 4 или 8 Кбайт, за время загрузки можно много чего сделать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться