GUI

Бесплатный графический интерфейс TouchGFX: от 9 FPS к 60 FPS с технологией CacheableContainers

Бесплатный графический интерфейс (GUI) TouchGFX версии 4.12 получил сразу несколько важных обновлений. Речь идет о новых инструментах редактора TouchGFX Designer и об обновлении самого движка программы. В частности TouchGFX 4.12 предлагает разработчикам технологию кешируемых контейнеров (CacheableContainer), технологию частичных кадровых буферов (Partial Framebuffer) и новый формат сжатия L8. Эти нововведения позволяют существенно повысить эффективность работы микроконтроллеров STM32 в графических приложениях
4759
В избранное

Бесплатный графический интерфейс (GUI) TouchGFX версии 4.12 получил сразу несколько важных обновлений. Речь идет о новых инструментах редактора TouchGFX Designer и об обновлении самого движка программы. В частности TouchGFX 4.12 предлагает разработчикам технологию кешируемых контейнеров (CacheableContainer), технологию частичных кадровых буферов (Partial Framebuffer) и новый формат сжатия L8. Эти нововведения позволяют существенно повысить эффективность работы микроконтроллеров STM32 в графических приложениях.

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

Графическая система TouchGFX от ST включает в себя прикладную программу TouchGFX Designer и графическое ядро TouchGFX. TouchGFX упрощает разработку графического интерфейса, сочетая симулятор и автоматическую генерацию кода.

TouchGFX Designer представляет собой специализированный графический редактор, призванный упростить создание графических интерфейсов для встраиваемых систем с микроконтроллерами STM32. TouchGFX Designer помогает разработчикам эффективно использовать преимущества TouchGFX Engine и уменьшить объем пользовательского кода. TouchGFX Designer существует не только в виде независимого программного инструмента, но и входит в состав STM32CubeMX (начиная с версии TouchGFX 4.13). Короткую презентацию этого редактора можно увидеть здесь.

Обновление TouchGFX 4.12 стало самым крупным обновлением с момента презентации TouchGFX в 2018 году. С тех пор TouchGFX стала неотъемлемой частью экосистемы STM32. Стоит отметить, что ST придерживается очень демократичной позиции с точки зрения инструментов разработки. Компания старается обеспечить максимальную производительность и самый широкий функционал своих микроконтроллеров, вне зависимости от используемых инструментов разработки. Именно поэтому ST очень позитивно относится к появлению других графических решений, например, Qt. Тем не менее, ST предлагает и собственное графическое решение TouchGFX. По заявлению компании она продолжит работу над развитием TouchGFX для того, чтобы у любого пользователя, вне зависимости от того, является ли он профессиональным разработчиком или простым любителем, был под рукой бесплатный и мощный инструмент создания графических приложений. В настоящий момент TouchGFX активно используется производителями умных часов и бытовой техники.

CacheableContainers: переосмысление того, как визуализировать фрейм

CacheableContainer – это технология, которая первоначально разрабатывалась для конкретных клиентов, и только по прошествии некоторого времени ее внедрили в TouchGFX и сделали общедоступной. Суть этой технологии заключается в использовании кэша растровых изображений, что значительно ускоряет графическую производительность, обеспечивает более высокую частоту кадров и делает переходы между экранами более плавными за счет оптимизации. На демонстрационном видео показана эффективность CacheableContainer на примере отладочной платы STM32F429I Discovery. Без технологии CacheableContainer простая полноэкранная анимация (240 x 320) выполняется с частотой всего 9 кадров в секунду. Благодаря CacheableContainer частота обновления экрана увеличивается до 60 кадров в секунду, что обеспечивает более плавные переходы. В настоящее время некоторые умные часы используют новую технологию, даже несмотря на наличие значительных ограничений, определяемых их форм-фактором и необходимостью эффективного использования ресурсов аккумулятора. CacheableContainer повышает производительность при работе с анимацией сложных виджетов, например, при наложении текстур или при использовании небольших динамических элементов, отображаемых на статическом фоне.

Традиционный подход к анимированному изображению предполагает, что система будет перерисовывать каждый кадр, что, разумеется, требует значительных вычислительных затрат. Для перехода между двумя экранами необходимо прорисовать около 20 кадров, причем перерисовка каждого кадра занимает около 100 миллисекунд. CacheableContainer обходит эту проблему, сохраняя первый и последний кадры в отдельном контейнере в виде растрового изображения, которое система хранит в оперативной памяти. Вместо вычисления промежуточных кадров система извлекает два изображения из памяти с использованием DMA и попеременно показывает, тем самым обеспечивая плавный переход. Другими словами, микроконтроллеру больше не нужно визуализировать каждый кадр, что значительно повышает производительность. От разработчика требуется только лишь установить флажок Cacheable в TouchGFX Designer, выбрать расположение в памяти контейнеров, которые они хотят кэшировать, и вызывать их при необходимости. При использовании этого метода время рендеринга падает с 100 мс до 5 мс.

Частичный кадровый буфер: оптимизация хранения кадра

Partial Framebuffer (буквально «Частичный кадровый буфер») – это еще одна технология, которую программисты ST первоначально создавали для конкретных заказчиков. Однако ее эффективность оказалось столь высокой, что ее решили представить широкой публике. Кадровый буфер – это непрерывная область памяти, в которой хранится представление каждого пикселя изображения, отображаемого на дисплее. Например, стандартное 24-битное изображение размером 390 x 390 для дисплея SmartWatch требует кадрового буфера 3650 400 бит или 440 кбайт, что составляет почти 70% от всего ОЗУ, доступного в микроконтроллерах STM32L4+. Если в приложении необходимо реализовать два или три кадровых буфера, то потребуется, соответственно, в два или три раза больше памяти. Помимо ограничений емкости, необходимо помнить и об увеличении времени, затрачиваемого на чтение кадрового буфера большого объема и его передачу на дисплей, что замедляет работу всего приложения.

Как видно из названия, технология Partial Framebuffer предполагает хранение только части кадрового буфера, что уменьшает объем занимаемой памяти в среднем в 10 раз. Разработчики могут настроить размер частичного буфера в соответствии с анимируемой частью изображения (части изображения, которая фактически будет изменяться), а затем сохранить несколько частичных кадровых буферов. TouchGFX Engine самостоятельно будет выводить эти буферы на экран. Следовательно, вместо того, чтобы извлекать весь буфер, система использует файлы меньшего размера, что увеличивает общую производительность. Технология лучше всего работает при создании небольших анимированных изображений, таких как часы или графики реального времени (рис. 1). Стоит, однако, отметить, что технология Partial Framebuffer предполагает использование дисплея с собственным ОЗУ и встроенным контролером, который будет принимать данные от микроконтроллера. Таким образом, технология будет полезна при работе с дисплеями с интерфейсами 6880/ 8080, DSI и SPI.

Графический интерфейс, предлагаемый TouchGFX

Рис. 1. Графический интерфейс, предлагаемый TouchGFX

Формат сжатия L8 и TouchGFX Designer: оптимизация графических ресурсов и рабочего процесса

Изображения занимают много места в памяти. Ранее, чтобы уменьшить размер файла, разработчикам приходилось уменьшать уровень детализации. К сожалению, снижение детализации приводит к тому, что графический интерфейс выглядит менее привлекательно. Новый формат L8 уникален тем, что позволяет значительно сжать файл изображения без потери качества за счет использования встроенного ускорителя ChromART микроконтроллеров STM32. Если в изображении используется не более 256 цветов (что весьма характерно для многих фоновых рисунков, значков и кнопок), то для активации сжатия с помощью формата L8 разработчику понадобится только установить флажок в TouchGFX Designer. Приложение автоматически сгенерирует изображение, которое будет меньше на 75%. При этом извлечение изображения в процессе декомпрессии будет чрезвычайно эффективным за счет привлечения ChromART, который обеспечит автоматическую декодировку и восстановление картинки без потери качества.

Редактор TouchGFX Designer также получил несколько интересных обновлений (рис. 2). Помимо новых технологий, пользователям предлагаются новые инструменты и виджеты, такие как аналоговые и цифровые часы или средство отображения текстур. В результате очень многие элементы можно добавить простым перетаскиванием, не написав ни строчки кода. Разумеется, основную программу придется писать вручную, но многие рутинные операции возьмет на себя TouchGFX Designer. Программа поддерживает пользовательские триггеры и события, позволяющие инженерам выполнять тестирование приложений, даже если у них нет навыков программирования, необходимых для погружения в исходный код. Наконец, TouchGFX Designer может генерировать и загружать систему в два раза быстрее и делает это только по запросу, а не автоматически. Раньше из-за автоматической загрузки редактор частенько «тормозил».

Внешний вид TouchGFX Designer

Рис. 2. Внешний вид TouchGFX Designer

Иточник:

  1. https://blog.st.com/
  2. https://www.st.com/en/development-tools/
Производитель: STMicroelectronics
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
STM32F746G-DISCO
STM32F746G-DISCO
STMicroelectronics
Арт.: 1923237 ИНФО PDF AN RD
Поиск
предложений
STM32F746G-DISCO – отладочная плата из серии бюджетных отладочных плат Discovery для оценки функциональных возможностей новейшего микроконтроллера семейства STM32F7 на базе ядра ARM® Cortex®-M7
STM32F746G-DISCO
-
Поиск
предложений
STM32F429I-DISC1
STM32F429I-DISC1
STMicroelectronics
Арт.: 2010788 ИНФО PDF AN RD
Доступно: 13 шт. 3640,00
STM32F429I-DISC1 – отладочная плата, представляющая собой новейшую версию изделия STM32F429I-DISCO
STM32F429I-DISC1 3640,00 от 2 шт. 3360,00 от 3 шт. 3250,00 от 5 шт. 3100,00
13 шт.
(на складе)
STM32F769I-DISCO
STM32F769I-DISCO
STMicroelectronics
Арт.: 2103675 ИНФО PDF AN RD
Доступно: 32 шт. 9410,00
STM32F769I-DISCO – демонстрационно-отладочная платформана основе ARM Cortex-M7 микроконтроллера 
STM32F769I-DISCO 9410,00 от 2 шт. 8960,00
1 шт.
(на складе)
31 шт.
(под заказ)
STM32F779I-EVAL
STM32F779I-EVAL
STMicroelectronics
Арт.: 2103676 ИНФО PDF AN RD
Поиск
предложений
STM32F779I-EVAL  представляет собой демонстрационно-отладочную платформу для ARM Cortex-M7 микроконтроллера STM32F779NI от ST Microelectronics
STM32F779I-EVAL
-
Поиск
предложений
STM32F769I-EVAL
STM32F769I-EVAL
STMicroelectronics
Арт.: 2103677 ИНФО PDF AN RD
Поиск
предложений
STM32F769I-EVAL — демонстрационно-отладочная платформа на основе ARM Cortex-M7 микроконтроллера STM32F769NI
STM32F769I-EVAL
-
Поиск
предложений
STM32H753I-EVAL2
STM32H753I-EVAL2
STMicroelectronics
Арт.: 2783402 ИНФО PDF AN RD
Поиск
предложений
Hi-End отладочная платформа на базе микроконтроллера STM32H753XI
STM32H753I-EVAL2
-
Поиск
предложений
STM32MP157C-DK2
STM32MP157C-DK2
STMicroelectronics
Арт.: 3177035 ИНФО PDF AN RD OBS
Поиск
предложений
Набор серии Discovery STM32MP157C-DK2
STM32MP157C-DK2
-
Поиск
предложений
STM32MP157A-EV1
STM32MP157A-EV1
STMicroelectronics
Арт.: 3177036 ИНФО PDF AN RD
Поиск
предложений
Evaluation board with STM32MP157A MPU
STM32MP157A-EV1
-
Поиск
предложений
STM32MP157C-EV1
STM32MP157C-EV1
STMicroelectronics
Арт.: 3177037 ИНФО PDF AN RD
Поиск
предложений
Оценочная плата для микропроцессора STM32MP157C.
STM32MP157C-EV1
-
Поиск
предложений
STM32H743I-EVAL2
STM32H743I-EVAL2
STMicroelectronics
Арт.: 3202429 ИНФО PDF RD
Доступно: 6 шт. 49130,00
Отладочная плата - одноплатный компьютер для разработки, отладки систем на базе микроконтроллера STM32H743XIH6
STM32H743I-EVAL2 49130,00
4 шт.
(на складе)
2 шт.
(под заказ)
STM32H750B-DK
STM32H750B-DK
STMicroelectronics
Арт.: 3412256 ИНФО PDF AN RD
Поиск
предложений
Набор Discovery для микроконтроллера STM32H750XB.
STM32H750B-DK
-
Поиск
предложений
STM32H745I-DISCO
STM32H745I-DISCO
STMicroelectronics
Арт.: 3412916 ИНФО PDF AN RD
Поиск
предложений
Набор Discovery для двухъядерного микроконтроллера STM32H745XI.
STM32H745I-DISCO
-
Поиск
предложений
STM32H747I-DISCO
STM32H747I-DISCO
STMicroelectronics
Арт.: 3418357 ИНФО PDF AN RD
Доступно: 32 шт. от 1 шт. от 11541,30
Выбрать
условия
поставки
Набор Discovery на основе микроконтроллера STM32H747XI
STM32H747I-DISCO от 1 шт. от 11541,30
32 шт.
(под заказ)
Выбрать
условия
поставки
STM32H747I-DISC1
STM32H747I-DISC1
STMicroelectronics
Арт.: 3418358 ИНФО PDF RD
Доступно: 18 шт. от 1 шт. от 12772,90
Выбрать
условия
поставки
Набор Discovery на основе микроконтроллера STM32H747XI
STM32H747I-DISC1 от 1 шт. от 12772,90
18 шт.
(под заказ)
Выбрать
условия
поставки
STM32H7B3I-DK
STM32H7B3I-DK
STMicroelectronics
Арт.: 3491512 ИНФО PDF AN RD
Поиск
предложений
The STM32H7B3I-DK Discovery kit is a complete demonstration and development platform for STMicroelectronics Arm® Cortex®-M7 core-based STM32H7B3LIH6QU microcontroller.
STM32H7B3I-DK
-
Поиск
предложений
STM32L562E-DK
STM32L562E-DK
STMicroelectronics
Арт.: 3492080 ИНФО PDF AN RD
Поиск
предложений
Комплект Discovery с микроконтроллером STM32L562E.
STM32L562E-DK
-
Поиск
предложений

Сравнение позиций

  • ()