smalcom 0 21 марта, 2010 Опубликовано 21 марта, 2010 (изменено) · Жалоба Сначала всё было написано на Си, комплировалось, линковалось и работало. Добавил простейший C++ код для пробы (создание класса) и посыпались ошибки -------------- Build: Release in test --------------- arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/core_cm3.c -o ./bin/Release/obj/lib/core_cm3.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/misc.c -o ./bin/Release/obj/lib/misc.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_adc.c -o ./bin/Release/obj/lib/stm32f10x_adc.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_bkp.c -o ./bin/Release/obj/lib/stm32f10x_bkp.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_can.c -o ./bin/Release/obj/lib/stm32f10x_can.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_dma.c -o ./bin/Release/obj/lib/stm32f10x_dma.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_exti.c -o ./bin/Release/obj/lib/stm32f10x_exti.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_flash.c -o ./bin/Release/obj/lib/stm32f10x_flash.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_gpio.c -o ./bin/Release/obj/lib/stm32f10x_gpio.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_i2c.c -o ./bin/Release/obj/lib/stm32f10x_i2c.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_iwdg.c -o ./bin/Release/obj/lib/stm32f10x_iwdg.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_pwr.c -o ./bin/Release/obj/lib/stm32f10x_pwr.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_rcc.c -o ./bin/Release/obj/lib/stm32f10x_rcc.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_rtc.c -o ./bin/Release/obj/lib/stm32f10x_rtc.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_spi.c -o ./bin/Release/obj/lib/stm32f10x_spi.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_tim.c -o ./bin/Release/obj/lib/stm32f10x_tim.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_usart.c -o ./bin/Release/obj/lib/stm32f10x_usart.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/stm32f10x_wwdg.c -o ./bin/Release/obj/lib/stm32f10x_wwdg.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c lib/system_stm32f10x.c -o ./bin/Release/obj/lib/system_stm32f10x.o arm-elf-g++ -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c src/cbuffer.cpp -o ./bin/Release/obj/src/cbuffer.o arm-elf-gcc -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c src/handlers.c -o ./bin/Release/obj/src/handlers.o src/handlers.c:160: warning: initialization makes pointer from integer without a cast arm-elf-g++ -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa -O2 -g -Isrc -Ih -c src/main.cpp -o ./bin/Release/obj/src/main.o arm-elf-g++ -o ./bin/Release/test.elf ./bin/Release/obj/lib/core_cm3.o ./bin/Release/obj/lib/misc.o ./bin/Release/obj/lib/stm32f10x_adc.o ./bin/Release/obj/lib/stm32f10x_bkp.o ./bin/Release/obj/lib/stm32f10x_can.o ./bin/Release/obj/lib/stm32f10x_dma.o ./bin/Release/obj/lib/stm32f10x_exti.o ./bin/Release/obj/lib/stm32f10x_flash.o ./bin/Release/obj/lib/stm32f10x_gpio.o ./bin/Release/obj/lib/stm32f10x_i2c.o ./bin/Release/obj/lib/stm32f10x_iwdg.o ./bin/Release/obj/lib/stm32f10x_pwr.o ./bin/Release/obj/lib/stm32f10x_rcc.o ./bin/Release/obj/lib/stm32f10x_rtc.o ./bin/Release/obj/lib/stm32f10x_spi.o ./bin/Release/obj/lib/stm32f10x_tim.o ./bin/Release/obj/lib/stm32f10x_usart.o ./bin/Release/obj/lib/stm32f10x_wwdg.o ./bin/Release/obj/lib/system_stm32f10x.o ./bin/Release/obj/src/cbuffer.o ./bin/Release/obj/src/handlers.o ./bin/Release/obj/src/main.o -Wl,--gc-sections,-Map=main.elf.map,-cref,-u,Reset_Handler -T ld/stm32.ld -mcpu=cortex-m3 -mthumb -mthumb-interwork -mfpu=fpa /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: error: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/crt0.o uses FPA instructions, whereas ./bin/Release/test.elf does not /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: error: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/crt0.o uses hardware FP, whereas ./bin/Release/test.elf uses software FP /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: Warning: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/crt0.o does not support interworking, whereas ./bin/Release/test.elf does /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: failed to merge target specific data of file /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/crt0.o /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: error: ./bin/Release/obj/lib/core_cm3.o uses FPA instructions, whereas ./bin/Release/test.elf does not /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: error: ./bin/Release/obj/lib/core_cm3.o uses hardware FP, whereas ./bin/Release/test.elf uses software FP ... ... ... /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: error: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/libc.a(lib_a-readr.o) uses FPA instructions, whereas ./bin/Release/test.elf does not /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: error: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/libc.a(lib_a-readr.o) uses hardware FP, whereas ./bin/Release/test.elf uses software FP /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: Warning: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/libc.a(lib_a-readr.o) does not support interworking, whereas ./bin/Release/test.elf does /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: failed to merge target specific data of file /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/libc.a(lib_a-readr.o) /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/libc.a(lib_a-cxa_atexit.o)(__cxa_atexit): warning: interworking not enabled. first occurrence: ./bin/Release/obj/src/main.o: Thumb call to ARM /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/libc.a(lib_a-malloc.o)(free): warning: interworking not enabled. first occurrence: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/thumb/thumb2/interwork/libstdc++.a(del_op.o): Thumb call to ARM /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/libc.a(lib_a-cxa_atexit.o)(__cxa_atexit): warning: interworking not enabled. first occurrence: ./bin/Release/obj/src/main.o: Thumb call to ARM /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/bin/ld: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/libc.a(lib_a-malloc.o)(free): warning: interworking not enabled. first occurrence: /mnt/data/opt/develop/arm-elf-x86/bin/../lib/gcc/arm-elf/4.4.3/../../../../arm-elf/lib/thumb/thumb2/interwork/libstdc++.a(del_op.o): Thumb call to ARM collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 5 seconds) 0 errors, 63 warnings далее arm-elf-objdump -p crt0.o crt0.o: file format elf32-littlearm private flags = 0: [APCS-32] [FPA float format] и в проекте arm-elf-objdump -p main.o main.o: file format elf32-littlearm private flags = 0: [APCS-32] [FPA float format] gcc-4.4.3 собран с поддержкой interwork,multilib и даже в его каталоге лежат наборы в подкаталогах thumb,interwork,fpu. Подскажите, пожалуста, что я упустил. Изменено 21 марта, 2010 пользователем smalcom Многие десятки килобайт однотипных warnings убраны Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 21 марта, 2010 Опубликовано 21 марта, 2010 · Жалоба разобрался. взял конфу t-arm-elf с сайта gnuarm, библиотеку newlib взял старую(1.14)... похоже на то что сейчас оно тоже от фаз луны зависит, но вроде пока все без ошибок собирается Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 22 марта, 2010 Опубликовано 22 марта, 2010 · Жалоба newlib взял старую(1.14)... похоже на то что сейчас оно тоже от фаз луны зависит, но вроде пока все без ошибок собирается Блин, newlib- гадость редкостная. Где бы найти время ее с нуля переписать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 2 мая, 2010 Опубликовано 2 мая, 2010 · Жалоба Блин, newlib- гадость редкостная. Где бы найти время ее с нуля переписать? в каком месте гадость то? не вся же если не собирается это 99.99% косяг с компиллером, даже с его сборкой Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться