Fehlermeldung bei WinARM

Gast #641208
Hallo zusammen!

Ich nutze WinARM für einen LPC2103. Ich verwende angepasste 
Linkerskripte, d.h. ich habe die Skripte eines LPC2106 verwendet und die 
Speichergrößen entsprechend angepasst. Als Startup-Code verwende ich 
den, der bei WinARM dabei war (crt0.s). Wenn ich jetzt den Build-Befehl 
aufrufe, erhalte ich folgende Fehlermeldung, aus der ich leider nicht so 
recht schlau werde:

Linking: Test.elf
arm-elf-gcc -mthumb -mcpu=arm7tdmi-s -mthumb-interwork -I. -gdwarf-2 
-DROM_RUN  -Os -Wall -Wcast-align -Wcast-qual -Wimplicit 
-Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow 
-Wunused -Wa,-adhlns=crt0.lst  -I./inc -I./conf -MD -MP -MF 
.dep/Test.elf.d crt0.o    Test.o      --output Test.elf -nostartfiles 
-Wl,-Map=Test.map,--cref -lc -lnewlib-lpc -lm -lc -lgcc  -lstdc++ 
-TLPC2103-ROM.ld
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe: 
address 0x600 of Test.elf section .stack is not within region RAM
collect2: ld returned 1 exit status
make.exe: *** [Test.elf] Error 1

> Process Exit Code: 2
> Time Taken: 00:01

Vielleicht kann mir jemand sagen, wo ich den Fehler gemacht habe? Habe 
ich evtl was im Linkerskript vergessen?
Bin für jeden Tipp dankbar!

MFG
Jansus
Persönliche Seite
Ein fehlerhaftes Linkercontrolscript ist eine gute Vermutung. Wie sieht 
deins aus?

Speziell der Abschnitt MEMORY interessiert und was darin als 
Startadresse (!) für ram bzw. RAM eingetragen ist.

Sowie, ob darin der Abschnitt für .stack in dieser Art vorhanden ist:
http://en.mikrocontroller.net/topic/101678

Es gibt im Netz Linkercontrolscripte ohne den Abschnitt und welche mit 
problematischem Abschnitt, der in Verbindung mit leerem DATA/BSS 
Sektionen ähnliche Fehler produziert:
http://en.mikrocontroller.net/topic/67766
Persönliche Seite
Das mit deinem Anhang hat nicht geklappt.
1
.stack ALIGN(256) :
2
  {
3
    . = ALIGN(256);        // Diese Zeile hat gefehlt
4
    . += STACK_SIZE;
5
    PROVIDE (_stack = .);
6
  } > RAM

ist doppelt gemoppelt bzw. enthält einen Rest des alten, problematischen 
Skripts.
1
.stack :
2
  {
3
    . = ALIGN(256);        // Diese Zeile hat gefehlt
4
    . += STACK_SIZE;
5
    PROVIDE (_stack = .);
6
  } > RAM

sollte gehen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.