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 осуществляются следующие шаги:
- С githab клонируется супер-репозиторий orocos_toolchain;
- Клонируются под-репозитории — log4cpp, ocl, orogen, rtt, rtt_typelib, typelib, utilrb;
- Клонируется модифицированный RTT с поддержкой WrmOS и SPARC и перезаписывается исходный RTT;
- Собираются все компоненты: в виде статической библиотеки для 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, но на скриптовом языке.
Во время сборки демонстрационного приложения осуществляются следующие шаги:
- Собирается components.cpp.
- Для случая статического исполняемого файла: сборка main.cpp и линковка в исполняемый файл.
- Для случая разделяемой библиотеки: компоненты линкуются в динамическую библиотеку.
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.