avr-size in Unterordnern bzw. nach Build in AtmelStudio aufrufen

Gast #2901748
Lesenswert?

Hallo zusammen,

ich würde mir gerne den Speicherverbrauch meiner C-Module einzeln mit 
avr-size anzeigen lassen. Das Problem ist, dass die kompilierten 
.o-Dateien in verschiedenen Unterordnern abgelegt werden (entsprechend 
der Ordnerstruktur, in der die c-Dateien liegen). Ich muss also in jedes 
Unterverzeichnis wechseln und avr-size *.o aufrufen. Das ist von Hand 
natürlich ziemlich mühsam.

Deshalb meine Fragen:

1. Gibt es unter Windows eine einfache Möglichkeit, avr-size mit einem 
Befehl alle *.o-Dateien in Unterverzeichnissen verarbeiten zu lassen? 
Unter Linux würde ich das wohl mit "find -exec" erledigen. Zur Not 
müsste ich cygwin installieren, aber vielleicht gibt es ja eine 
einfachere Möglichkeit?

Perfekt wäre, wenn am Ende eine Liste mit den Größen aller Module 
rauskäme und nicht je eine pro Unterordner. Also dass avr-size einmal 
aufrufen wird und als Argument alle Dateien mit relativem Pfad bekommt. 
Ist aber nicht unbedingt nötig.

2. Ich verwende AtmelStudio 6. Kann man den Aufruf von avr-size während 
oder am besten am Ende des Buildvorgangs einbauen? Ich würde das 
Makefile gerne weiterhin automatisch von AtmelStudio erzeugen lassen. 
Wenn man darin von Hand etwas ändert, wird es ja vermutlich beim 
nächsten Ändern von den Projekteinstellungen überschrieben ...

Vielen Dank schonmal :)
Gast #2904289
Lesenswert?

Habe es mittlerweile selber gelöst bekommen. Vielleicht kann es ja noch 
jemand gebrauchen:

Einfach diese Batchdatei ins Projektverzeichnis legen und ggf. die Pfade 
anpassen (meine .o-Dateien liegen alle im Ordner "Debug\src", daher 
wechsle ich gleich da rein). Außerdem muss der Ort von avr-size.exe im 
System-Path eingetragen sein. Mit einem Doppelklick wird der 
Speicherverbrauch aller .o-Dateien und des ganzen Images angezeigt.
1
@setlocal enabledelayedexpansion
2

3
@echo Modules:
4
@cd Debug\src
5
@set files=
6
@for /f %%A in ('forfiles /s /m *.o /c "cmd /c echo @relpath"') do @set files=!files! %%~A
7
@avr-size -t %files%
8

9
@echo.
10
@echo Image:
11
@cd ..
12
@avr-size *.elf
13

14
@echo.
15
@pause

Man kann das Script auch automatisch nach dem Buildvorgang ausführen. 
Dazu muss man es in den Projekteinstellungen unter "Build Events" bei 
"Post-build event command line" eintragen. Habe das aber doch nicht 
gemacht, da ich die Größe aller Dateien doch nicht so häufig brauche. 
Man könnte sie aber beispielsweise auf die Weise nach dem Build 
automatisch in eine Datei schreiben lassen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren