Как разрабатывать ПО для Wiren Board

Материал из Wiren Board
Другие языки:

Замечание: эта статья про то, как создавать новое программное обеспечение для Wiren Board, и предназначена для программистов;

Окружение

Все контроллеры Wiren Board поставляются с полноценным Debian Linux. Архитектура процессора: armhf (Wiren Board 6) или armel (Wiren Board 5 и раньше). На контроллере используется libc версии 2.13.

Установку ПО рекомендуется производить с помощью пакетного менеджера Debian, и упаковывать ПО в deb-пакеты

Общие соображения

Контроллеры Wiren Board имеют, в зависимости от модели, от 64 до 1024 MB оперативной памяти. Это значит, что необходимо учитывать потребление памяти при разработке своих программ. Про то, как контролировать потребление памяти в Linux, см. сайт http://www.linuxatemyram.ru/.

Сборка пакетов и программ

Сборку программ рекомендуется производить на компьютере с Linux, используя специальное разработческое окружение. Компиляция и разработка непосредственно на Wiren Board 5 не рекомендуется из-за маленького объёма RAM.

Тулчейн

Если ваша программа не имеет внешних зависимостей от библиотек операционной системы, то для её сборки можно установить тулчейн. Название тулчейна:

  • для Wiren Board 6 и выше: **AArch32 target with hard float (arm-linux-none-gnueabihf)**
  • для Wiren Board 5 и ниже: **arm-linux-none-gnueabi**

Скачать тулчейн для вашей операционной системы можно здесь: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads

В дистрибутивах Linux необходимые тулчейны обычно уже доступны как пакеты. Например, для Ubuntu или Debian:

apt install gcc-arm-linux-gnueabihf


Разработческое окружение

Разработческое окружение удобно использовать для сборки программ с внешними зависимостями от системных библиотек, для упаковки программ как Debian-пакетов, для удобной сборки под несколько версий Wiren Board. Это рекомендуемый и самый удобный способ.

Предоставляется в виде Docker-контейнера. Для его использования в Linux существует удобный скрипт wbdev. При использовании окружения, кросс-компиляция не нужна. Скрипт wbdev автоматически запускает соответствующие команды в виртуализованном окружении с архитектурой armel, соответствующей архитектуре процессора Wiren Board.

Сборка пакетов производится с помощью вызова wbdeb, например так:

$ wbdev chroot #запустить виртуализованное qemu сhroot окружение с Debian 7 архитектуры armel
$ wbdev make # вызвать make в виртуализованном qemu chroot окружении
$ wbdev cdeb # собрать пакет, написанный на C++ в виртуализованном qemu chroot окружении
$ wbdev gdeb # собрать пакет, написанный на Go, с использованием кросс-компиляции Go
$ wbdev ndeb # собрать архитектурно-независимый пакет, например содержащий проект на Python

Полное описание работы с окружением - в документации.

Другие статьи

Сборка ядра

Сборка образов прошивки

Уникальные идентификаторы - для идентификации устройства, привязки софта

Узнать степень износа внутреннего накопителя

Пересборка Device Tree