eCos для LPC2xxx. Требует не менее 128K ПЗУ и 64К ОЗУ. Для других АРМ адаптируется при необходимости.
Тестировал в железе LPC2106, в симуляторе для 2294.
1. Установка eCos
1.1. Перед установкой eCos был установлен Cygwin.
1.2. Скачать и развернуть исходники eCos в c:\cygwin\opt\
В c:\cygwin\opt\ecos\ должны образоваться директории
\acsupport
\doc
\examples
\packages
\tools
Исходники можно взять из CVS или в едином архиве (ftp://ftp.ecoscentric.com/pub/snapshots/ecos-trunk.tar.bz2)
1.3. Развернуть eCosDoc20.zip в c:\cygwin\opt\ecos\doc\html\
1.4. Скопировать configtool.exe в c:\cygwin\opt\ecos\tools\bin\
configtool есть на FTP или в составе различных архивов с исходниками eCos (нужно смотреть на комментарии к ссылкам на файлы).
1.5. Развернуть packages_diff.zip и заменить файлы в директории c:\cygwin\opt\ecos\packages.
2. Сборка библиотеки и проекта
2.1. Сборка библиотеки
Запустить утилиту configtool.exe и создать или открыть готовый файл *.ecc
Указать в меню пути к утилитам Cygwin, к arm-elf-gcc, к репозиторию eCos.
Создать дерево для сборки и собрать библиотеку.
Тесты сейчас собирать не обязательно, но можно и собрать для большей уверенности в успехе.
После удачной появится примерно такое сообщение:
make[1]: Leaving directory `/ecos-c/cygwin/opt/FREEBSD/P2294_build/hal/arm/arch/current'
build finished
make: Leaving directory `/ecos-c/cygwin/opt/FREEBSD/P2294_build'
В папке c:\cygwin\opt\ПУТЬ К ДЕРЕВУ СБОРКИ\lib\ появятся файлы библиотеки:
extras.o libextras.a libtarget.a target.ld vectors.o
В папке c:\cygwin\opt\ПУТЬ К ДЕРЕВУ СБОРКИ\include\ появятся все необходимые заголовочные файлы.
2.2 Сборка проекта
В папке \Tests находятся проекты Keil uVision 3 (ARM), готовые для сборки тестов.
Тесты находятся в директориях \tests\ в c:\cygwin\opt\ecos\packages\.
Для сборки определенного теста достаточно включить его в проект. Если библиотека eCos собрана с пакетом для теста, то проект должен собраться и должен выполниться без ошибок.
В архивах находятся примеры библиотек и тестовых проектов: \2106, \2294, \freebsd, \jffs2. Проекты для LPC2106 проверялись в железе и в симуляторе, для LPC2294 - только в симуляторе.
Примечание:
Проект \synt понадобился для изучения синтетического драйвера Flash-памяти для jffs2. В нем создается необходимый для сборки файл devs_flash_synth.h (прилагается к \jffs2).
3. Известные проблемы
3.1. Сборка.
Некоторые дистрибутивы arm-elf-gcc не смогли собрать eCos вообще,
Некоторые - не поддерживают ряд ключей gcc.
eCos собрался набором gccarm303.exe с сайта Keil.
3.2. Файлы HAL для ARM пришлось поправить там, где производится копирование векторов в ОЗУ. Я не стал разбираться пока, как именно это должно было работать (с учетом возможностей LPC2xxx по размещению векторов прерываний).
3.3. Объем памяти контроллера
Для сборки проекта вместе с библиотекой с eCos требуется достаточный (и большой) объем памяти.
Некоторые тесты требовали слишком много памяти, их пришлось поправить.
3.4. Отладочная информация.
Если собрать библиотеку eCos с отладочной информацией (ключ -g), то пути к исходным файлам при сборке под Windows будут начинаться с "/ecos-c/cygwin/opt". Отладчик CrossWorks ARM предлагает указать правильный путь к файлам *.c, отладчик Keil ARM просто падает с ошибкой доступа к памяти.
Решение - собирать библиотеку без отладочной информации.
Второе решение (если это вообще допустимо) - пропатчить .elf файл и заменить начало путей на "c:/cygwin/opt", с учетом исходной длины строки с путем к файлу.
3.5. Регистр букв в названиях файлов
Существует какая-то связь между регистрами букв в названии файлов примеров и их симуляцией в Keil. Тест SER1.С симулировался неправильно.
4. От автора
4.1. Автор не отвечает за любой ущерб, причиненный при выполнении инструкций из п. 1 этого данного документа.
4.2. Автор не отвечает за любой ущерб, причиненный при использовании исходного и объектного кода, полученного при выполнении инструкций из п. 1 данного документа.
pin
embedded0@nm.ru
2005-06-26
-
- А как в ней с поддержкой FAT? Не очень ли она тяжела для LPC? - Ivanov(29.06.2005 00:02, )
- Поддержка FAT есть и собирается без ошибок. pin(281 знак., 30.06.2005 10:45, )
- да, файлы в обменнике - pin(28.06.2005 16:24, )
- httpd работает. - pin(28.06.2005 22:41, , картинка)
- А как в ней с поддержкой FAT? Не очень ли она тяжела для LPC? - Ivanov(29.06.2005 00:02, )