1. w4orocos: система сборки

2. w4orocos: конфигурирование →

Содержание
1.1 Описание
1.2 Orocos Toolchain
1.3 Демонстрационное OROCOS приложение
1.4 Конфигурирование
1.5 Опции сборки для WrmOS
1.6 Сборка для WrmOS
1.7 Сборка для локального компьютера (GNU Linux)

1.1 Описание [наверх]


w4orocos выглядит как обычное WrmOS приложение. Проект состоит из двух основных частей:

  • lib/orocos Orocos Toolchain с добавленной поддержкой WrmOS и SPARC;
  • app/orocos — демонстрационное OROCOS приложение.

w4orocos имеет основанную на make систему сборки. В то же время, для сборки lib/orocos и app/orocos используются их собственный основанные на CMake сборочные скрипты.

w4orocos является WrmOS проектом — он работает поверх WrmOS. Наряду с этим, w4orocos позволяет собирать и запускать OROCOS приложение на локальном компьютере (GNU Linux). Для этих целей в корневом мэйкфайле имеются дополнительные правила. Эти правила начинаются с префикса localhost-.
Для большей информации смотрите Сборка для локального компьютера (GNU Linux).

1.2 Orocos Toolchain [наверх]


Структура файлов

Orocos Toolchain находится в директории lib/orocos. Эта директория содержит всего лишь один файл:

Makefile Сборочный файл библиотеки.

Во время сборки w4orocos загружает исходники Orocos Toolchain и собирает их в статическую библиотеку.

Зависимости сборки

Orocos toolchain имеет основанную на CMake систему сборки. Однако, при сборки OROCOS так же использует другие утилиты и пакеты catkin, ruby и другие. Наиболее простым путём для установки требуемых пакетов является установка ROS. К сожалению, ROS:

  • очень большой и требует много дискового пространства;
  • может быть непригодным для установки на OS, отличные от Ubuntu.

Если установка ROS для вас не подходит, то можете установить требуемые для OROCOS зависимости вручную самостоятельно.

Во время сборки библиотеки OROCOS осуществляются следующие шаги:

  1. С githab клонируется супер-репозиторий orocos_toolchain;
  2. Клонируются под-репозитории — log4cpp, ocl, orogen, rtt, rtt_typelib, typelib, utilrb;
  3. Клонируется модифицированный RTT с поддержкой WrmOS и SPARC и перезаписывается исходный RTT;
  4. Собираются все компоненты: в виде статической библиотеки для WrmOS, и в виде статической и динамической библиотек для GNU Linux;

1.3 Демонстрационное OROCOS приложение [наверх]


Файловая структура

Демонстрационое приложение находится в app/orocos. Эта директория содержит следующие файлы:

Makefile Сборочный файл для WrmOS приложения.
demo.oro/ Директория с OROCOS приложением.
demo.oro/CMakeLists.txt Сборочный файл OROCOS приложения.
demo.oro/src/components.hpp Заголовочный файл с компонентами OROCOS приложения.
demo.oro/src/components.cpp Исходник с компонентами OROCOS приложения.
demo.oro/src/main.cpp Исходник с точкой входа для OROCOS приложения для случая линковки в виде исполняемого файла.
demo.oro/src/start.ops Скрипт для deployer'а с точкой входа для OROCOS приложения для случая запуска приложения с помощью deployer'а.

Что делает приложение?

Демонстрационное приложение создаёт 4 компонента (controller, servo, encoder, shaft) и осуществляет коммуникацию между ними через различные интерфейсы OROCOS. Эти действия эмулируют работу реального робота и демонстрируют возможности OROCOS.

Для WrmOS демонстрационное приложение может быть собран только в виде исполняемого файла. WrmOS запускает его на целевой плате, начиная с исполнения функции main() из файла main.cpp.

Для GNU Linux демонстрационное приложение может быть собрано в виде исполняемого файла и в виде динамической библиотеки. Динамическая библиотека позоляет запускать компоненты OROCOS с помощью deployer'а. Скрипт из файла start.ops содержит те же действия, что и в файле main.cpp, но на скриптовом языке.

Во время сборки демонстрационного приложения осуществляются следующие шаги:

  1. Собирается components.cpp.
  2. Для случая статического исполняемого файла: сборка main.cpp и линковка в исполняемый файл.
  3. Для случая разделяемой библиотеки:  компоненты линкуются в динамическую библиотеку.

1.4 Конфигурирование [наверх]


WrmOS часть конфигурации

w4orocos выглядит как обычное WrmOS приложение. Поэтому его конфигурирование является обычным конфигурированием WrmOS проекта.

Параметры проекта включают в себя:

  • параметры целевой системы (CPU, память, основные системные устройства, частоту шины, ...);
  • параметры сборки библиотек (debug flags);
  • параметры сборки ядра (debug flags, UART, timer, MMU);
  • параметры сборки приложений (debug flags);
  • список приложений;
  • файл конфигурации времени выполнения для Alpha.

Смотрите раздел о конфигурировании WrmOS и о конфигурировании w4orocos для получения более подробной информации.

OROCOS часть конфигурации

Параметры конфигурации OROCOS определены в сборочном файле lib/orocos/Makefile.
Смотрите сайт проекта orocos.org для получения более подробной информации.

1.5 Опции сборки для WrmOS [наверх]


Опции сборки — это параметры командной строки и переменные окружения среды выполнения. Обычно сборка начинается посредством такой команды:

make build P=cfg/prj/orocos-qemu-leon3.prj W=../wrmos B=../build/orocos-qemu-leon3 -j V=1

Система сборки поддерживает следующие опции:

target mandatory может быть build, clean или rebuild (clean & build)
P=project-file-name.prj mandatory определяет конфигурационный файл проекта
B=build-dir-name mandatory определяет сборочную директорию, все собранные файлы будут находиться в ней
W=wrmos-dir-name mandatory определяет директорию с исходниками WrmOS
V=0|1 optional флаг verbose, может иметь значение 0 или 1, позволяет скрыть детали сборки (V=0, по умолчанию) или печатать их (V=1)
-j optional параметр make, позволяет запустить параллельную сборку, это делает сборку быстрее

1.6 Сборка для WrmOS [наверх]


w4orocos является внешним (external) WrmOS проектом. Он может быть собран либо 1) из директории с исходниками WrmOS, либо 2) из директории проекта w4linux.

Из директории с исходниками WrmOS сборка начинается посредством команды:

cd wrmos
make build P=../w4orocos/cfg/prj/orocos-qemu-leon3.prj B=../build/orocos-qemu-leon3 E=../w4orocos -j

Из директории проекта w4orocos сборка начинается посредством команды:

cd w4orocos
make build P=cfg/prj/orocos-qemu-leon3.prj W=../wrmos B=../build/orocos-qemu-leon3 -j

Здесь предполагается, что директории wrmos и w4orocos находятся рядом.

Промежуточные фалы сборки (сгенерированные заголовочные файлы, объектники, библиотеки, исполняемые файлы) будут находиться в сборочной директории, определённой параметром B. Главным результатом сборки является исполняемый файл загрузчика:

../build/orocos-qemu-leon3/ldr/bootloader.elf

или образ диска с загрузчиком:

../build/orocos-qemu-leon3/ldr/bootloader.img

Этот файл может быть загружен на целевую плату или запущен на виртуальной машине QEMU:

qemu-system-sparc -M leon3_generic -display none -serial stdio \
                  -kernel ../build/orocos-qemu-leon3/ldr/bootloader.elf

1.7 Сборка для локального компьютера (GNU Linux) [наверх]


w4orocos может быть собран для локального компьютера с ОС, основанной на Linux. Для этих целей в корневом мэйкфайле находятся дополнительные правила:

localhost-full Собрать и запустить OROCOS и демонстрационное приложение в виде исполняемого файла и в виде разделяемой библиотеки с помощью deployer'а. Библиотека OROCOS будет содержать полный набор компонентов.
localhost-min Собрать и запустить OROCOS и демонстрационное приложение в виде исполняемого файла. Библиотека OROCOS будет содержать минимальный набор компонентов.
localhost-clean Очистить библиотеку OROCOS и демонстрационное приложение.
localhost-distclean Очистить библиотеку OROCOS и демонстрационное приложение и удалить загруженные исходники.
localhost-get-sources Загрузить исходники из сторонних репозиториев.
localhost-build-full Собрать OROCOS и демонстрационное приложение в виде исполняемого файла и в виде разделяемой библиотеки. Библиотека OROCOS будет содержать полный набор компонентов.
localhost-build-min Собрать OROCOS и демонстрационное приложение в виде исполняемого файла. Библиотека OROCOS будет содержать минимальный набор компонентов.
localhost-build-orocos-full Собрать OROCOS в виде статической и разделяемой библиотек. Библиотека OROCOS будет содержать полный набор компонентов.
localhost-build-orocos-min Собрать OROCOS в виде статической библиотеки. Библиотека OROCOS будет содержать минимальный набор компонентов.
localhost-build-demo Собрать демонстрационное приложение.
localhost-clean-orocos Очестить библиотеку OROCOS.
localhost-clean-demo Очестить демонстрационное приложение.
localhost-run-deployer Запустить deployer и выполнить скрипт start.ops.
localhost-run-executable Запустить статически слинкованный исполняемый файл с демонстрационным приложением.

В качестве примера, для сборки и запуска OROCOS и демонстрационного приложения в виде исполняемого файла, а затем запуска компонентов с помощью deployer'a можно использовать следующую команду:

make localhost-full B=../build/orocos.loc -j

Дополнительную информацию можно найти в статье Запуск w4orocos.

2. w4orocos: конфигурирование →