mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik avr belegt ram/flash anzeigen


Autor: Benedikt Sauter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kennt jemand ein Tool, mit dem man idealerweise ein .hex File
analysieren kann. Sprich, maximal benutzen RAM Speicher und Flash
anzeigen.
(klar RAM ändert sich im Betrieb, aber so eine ungefähre Prognose kann
man ja ermitteln)

Oder wie kontrolliert Ihr so wieviel Platz Ihr noch im Controller
habt?

Mein hex File ist z.B. 17K groß, aber mein Programmer sagt das er 5 K
geladen hat.

Idealerweise hat jemand eine Lösung für Linux da?

Gruss Bene

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> kennt jemand ein Tool, mit dem man idealerweise ein .hex File
> analysieren kann. Sprich, maximal benutzen RAM Speicher und Flash
> anzeigen.

avr-size.

> Mein hex File ist z.B. 17K groß, aber mein Programmer sagt das er
> 5 K geladen hat.

Wie der Name schon sagt, sind die Werte im hex-File als Srings in
hexadezimaler Form abgelegt.

> Idealerweise hat jemand eine Lösung für Linux da?

avr-size ist Teil der avr-binutils.

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Ram kann eigentlich nicht funktionieren ... Denk mal
daran, dass der Stack mit jedem verschachteltem Funktionsaufruf
anwächst, dass sich nicht von Beginn an sagen lässt, ob
malloc-Funktionen in welcher Weise genutzt werden.
Das einzige, was ich mir in dieser Hinsicht vorstellen könnte, wäre
eine Bestimmung, auf welche Speicherzellen DIREKT zugegriffen wird (an
das Z-Register mag ich noch nicht denken).

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das mit dem Ram kann eigentlich nicht funktionieren

Doch, kann es. Es gibt Software die den C Code analysieren kann und so
den worst case RAM Verbrauch anzeigt. Kostet aber etwas...

Im einfachsten Fall zeigt die Software einfach die Größe der lokalen
Variablen einer Funktion an, was problemlos möglich ist. Das ist auch
schon einiges wert, denn man muss es nicht per Hand machen.

Autor: Benedikt Sauter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke super!

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt
Ich dachte wir reden hier vom HEX-File.
Die Speicherbelegung durch Variablen macht doch auch der Gcc, wenn ich
mich nicht verguckt hab

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, mit der Hex Datei wird es schwer, aber das war ja nicht
ausdrcklich verlangt.

Beim Renesas Compiler für den M16C gibt es einen Stack Viewer der der
für jede Funktion die verwendeten Variablen auflistet und andere nette
Infos anzeigt.
Ebenso gibt es einen Map Viewer der die ganzen globalen Variablen und
sonstige Belegungen anzeigt.
Sowas für den AVR wäre echt spitze.

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.