Программирование ARM Конфигурация платы LuckFox с помощью утилиты luckfox-config Fri, October 03 2025  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Конфигурация платы LuckFox с помощью утилиты luckfox-config Печать
Добавил(а) microsin   

На выводах платы разработчика Luckfox Pico могут быть несколько мультиплексированных функций. В зависимости от нужд конкретного проекта часто требуется подстроить device tree. В этой статье (перевод документации [1]) описываются 2 метода конфигурирования мультиплексирования функций выводов Luckfox Pico: во время компиляции, и во время работы системы (system runtime).

[1. Введение]

Device Tree используется ядром системы (Linux kernel) для описания информации платы о всех аппаратных устройствах. Файлы Device Tree обычно имеют расширения .dts или .dtsi, где файлы .dts описывают определенную аппаратную информацию устройства, а файлы .dtsi, подключаемые в файлы .dts, обычно описывают общую информацию для подобных аппаратных устройств. Файлы Luckfox Pico device tree находятся в директории < luckfox-pico SDK>/sysdrv/source/kernel/arch/arm/boot/dts.

Во время процесса компиляции (когда запущен скрипт компиляции командой < luckfox-pico SDK>/build.sh) device tree комбинирует файлы .dts и .dtsi в бинарный файл dtb. Когда система Luckfox Pico запускается, загрузчик uboot загружает файл dtb в память. Во время процесса запуска ядра системы (kernel startup process) парсится файл dtb, и устройства инициализируются на основе информации device tree, загружаются соответствующие драйверы, и регистрируются узлы управления устройств (device control nodes). Kernel читает dtb не только один раз. Начиная с версии Linux 4.4 был представлен механизм, называемый Dynamic Device Tree, позволяющий перезаписывать информацию конфигурации, загруженную в dtb, прямо во время работы системы (runtime). Драйверы ядра (kernel drivers) подстраиваются на основе новой конфигурации.

Таким образом, информация device tree может быть сконфигурирована и применена двумя способами: на стадии компиляции и во время работы системы.

1.1. Обзор Device Tree Configuration. Первый шаг компиляции образа Luckfox Pico заключается в выборе соответствующих файлов поддержки платы (board support files). Это делается командой в каталоге SDK:

$ ./build.sh lunch

• Информация файла board support линкуется с < luckfox-pico SDK>/.BoardConfig.mk.

• Файлы board support конфигурируют файлы .dts для соответствующих моделей плат Luckfox Pico. Модели с одинаковым аппаратным дизайном частей используют одни и те же файлы .dtsi, это сделано для унифицированного управления.

• Для разных моделей плат используются следующие device tree файлы .dts и .dtsi:

Модель .dts .dtsi
Luckfox Pico rv1103g-luckfox-pico.dts rv1103-luckfox-pico-ipc.dtsi
Luckfox Pico Mini A rv1103g-luckfox-pico-mini-a.dts rv1103-luckfox-pico-ipc.dtsi
Luckfox Pico Mini B rv1103g-luckfox-pico-mini-b.dts rv1103-luckfox-pico-ipc.dtsi
Luckfox Pico Plus rv1103g-luckfox-pico-plus.dts rv1103-luckfox-pico-ipc.dtsi
Luckfox Pico Pro/Max rv1106g-luckfox-pico-pro-max.dts rv1106-luckfox-pico-pro-max-ipc.dtsi
Luckfox Pico Ultra rv1106g-luckfox-pico-ultra.dts rv1106-luckfox-pico-ultra-ipc.dtsi
Luckfox Pico Ultra W rv1106g-luckfox-pico-ultra-w.dts rv1106-luckfox-pico-ultra-ipc.dtsi

1.2. Обзор luckfox-config. Скрипт luckfox-config (находится в папке /usr/bin/ корня файловой системы Luckfox Pico) это утилита для быстрого конфигурирования функций устройств системы Luckfox Pico. Благодаря механизму динамической конфигурации дерева устройств (dynamic device tree) и утилите fdt (находится в папке /sys/firmware/), большинство конфигураций устройства может быть выполнено без перекомпиляции dtb.

• Поддержка терминала

Тип системы Buildroot Ubuntu
Serial Port ✅Поддерживается ✅Поддерживается
SSH ✅Поддерживается ✅Поддерживается
ADB ✅Клавиши курсора на клавиатуре не работают ✅Поддерживается

• Функциональность

Тип системы Buildroot Ubuntu
GPIO ✅Поддерживается По умолчанию pull-up/pull-down не поддерживаются
PWM ✅Поддерживается ✅Поддерживается
UART ✅Поддерживается ✅Поддерживается
I2C ✅Поддерживается ✅Поддерживается
SPI ✅Поддерживается ✅Поддерживается
FBTFT Поддерживается только на Luckfox Pico / Plus / Pro / Max
RGB Поддерживается только на Luckfox Pico Ultra / Ultra W
TouchScreen Поддерживается только на Luckfox Pico Ultra / Ultra W
USB ✅Поддерживается ✅Поддерживается
CSI ✅Поддерживается ✅Поддерживается

[2. Конфигурация luckfox-config]

Важное замечание: конфигурация luckfox-config основана на файле дерева устройств по умолчанию (default device tree file). Если дерево устройств было настроено в процессе компиляции образа, то некоторые функции могут работать неправильно.

2.1. Логическая структура luckfox-config

luckfox config fig01

• Утилита динамической конфигурации дерева устройств luckfox-config позволяет редактировать конфигурацию с помощью интерактивного, псевдографического интерфейса.

• В файле /etc/luckfox.cfg сохранена конфигурационная информация, которую могут редактировать пользователи. Элементы конфигурации загружаются каждый раз при старте корневой файловой системы (root filesystem) Linux.

• Команда luckfox-config show позволяет посмотреть информацию о конфигурации выводов платы.

2.2. Основное использование luckfox-config

1. Откройте "графический" интерфейс конфигурации (эта команда запускается на устройстве через adb shell):

[root@luckfox ]# luckfox-config

Откроется примерно вот такое окно:

luckfox config fig02

2. Используйте клавиши ↑, ↓ и Enter для навигации по пунктам меню, а клавиши ←, → keys или Tab для выбора кнопок OK и Cancel. Используйте клавишу Esc для отмены действий и возврата, а клавишу пробела для выбора опции. Любые изменения вступят в силу после перезапуска системы. Замечание: когда осуществляется вывод в лог через ADB, вы не можете использовать клавиши со стрелками или клавишу Tab. Вместо этого используйте цифры для выбора опций и Enter для подтверждения.

3. Просмотр статуса конфигурации. Когда вывод платы разрешен, в конфигурации он будет помечен звездочкой "*" и заблокирован. Если новые разрешенные интерфейсы содержат заблокированные выводы, они не смогут продолжить работу. Вы можете просмотреть текущий статус блокировки выводов в меню about команды luckfox-config, или использованием следующей команды:

[root@luckfox ]# luckfox-config show

Если функция повторного использования контактов не указана на схеме контактов, то непосредственно помечается соответствующий GPIO.

На платах серии Luckfox Pico Ultra, поскольку I2C4 и CSI camera используют одни и те же выводы, по умолчанию разрешен интерфейс CSI, и конфигурация pinctrl-0 включает выводы I2C4, так что при первой загрузке помечаются все выводы I2C4 и RGB.

luckfox config fig03

4. Сохранение конфигурации. CОбщие конфигурации повторного использования контактов (например PWM, UART, I2C, SPI) вступают в силу немедленно. Устройства, драйверы которых не поддерживают динамическое обнаружение (например FBTFT, RGB, touch screen, CSI) требуют перезагрузки для вступления изменений в силу.

Замечание: настройки, которые для вступления в действие требуют перезагрузки, делаются путем прямой модификации dtb. Статус ENABLE в luckfox.cfg только для записи. Простое модифицирование luckfox.cfg не дает эффекта во время загрузки конфигурации.

5. Загрузка конфигурации:

[root@luckfox ]# luckfox-config load

Замечание: Загрузка конфигурации выполняется автоматически на этапе запуска корневой файловой системы. Создается узел dtboverlay, и конфигурация записывается в соответствии с файлом /etc/luckfox.cfg. Обычно эту команду не нужно выполнять вручную.

2.3. Часто используемые конфигурации

2.3.1. PWM

1. Зайдите в Advanced Options -> PWM interface, и luckfox-config покажет поддерживаемые конфигурации PWM.

luckfox config PWM fig04

2. Выберите желаемую опцию, и выберите enable или disable для разрешения или запрета. Чтобы отменить конфигурацию, используйте клавиши со стрелками для выбора Cancel и возврата в предыдущее меню.

luckfox config PWM fig05

3. Если вывод уже используется для другой функции и помечен, то выбор enable отобразит соответствующий запрос. Конфликтующая конфигурация должна быть запрещена, чтобы могла быть успешно применена новая конфигурация разрешения.

luckfox config PWM fig06

2.3.2. UART

1. Войдите в Advanced Options -> UART, и luckfox-config покажет все поддерживаемые конфигурации UART.

luckfox config UART fig07

2. Выберите желаемую опцию, выберите enable или disable. Чтобы отменить конфигурацию, используйте клавиши со стрелками для выбора Cancel и возврата в предыдущее меню.

3. Если вывод уже используется для другой функции и помечен, то выбор enable отобразит соответствующий запрос. Конфликтующая конфигурация должна быть запрещена, чтобы могла быть успешно применена новая конфигурация разрешения.

2.3.3. I2C

1. Войдите в Advanced Options -> I2C interface, и luckfox-config покажет все поддерживаемые конфигурации I2C.

luckfox config I2C fig08

2. Выберите нужную опцию, выберите enable или disable. Чтобы отменить конфигурацию, используйте клавиши со стрелками для выбора Cancel и возврата в предыдущее меню. Выбор enable приведет к входу в интерфейс конфигурации скорости (speed configuration).

luckfox config I2C fig09

3. В системе Luckfox Pico Ultra резрешение CSI не позволит сконфигурировать I2C4, а разрешение touch screen не позволит сконфигурировать I2C3.

luckfox config I2C fig10

4. Если вывод уже используется для другой функции и помечен, то выбор enable отобразит соответствующий запрос. Конфликтующая конфигурация должна быть запрещена, чтобы могла быть успешно применена новая конфигурация разрешения.

2.3.4. SPI

1. Войдите в Advanced Options -> SPI interface, и luckfox-config покажет все поддерживаемые конфигурации SPI.

luckfox config SPI fig11

2. Выберите желаемую опцию, выберите enable или disable. Чтобы отменить конфигурацию, используйте клавиши со стрелками для выбора Cancel и возврата в предыдущее меню.

luckfox config SPI fig12

luckfox config SPI fig13

luckfox config SPI fig14

3. Если вывод уже используется для другой функции и помечен, то выбор enable отобразит соответствующий запрос. Конфликтующая конфигурация должна быть запрещена, чтобы могла быть успешно применена новая конфигурация разрешения.

2.3.5. FBTFT

Замечание: конфигурацию поддерживают только платы Luckfox Pico Plus, Luckfox Pico Pro и Luckfox Pico Max, и в настоящее время поддерживаются только чипы дисплея ST7789v / ST7789vm. Конфигурация FBTFT для вступления в действие требует перезагрузки.

1. Войдите в Advanced Options -> FBTFT, выберите enable для входа в режим конфигурации FBTFT.

luckfox config FBTFT fig15

2. Если разрешен SPI0M0, то FBTFT не может быть сконфигурирован.

luckfox config FBTFT fig16

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

2.3.6. RGB

Замечание: в настоящее время конфигурацию touchscreen поддерживают только платы Luckfox Pico Ultra и Luckfox Pico Ultra W, и конфигурация RGB требует перезагрузки для вступления в силу.

1. Войдите в Advanced Options -> RGB, выберите enable для входа в меню конфигурации RGB, и заполните опции в соответствии со спецификацией используемого дисплея.

luckfox config RGB fig17

2. Нажатие Enter приведет к переходу к следующему меню конфигурации. После заполнения опций снова нажмите Enter для завершения конфигурации.

luckfox config RGB fig18

3. Если были заданы несовместимые элементы конфигурации, то отобразится соответствующее сообщение.

luckfox config RGB fig19

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

2.3.7. TouchScreen

Замечание: в настоящее время конфигурацию touchscreen поддерживают только платы Luckfox Pico Ultra и Luckfox Pico Ultra W, и поддерживается только чип GT911 тачскрина. Конфигурация тачскрина для вступления в силу требует перезагрузки.

1. Войдите в Advanced Options -> TouchScreen, выберите enable для входа в меню конфигурирования адреса I2C тачскрина, и выберите нужный вариант. Чаще всего используется адрес 0x14.

luckfox config TouchScreen fig20

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

luckfox config TouchScreen fig21

2.3.8. CSI

1. Войдите в Advanced Options -> CSI, выберите enable или disable.

luckfox config CSI fig22

2. Рекомендуется конфигурировать CSI один раз после загрузки Luckfox Pico Ultra, чтобы предотвратить влияние последующих конфигураций.

3. Если выводы I2C4 используются, то CSI не может быть сконфигурирован без влияния на задачи, использующие I2C4.

luckfox config CSI fig23

Конфигурация CSI для вступления в силу требует перезагрузки.

2.4.10. USB

Войдите в Advanced Options -> USB, сконфигурируйте режим USB для работы как периферийное устройство (peripheral) или как хост (host).

luckfox config USB fig24

Замечание: конфигурация USB для вступления в силу требует перезагрузки.

2.4.11. SDMMC

Замечание: в настоящий момент только Luckfox Pico Mini, Luckfox Pico Plus, Luckfox Pico Pro, Luckfox Pico Max поддерживают конфигурацию SDMMC. Запрет SDMMC может вступить в силу без перезагрузки, однако разрешение этой конфигурации требует перезагрузки.

1. Войдите в Advanced Options -> SDMMC, выберите enable или disable.

luckfox config SDMMC fig25

2. Если SD-CARD используется как системный носитель (system storage medium), то опция SDMMC не может быть сконфигурирована.

3. После запрета выводов SDMMC, если вам нужно подключить другие периферийные устройства к освобожденным выводам, то убедитесь, что карта не установлена в слот (только у платы Luckfox Pico Plus на внешние контакты выставлены выводы SDMMC).

2.4. Совместимая конфигурация устройства

• Платы серий Luckfox Pico Plus, Luckfox Pico Pro, Luckfox Pico в основном ссылаются на цоколевку выводов платы Raspberry Pi Pico, и по конфигурации выводов совместимы с некоторыми устройствами Raspberry Pi Pico.

luckfox config Compatible Device Configuration fig26

• См. [2] для информации о списке совместимых устройств, поддерживаемых различными моделями плат Luckfox Pico.

• Опция совместимого устройства в сущности представляет собой конфигурацию комбинации конфигураций нескольких выводов, и она может упростить процедуру конфигурации.

• Из-за отсутствия в Ubuntu команд io для непосредственной настройки регистров, Luckfox Pico не может настроить контакты на pull-up по умолчанию при настройке совместимого устройства Pico-LCD, из-за чего не может правильно управлять кнопками.

• При запуске конфигурации совместимого устройства это перезапишет оригинальную конфигурацию. Для отмены совместимого устройства перейдите в меню Advanced Options для запрета запущенной функции устройства.

[Ссылки]

1. luckfox-config Configuration site:wiki.luckfox.com.
2. LuckFox Compatibility List site:wiki.luckfox.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page