|
eCos стоит или нет? |
|
|
|
Feb 24 2006, 18:44
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 23-09-04
Пользователь №: 709

|
Есть ли кто нибудь кто практически использует еСos? Стоит ли с ним связываться ? Хотелосьбы унифицировать все проекты (и там где стоят маленькие АРМ и те которые делаються на промышленных компьютерах ) под один РТОС. Посмотрел вроде это наиболее подходящее но попробовал сделать синтетический порт под линуха то немного помулался. А порт на РС с redboot пока не получился. Вот и начал задумываться стоит дальше мучаться или нет. И еще вопрос по литературе и вообще по интересным ссылкам и проектам , где копать?
|
|
|
|
|
Mar 3 2006, 23:56
|
Местный
  
Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675

|
Цитата(framer @ Feb 24 2006, 21:44)  Есть ли кто нибудь кто практически использует еСos? Стоит ли с ним связываться ? ... но попробовал сделать синтетический порт под линуха то немного помулался. А порт на РС с redboot пока не получился Ну, практически, нет, а разбираться начал ... upload/DOCs/Eclipse/ecosarm-1.3.chm - буду дополнять по-мере освоения "Стоит ли с ним связываться ?" сам хочу понять (а то и дополнять нечего  Собирал под vmware - не работает, под PC - нет проблем. Но свободной персоналки нет, хочу под vmware или под Linux (еще не пробовал). А в чем под Linux проблемам - может поделитесь?
|
|
|
|
|
Mar 30 2006, 09:43
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-02-06
Пользователь №: 13 960

|
Цитата(Andrew2000 @ Mar 4 2006, 03:56)  Собирал под vmware - не работает, под PC - нет проблем. Но свободной персоналки нет, хочу под vmware или под Linux (еще не пробовал).
А в чем под Linux проблемам - может поделитесь? Я установил eCos под Fedora Core 4, научился делать загрузочные дискеты для ПК, запускать прогу на таргете под отладчиком, но дело встало. Может кто подскажет как заставить eCos видеть винт и грузить с него проги?
|
|
|
|
|
Mar 30 2006, 10:35
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(yanich @ Mar 30 2006, 13:43)  Цитата(Andrew2000 @ Mar 4 2006, 03:56)  Собирал под vmware - не работает, под PC - нет проблем. Но свободной персоналки нет, хочу под vmware или под Linux (еще не пробовал).
А в чем под Linux проблемам - может поделитесь?
Я установил eCos под Fedora Core 4, научился делать загрузочные дискеты для ПК, запускать прогу на таргете под отладчиком, но дело встало. Может кто подскажет как заставить eCos видеть винт и грузить с него проги? А зачем? Он это делать умеет, но на мой взгляд - зря. eCos - встраиваемая операционка, т.е. библиотека - пишете приложение, собираете с осью, получается двоичный образ, зашивается в ПЗУ - и все. А всякие динамические загрузки и выделения памяти - потенциальный завис.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Mar 30 2006, 11:08
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-02-06
Пользователь №: 13 960

|
Цитата(v_shamaev @ Mar 30 2006, 14:35)  Цитата(yanich @ Mar 30 2006, 13:43) 
Я установил eCos под Fedora Core 4, научился делать загрузочные дискеты для ПК, запускать прогу на таргете под отладчиком, но дело встало. Может кто подскажет как заставить eCos видеть винт и грузить с него проги?
А зачем? Он это делать умеет, но на мой взгляд - зря. eCos - встраиваемая операционка, т.е. библиотека - пишете приложение, собираете с осью, получается двоичный образ, зашивается в ПЗУ - и все. А всякие динамические загрузки и выделения памяти - потенциальный завис. Мне это какраз нужно. Для начала я хотел бы собрать eCos с тестовым приложением и заставить всё это стартовать с жёсткого диска на x86. Так же нужен файловый ввод/вывод, последовательные порты.
|
|
|
|
|
Mar 30 2006, 11:35
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(yanich @ Mar 30 2006, 15:08)  Мне это какраз нужно. Для начала я хотел бы собрать eCos с тестовым приложением и заставить всё это стартовать с жёсткого диска на x86. Так же нужен файловый ввод/вывод, последовательные порты. Если одно приложение - особых проблем не вижу - получаете загрузочный образ, на диск - вперед. Но на мой взгляд это целесообразно только если стоит одна задача, уже не учебная. Я бы поступил так - поставил vmware, и из под нее грузил бы хоть двадцать образов - каждый в виде файла. Консоль есть, файловая система тоже поддерживается. Да и отлаживаться при нужде можно (хоть и несколько сложно )
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Mar 30 2006, 11:51
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-02-06
Пользователь №: 13 960

|
Цитата(v_shamaev @ Mar 30 2006, 15:35)  Цитата(yanich @ Mar 30 2006, 15:08)  Мне это какраз нужно. Для начала я хотел бы собрать eCos с тестовым приложением и заставить всё это стартовать с жёсткого диска на x86. Так же нужен файловый ввод/вывод, последовательные порты.
Если одно приложение - особых проблем не вижу - получаете загрузочный образ, на диск - вперед. Но на мой взгляд это целесообразно только если стоит одна задача, уже не учебная. Я бы поступил так - поставил vmware, и из под нее грузил бы хоть двадцать образов - каждый в виде файла. Консоль есть, файловая система тоже поддерживается. Да и отлаживаться при нужде можно (хоть и несколько сложно ) Приложений будет 2. Я пишу под Linux'ом в POSIX, так что отлаживать эти программы на целевой платформе не придётся (я надеюсь). По поводу загрузочного модуля. Как его получить? В примере из документации собираетрся RedBoot, заливается на дискету. А тестовая программа компилится в отдельном проекте и загружается по сети или COM (командой load) на таргет. Дальше исполняется командой go. Но это не то, что мне нужно. К стати после команды go в терминал выводится бред вместо "Test string\n". У меня получилось запустить тест в отладчике так-же через COM.
|
|
|
|
|
Mar 30 2006, 12:08
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(yanich @ Mar 30 2006, 15:51)  Цитата(v_shamaev @ Mar 30 2006, 15:35)  Цитата(yanich @ Mar 30 2006, 15:08)  Мне это какраз нужно. Для начала я хотел бы собрать eCos с тестовым приложением и заставить всё это стартовать с жёсткого диска на x86. Так же нужен файловый ввод/вывод, последовательные порты.
Если одно приложение - особых проблем не вижу - получаете загрузочный образ, на диск - вперед. Но на мой взгляд это целесообразно только если стоит одна задача, уже не учебная. Я бы поступил так - поставил vmware, и из под нее грузил бы хоть двадцать образов - каждый в виде файла. Консоль есть, файловая система тоже поддерживается. Да и отлаживаться при нужде можно (хоть и несколько сложно ) Приложений будет 2. Я пишу под Linux'ом в POSIX, так что отлаживать эти программы на целевой платформе не придётся (я надеюсь). По поводу загрузочного модуля. Как его получить? В примере из документации собираетрся RedBoot, заливается на дискету. А тестовая программа компилится в отдельном проекте и загружается по сети или COM (командой load) на таргет. Дальше исполняется командой go. Но это не то, что мне нужно. К стати после команды go в терминал выводится бред вместо "Test string\n". У меня получилось запустить тест в отладчике так-же через COM. Так точно так же как и RedBoot - в конце концов, он то же из eCos собирается. Только вместо RedBoot на дискету, образ заливается приложение, собранное с eCos. В тестовом примере разбирается отладочный случай - редбут все-же проще запустить, а если он работает, значит уже можно и свое что через отладочный канал грузить-отлаживать. Ну а если прошлись по всем граблям, дальнейшее труда не составит. Ну и еще - в окончательном варианте не должно быть резидентной части отладчика, модель памяти - ROM, и вся инициализация своя - не из RedBoot-а
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Mar 30 2006, 12:43
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-02-06
Пользователь №: 13 960

|
Цитата(v_shamaev @ Mar 30 2006, 16:08)  Цитата(yanich @ Mar 30 2006, 15:51)  Приложений будет 2. Я пишу под Linux'ом в POSIX, так что отлаживать эти программы на целевой платформе не придётся (я надеюсь). По поводу загрузочного модуля. Как его получить? В примере из документации собираетрся RedBoot, заливается на дискету. А тестовая программа компилится в отдельном проекте и загружается по сети или COM (командой load) на таргет. Дальше исполняется командой go. Но это не то, что мне нужно. К стати после команды go в терминал выводится бред вместо "Test string\n". У меня получилось запустить тест в отладчике так-же через COM.
Так точно так же как и RedBoot - в конце концов, он то же из eCos собирается. Только вместо RedBoot на дискету, образ заливается приложение, собранное с eCos. В тестовом примере разбирается отладочный случай - редбут все-же проще запустить, а если он работает, значит уже можно и свое что через отладочный канал грузить-отлаживать. Ну а если прошлись по всем граблям, дальнейшее труда не составит. Ну и еще - в окончательном варианте не должно быть резидентной части отладчика, модель памяти - ROM, и вся инициализация своя - не из RedBoot-а При компиляции редбута создаётся bin файл, который заливается на дискету. При компиляции шаблона i386 PC target (default) такого файла нет. При компиляции непосредственно программы с либами из шаблона всё проходит успешно. Но как её объединить с eCos?
Сообщение отредактировал yanich - Mar 30 2006, 13:03
|
|
|
|
|
Mar 30 2006, 13:35
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(yanich @ Mar 30 2006, 16:43)  При компиляции редбута создаётся bin файл, который заливается на дискету. При компиляции шаблона i386 PC target (default) такого файла нет. При компиляции непосредственно программы с либами из шаблона всё проходит успешно. Но как её объединить с eCos? Т.е. проблема в получении двоичного образа из elf-а? objcopy -Obinary это делает. А эти самые "либы из шаблона" - и есть eCos. Для образца можно посмотреть make из examples. Там все правильно собирается
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Mar 30 2006, 14:07
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-02-06
Пользователь №: 13 960

|
Цитата(v_shamaev @ Mar 30 2006, 17:35)  Цитата(yanich @ Mar 30 2006, 16:43)  При компиляции редбута создаётся bin файл, который заливается на дискету. При компиляции шаблона i386 PC target (default) такого файла нет. При компиляции непосредственно программы с либами из шаблона всё проходит успешно. Но как её объединить с eCos?
Т.е. проблема в получении двоичного образа из elf-а? objcopy -Obinary это делает. А эти самые "либы из шаблона" - и есть eCos. Для образца можно посмотреть make из examples. Там все правильно собирается Я так и поступил. Взял Makefile из примера, компилю, запускаю i386-elf-objcopy, заливаю полученный бинарник на дискету (dd conv=sync if=bin_file of=/dev/fd0), сую дискету в дисковод, перезагружаюсь и ничего. К дискете происходит обращение и система виснет.
|
|
|
|
|
Mar 30 2006, 14:36
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(yanich @ Mar 30 2006, 18:07)  Я так и поступил. Взял Makefile из примера, компилю, запускаю i386-elf-objcopy, заливаю полученный бинарник на дискету (dd conv=sync if=bin_file of=/dev/fd0), сую дискету в дисковод, перезагружаюсь и ничего. К дискете происходит обращение и система виснет. Значит где-то в конфигурации eCos что-то. Попробовать запустить под vmware или эмулятором DOS линукса в отладочной моде, посмотреть где висит или циклится, ну и по карте загрузки - в каком месте. Если в самом начале - или вектора, или неправильная модель памяти. А под отладчиком - посмотреть в начале инициализация, в разных моделях памяти по-разному происходит. А если не в начале - то с консольными портами ошибка в конфигурации. В любом случае - идти по шагам, попытки сразу получить конечный результат - нахальство.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Mar 30 2006, 20:36
|
Местный
  
Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675

|
Цитата(v_shamaev @ Mar 30 2006, 17:36)  ... Попробовать запустить под vmware или эмулятором DOS линукса в отладочной модево... Та же проблема, только наоборот: с дискетки на PC запускается, под VMWARE - виснет при обращении к дискете (запускал RedBoot). Три версии VMWARE перепробовал ...
|
|
|
|
|
Mar 31 2006, 06:26
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 17-01-05
Пользователь №: 1 995

|
В прошлом году я тоже баловался с eCOS. Даже запустил один из примеров на LPC2294 без внешнего ОЗУ. На том дело и заглохло. По поводу зависонов - они были. eCOS был сконфигурирован для роботы из ROM.При прогоне под симулятором выяснил, что eCOS виснет при вызове статических конструкторов( функция cyg_hal_invoke_constructors(), если не ошибаюсь). Вылечилось правкой файла линкера - перенос секций __CTORS__ и __DTORS__ в глубь секции .text. Изменилось ли что нибудь с тех пор - не знаю.
|
|
|
|
|
Mar 31 2006, 12:43
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(alogvinov @ Mar 31 2006, 10:26)  В прошлом году я тоже баловался с eCOS. Даже запустил один из примеров на LPC2294 без внешнего ОЗУ. На том дело и заглохло. По поводу зависонов - они были. eCOS был сконфигурирован для роботы из ROM.При прогоне под симулятором выяснил, что eCOS виснет при вызове статических конструкторов( функция cyg_hal_invoke_constructors(), если не ошибаюсь). Вылечилось правкой файла линкера - перенос секций __CTORS__ и __DTORS__ в глубь секции .text. Изменилось ли что нибудь с тех пор - не знаю. А есть макрооопределение по поводу вызова конструкторов. Необходимость вызова определяется при конфигурировании.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|