Наши партнеры

UnixForum





Библиотека сайта 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).

Вот и всё! Удачи.