Перейти к содержанию
    

Всё просто замечательно! :rolleyes:

 

Подключил дисплей к FMC, настроил времянки. Задействовал кеширование. Вышло 41 FPS.

 

Потом сделал двойную буферизацию, задействовал ДМА память-память. В итоге пока процессор рендерит один кадр, ДМА отправляет на LCD готовый кадр.

Путём таких ухищрений удалось выжать 63 FPS.

 

Видео (по сравнению с видео выше с STM32F407, скорость намного выше 63 vs. 24 FPS): http://www.youtube.com/watch?v=4VpX5UfkmWA

 

Исходники для STM32H743 Ниже. Просьба не ругаться(за кало-Куб), нужно было оценить отладочную плату и процессор STM32H743.

 

Tunnel_STM32H743_DMA.rar

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видео (по сравнению с видео выше с STM32F407, скорость намного выше 63 vs. 24 FPS): http://www.youtube.com/watch?v=4VpX5UfkmWA

При FPS=24 вообще нет смысла тратить столько ног на LCD - можно по SPI подключить и получить такую же скорость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При FPS=24 вообще нет смысла тратить столько ног на LCD - можно по SPI подключить и получить такую же скорость.

24 FPS - это общий FPS: рендеринг картинки в буфер + перекидывание буфера на дисплей, а не чисто-перекидывание на дисплей

 

Если перекидывание буфера на экран через SPI даст 24 FPS, то общий FPS программы упадёт до 10 и меньше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 FPS - это общий FPS: рендеринг картинки в буфер + перекидывание буфера на дисплей, а не чисто-перекидывание на дисплей

Я это понял. Я и говорю, что с такой скоростью отрисовки, не нужна параллельная шина, можно использовать SPI.

 

Если перекидывание буфера на экран через SPI даст 24 FPS, то общий FPS программы упадёт до 10 и меньше.

"Перекидывание" даёт FPS=~36 при 45МГц SCLK и 16 бит цвета. А рисование не должно ему мешать если идёт в это время в другой буфер. Таким образом если у вас только рисование даёт 24Гц, то передача по SPI не снизит эту скорость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я это понял. Я и говорю, что с такой скоростью отрисовки, не нужна параллельная шина, можно использовать SPI.

 

"Перекидывание" даёт FPS=~36 при 45МГц SCLK и 16 бит цвета. А рисование не должно ему мешать если идёт в это время в другой буфер. Таким образом если у вас только рисование даёт 24Гц, то передача по SPI не снизит эту скорость.

 

Там где 24 Гц - это на STM32F407. У него 128+64 кБ памяти, хватает только на один буфер 320x240x2 и то, он реализован кусками!

 

Двойная буферизация в STM32H743. Но там 63 FPS.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там где 24 Гц - это на STM32F407. У него 128+64 кБ памяти, хватает только на один буфер 320x240x2 и то, он реализован кусками!

320*240/4=19200 - должно хватать на бОльшее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

320*240/4=19200 - должно хватать на бОльшее.

 

2 байта на пиксел. 16bpp.

 

320x240x2=150 кБ

два буфера - уже 300 кБ < 192 кБ в stm32f407 :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 байта на пиксел. 16bpp.

320x240x2=150 кБ

два буфера - уже 300 кБ < 192 кБ в stm32f407 :biggrin:

Я понимаю, что можно и 4 байта на пиксел положить, но зачем если памяти мало??

У меня 320x240x4 (4bpp конечно-же) в STM32F429 во внутренней памяти и буфер прекрасно влазит в CCM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я понимаю, что можно и 4 байта на пиксел положить, но зачем если памяти мало??

У меня 320x240x4 (4bpp конечно-же) в STM32F429 во внутренней памяти и буфер прекрасно влазит в CCM.

Видите ли, в чём дело... Вы со своей колокольни смотрите на проблему. Я же со своей. Тот туннель, что я выкладывал - ну никак не смотрится в 16 цветах - слишком убого. И в 256 цветах тоже будет плохо смотреться. Поэтому было принято решение использовать 65536 цветов.

 

Цель была - перенести алгоритм построения трёхмерного туннеля из этой программы: http://www.sulaco.co.za/opengl_project_racing_tunnel.htm , не угробив при этом цветопередачу текстуры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тот туннель, что я выкладывал - ну никак не смотрится в 16 цветах - слишком убого. И в 256 цветах тоже будет плохо смотреться. Поэтому было принято решение использовать 65536 цветов.

Туннель - это конечно хорошо. Но зачем он в плане embedded? Какой практический прок? Для всяких смартфонных девайсов - спору нет, но там вроде как и процы немного другие....

А вот для GUI какого-нить девайса 16 цветов - обычно вполне достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Туннель - это конечно хорошо. Но зачем он в плане embedded? Какой практический прок? Для всяких смартфонных девайсов - спору нет, но там вроде как и процы немного другие....

А вот для GUI какого-нить девайса 16 цветов - обычно вполне достаточно.

Готовлю плацдарм для прыжка в будущее :rolleyes:

Если быть точным, то у меня чисто академический интерес - пощупать Cortex-M7, посмотреть его достоинства и недостатки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...