ARM7 heap in anderen Speicherbereich legen

OP #1241892
Lesenswert?
• ▲
▼
ich such mir noch nen Wolf:

Bei dem AVR GCC gibt es die schönen Symbole __heap_start und
__heap_end um den Stack in einen beliebigen Speicherbereich zu legen.

Ich versuche nun bei meinem ARM7 (GCC 4.1.1) meinen heap in einen
externen Speicherbereich zu packen, um das interne SRAM für mehr
Stack zu haben. Hier gibt es diese Symbole aber wohl nicht.

Wie bekomme ich das bewerkstelligt? Jemand eine Idee?
OP #1242097
Lesenswert?
• ▲
▼
Hallo Tilo, danke für die Antwort.

Wenn ich es recht verstehe meinst du einen Platzhalter im Linker script
nach der Definition des Stacks.

Man könnte den auch  __foo_start nennen, wenn man das wollte
(wenn es im startup-file entsprechend anpasst ist).


Wenn ich das nicht fehlinterpretiert habe(was ich nicht ausschließen
möchte), so ist das beim AVR-GCC doch etwas anders.

Dort kann man direkt mit einer Definition Anfang und Ende des heaps 
absolut festlegen
--defsym=__heap_start = 0x1000
--defsym=__heap_end   = 0x2000

Mehr noch man kann sogar explizit den malloc Bereich definieren:
__malloc_heap_start
__malloc_heap_end

Funktioniert das auch beim arm-elf-gcc, oder irgendwas anderes mit 
vergleichbarem Resultat? Oder hab ich es nur nicht verstanden :-/
Ich finde diese Symbole immer nur im Zusammenhang mit AVR-GCC.
Gast #1242338
Lesenswert?
• ▲
▼
Der Heap ist afaik Sache der Newlib. Diese benötigt entsprechende 
Syastemcalls, die irgend wo stehen müssen. In denen siehst du, wie das 
ganze funktionieren könnte.

Ich musste meine Systemcalls selbst schreiben und konnte daher eigene 
Marker verwenden.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.