arm-yagarto - heapSektion!

OP #682622
Lesenswert?
• ▲
▼
Hallo,

ich komme einfach bei einer simplen sprintf Funktion zur Verzweiflung.

Der Compiler schriebt mir folgende Fehlermeldung:

GNU ld version 2.17
libc.a(syscalls.o): In function `_sbrk':
../../../../../../newlib-1.14.0/newlib/libc/sys/arm/syscalls.c:500:
undefined reference to `end'


darafi hin habe ich mittlerweile schon herausgefunden das es im groben 
um das definieren einer Heapsektion geht, was ich nicht in meinem 
Linkerscript gemacht habe.
Ist das so richtig?

Da ich nicht genau weiß wie man das einbindet in mein linker script habe 
ich die Frage ob jemand dafür schon was hat?

Ich benutzte das yagarto paket (GCC) mit einem AT91 von Atmel.

Vielen Dank.
Angehängte Dateien:
Persönliche Seite #684423
Lesenswert?
• ▲
▼
Es klemmt am _ des Symbolnamens.

Ändere diese Zeile
1
   _end = .;

in diese Zeile
1
   _end = .; PROVIDE (end = .);

Damit machst du dem Linker neben _end ein weiteres Symbol end bekannt, 
welches den den aktuelle RAM-Adresse (= .) besitzt.

Yagarto (und WinARM) haben im Ordner Linkerskripts. An denen kann man 
sich ein Beispiel nehmen.
...\arm-elf\lib\ldscripts

WiNARM hat auch jede Menge Beispiele in ...\examples inkl. etliche 
Linkerscripts (*.ld). Es lohnt sich dort zu stöbern!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren