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
Martin M. schrieb: > Wie kann man den Flashverbrauch pro Funktion bzw. pro C-Datei heraus > finden?
1 | avr-size *.o |
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.