Совместное использование корпуса LVGL - шаг за шагом научит вас, как осуществить пересадку на отечественную плату промышленного развития T113-i.
Совместное использование корпуса LVGL - шаг за шагом научит вас, как осуществить пересадку на отечественную плату промышленного развития T113-i.
На рынке представлено множество встроенных библиотек графического интерфейса, включая библиотеки графического интерфейса с открытым исходным кодом и библиотеки графического интерфейса с закрытым исходным кодом: LVGL, EmWin и т. д. Библиотеки графического интерфейса с закрытым исходным кодом: TouchGFX, Persimmon GUI и т. д.
Тестовая плата для этого руководства по разработке взята из отечественной промышленной оценочной платы TLT113-EVM компании Chuanglong Technology, которая основана на конструкции двухъядерного гетерогенного многоядерного процессора ARM Cortex-A7 + Xuantie C906 RISC-V + HiFi4 DSP компании Quanzhi Technology T113-i. Основной процессор ARM Cortex-A7 работает с тактовой частотой до 1,2 ГГц.
Оценочная плата состоит из основной платы и оценочной базовой платы. Все компоненты, такие как ЦП, ПЗУ, ОЗУ, источник питания и кварцевый генератор на основной плате, выполнены в отечественных решениях промышленного уровня со 100% степенью локализации. В то же время большинство компонентов оценочной объединительной платы также используют отечественные решения промышленного уровня. Основная плата была проверена профессиональной компоновкой печатной платы, а также испытаниями при высоких и низких температурах. Она стабильна и надежна и может использоваться в различных промышленных условиях.
Схема аппаратных ресурсов отечественной промышленной оценочной платы T113-i
Кроме того, отечественная промышленная плата T113-i имеет богатые интерфейсные ресурсы и может поддерживать внедрение двух сетевых портов, двух CAN, двух USB, двух RS485, RS232 и других коммуникационных интерфейсов, а также внедрение LVDS LCD, TFT. LCD, MIPI LCD, HDMI OUT, CVBS IN/OUT, LINE IN, MIC IN, H/P ВЫХОД и другие аудио- и видео-мультимедийные интерфейсы, встроенный WIFI, модуль 4G (опционально), поддержка аппаратного кодирования видео JPEG/MJPEG 1080P при 60 кадрах в секунду, поддержка аппаратного декодирования видео 4K при 30 кадрах в секунду H.265, 4K при 24 кадрах в секунду H.264, удобно для пользователей быстро провести оценку решения продукта и предварительное техническое исследование.
В этой статье в основном описывается, как пересадить LVGL8.1 на макетную плату T113-i от Chuanglong Technology.
LVGL
ЛВГЛ, полное имя «Литтлев» Graphics Библиотека», — Открытый исходный Графическая библиотека кода в основном используется для создания графических пользовательских интерфейсов (GUI) во встроенных системах. Он написан на языке C и спроектирован таким образом, чтобы быть эффективным и настраиваемым, чтобы хорошо работать на различных платформах микроконтроллеров и аппаратных дисплеях. Он популярен для разработки пользовательских интерфейсов программного обеспечения.
Характеристики ЛВГЛ
Легкость: LVGL спроектирован так, чтобы быть легким и эффективным, что делает его подходящим для встроенных систем с ограниченными ресурсами, ограниченной памятью и вычислительной мощностью.
Широкие возможности настройки: LVGL позволяет разработчикам настраивать внешний вид и поведение элементов графического интерфейса в соответствии с требованиями проекта.
Библиотека виджетов: она предоставляет множество предварительно разработанных графических виджетов, таких как кнопки, метки, ползунки, списки и т. д., для упрощения создания интерактивных пользовательских интерфейсов.
Управляемый событиями: LVGL управляется событиями, что означает, что он реагирует на ввод пользователя и другие события, запуская действия или изменения состояния.
аппаратное поддержка программного обеспечения: LVGL поддерживает различные дисплеи и входы аппаратное обеспечение,Включает в себя различные типы дисплеев (TFT, OLED). и т. д.) и устройства ввода (сенсорный экран、кнопки и др.).
Активное сообщество: LVGL имеет активное и поддерживающее сообщество, которое предоставляет ресурсы для его развития и оказывает помощь разработчикам.
Кроссплатформенность: LVGL может использоваться на различных платформах микроконтроллеров и подходит для различных встроенных систем.
LVGLиз Открытый исходный код Связь:https://github.com/lvgl
Трансплантация ЛВГЛ
Скачать репозиторий исходного кода
Ссылка для скачивания кода lvgl: https://github.com/lvgl/lvgl/archive/refs/tags/v8.1.0.tar.gz
Ссылка для скачивания кода lv_demos: https://github.com/lvgl/lv_demos/archive/refs/tags/v8.1.0.tar.gz
Ссылка для удаления кода lv_drivers: https://github.com/lvgl/lv_drivers/archive/refs/tags/v8.1.0.tar.gz
Ссылка на удаление кода lv_port_linux_frame_buffer: https://github.com/lvgl/lv_port_linux_frame_buffer.git, загрузите через git clone, а затем переключитесь на ветку v8.2.
После записи всего кода каталог кода выглядит следующим образом:
Миграция файла исходного кода
Создайте каталог: lvgl, в котором будет храниться наш проект Исходный. код
Скопируйте код lvglИсходный код в каталог lvgl.
Скопируйте lv_driversИсходный код в каталог lvgl.
Скопируйте код lv_demosИсходный код в каталог lvgl.
Скопируйте lv_conf_template.h из lvgl в lvgl и переименуйте в lv_conf.h.
Скопируйте lv_drv_conf_template.h из lv_drivers в lvgl и переименуйте в lv_drv_conf.h.
Скопируйте lv_demo_conf_template.h из lv_demo в lvgl и переименуйте его в lv_demo_conf.h.
Скопируйте main.c и Makefile из lv_port_linux_frame_buffer в lvgl.
После пересадки файлов каталог кода выглядит следующим образом:
Изменить файл конфигурации
Измените lv_conf.h, этот файл является файлом конфигурации lvgl.
Включите заголовочный файл lv_conf.h и измените #if 0 на #if 1.
Выберите размер формата пикселя, соответствующий пикселю согласно драйверу (можно посмотреть в дереве устройств), иначе отображение может искажаться.
Изменить размер видеопамяти
Установите функцию настройки таймера Tick
Просмотрите журнал, включите LV_USE_LOG, установите уровень журнала для печати и выберите интерфейс для печати журнала.
В примерах теста используются шрифты разных размеров. Вам необходимо включить шрифты, которые можно использовать.
Измените lv_drv_conf.h, этот файл является файлом конфигурации драйвера.
Включите модификацию заголовочного файла lv_drv_conf.h и измените #if 0 на #if 1.
Включить ЖК-дисплей: включите USE_FBDEV, установите путь к /dev/fb0 и установите его в соответствии с фактическим состоянием ЖК-дисплея платы.
Включить мышь или сенсорный экран
Измените lv_demo_conf.h, этот файл представляет собой файл конфигурации тестового варианта использования.
Включите модификацию заголовочного файла lv_demo_conf.h и измените #if 0 на #if 1.
Включите вариант использования LV_USE_DEMO_WIDGETStest.
Измените файл main.c. Этот файл является основной программой программы lvgl.
Измените конфигурацию мыши. Узел устройства моей мыши: /dev/input/event5.
Измените Makefile, который является сценарием проекта сборки.
Чтобы изменить путь цепочки инструментов сборки, вам необходимо выбрать перекрестную цепочку инструментов T113-i. Путь цепочки инструментов: xxx/T113-i_v1.0/out/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux. -gnueabi/bin/arm -linux-gnueabi-gcc
Поскольку цепочка инструментов не поддерживает опцию компилировать -Wshift-negative-value, прямой ущерб соответствует опции компилировать.
Поскольку файла значка мыши нет, закомментируйте конфигурацию значка мыши.
В тестовый образец добавлена компиляция, включая скрипт сборки.
Проверка компиляции LVGL
компилировать,Сборка в каталоге проекта lvgl.,Выполнить команду сделать
После завершения компиляции исполняемый файл демо-версии будет создан в текущем каталоге.
Для проверки копируем исполняемый демо-файл на плату
Запустите экземпляр LVGL на плате
Результаты запуска:
Подвести итог
Трансплантация lvgl в Linux происходит относительно просто и быстро; вам нужно всего лишь изменить несколько файлов конфигурации, чтобы запустить его на целевой системе, что очень удобно для нас при развертывании пользовательского интерфейса.
Общий эффект от работы lvgl на T113-i нормальный, плавность в целом удовлетворительная, подходит для реализации некоторых проектов.
lvgl является кроссплатформенным, поэтому написание приложения можно развернуть на нескольких терминалах, избегая повторных процессов разработки.