www.mikrocontroller.net

Forum: Compiler & IDEs Suche stdlib-private.h


Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal nach der angegebenen Source der avr-libc gesucht?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.