Hallo, ich war auf der suche nach der möglichkeit, den heap zu vergrößern. Nur wie?? Ich hatte hier dieses gefunden: Beitrag "Heap zu klein, wo kann man den vergrößern?" nur leider wird da nicht darauf eingegangen, wie man das jetzt macht?? Hab auch gegoogelt, aber... entweder gebe ich die falschen Suchbegriffe ein, oder google hat ne Lücke?? Ich möchte nur grundsätzlich wissen, wie ich unter GCC (oder mit avr studio) den Heap vergrößern kann, wo kann man das machen, oder wo gibts die Hilfe dafür?? Gruß und danke,.... learny
Wenn ich das: http://www.nongnu.org/avr-libc/user-manual/malloc.html richtig verstehe, kann man den Heap (beim AVR-GCC!) nicht wirklich vergrößern -- Dessen Größe ist nur vom RAM (inkl. Stack) beschränkt. Also "vergrößern" kannst du den heap nur, in dem du den Stack verkleinerst, bzw. ganz allgemein den RAM-Verbrauch senkst (Arrays 'nur' so groß wie nötig, Konstantes (Strings!) in den Flash etc.). hth. Jörg ps.: das 'magische' Manual, das ich da verlinkt hab, hast du auch offline (da du scheinbar WinAVR verwendest) verfügbar...
Für die avr-libc und in Bezug auf malloc() ist das hier erklärt: http://www.nongnu.org/avr-libc/user-manual/malloc.html Nur mit internem RAM sehe ich zwei Wege: 1/ .data und/oder .bss verkleinern, d.h. weniger Variablen benutzen. Dadurch wandert __heap_start zu kleineren Adressen. 2/ Oder den Sicherheitsabstand (__malloc_margin) zwischen Heapende und Stack verkleinern und gleichzeitig den Code so schreiben, dass wenig Stack benutzt wird. Ein dritter Weg ist auf der gleichen Seite erläutert: Der Heap (und ggf. die Variablen) wird in ein externes RAM ausgelagert. Das setzt einen µC voraus, an den man ein externes RAM anbinden kann
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.