Harvester 0 30 сентября, 2020 Опубликовано 30 сентября, 2020 (изменено) · Жалоба Добрый день. Заранее извиняюсь за длинное вступление, по другому не получается объяснить вопрос. Итак. Когда-то было разработано устройство на Линуксе собственной сборки, процессор PowerPC E300. Никакой графики там нет - чистая встраиваемая железка. Потом потребовалось сделать панель оператора с графическим дисплеем. Недолго думая взяли ту же платформу, добавив туда Qt. Т.е. образ линукса по сути отличается только наличием библиотек Qt, никаких GTK/X11/etc не добавилось. Ключи компиляции для Qt-фронтенда: ./configure -embedded powerpc \ -xplatform qws/linux-powerpc-g++ \ -qvfb -opensource -no-qt3support \ -no-webkit -no-gif \ -qt-libpng -no-libjpeg -no-openssl \ -no-cups -qt-freetype -no-opengl \ -qt-gfx-transformed -nomake examples \ -nomake demos -nomake docs \ -nomake translations -qt-kbd-linuxinput \ -big-endian -silent -prefix /opt Сама программа запускается так export QWS_KEYBOARD="linuxinput:/dev/input/event0" frontpanel -qws -display transformed:Rot270 -nomouse -decoration windows & 1. Правильно ли я понимаю, что в данном случае используется некий "виртуальный буфер" и отрисовка/вывод информации на дисплей производится исключительно силами самой библиотеки Qt? 2. Как можно ускорить работу графического интерфейса в рамках платформы (не меняя железо)? Сейчас процессор просто "подыхает", несмотря на то, что интерфейс представляет из себя просто набор кнопок. 3. Что нужно изменить в системе, чтобы использовать другой фреймворк, скажем wxWidgets? Изменено 30 сентября, 2020 пользователем Harvester Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 32 30 сентября, 2020 Опубликовано 30 сентября, 2020 · Жалоба А подключить любой HMI через последовательный порт ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 30 сентября, 2020 Опубликовано 30 сентября, 2020 · Жалоба 7 minutes ago, x893 said: А подключить любой HMI через последовательный порт ? А она сейчас так и подключена :) Текущая панель оператора - это законченное устройство со своим конструктивом. Кроме дисплея там еще клавиатура, индикаторы. Как туда какой-то готовый HMI запихнуть? Плюс вопрос стоимости и независимости от других поставщиков. В принципе, у меня есть идеи по переделке, но они все требуют изменения железа. Поэтому сначала хотелось бы разобраться с тем что есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 2 октября, 2020 Опубликовано 2 октября, 2020 · Жалоба On 9/30/2020 at 12:31 PM, Harvester said: 1. Правильно ли я понимаю, что в данном случае используется некий "виртуальный буфер" и отрисовка/вывод информации на дисплей производится исключительно силами самой библиотеки Qt? 2. Как можно ускорить работу графического интерфейса в рамках платформы (не меняя железо)? Сейчас процессор просто "подыхает", несмотря на то, что интерфейс представляет из себя просто набор кнопок. 3. Что нужно изменить в системе, чтобы использовать другой фреймворк, скажем wxWidgets? Сам спросил - сам ответил. 1. Qt самостоятельно пишет в Framebuffer, не требуя никаких прослоек. http://doc.crossplatform.ru/qt/en/4.4.3/qt-embedded.html 2. Похоже, только оптимизацией приложения. 3. Реализовать для данного фреймворка вывод в Framebuffer. Но вовсе не факт, что удастся как-то ускорить графический интерфейс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 2 октября, 2020 Опубликовано 2 октября, 2020 · Жалоба 1 час назад, Harvester сказал: 1. Qt самостоятельно пишет в Framebuffer, не требуя никаких прослоек. http://doc.crossplatform.ru/qt/en/4.4.3/qt-embedded.html 2. Похоже, только оптимизацией приложения. у вас между e300 и lcd есть какой-то промежуточный видеоконтроллер, полистайте на него спеки, если у него есть графическая турбина, то дописываете нужный функционал в составе QT и будут вам рюшечки и полупрозрачные переливы без участия e300 если GPU нет, то оптимизация мало чем поможет на сложных отрисовках софтово, особенно на высоких разрешениях Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 2 октября, 2020 Опубликовано 2 октября, 2020 (изменено) · Жалоба 47 minutes ago, Jury093 said: у вас между e300 и lcd есть какой-то промежуточный видеоконтроллер, полистайте на него спеки, если у него есть графическая турбина, то дописываете нужный функционал в составе QT и будут вам рюшечки и полупрозрачные переливы без участия e300 если GPU нет, то оптимизация мало чем поможет на сложных отрисовках софтово, особенно на высоких разрешениях GPU нет, разрешение маленькое 480 x 272, 4.3'' Сложной отрисовки тоже нет, только стандартные элементы интерфейса Изменено 2 октября, 2020 пользователем Harvester Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 2 октября, 2020 Опубликовано 2 октября, 2020 · Жалоба 8 часов назад, Harvester сказал: GPU нет, разрешение маленькое 480 x 272, 4.3'' Сложной отрисовки тоже нет, только стандартные элементы интерфейса ну раз проц "подыхает" на таком разрешение и простой графике, значит все же где-то есть узкое место. есть смысл напрячь программиста, который писал ГУЙ, на предмет поиска ошибок в формах вывода, как пример где-то случайно вызывается 1000 в сек вывод картинки или кнопки или кайма кнопок переливается радугой, всякое бывает.. также полезно посмотреть что с нагрузкой проца, например, хотя бы через top, может кушает кто-то другой, а грешите на гуевую софтину можно для теста сплодить простейшую программу с одной кнопкой на предмет "как сильно грузит процессор" - в демках QT есть тестовый пример с тачем и тараканами на экране, у меня 20-30 тараканов бодро двигались по экрану, а вот 100 уже приводила к слайдшоу (проц АРМ, 800 МГц) если вышенаписанное не помогло или не устраивает, то пора разбираться с видеоконтроллером, ваш e300 похоже проц общего назначения и на его шину прицеплен какой-то видеочип, значит надо искать ему замену с GPU и сразу искать с поддержкой в QT (если такие существуют) или писать прослойку в QT самому. тогда ваш e300 будет заниматься другими задачами, а видеоконтроллер обработкой графики (переливы, наложения, затемнения и прочей шелухой) я запускал QT на разных экранах с примерно одной и той же программой - вывод часов и штук 5-6 картинок и всякого по мелочи в статике и динамике.. - 480х270 вполне тянул в софт режиме АРМ на 200 МГц - 800х480 - АРМы от 400 до 800 МГц - 800x600, 1280х1024 - АРМ на 800 МГц вполне все работали без лагов и процы имели кучу времени на свои задачи не связанные с QT ЗЫ и да, как вы сами себе ответили, все делается чисто софтово. поддержка аппаратной графики это отдельные ветки в фремйворке QT.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 32 13 октября, 2020 Опубликовано 13 октября, 2020 (изменено) · Жалоба 02.10.2020 в 11:42, Harvester сказал: GPU нет, разрешение маленькое 480 x 272, 4.3'' Разрешение "детское", такое вполне тянет даже нежирный СТМ32. Рекомендую посмотреть в сторону более "легковесных" гуев, Qt - довольно тяжелая софтина для устаревших процов... 02.10.2020 в 11:42, Harvester сказал: Сложной отрисовки тоже нет, только стандартные элементы интерфейса Тем более, зачем тут Qt.. Изменено 13 октября, 2020 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 32 13 октября, 2020 Опубликовано 13 октября, 2020 · Жалоба У вас исходные файлы есть. Посмотрите в каком месте "тормозит". Кроме Qt есть и другие - например LittleVGL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 14 октября, 2020 Опубликовано 14 октября, 2020 · Жалоба 23 hours ago, x893 said: Кроме Qt есть и другие - например LittleVGL. Основная проблема - TFT без контроллера и CPU без контроллера. Но спасибо за наводку, посмотрю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 32 14 октября, 2020 Опубликовано 14 октября, 2020 · Жалоба 2 hours ago, Harvester said: Основная проблема - TFT без контроллера и CPU без контроллера. Как тогда появляется изображение на дисплее ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 14 октября, 2020 Опубликовано 14 октября, 2020 · Жалоба 2 hours ago, x893 said: Как тогда появляется изображение на дисплее ? А слона-то я и не заметил. :))) Я почему-то уверил себя, что в процессоре нет контроллера. Думал, что просто ногодрыгом выводится. На самом деле контроллер TFT есть. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 32 14 октября, 2020 Опубликовано 14 октября, 2020 · Жалоба 1 hour ago, Harvester said: На самом деле контроллер TFT есть. Спасибо. Так - основная проблема решена ! Теперь дело за малым. Делаете измерение времени (profiling) для своей программы и смотрите где время тратится. И дальше исправляете как надо. https://percepio.com/tz/tracealyzer-for-linux/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 14 октября, 2020 Опубликовано 14 октября, 2020 · Жалоба 2 часа назад, Harvester сказал: А слона-то я и не заметил. :))) Я почему-то уверил себя, что в процессоре нет контроллера. Думал, что просто ногодрыгом выводится. На самом деле контроллер TFT есть. Спасибо. раз уж вы полное имя процессора не приводите, то вот картинка в аттаче - пальцем покажите, где там "контроллер TFT". в семействе е300 есть пять вариантов процессора, ваш чьих будет: • Integrated PowerPC Host Processors • Integrated PowerPC Communications Processors Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 15 октября, 2020 Опубликовано 15 октября, 2020 · Жалоба 13 hours ago, Jury093 said: раз уж вы полное имя процессора не приводите, то вот картинка в аттаче - пальцем покажите, где там "контроллер TFT". в семействе е300 есть пять вариантов процессора, ваш чьих будет: • Integrated PowerPC Host Processors • Integrated PowerPC Communications Processors Я не знал, думал, что "e300" будет достаточно. MPC5125YVN400: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться