Jump to content

    

Cortex A7 и А8, А9 Различия в запуске MMU и кэшей

2 минуты назад, AlexandrY сказал:

Вот уж не однозначно. 
Оконный движок может рисовать в том же буфере, который отправляет на дисплей. 

Если рисовать в том же буфере, то с DMA - всё равно плюс, так как есть 1-й и 3-й пункты.

Share this post


Link to post
Share on other sites
Just now, jcxz said:

Если рисовать в том же буфере, то с DMA - всё равно плюс, так как есть 1-й и 3-й пункты.

Никакие пункты не помогут если на экране артефакты. 

Share this post


Link to post
Share on other sites
10 minutes ago, AlexandrY said:

Никакие пункты не помогут если на экране артефакты. 

если использовать на десктопных процессорах те же подходы что и на микроконтроллерах то артефакты на экране не самая большая беда.

Share this post


Link to post
Share on other sites

А вот использование DMA для чтения-записи SD-карты при использовании FAT FS весьма сомнительное удовольствие.  Следующий сектор неизвестно какой может быть, если не прочитан текущий.   Как тут быть?

 

По теме надумалось еще.  Может чтение фреймбуфера из DDR с частотой 60 Гц съедает полосу?  Упомянуто относительно высокое разрешение дисплея и LTDC. Сюда же ещё и DMA-копирование.   А память общая и внешняя DDR.   И всё-же дисплей со своей видеопамятью и растеризатором - лучшее решение, когда надо разгрузить центральный процессор :)

Edited by __inline__

Share this post


Link to post
Share on other sites
16 минут назад, __inline__ сказал:

А вот использование DMA для чтения-записи SD-карты при использовании FAT FS весьма сомнительное удовольствие.  Следующий сектор неизвестно какой может быть, если не прочитан текущий.   Как тут быть?

А какая разница - известен или нет? Ещё раз повторю: выигрыш от использование DMA - уменьшение загрузки процессора избавлением его от элементарных операций копирования.

Да и насчёт неизвестности тоже не факт: в файловых системах размер кластера как правило во много раз больше размера сектора. А значит - если много ОЗУ, то можно сделать упреждающее чтение в low-level-драйвере и, пока код FatFS пережёвывает предыдущие данные, успеть дочитать следующие сектора. Да и вероятность того, что номер следующего кластера цепочки кластеров файла, будет на 1 больше предыдущего - намного больше 50% (достаточно посмотреть фрагментирование реальных файлов).

Edited by jcxz

Share this post


Link to post
Share on other sites
5 часов назад, AlexandrY сказал:
5 часов назад, jcxz сказал:

И использование DMA в данном случае однозначно плюс.

Вот уж не однозначно. 

В этом случае именно плюс, я уже писал, что анимацию можно поставить на автоматическую перерисовку с ДМА, не загружая процессор. А вот рисовать элементы ГУЯ, и шрифты ДМА не выгодно - медленно и все-равно нужно ждать отрисовки одного квадратика, чтоб рисовать другой...

Share this post


Link to post
Share on other sites
4 часа назад, __inline__ сказал:

А вот использование DMA для чтения-записи SD-карты при использовании FAT FS весьма сомнительное удовольствие.  Следующий сектор неизвестно какой может быть, если не прочитан текущий.   Как тут быть?

Я в таких случаях делал так, чтоб не ввязываться во всякие РТОСы ради этого, просто даю команду грузить сектор, и выхожу обратно, ставя флаг, что сектор загружается, а сам в это время ушел обслуживать LWIP, например. После этого проверяю, загрузился сектор или нет, загрузился, ставлю запрос на след-й и т.д. В результате и весь опрос делаю и файл грузится...

3 часа назад, jcxz сказал:

в файловых системах размер кластера как правило во много раз больше размера сектора. А значит - если много ОЗУ, то можно сделать упреждающее чтение в low-level-драйвере и

Да даже не обязательно упреждающее, даже если грузить блоками по 4 или 8 Кбайт, за время загрузки можно много чего сделать...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now