I have a lot of projects with stm32f1xx CPUs (cortex-m3), all is good
with them.
Now I decided to make project with stm32f051 (cortex-mo), and linker
works with errors.
I have several cpp files (task is to light-up LED), they are compiled
with no errors when any of cortex-m3 or cortex-m0 is set as mcpu.
But linker works ok with mcpu=cortex-m3 option, and with errors with
mcpu=cortex-m0. But still linker says that job is done.
I use Yagarto with GCC v.4.7.2.
Here is output:
arm-none-eabi-g++ -T"D:\Nute\_tmp_\f0test\STM32F051R8.ld" -Xlinker
--gc-sections -Wl,-Map,f0test.map -mcpu=cortex-m0 -mthumb -o
"f0test.elf" ./src/main.o ./lib/src/stm32f0xx_rcc.o
./lib/startup_stm32f0xx.o ./lib/system_stm32f0xx.o ./kl_lib/kl_lib_f0.o
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error:
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
lib/crt0.o: Conflicting CPU architectures 11/1
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error: ./lib/src/stm32f0xx_rcc.o: Unknown CPU architecture
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error: ./lib/system_stm32f0xx.o: Unknown CPU architecture
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error:
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/thumb/v6m\libgcc.a(_udivsi
3.o): Unknown CPU architecture
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error:
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
lib/thumb/v6m\libc.a(lib_a-atexit.o): Unknown CPU architecture
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error:
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
lib/thumb/v6m\libc.a(lib_a-fini.o): Unknown CPU architecture
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error:
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
lib/thumb/v6m\libc.a(lib_a-init.o): Unknown CPU architecture
Finished building target: f0test.elf
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error:
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
lib/thumb/v6m\libc.a(lib_a-__atexit.o): Unknown CPU architecture
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/
bin/ld.exe: error:
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.7.2/thumb/v6m/crtend.o:
Unknown CPU architecture
Invoking: ARM Yagarto Windows GNU Create Flash Image
arm-none-eabi-objcopy -O ihex f0test.elf "f0test.hex"
Finished building: f0test.hex
When I use option -nostartfiles, obviously I have an error that _init()
is not found.
What is wrong with cortex-m0? Cortex-m3 is ok with same options.
Thanks in advance!