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?
Die gibts auch und müssten in deinem Linkerscript zu finden sein.
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.