Suche stdlib-private.h

Gast #1859832
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
Moderator Persönliche Seite #1859888
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.
Gast #1859891
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
Moderator Persönliche Seite #1859924
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.

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.