Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: uClinux для LPC2294 проблема
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
WarNick
Приветствую, опишу проблему,

Пытаюсь скомпилить uClinux для EVB LPC-E2294
http://www.olimex.com/dev/index.html
И получаю ошибку компиляции. Я в линуксе новичёк и самому разобраться очень сложно.

Система:
Fedora Core 4 / GCC 4.0

Пытаюсь собрать:
uClinux-20040408 + linux-2.6.11.8

Что я делаю - по шагам:

- обновляю кернел:
tar -jxvf linux-2.6.11.8.tar.bz2
gzip -dc linux-2.6.11.8-hsc0.patch.gz | patch -p0
gzip -dc linux-2.6.11.8-lpc22xx.patch.gz | patch -p0

Пока всё нормально. Имеем новый кернел в фолдере linux-2.6.11.8

- для uClinux:
tar -zxvf uClinux-dist-20040408.tar.gz
gzip -dc uClinux-dist-20041215-lpc22xx.patch.gz | patch -p0

Имеем дистриб в фолдере uClinux-dist

- заменяю кернел 2.6.x
rm -rf uClinux-dist/linux-2.6.x/
mv linux-2.6.11.8 uClinux-dist/linux-2.6.x

Насколько я понимаю, все исходники готовы.
- Install arm-elf-tools-20040427.sh
OK


- Настройка:
[uClinux-dist]# make menuconfig
"Vendor/Product Selection” = Philips/LPX22xx
“Kernel/Library/Defaults Selection” = linux-2.6.x + uClibc +
toggle the
whole menus
"System type" = SRAM/FLASH data, LPC22xx -> Osc/Fcclk
"Character device" = как рекомендовано в доке, добавляю "Serial drivers" support

Все остальные настройки оставил по умолчанию. Далее
[uClinux-dist]# make

-------------------------------------
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD vmlinux
arch/arm/kernel/built-in.o(.init.text+0x704): In function
`setup_machine':
: undefined reference to `lookup_machine_type'
make[1]: *** [vmlinux] Error 1
make[1]: Leaving directory
`/home/cryon/install/uClinux-dist/linux-2.6.x'
make: *** [linux] Error 1
[root@localhost uClinux-dist]#
---------------------------------

Что-то происходит с 2.6 кернелом? Что это за "machine_type" и где его найти?
Самому мне с этим не разобраться. Пожалуста, помогите!
3.14
Добро пожаловать, набирайтесь терпения smile.gif
Вы забыли make dep перед make (это с появлением ядра 2.6 эту операцию эбрали).
Ну а вообще, подобная "блевота" обычное дело при сборке, еще хлеще когда обновиш дистрибутивы и перестает собираться twak.gif (я собирал под MicroBlaze).
Единственное спасение - форум по порту на процессор.
Evgeny_CD
Цитата(3.14 @ Apr 12 2006, 19:11) *
Добро пожаловать, набирайтесь терпения smile.gif
Прошу простить меня за bb-offtopic.gif, но звучит как "Оставь надежду, всяк сюда входящий". Не уж то с uClinux все так мрачно?
zltigo
Цитата(Evgeny_CD @ Apr 12 2006, 18:14) *
Не уж то с uClinux все так мрачно?

Во всяком случае явно мрачнее сборки "обычного линукса под 386" :-)
Evgeny_CD
Цитата(zltigo @ Apr 12 2006, 19:22) *
Во всяком случае явно мрачнее сборки "обычного линукса под 386" :-)
Тогда eCos рулез всех времен и народов! Лично я, правда, пока не могу его даже под VmWare запустить. unsure.gif Но ничего, прорвемся!
3.14
Цитата(Evgeny_CD @ Apr 12 2006, 18:14) *
Прошу простить меня за bb-offtopic.gif, но звучит как "Оставь надежду, всяк сюда входящий". Не уж то с uClinux все так мрачно?
Да нет конечно, это субъективная оценка "инженерюги" smile.gif
Если человеку системное прграммирование по вкусу, и к тому же интересно как там ядро и прочие гадости (для меня) устроены, то думаю особых переживаний он не будет испытывать.


2 Evgeny_CD
А чего из сервисов у eCos есть?
Присутсвует минимальный набор: FTP, Telnet, HTTP, PPP?
zltigo
Цитата(Evgeny_CD @ Apr 12 2006, 18:25) *
Тогда eCos рулез всех времен и народов! Лично я, правда, пока не могу его даже под VmWare запустить.

Ваш оптимизм Вам несомненно поможет в этом деле. Ну о получившемся рулез/mustdie узнаете,
к сожалению, заметно позже момента первого запуска :-(. Надеюсь на дальнейшее освещение процесса.
Evgeny_CD
Цитата(3.14 @ Apr 12 2006, 19:35) *
2 Evgeny_CD
А чего из сервисов у eCos есть?
Присутсвует минимальный набор: FTP, Telnet, HTTP, PPP?
PPP наличествет, правда народ там борется с глюками (возможно, в своем ДНК)
http://www.caxapa.ru/echo/arm.html?id=56681

HTTP, даже с динамическим контентом есть. Есть порт BOA.

FTP только клиент в штатной поставке.

Telnet - в штатной поставке нет.
3.14
Забыл сразу, а какие файловые системы знает?
Evgeny_CD
Цитата(zltigo @ Apr 12 2006, 19:38) *
Ваш оптимизм Вам несомненно поможет в этом деле. Ну о получившемся рулез/mustdie узнаете,
к сожалению, заметно позже момента первого запуска :-(. Надеюсь на дальнейшее освещение процесса.
Увы, ничего не поделаешь. Но я все-таки тешу себя мыслью, что когда-нибудь я осознаю этот eCos. Хотя это будет не скоро...


Цитата(3.14 @ Apr 12 2006, 19:42) *
Забыл сразу, а какие файловые системы знает?
FAT точно знает, есть куда других портированных под eCos. Реализация FAT очень хорошая
http://www.caxapa.ru/echo/arm.html?id=46744

А вообще -
http://ecos.sourceware.org/docs-latest/ref/ecos-ref.html
Evgeny_CD
Цитата(3.14 @ Apr 12 2006, 19:42) *
Забыл сразу, а какие файловые системы знает?
Посмотрел - JFFS2 входит в штатный дистрибут.
WarNick
мда.. дело ясное, что дело тёмное.. Тогда вопрос другой. Сколько нужно мозгов минимально SRAM/Flash иметь на борту, чтоб безболезненно запустить uClinux.
Evgeny_CD
Цитата(WarNick @ Apr 13 2006, 11:33) *
мда.. дело ясное, что дело тёмное.. Тогда вопрос другой. Сколько нужно мозгов минимально SRAM/Flash иметь на борту, чтоб безболезненно запустить uClinux.
Тут посмотрите
http://www.ulrichradig.de/index.html
3.14
Цитата(WarNick @ Apr 13 2006, 10:33) *
мда.. дело ясное, что дело тёмное.. Тогда вопрос другой. Сколько нужно мозгов минимально SRAM/Flash иметь на борту, чтоб безболезненно запустить uClinux.
Сами понимаете, количество необходимой памяти зависит от количества работающих процессов, кое кто умудрялся и с одним мегабайтом работать. Но я думаю 2-4 Мбайт это необходимый минимум. Опять де статика такого объема накладна и габаритна, остается SDRAM, а там уже меньше 8М наверное трудно будет найти smile.gif
nss
undefined reference to `lookup_machine_type' Такое бывает когда линковщик не может найти код функции
Найдите библиотеку с описанием этой функции.
Скорее это библиотека с привязкой к архитектуре того контроллера на который вы хотите заливать uCLinux.
Проверте мануалы где говорится что куда копировать для компиляции под определенный контроллер.
DogZ
Скорее всего попытка запускать uClinux на этой плате пустая трата времени. Ядро с данными займет около 500 Кб, 1М RAM на плате слишком мало для разработки. Очевидно что готовое приложение в RAM+FLASH можно впихнуть. Это одна из причин по кторой я переключился на eCOS для этой платы.
Evgeny_CD
Цитата(DogZ @ Apr 23 2006, 03:09) *
Скорее всего попытка запускать uClinux на этой плате пустая трата времени. Ядро с данными займет около 500 Кб, 1М RAM на плате слишком мало для разработки. Очевидно что готовое приложение в RAM+FLASH можно впихнуть. Это одна из причин по кторой я переключился на eCOS для этой платы.
А удалось найти порт eCos для LPC22xx? Его вроде как в public нету. Или сами пишите?
DogZ
Цитата(Evgeny_CD @ Apr 23 2006, 11:30) *
Цитата(DogZ @ Apr 23 2006, 03:09) *
Скорее всего попытка запускать uClinux на этой плате пустая трата времени. Ядро с данными займет около 500 Кб, 1М RAM на плате слишком мало для разработки. Очевидно что готовое приложение в RAM+FLASH можно впихнуть. Это одна из причин по кторой я переключился на eCOS для этой платы.
А удалось найти порт eCos для LPC22xx? Его вроде как в public нету. Или сами пишите?


Сначала портировал версию 2.0 (ARM7TDMI там уже был). Сейчас использую версию из CVS репозитория. В этой версии уже есть поддержка и 21XX и 22XX.
Evgeny_CD
Цитата(DogZ @ Apr 23 2006, 16:26) *
Сначала портировал версию 2.0 (ARM7TDMI там уже был). Сейчас использую версию из CVS репозитория. В этой версии уже есть поддержка и 21XX и 22XX.
Да, в .cdl файлах тами LPC22xx упоминаются. Подскажите, какую именно target Вы выбрали для LPC22xx. Удалось на этой плате от Olimex запустить Ethernet?

Цитата(DogZ @ Apr 23 2006, 16:26) *
Сначала портировал версию 2.0 (ARM7TDMI там уже был). Сейчас использую версию из CVS репозитория. В этой версии уже есть поддержка и 21XX и 22XX.
Да, в .cdl файлах тами LPC22xx упоминаются. Подскажите, какую именно target Вы выбрали для LPC22xx. Удалось на этой плате от Olimex запустить Ethernet?
DogZ
Цитата(Evgeny_CD @ Apr 24 2006, 09:58) *
Цитата(DogZ @ Apr 23 2006, 16:26) *
Сначала портировал версию 2.0 (ARM7TDMI там уже был). Сейчас использую версию из CVS репозитория. В этой версии уже есть поддержка и 21XX и 22XX.
Да, в .cdl файлах тами LPC22xx упоминаются. Подскажите, какую именно target Вы выбрали для LPC22xx. Удалось на этой плате от Olimex запустить Ethernet?

Цитата(DogZ @ Apr 23 2006, 16:26) *
Сначала портировал версию 2.0 (ARM7TDMI там уже был). Сейчас использую версию из CVS репозитория. В этой версии уже есть поддержка и 21XX и 22XX.
Да, в .cdl файлах тами LPC22xx упоминаются. Подскажите, какую именно target Вы выбрали для LPC22xx. Удалось на этой плате от Olimex запустить Ethernet?


Target для платы не сущетвует, его надо создавать. В руководстве пользователя достаточно подробно все написано. Там есть таргет для другой платы Olimex 21xx, можно взять его в качестве примера.
По схеме Ethernet включен в 8ом режиме в котором производитель чипа не гарантирует крректную работу перываний, я изменил распайку на 16 биный режим.
И 8 и 16 битные режимы работают без проблем.
Evgeny_CD
Цитата(DogZ @ Apr 24 2006, 15:01) *
Target для платы не сущетвует, его надо создавать. В руководстве пользователя достаточно подробно все написано. Там есть таргет для другой платы Olimex 21xx, можно взять его в качестве примера.
По схеме Ethernet включен в 8ом режиме в котором производитель чипа не гарантирует крректную работу перываний, я изменил распайку на 16 биный режим.
И 8 и 16 битные режимы работают без проблем.
Если это не страшная тайна, можете свой *.cdl (и другие файлы - if any) выложить куда-нибудь? Я понимаю, что для умеющих не сложно, но я только учусь eCos...

Т.е. как я понял, у Вас на Olimex плате звелся eCos c IP стеком, и все фунциклирует? Спер!
DogZ
Цитата(Evgeny_CD @ Apr 24 2006, 14:07) *
Цитата(DogZ @ Apr 24 2006, 15:01) *
Target для платы не сущетвует, его надо создавать. В руководстве пользователя достаточно подробно все написано. Там есть таргет для другой платы Olimex 21xx, можно взять его в качестве примера.
По схеме Ethernet включен в 8ом режиме в котором производитель чипа не гарантирует крректную работу перываний, я изменил распайку на 16 биный режим.
И 8 и 16 битные режимы работают без проблем.
Если это не страшная тайна, можете свой *.cdl (и другие файлы - if any) выложить куда-нибудь? Я понимаю, что для умеющих не сложно, но я только учусь eCos...

Т.е. как я понял, у Вас на Olimex плате звелся eCos c IP стеком, и все фунциклирует? Спер!

К сожалению по ряду причин не могу предоставить исходники. Максимум что могу это откомпилированые библиотеки и тесты без гарантии что ethernet в 8-ом режиме будет работать(после майских праздников когда вернусь из командировки. с собой ничего нет). Не начем проверить. Единственная плата перепаяна, код менялся. Мы уже почти год работаем со своей платой, которая отличается. На Olimex студент бакалаврскую и курсовую работу делает. MP3 & GSM кодеки гоняет на предмет возможности, ну это отдельная песня.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.