RAM -Verbrauch

Gast #1514631
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/Speicherverbrauch_bestimmen_mit_avr-gcc#Dynamischer_RAM-Verbrauch) 
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
Tony schrieb:

> ich habe im Robonetz (unten dem Link
> 
http://www.rn-wissen.de/index.php/Speicherverbrauch_bestimmen_mit_avr-gcc#Dynamischer_RAM-Verbrauch)
> 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_hab_da_mehrere_.2A.c_und_.2A.h_Dateien._Was_mache_ich_damit.3F

> 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.
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.