За реализацией этих DIY-работ стоит тот же мощный GUI-LVGL.
Автором LVGL является Габор Кисс-Вамосикисвегабор из Венгрии. LVGL написан на языке C для достижения максимальной совместимости (совместим с C++). Симулятор может запускать встроенные графические интерфейсы на ПК без встроенного оборудования, а в качестве графической библиотеки LVGL поставляется. почти тридцать видов гаджетов для разработчиков. Эти мощные кнопки строительных блоков сочетаются с очень плавной анимацией и продвинутой графикой, обеспечивающей плавную прокрутку. В то же время они имеют низкие требования к конфигурации и атрибуты с открытым исходным кодом. Очевидные преимущества сделали LVGL популярным и популярным выбором среди разработчиков. Первый выбор при выборе графического интерфейса.
Микроконтроллер, который может управлять дисплеем и имеет флэш-память более 64 КБ и ОЗУ более 20 КБ, может поддерживать работу LVGL. Это также показывает, что почти все микроконтроллеры, которые мы часто используем для разработки, могут поддерживать LVGL (16 бит и выше). Основная причина, по которой LVGL может поддерживаться таким количеством платформ одновременно, заключается в том, что аппаратные требования LVGL не слишком высоки.
LVGL сама по себе является графической библиотекой.
Наше приложение создает графический интерфейс, вызывая библиотеку LVGL. Он содержит интерфейс HAL (Hardware Abstraction Layer) для регистрации драйверов дисплея и устройств ввода. Помимо конкретного драйвера, драйвер имеет и другие функции, такие как управление графическим процессором дисплея и считывание ввода с сенсорной панели или кнопок.
Существует две типичные аппаратные настройки для микроконтроллеров. Одно периферийное устройство имеет встроенный драйвер ЖК-/TFT, а другое — периферийное устройство без встроенного драйвера ЖК-/TFT. То же самое: в обоих случаях требуется фреймбуфер для хранения текущего изображения экрана.
MCU со встроенным драйвером TFT/LCD Если MCU имеет периферийный драйвер TFT/LCD, дисплей можно подключить напрямую через интерфейс RGB. В этом случае буфер кадра может располагаться во внутренней оперативной памяти (если у MCU достаточно оперативной памяти) или во внешней оперативной памяти (если у MCU есть интерфейс памяти).
Если микроконтроллер не имеет встроенного интерфейса драйвера TFT/LCD, необходимо использовать внешний контроллер дисплея (например, SSD1963, SSD1306, ILI9341). В этом случае MCU может взаимодействовать с контроллером дисплея через параллельный порт, SPI или через I2C. Кадровый буфер обычно расположен в контроллере дисплея, что экономит много оперативной памяти для MCU.
В первые годы большинство микроконтроллеров имели ограниченные ресурсы и возможности обработки. Из-за нехватки ресурсов и возможностей обработки на базе микроконтроллеров существовало мало графических интерфейсов общего назначения.
В настоящее время, с развитием технологии MCU, производительность и характеристики MCU сильно изменились. По сравнению с прошлым, ресурсы MCU увеличились, возможности обработки расширились, рыночный спрос вырос, а функции графического интерфейса, естественно, стали более распространенными.
LVGL объединяет ряд функций, таких как компактность, многоплатформенность, простая трансплантация, простота эксплуатации, открытый исходный код и бесплатность. Для пользователей LVGL предлагает более 30 виджетов, которые можно использовать в любое время, и вы даже можете настраивать элементы управления.
LVGL часто используется на устройствах уровня MCU, поскольку его можно переносить и использовать на нескольких платформах и на разных дисплеях. Он написан на C и очень подходит для MCU с ограниченными ресурсами.
MiniGUI — это усовершенствованная оконная система и система поддержки графического пользовательского интерфейса для встраиваемых систем, соответствующая соглашению GPL. Являясь промежуточным программным обеспечением между операционными системами и приложениями, MiniGUI скрывает детали базовой операционной системы и аппаратной платформы и обеспечивает согласованный интерфейс для приложений верхнего уровня.
MiniGUI также имеет множество технических функций, в том числе возможность работать на 32-битной процессорной архитектуре, содержащей MMU; поддержку устройств отображения как низкого, так и высокого класса, а также поддержку вторичного экрана, а также удобство работы с различными операционными системами и средами; . Три режима работы и встроенные атрибуты поддержки кросс-операционных систем для разработки и отладки встроенных приложений, полный многооконный механизм и механизм передачи сообщений;
Qt для микроконтроллеров — это полноценная графическая среда и набор инструментов, который содержит все необходимое для настройки, разработки и развертывания графических интерфейсов на микроконтроллерах. Вы можете запускать приложения на «голом железе» или в операционной системе реального времени.
Qt для MCU поставляется с тремя инструментами разработки, включая IDE (Qt Creator), оснащенную полноценным редактором кода, контролем версий и другими функциями; помощник, написанный на языке Qt QML, для быстрого проектирования и создания приложений с нуля или на основе пространства пользовательского интерфейса Xianheng. Компонентный редактор WYS|WYG (Qt Quick Designer); графическая среда Qt Quick Ultralite предоставляет богатый набор API-интерфейсов QML для создания плавных графических интерфейсов и механизмов рендеринга.
emWin поддерживает создание эффективных, высококачественных графических пользовательских интерфейсов в любой встроенной системе. emWin поддерживает системы с микроконтроллерами с ограниченными ресурсами для запуска потрясающих интерактивных интерфейсов.
emWin совместим с одно- и многозадачными средами, может использовать собственные операционные системы, а также совместим с любой коммерческой RTOS. Он предоставляется в исходном коде на языке C, что делает его профессиональным и универсальным графическим интерфейсом для рынка встраиваемых систем, который можно использовать во многих различных сценариях.
Последняя картинка сравнения более интуитивно понятна!
легкий Атрибуты LVGL привлекли к LVGL бесчисленное количество поклонников. При использовании различных небольших плат для разработки с низкой конфигурацией большинство разработчиков сразу же думают о LVGL, что также подчеркивает еще одну его характеристику. Легко пересаживать 。
Также с открытым исходным кодом、оптимизировать、легкийсорт,Концепции проектирования RISC-V и LVGLсуществовать просто совпадают.,Они могут стать основным направлением технологического развития в ближайшие десять лет.
В настоящее время чип RISC-V Allwinner, основанный на процессоре Alibaba C906, уже поддерживает LVGL. Придерживаясь одной и той же концепции дизайна, две черные технологии интернет-знаменитостей расцвели чудесный фейерверк на чипах Quanzhi.
На форуме интернет-сообщества Allwinner друг разместил пост о пересадке LVGL на Нежа Д1, что вызвало широкое обсуждение. Без лишних слов, посмотрим видео, чтобы увидеть эффект.
В видео используется Д1. Нежа-макетная плата, оснащенная 7-дюймовым сенсорным MIPI-экраном. Вы можете увидеть пересаженный LVGL. DEMO работает плавно на чипе с набором команд RISC-V без какого-либо давления.
Еще одно видео.
Благодаря функции двухэкранного дисплея чипа D1 может использовать LVGL для взаимодействия с пользовательским интерфейсом с одной стороны, а также декодирования и воспроизведения видео с другой стороны, что решает проблему, с которой телевизионные фанаты испытывают трудности с одновременной работой во время просмотра телевизионных драм. и не занимает выход на экран HDMI. Хотя LVGL требует слишком много ресурсов, он также помогает плавно выводить содержимое экрана на mipi, успешно обеспечивая дифференциальное отображение на двух экранах.
Играть в LVGL на Nezha также очень просто. Вам нужно только скачать исходный код и использовать команду компиляции для компиляции исходного кода:
CC=/xxxx/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gcc make
Затем используйте adb, который поставляется с Tina Linux, чтобы перенести демо-версию на плату разработки, и вы можете начать играть. Если экран MIPI отсутствует, также поддерживается использование монитора HDMI + мыши.
Конечно, LVGL может добиться гораздо большего. Быстро развивайте свое воображение и создавайте больше шедевров! ! !