Forum: Compiler & IDEs Suche stdlib-private.h


von Anfänger (Gast)


Lesenswert?

Hallo,

ich hoffe jemand hier kann mir helfen. Ich möchte den freien Speicher 
zwischen Heap und Stack bestimmen. Dazu habe ich in folgendem Thread 
Code gefunden.

Beitrag "Verfügbarer RAM zur Laufzeit?"

>Ok funktioniert! So sieht die Funktion nun aus:
>
>#include "stdlib_private.h"
>
>uint16_t getFreeMem(void)
>{
>  if(__brkval)
>    return(STACK_POINTER() - __malloc_margin - __brkval);
>  return(STACK_POINTER() - __malloc_margin - __malloc_heap_start);
>}
>
>Wichtig ist, das include - sonst hat man kein Zugriff aufs
>STACK_POINTER() Makro und __brkval. Die Include Datei findet man in der
>avr-libc source distribution...

Doch dafür brauche ich die stdlib-private.h . Kann aber solcheine 
Header-Datei nirgends finden, auch nicht auf der Seite von avr-libc.

Weiß jemand von euch wo ich dieses Header-datei finden kann oder gibt es 
eine alternative?

Gruß Anfänger

von Klaus W. (mfgkw)


Lesenswert?

Schon mal nach der angegebenen Source der avr-libc gesucht?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ergänzung zum Thread: die jahrelang benutzte malloc-Implementierung
hatte einige Bugs eingesammelt, die allesamt in der avr-libc-Version
1.7.0 behoben worden sind.  Dort ist es dann auch so, dass zurück
gegebener Speicher nicht mehr als für immer und ewig zum Heap
gehörend betrachtet wird, sondern der wird wirklich komplett wieder
freigegeben.

Diese Version gibt's in keinem WinAVR, aber sie müsste eigentlich
bei der aktuellen Beta der AVR-Tools (auf dem norwegischen Atmel-
Server) mit dabei sein.

von Anfänger (Gast)


Lesenswert?

Ja, hatte ich, war nur leider unvollständig. Das kommt davon 
vorinstalliertes von anderen zu verwenden. Der hat massenhaft 
Header-Dateien gelöscht. (Ist theoretisch die gleiche Version, nur mit 
gelöschten Headern) :-( Aber komisch das google nix ausgespuckt hat und 
auf avr-lib-Hompage nirgends ein Hinweis darauf das es solch eine Datei 
gibt. Hm jetzt hab ichs.
Danke für die schnelle Antwort.

Gruß Anfänger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Anfänger schrieb:
> Aber komisch das google nix ausgespuckt hat und
> auf avr-lib-Hompage nirgends ein Hinweis darauf das es solch eine Datei
> gibt.

Sie ist halt "privat", wie der Name sagt, d. h. sie gehört nicht zu
den Dateien, die installiert werden.  Ihr Inhalt wird nur innerhalb
der avr-libc zum Compileren benötigt.  Daher gibt's auch keine Doku
dafür, und als private Datei steht es der avr-libc auch jederzeit
frei, nach Gutdünken deren Inhalt zu ändern.

Im Sourcecode ist sie natürlich auch drin, und du kannst sie jederzeit
über den SVN-Browser bekommen.

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
Noch kein Account? Hier anmelden.