Forum: Mikrocontroller und Digitale Elektronik Wie Flashverbrauch pro Funktion / Datei anzeigen (avr-gcc WinAVR 20100110 4.3.3)


von Martin M. (martin69)


Lesenswert?

Hallo,

ich arbeite mit avr-gcc WinAVR 20100110 4.3.3.

Ich habe das Problem, daß mir das Flash fast nicht mehr reicht und 
möchte schauen, wo der Flashverbrauch im Detail ist.


AVR Memory Usage:
-----------------
Device: atmega2560

Program:  235128 bytes           ===> der Prozessor hat 256k
(.text + .data + .bootloader)

Data:       6335 bytes
(.data + .bss + .noinit)



Wie kann man den Flashverbrauch pro Funktion bzw. pro C-Datei heraus 
finden?

Habe schon mal versucht, daß MAP-File zu durchforsten, aber so richtig 
bin ich nicht weiter gekommen.

Gruß
Martin

von Stefan E. (sternst)


Lesenswert?

Martin M. schrieb:
> Wie kann man den Flashverbrauch pro Funktion bzw. pro C-Datei heraus
> finden?
1
avr-size *.o

von S. R. (svenska)


Lesenswert?

Du kannst die Ausgabe von "avr-nm main.elf" sortieren und dann immer die 
Differenz zwischen zwei Zeilen ausrechnen. Wenn du pro Funktion/Variable 
eine ELF-Section erzeugen lässt, kannst du das auch mit der Ausgabe von 
"avr-readelf" machen.

Ich hab für sowas ähnliches (das Mapfile vom avrasm) ein kleines 
Perlscript.

von Vincent H. (vinci)


Lesenswert?

Ich hab da vor einiger Zeit mal folgendes C# Tool gefunden:
https://www.embeddedrelated.com/showarticle/900.php

Leider zum selbst compilieren, was etwas mühsam ist wenn man kein .net 
und Co installiert hat, oder gar auf Linux sitzt. Hat dafür jedoch in 
Verbindung mit dem GCC einwandfrei funktioniert.

von Martin M. (martin69)


Lesenswert?

Stefan E. schrieb:
> avr-size *.o

hat problemlos funktioniert. Vielen Dank für Eure Hilfe!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.