Ich vesuche gerade von einem vorherigem Makefile von mir für den
stm32f103 ein Makefile für den stm32f030 zu schreiben. Dieses compiliert
jetzt auch ohne Probleme aber wenn ich es auf den Micro draufflashe
kommt er im Startupfile nur bis zum libc call (bl __libc_init_array) und
springt dann zum Hardfault Handler (laut gdb versucht er noch den
ersten Befehl auszuführen). GCC kompiliert auch ordentlichen C code da
vor der libc noch die SystemInit Funktion aufgerufen wird, die ohne
Probleme funktioniert.
Laut gdb ist das der erste Befehl der libc, der ausgeführt wird. Danach
bleibt er im Hardfault(in einem loop):
1 | 0x8000b3c <__libc_init_array> push {r4, r5, r6, lr}
|
Der Compileraufruf ist der folgende für .o:
1 | arm-none-eabi-gcc -mcpu=cortex-m0 -march=armv6-m -mthumb -mfloat-abi=soft --specs=nosys.specs -fno-strict-aliasing -fdata-sections -ffunction-sections -mlong-calls -Wall -g -Os -DSTM32F030x6 -o Src/main.o -c Src/main.c (Includes)
|
Fürs Linken:
1 | arm-none-eabi-gcc -mcpu=cortex-m0 -march=armv6-m -mthumb -mfloat-abi=soft --specs=nosys.specs -fno-strict-aliasing -fdata-sections -ffunction-sections -mlong-calls -Wall -g -Os -DSTM32F030x6 -o main.elf ./Src/main.o (andere .o der Lib usw.) ./startup_stm32f030x6.o -specs=nano.specs -Wl,--gc-sections -Wl,-script="./STM32F030F4_FLASH.ld"
|
Der ggc ist der aktuellste von Linux Arch.
Hier ist der komplette Ordner:
https://mega.nz/#!HNgBDCCB!OUOFx1H3guuJdCuakYlGDawSm7o4LMpC2PARRXL-rS0