Библиотека сайта rus-linux.net
Сборка простого приложения в среде eCos
Оригинал:
Building a simple eCos application
Автор: Gary Thomas
Перевод и комментарии: Владимир Царьков
Перевод осуществлён и опубликован с разрешения автора статьи.
Дата публикации перевода - 11.04.2012
Предисловие переводчика
Читателю будет удобно использовать материалы данной статьи сразу после ознакомления с публикацией ``Перспективы самостоятельного изучения архитектуры операционной системы реального времени'' (читая её следует помнить, что в некоторых системах интерпретатор языка Tcl может носить имя tclsh).
Для компиляции примера из текущей статьи необходимо, чтобы были установлены пакеты g++ и make. Также может потребоваться снижение версии пакета binutils (например, до 2.20.1-16).
Получить информацию о доступных конфигурациях ядра удобно выполнив команду /opt/ecos/ecos-3.0/tools/bin/ecosconfig list (точный путь к ecosconfig зависит от настроек, избранных вами при установке среды eCos). Учтите, что если вы попытаетесь исполнить эту команду с привилегиями суперпользователя (например, sudo /opt/ecos/ecos-3.0/tools/bin/ecosconfig list), то, вероятнее всего, будет сгенерировано сообщение об ошибке: ecos.db: error couldn't read file "/opt/ecos/ecos-3.0/tools/bin/ecos.db": no such file or directory Invalid package database.
В дополнение к сказанному, рекомендуем обратить внимание на документацию, доступную на страницах http://ecos.sourceware.org/docs-latest/user-guide/building-the-system.html и http://ecos.sourceware.org/docs-latest/user-guide/building-and-running-sample-appliations.html.
Сборка приложения
В этой заметке рассказывается о том, как собрать приложение на базе среды разработки, предлагаемой в рамках проекта eCos. Мы постараемся осуществить сборку программы типа ``Здравствуй, мир!'' (``Hello, World!''). Выполнение этой процедуры в среде eCos состоит из двух шагов: генерации динамической библиотеки (ядра eCos) и создания конкретного приложения (``Hello, World!'', в нашем случае). Оба шага обсуждаются далее.
Сборка ядра eCos
Для компиляции простого приложения подойдёт почти любая конфигурация ядра eCos. Шаблон конфигурации под названием ``net'' создаст среду, похожую на GNU/Linux. Целевое ядро получаем средствами ecosconfig.
% export ECOS_REPOSITORY= /work2/ecos/packages % mkdir /work/hello_test % cd /work/hello_test % mkdir ecos_kernel application % cd ecos_kernel % ecosconfig new viper net % ecosconfig tree % make
Название каталога /work2/ecos/packages следует заменить на то, которое вы использовали для установки eCos. Целевое аппаратное обеспечение указывается кодовым словом в списке опций ecosconfig (например, чтобы создать ядро для среды GNU/Linux и архитектуры i386, нужно заменить viper на linux. --- Прим. перев.).
Создание приложения
Наше простое приложение будет находиться в одном единственном файле hello.c, исходный код которого представлен далее.
#include <stdio.h> int main(int argc, char *argv[]) { printf("Hello, world!\n"); exit(0); }
hello.c следует поместить в произвольный каталог (лучше всего --- отдельно от других файлов), например, в /work/hello_test/application.
Далее необходимо создать makefile (набор команд, используемых программой make). Этот файл будет содержать команды для сборки нашего приложения. Самый простой путь получить makefile --- выполнить скрипты build_Makefile и build_Make.params. Скопируйте их в каталог /work/hello_test/application.
Теперь осуществим следующие действия:
% cd /work/hello_test/application % chmod +x ./build_Make* % SRCS=hello.c DST=hello ./build_Makefile /work/hello_test/ecos_kernel
И соберём наше приложение ``Hello, World!'':
make
На данном этапе в каталоге /work/hello_test/application должен появиться исполняемый файл hello, предназначенный для использования на избранной платформе (viper, linux или любой другой из списка, доступного ecosconfig).
Вот и всё! Удачи.