Перейти к содержанию
    

Кто-нибудь портировал RTEMS на другие платформы не используя кросс-платформенный компилятор Linux (и всего такого).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- как создать загрузочный image системы из под Linux;

- имеете ли вы сведения о портировании этой системы на платформы не поддерживаемые gcc.

Загрузочный image, насколько мне помниться, получается из откомпилированного elf или coff файла с помощью obj-copy, которая переводит его в bin, hex, srec, etc формат. Надо чтоб линк скрипт был настроен на конкретный адрес, откуда будет выполняться этот код.

Это делается и на Linux и в cygwin одинаково.

 

Насчет второго вопроса. Не знаю ни одной системы, которую бы не поддерживал gcc. Точнее не работал с такими. Знаю что у нас на кафедре портировали gcc под какую-то отечественную архитектуру. Все что поддерживает RTEMS, gcc тоже поддерживает.

 

Также знаю, что в другом отделе портировали RTEMS для какого-то "суперкрутого" компилятора для PowerPC.

 

В принципе, для того чтобы запустить RTEMS на устройстве надо чтобы gcc поддерживал процессор этого устройства (иначе придется портировать RTEMS или, еще круче, порировать компилятор). А bsp под конкретную архитектуру/плату написать относительно легко (главное требование к разработчику - знание unix-like среды и умение в ней работать).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что на ADSP процах компилятор поствляемый Analog Devices, это некий вариант gcc, но надо сказать, что далеко от него ушедший. Для того, чтобы собрать makefile надо запусть configure. Как раз эта задача и не выполнима. В следствии мне приходится разбираться какие файлы нужны для моей сборки, а какие нет. А это я вам скажу при той структуре каталогов задача не простая. У них там столько каталогов Include с одинаковыми файлами, что свихнуться можно. А про условные компиляции я вообще молчу. За ответ спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я могу вам посоветовать разобраться с системой configure. Есть два пакета, automake и autoconf, которые делают из makefile.am такие файлы как configure, configure.in, etc.

 

Если вы говорите что ваш компилятор - это развитие gcc, то значит можно найти соответствие их между параметрами запуска чтобы переделать makefile под ваш компилятор. Это не так уж и сложно сделать (просто знать где поменять пару строк и что запускать).

 

Как следствие нет необходимости вручную править makefile и другие скрипты. Все эти файлы генерятся автоматически из нескольких набольших файлов (1-2Кб максимум).

 

Хорошая дока есть в Linux и в cygwin: configure.info файл называется.

Книга про automake, autoconf и configure http://sources.redhat.com/autobook/download.html

 

А то что там много include - это да. Но в них лежат вовсе не одинаковые файлы. Каждая папка соответсвует своей подсистеме. Это идеологические особенности GNU. К этому надо привыкнуть. И научиться пользоваться каким-нибудь файл менеджером (отличным от Explorer и bash-shell) для быстрой навигации по этим папкам :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблем с навигацией у меня нет. Поверьте программистом я работаю не первый год и уже как 15 лет. С Unix системами я тоже знаком не по наслышке. Дело в другом. При компиляции очень много перекрестных ссылок. Я очень хочу выбрать из RTEMS только основные компаненты, которые позволили бы мне использовать голый kernel. Мне не нужны не файловые системы не специальные драйвера - это я и без них сделаю. Для меня основная задача - это максимально маленькое ядро ОС. Почему я выбрал RTEMS, а не что-либо другое. Во-первых из обычного житейского интереса, во-вторых задача показалась мне не простой. Только в одном я промахнулся описания для нормального портирования я не нашел. По сути надо лишь норамльное описание таго, что лежит в файлах, хоть короткое хоть длинное. Потому как просто не понять че ему реально надо, а что можно выкинуть и забыть. Вроде я получил нормальную сборку ядра. Принципиально оно даже запускается, но платформенно зависимую часть я пока не понял куда прикручивать. Я остановился и попробовал создать образ в Linux, но результатом стали лишь исполняемые файлы под Linux. Тут я еще тормазнулся, если файлы пашут под Linux значит они и собраны под него, тогда вопрос: "Где ядро ОС, которое можно подгрузить на компе и порадоваться, что все работает". На сколько я понял из файлов там есть консоль, т.е. можно потыкать клавиши при загруженной ОС. Если бы у меня была такая сборка и я бы понимал как она получилась я бы без проблем портировал бы эту ОС без всяких там makefile'ов. К сажелению такого понятия у меня пока нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините, нечего оскорбительного не имел ввиду, просто ко мне несколько студентов подходило (начальство делало редирект в мою сторону :) и плакало как там все запутанно :)

Позволю несогласиться насчет документации. Там очень хорошо описана структура кода и где что находится, а куда надо вставлять поддержку своей платы (libbsp).

Признаюсь, что работал с 4.5.2 версией, а последние (4.6.2) не видел. Это было 2 года назад. Может быть там что и поменялось.

Готов вам помочь разобраться. На работе скачаю новую версию посмотрю. Буда рад помочь, если подскажите в чем.

Насчет makefile совершенно с вами не согласен. Без понимания этой системы и вообще без нее далеко не уедешь. Недаром там такой огород нагородили.

 

А версия для linux у вас получилась видимо потому что не указаны опции для configure по использованию кросс-компилятора (кажется --build-target или что-то в этом роде). Естественно, linux бинарник не позволит получить образ для flash (потому что он требует динамических библиотек а они самого ядра) Но может я и ошибаюсь. Попробуйте запустить obj-copy для вашего исполнимого файла, указав опцию binary формата выходного файла. Если сругается на неразрешимось ссылок, значит я прав.

 

С уважением, Andrey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот именно документация по портированию на новую плату для известных платформ написана идеально (лучше, врядли где встретишь разве, что в uC/OS-II). На счет помощи заранее благодарен. Сейчас пару дел разгребу и яду за RTEMS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу не бить меня сильно за следующий вопрос. Понимаю, что незнание не освобождает от ответственности, но все же. Подскажите, каким образом развернуть RTEMS под Windows, возможно ли это?

В данном вопросе я ламер, поставили задачу разобраться с RTEMS - не знаю, от чего оттолкнуться. Заранее спасибо всем откликнувшимся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу не бить меня сильно за следующий вопрос. Понимаю, что незнание не освобождает от ответственности, но все же. Подскажите, каким образом развернуть RTEMS под Windows, возможно ли это?

В данном вопросе я ламер, поставили задачу разобраться с RTEMS - не знаю, от чего оттолкнуться. Заранее спасибо всем откликнувшимся.

Развернуть - это распаковать? Такие юниксовые архивы как tgz (или tar.gz - архив файлов в формате tar, зажатый упаковщиком gz) и tar.bz2 (tar, зажатый упаковщиком bz2) можно распаковать с помощью winrar. Но не рекомендую этого делать если потом необходимо будет их компилировать, так как в них есть символьные ссылки и они могут нарушиться (короче это из мира unix).

 

Для распаковки и вообще для работы вам понадобится cygwin (http://www.cygwin.com, вроде). Разбирайтесь с ним и unix вообще (По unix рекомендую книгу Робачевского). Вам не нужно, конечно, учиться его администрировать, но идеологию понять придется, без этого никак.

 

А потом читаете документацию к RTEMS. Там есть последовательность действий по компилированию кросскомпиляторов, компилированию RTEMS (на выходе будут библиотеки) и компилированию starter приложения под какую-либо плату (на выходе исполнимый файл или образ памяти в формате .hex, например).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Развернуть - это распаковать?

Некорректно выразился, имелось ввиду установить для работы.

 

Для распаковки и вообще для работы вам понадобится cygwin (http://www.cygwin.com вроде). Я о нем писал чуть ниже.

Спасибо.

 

А потом читаете документацию к RTEMS. Там есть последовательность действий по компилированию кросскомпиляторов, компилированию RTEMS (на выходе будут библиотеки) и компилированию starter приложения под какую-либо плату (на выходе исполнимый файл или образ памяти в формате .hex, например).

Есть ли рускоязычная пошаговая инструкция по установке RTEMS?

И еще вопрос - надо ли в Windows под RTEMS выделять отдельный раздел?

 

Спасибо еще раз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Некорректно выразился, имелось ввиду установить для работы.

Распаковать в какую-нибудь папку дистибутив RTEMS. Все, он готов к работе.

 

Есть ли рускоязычная пошаговая инструкция по установке RTEMS?

Не искал, может и есть. Поищите в google.

 

И еще вопрос - надо ли в Windows под RTEMS выделять отдельный раздел?

Для компилирования? Нет конечно.

Если вы имеете ввиду запуск RTEMS на PC, то для этого надо FAT раздел или дискетку, чтоб запустить DOS, а из него загрузить в память образ приложения. Может быть ошибаюсь в деталях, но концептуально это должно быть так (не запускал RTEMS на PC).

 

RTEMS не пожожа на DOS, Windows или unix в том плане, что у обычных операционок ядро лежит в одних файлах, сами приложения в других и когда надо все это динамически линкуется. RTEMS - это ОС реального времени. Ее едро не лежит в каком-нибудь файле, а прикомпилировано к приложению, т.е. монолитно находится с ним в одном исполнимом файле. Соответственно, чтоб запустить это RTEMS-приложениеб надо загрузить этот исполнимый файл в память(если он уже не находится во Flash) и передать ему управление.

 

Спасибо еще раз.

Ю а велком! :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Распаковать в какую-нибудь папку дистибутив RTEMS. Все, он готов к работе.

Если вы имеете ввиду запуск RTEMS на PC, то для этого надо FAT раздел или дискетку, чтоб запустить DOS, а из него загрузить в память образ приложения. Может быть ошибаюсь в деталях, но концептуально это должно быть так (не запускал RTEMS на PC).

 

Ю а велком! :)

 

Спасибо, для начала информации достаточно. Если будут еще вопросы (они должны быть, иначе никак :) ) - я Вас еще потревожу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересная ОС, для Analog Device blackfin наверно будет гораздо лучше и перспективней чем чем тормозной и глючный ucLinux(фактически до сих пор нереботающий). Полный набор для ембеддера: честная RTOS, TCP/IP, сервера, файловая система и остальное-на любителя.

Минимальный footprint (ядро) 20..30кБ

Тоже попробую портануть под него, благо опыт есть.

Странно что до сих пор никто не сделал порт для него.

Интересно, если у вас получилось, напишите результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На уровне функций все зашибись. Практически вызов любой процедуры в ручном режиме. Код получился приличный, но вроде как функционирующий. Единственная проблема нехватка времени и постоянные командировки. А так система довольно портируема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А потом читаете документацию к RTEMS. Там есть последовательность действий по компилированию кросскомпиляторов, компилированию RTEMS (на выходе будут библиотеки) и компилированию starter приложения под какую-либо плату (на выходе исполнимый файл или образ памяти в формате .hex, например).

 

у меня установлен cygwin и я распоковал архив с sparc-rtems-4.6.5-gcc-3.2.3-1.0.15-cygwin.tar.bz2

только не могу понять, как откомпилировать RTEMS?

Подскажите пожалуйста как это сделать или где об этом можно почитать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...