Jump to content

    
GenaSPB

STM32MP1 - bare metal

Recommended Posts

6 minutes ago, mantech said:

Может потому, что плата довольно узкой ниши применения, т.к. даже видеопорта на ней нет. Или может, как было с STM32F4 Discovery, когда чип стоил дороже платы, на которой он распаян с кучей еще всего и программатором...

да не, политика продаж чистой воды. Откуда по вашему я Ultrascale плату беру за 150 бачей при цене чипа на ней более 800 баксов? И он не снят хрен знает откуда

Share this post


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

да не, политика продаж чистой воды.

Ну тогда зла у меня на них столько, чтоб они его съели полностью :ireful2:

Обидно, когда хорошие чипы по цене танка продают, можно б было много чего хорошего на них сделать, чего нет на всяких платах, где они стоят...

Share this post


Link to post
Share on other sites
42 minutes ago, mantech said:

Ну тогда зла у меня на них столько, чтоб они его съели полностью :ireful2:

Обидно, когда хорошие чипы по цене танка продают, можно б было много чего хорошего на них сделать, чего нет на всяких платах, где они стоят...

и не говорите. 

Share this post


Link to post
Share on other sites
On 1/5/2020 at 3:12 AM, GenaSPB said:

Коллега выложил видео демонстрации работы макета проекта на 157-м.

Дисплей 1024x600, FFT 1024 плавучка с одинарной точностью из CMSIS, NCO 750 Hz+шум. Тест FPS ~150. Графика 2 слоя RGB565+ARGB8888

https://youtu.be/6PXxH0p2AK0

 

Странный тест. Как по мне лучше тестировать определением времени выполнения/скорости отдельных примитивов (например столько-то символов в сек. вывод), ну или на более менее законченном UI (тогда можно уже просто судить о применимости/запасе данного решения для конкретной задачи). ЦОС по описанию простая, законченного UI не наблюдаю, да и сложной динамичной графики нет, по сути даже не понятно зачем два слоя. У меня более сложную картинку STM32H7 рисует со скоростью более 100fps (экран такой же). В отношении графики для меня не очевиден выигрыш STM32MP1 перед STM32H7 если не использовать 3D ускоритель у MP1. 

Интересно, а кто-нибудь пробовал оценить производительность 2D графики при задействовании 3D ускорителя? Понятно, что это потянет за собой линукс, но без ускорения графики, как по мне, для систем с динамичной графикой камень не сильно интересный.

Share this post


Link to post
Share on other sites

В качестве 2д ускорителя вполне mdma применимо. Растр не разворачивает, но копирование и заполнение прямоугольных областей умеет. Но пока у мкня программное быстрее работает.

У r6dan получилось плохо при 3д графике. Она не для водопада. Оценки он на радиофоруме писал.

Share this post


Link to post
Share on other sites

По сравнению с той же задачей на h7 из внешней памяти при работе на 157 получилось раз в три..пять шустрее. Только для этого тест и делался.

Edited by GenaSPB

Share this post


Link to post
Share on other sites
9 minutes ago, GenaSPB said:

с той же задачей на h7 из внешней памяти при работе на 157 получилось раз в три..пять шустрее

вы там явно что то с Н7 намудрили. В 3 раза быстрее MP будет разве что на двух ядрах, да и по сравнению с Н7 на 400 МГц только. У меня похожая была графика. Ну по смыслу (не полигоны вертеть)

Share this post


Link to post
Share on other sites
7 hours ago, GenaSPB said:

У r6dan получилось плохо при 3д графике. Она не для водопада. Оценки он на радиофоруме писал.

Да, нашел уже. Под OpenGL писал последний раз больше 20 лет назад, и всех нюансов уже не помню, но чую что-то там он не то делал.

Прикупить какую-нить тестовую плату с этим МР и поиграться что ли... Хотя если на Линукс перелазить не факт, что это самое удачное решение

6 hours ago, GenaSPB said:

у avbelan  те же исходники были взяты и просто под 157 запущено

Вот! Раз так значит под Н7 DMA2D не использовался, а именно в нем сила Н7 :) 

7 hours ago, GenaSPB said:

В качестве 2д ускорителя вполне mdma применимо

Та не - жалкое подобие DMA2D, которое не умеет накладывать слои с альфа каналами и преобразовывать формат изображения.

Share this post


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

Та не - жалкое подобие DMA2D, которое не умеет накладывать слои с альфа каналами

Интересно, разве ДМА могут с альфа-каналами работать? По моему это функция видеоконтроллера, или у СТМ че-то свое?

Сколь видал ДМА могут только либо куском бросать, либо в 2Д режиме "квадрат в квадрат" кидать... 

Share this post


Link to post
Share on other sites
12 hours ago, mantech said:

Интересно, разве ДМА могут с альфа-каналами работать?

DMA2D это фактически простенький 2D графический ускоритель. Кроме альфа каналов он еще умеет преобразовывать формат картинки, "раскрашивать"  индексированный цвет палитрой или перекрашивать градации серого в градации цвета. У меня вся графика выводится через него, за исключением одного весьма специфического элемента, который оказалось быстрее нарисовать процессором (и то это произошло в силу особенностей работы SDRAM памяти). На традиционных операциях (вывод текста, картинок, прямоугольники, маски и т.п.) через DMA2D получается в разы быстрее, чем процессором, плюс процессор освобождается.

Поскольку я активно пользуюсь DMA2D и его не заменить в моем случае MDMA, то по моим оценкам переход на MP1 может дать какой-либо выигрыш только за счет наличия двух ядер и намного большей производительности подсистемы памяти (в Н7 это узкое место при работе с графикой). Интересно конечно какой выигрыш будет (и будет ли :))... Ну и интересно посмотреть что будет под Linux с 3Д ускорителем. Наверное таки куплю плату с MP1 поэкспериментирую (заодно может и с OpenGL поиграюсь), смотрю они не дорогие.

Share this post


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

Кроме альфа каналов он еще умеет преобразовывать формат картинки, "раскрашивать"  индексированный цвет палитрой

Это я все понимаю, просто не использую в своих разработках, т.к. не вижу смысла в индексированных цветах, кроме, как в МК с ограниченной ОЗУ. Не понял только насчет альфа-канала. Сколь процов не осваивал, функция "подмешивания" прозрачности была реализована в движке видеоконтроллера, т.е. создаю 2 слоя BG и FG, на втором 4м байтом идет прозрачность относительно первого слоя. Причем все что далее идет аппаратно, следовательно от ДМА задача только перекидывать 32х байтные значения пикселей в разные регионы экранной области (фреймбуфера)... С графикой СТМ не работал, поэтому и странно показалось...

14 минут назад, Шаманъ сказал:

через DMA2D получается в разы быстрее, чем процессором, плюс процессор освобождается.

А вот это для меня тоже открытие, ибо в кортексах А, ДМА работает в половину медленнее, чем проц, даже с максимальным бурстом...

16 минут назад, Шаманъ сказал:

Ну и интересно посмотреть что будет под Linux с 3Д ускорителем. Наверное таки куплю плату с MP1 поэкспериментирую (заодно может и с OpenGL поиграюсь), смотрю они не дорогие.

А вот тут явно выбрал бы что-то другое, например, из того-же аллвиннера, ибо по цене-производительность там все гораздо лучше, иногда и в разы.

Share this post


Link to post
Share on other sites
4 minutes ago, mantech said:

т.к. не вижу смысла в индексированных цветах

Вы слишком прямо мыслите :)

Да и флеша не так много у Н7. Есть и еще 100500 примеров когда индексированный цвет это великое благо и не только по причине меньшего места.

Например, шрифты со сглаживанием DMA2D тоже умеет обрабатывать (это в некотором смысле картинки с индексированным цветом, разве что палитра очень специфическая ;)).

7 minutes ago, mantech said:

Не понял только насчет альфа-канала. Сколь процов не осваивал, функция "подмешивания" прозрачности была реализована в движке видеоконтроллера, т.е. создаю 2 слоя BG и FG, на втором 4м байтом идет прозрачность относительно первого слоя.

Ну хорошо, допустим Вы делаете окно с прозрачностью поверх фона. Задействовали два слоя, потом Вам понадобилось еще окно сверху (тоже с прозрачностью), а в нем текст полупрозрачный и сетка сверху тоже полупрозрачная - как Вы это сделаете контроллером? К тому же при таком подходе очень сильно нагружается память.

Можно сделать по-другому - рисуете через ДМА2Д с прозрачностью, а потом показываете через LTDC (или как там у Вас оно называется) в одном слое. В таком варианте нет ограничений на кол-во слоев, ну кроме производительности. 

10 minutes ago, mantech said:

А вот это для меня тоже открытие, ибо в кортексах А, ДМА работает в половину медленнее, чем проц, даже с максимальным бурстом...

DMA может медленнее работать из-за разной разрядности шин (например, ядро подключено 64ьитами, а ДМА только 32), но здесь главная фишка в вычислениях. Если бы речь шла просто про перемещение и заполнение "прямоугольников" то такой DMA2D не особо и нужен.

1 minute ago, aaarrr said:

И как в том оллвиннере с OpenGL? Пока так себе, мягко говоря...

Оно я смотрю не только в AllWinner "так себе", и в общем-то не понятно как оно и в MP1. С этим я так понял не все гладко у многих.

Вопрос к Геннадию, можешь померять сколько процесор+память кушают (без подсветки дисплея или с подсветкой на максимуме)?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.