ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
34294
pin (28.06.2005 15:06, просмотров: 2288)
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