mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RAM -Verbrauch


Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe einen Mikrocontroller mit 4KByte RAM und 128KByte Flash,beim 
compilieren des Programms, bekomme ich folgende Informationen:
section     size      addr
.data       1568   8388864
.text      14850         0
.bss        2190   8390432
.stab      30900         0
.stabstr   12661         0
Total      62169

ich habe im Robonetz (unten dem Link 
http://www.rn-wissen.de/index.php/Speicherverbrauc...) 
gefunden, wie man der Speicherverbrauch mit avr-gcc bestimmen kann.Wie 
man die code integrieren kann, weiß ich nicht. Im Tutorial wird nur 
gesagt, dass die Funktion init_mem vor main funktion aufgerufen werden 
soll.
1)Welche Funktion soll ich im main aufrufen?
2)in welcher Variable finde ich die Große des freien SRAM

danke

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tony schrieb:

> ich habe im Robonetz (unten dem Link
> 
http://www.rn-wissen.de/index.php/Speicherverbrauc...)
> gefunden, wie man der Speicherverbrauch mit avr-gcc bestimmen kann.Wie
> man die code integrieren kann, weiß ich nicht.

http://www.mikrocontroller.net/articles/FAQ#Ich_ha...

> Im Tutorial wird nur
> gesagt, dass die Funktion init_mem vor main funktion aufgerufen werden
> soll.
> 1)Welche Funktion soll ich im main aufrufen?

Die andere.
Sind ja nur 2 Funktionen da. Die eine wird beim Startup automatisch 
aufgerufen und die andere liefert die gewünschte Information.

> 2)in welcher Variable finde ich die Große des freien SRAM
In gar keiner.
Du rufst die Funktion auf und die gibt dir die gesuchte Größe.

Wozu brauchst du das überhaupt?
Deine Kennzahlen sind noch so weit von den Limits entfernt, dass da noch 
überhaupt keine Gefahr sein sollte.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich brauche es, weil ich immer Problem beim Ausführen des Programms 
habe, die ich nicht verstehe,

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tony schrieb:
> Hallo,
> ich brauche es, weil ich immer Problem beim Ausführen des Programms
> habe, die ich nicht verstehe,

Dann hilft dir der Speicherverbrauch aber auch nichts oder benutzt du 
malloc() und co.
Du hast einen Fehler im Code und den muss man finden.
Du hast bis jetzt ca. 1/3 deines SRAM mit Variablen verbraucht. Es ist 
ziemlich unwahrscheinlich, dass du einen Speicher Clash mit dem Heap 
hast (wenn auch nicht unmöglich).
Fang erst mit den naheliegenden Fehlerursachen an:
Arrayzugriffe ausserhalb des Arrays. Pointer die in den Wald zeigen. 
etc.

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.