Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: scmRTOS 4.0, примеры для LPC2XXX
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > scmRTOS
haker_fox
Добрый день, дамы и господа!

Решил попробывать 4-ю ветку. Собрал примеры, идущие с осью под LPC2XXX. Вернее, попытался собрать.

Компилятор: arm-2007q1-21-arm-none-eabi (Code Sourcery).

Результаты:
1. Пример "1-EventFlag".
CODE
E:\My\Projects\scmRTOS_ARM\1-EventFlag>mingw32-make
--- compiling ./src/main.cpp...
--- compiling ../SamplesCommon/init.cpp...
--- compiling ../scmRTOS/Common/usrlib.cpp...
--- compiling ../scmRTOS/Common/OS_Kernel.cpp...
--- compiling ../scmRTOS/Common/OS_Services.cpp...
--- compiling ../scmRTOS/ARM7/OS_Target_cpp.cpp...
--- assembling ../SamplesCommon/crt.S...
--- assembling ../scmRTOS/ARM7/OS_Target_asm.S...
--- linking...
./obj/crt.o: In function `IRQAddr':
../SamplesCommon/crt.S:80: undefined reference to `IRQHandler'
collect2: ld returned 1 exit status
mingw32-make: *** [exe/1-EventFlag.elf] Error 1


2. Пример "2-Message".
CODE
E:\My\Projects\scmRTOS_ARM\2-Message>mingw32-make
--- compiling ./src/main.cpp...
--- compiling ../SamplesCommon/init.cpp...
--- compiling ../scmRTOS/Common/usrlib.cpp...
--- compiling ../scmRTOS/Common/OS_Kernel.cpp...
--- compiling ../scmRTOS/Common/OS_Services.cpp...
--- compiling ../scmRTOS/ARM7/OS_Target_cpp.cpp...
--- assembling ../SamplesCommon/crt.S...
--- assembling ../scmRTOS/ARM7/OS_Target_asm.S...
--- linking...
./obj/crt.o: In function `IRQAddr':
../SamplesCommon/crt.S:80: undefined reference to `IRQHandler'
collect2: ld returned 1 exit status
mingw32-make: *** [exe/2-Message.elf] Error 1


3. Пример "3-Channel".
CODE
E:\My\Projects\scmRTOS_ARM\3-Channel>mingw32-make
--- compiling ./src/main.cpp...
--- compiling ../SamplesCommon/init.cpp...
--- compiling ../scmRTOS/Common/usrlib.cpp...
--- compiling ../scmRTOS/Common/OS_Kernel.cpp...
--- compiling ../scmRTOS/Common/OS_Services.cpp...
--- compiling ../scmRTOS/ARM7/OS_Target_cpp.cpp...
--- assembling ../SamplesCommon/crt.S...
--- assembling ../scmRTOS/ARM7/OS_Target_asm.S...
--- linking...
./obj/crt.o: In function `IRQAddr':
../SamplesCommon/crt.S:80: undefined reference to `IRQHandler'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-abort.o): In
function `abort':
abort.c:(.text+0xc): undefined reference to `_exit'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-sbrkr.o): In
function `_sbrk_r':
sbrkr.c:(.text+0x1c): undefined reference to `_sbrk'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-signalr.o):
In function `_getpid_r':
signalr.c:(.text+0x8): undefined reference to `_getpid'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-signalr.o):
In function `_kill_r':
signalr.c:(.text+0x38): undefined reference to `_kill'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-makebuf.o):
In function `__smakebuf':
makebuf.c:(.text+0xf8): undefined reference to `isatty'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-writer.o): I
n function `_write_r':
writer.c:(.text+0x24): undefined reference to `_write'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-closer.o): I
n function `_close_r':
closer.c:(.text+0x1c): undefined reference to `_close'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-fstatr.o): I
n function `_fstat_r':
fstatr.c:(.text+0x20): undefined reference to `_fstat'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-lseekr.o): I
n function `_lseek_r':
lseekr.c:(.text+0x24): undefined reference to `_lseek'
c:/sft/sourcery/arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/lib\libc.a(lib_a-readr.o): In
function `_read_r':
readr.c:(.text+0x24): undefined reference to `_read'
collect2: ld returned 1 exit status
mingw32-make: *** [exe/3-Channel.elf] Error 1

Если в первых двух примерах в crt.S закомментировать IRQHandler, то они компилируются без ошибок, третий пример - ошибки остаются...(

К чему я все это... может быть компилятор не тот?

Хочу попробывать прикрутить ее к LPC2478...
IgorKossak
Тулчейн у Вас древний. Со свежим у меня собиралось. И cs-make использовал из поставки CodeSoursery, хотя может это и не важно.
AHTOXA
Цитата(haker_fox @ May 13 2012, 14:41) *
К чему я все это... может быть компилятор не тот?

Старенький оченьsm.gif
Там вот из-за чего ругается:
Код
#if scmRTOS_CONTEXT_SWITCH_SCHEME == 1 && !defined(GCC_IRQ_PATCH_REQUIRED)
        LDR     PC, [PC, #-0xFF0]   /* Read address from AIC */
#else
        LDR     PC, IRQAddr         /* IRQ interrupt         */
#endif

Компилятор старый, для него нужен патч (GCC_IRQ_PATCH_REQUIRED), потому и прыгает на IRQAddr. А IRQHandler переименовали в irq_handler. У меня компилятор новее, вот я и проглядел этот момент. (Сейчас исправлю, а то неаккуратненько.)
Так что либо дождитесь исправления, либо исправьте вручную IRQHandler на
irq_handler, либо обновите компилятор (наверное это наиболее правильный путь, там много чего поправили).

Если всё же решите остаться на старом компиляторе (ну мало ли), то для третьего примера положите в папку src вот этот файл. С ним должно всё собраться.

ЗЫ. Всё, исправил.
haker_fox
QUOTE (IgorKossak @ May 13 2012, 18:19) *
Тулчейн у Вас древний. Со свежим у меня собиралось. И cs-make использовал из поставки CodeSoursery, хотя может это и не важно.

А я специально древний взял. Где-то слышал, что более новые дают неоправданно большой размер кода...(
Вы какой конкретно версией пользовались, ежели не секрет?)

QUOTE (AHTOXA @ May 13 2012, 18:55) *
С ним должно всё собраться.

Спасибо большое) Скачаю новый тулчейн.

Не, ну приятно, елки-палки))) Хоть мелкий недочет, а отследил biggrin.gif Пойду съем чего-нить вкусненького bb-offtopic.gif


Прошу прощения за офф: каким лучше компилятором пользоваться? Есть yagarto, code sourcery, сборки от уважаемого klen'а. Есть версии EABI, OABI, без них. Я, честно говоря, в этом всем запутался...

Хочу более менее однообразным инструментом пользоваться) Т.к. для 9 арма у меня шел Code Sourcery, выбрал его и для 7-го.

Как-то мир GCC компиляторов велик, многообразен...
AHTOXA
Цитата(haker_fox @ May 13 2012, 17:03) *
Хоть мелкий недочет, а отследил biggrin.gif

Да, забыл написать - спасибо.
Цитата(haker_fox @ May 13 2012, 17:03) *
Прошу прощения за офф: каким лучше компилятором пользоваться?

Я использую сборки от klen-а и sourcery как референсный компилятор. (оба EABI естественно, это сейчас стандарт).
haker_fox
QUOTE (AHTOXA @ May 13 2012, 20:02) *
Да, забыл написать - спасибо.

Ну что Вы, не стоит благодарности, это мелочь)
QUOTE (AHTOXA @ May 13 2012, 20:02) *
Я использую сборки от klen-а и sourcery как референсный компилятор. (оба EABI естественно, это сейчас стандарт).

Понятно! Сборки от klen работают, чего не скажешь о yagarto. У меня он почему-то никогда не выпускал работающую программу. Но это, видимо, что-то личное)

Спасибо!!!
_Артём_
Цитата(haker_fox @ May 13 2012, 15:17) *
Сборки от klen работают, чего не скажешь о yagarto. У меня он почему-то никогда не выпускал работающую программу

Ну не знаю: у меня всё как раз наоборот, заработало сразу без вопросов. А с KGP пока не выходит собрать рабочее.

AHTOXA
На Yagarto недавно кто-то жаловался... Ага, вот та тема.
haker_fox
С этим (Sourcery G++ Lite 2011.03-42) 4.5.2 прежние примеры (я смотрю Вы, AHTOXA , уже репозитарий обновили rolleyes.gif ) собираются. Причем в 3-channel даже файлик дополнительнй добавлять не надо. Камильфо! rolleyes.gif Всем спасибо за участие!

Гм, у меня еще при выполнении правила clean не удалялся бинарный файл (директория exe). В makefile добавил строку
CODE
-@$(RM) $(BIN)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.