GCC libc mit cortex-m0 berursacht einen HardFault

OP #4013933
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
Gast
Kommentiere in deinem Startup-Code mal __libc_init_array in Zeile 103 
aus:
1
/* Call static constructors */
2
    /*bl __libc_init_array*/

Sollte danach mit dem GCC gehen ;)
OP
Ok Danke, Im Linkerfile musste man noch die Obergrenze des Rams noch 
manuell einstellen. Hab ich natürlich verpasst.Weil ich den 030f4 
benütze der 4K hat, hat das nicht funktioniert. Jetzt funktionierts auch 
mit der Libc. Danke für die Hilfe

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.