Hallo, seit Installation der WinAVR-Version 2006-04-21 ist mir aufgefallen, dass nach einer Compilierung keine prozentuale Ausgabe mehr von "avr-size" erfolgt. Gibt es eine Möglichkeit (z.B. im Makefile), diese "Füllstandsanzeige" einzustellen oder zu aktivieren? Viele Grüße Thomas
Du musst dein Makefile anpassen, Eric Weddington hat den Script avr-size.sh durch einen eigenen Modus innerhalb von avr-size selbst ersetzt.
Hallo Jörg, vielen Dank für die schnelle Antwort. Ich habe gerade im Makefile folgende Zeilen gefunden: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Display size of file. HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex ELFSIZE = $(SIZE) -A $(TARGET).elf AVRMEM = avr-mem.sh $(TARGET).elf $(MCU) sizebefore: @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \ $(AVRMEM) 2>/dev/null; echo; fi sizeafter: @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \ $(AVRMEM) 2>/dev/null; echo; fi ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Daraufhin habe ich auf meinem Rechner nach "avr-mem.sh" gesucht, um die Konfiguration zu ändern. Ich finde die Datei aber nicht. Kannst du (Könnt ihr) mir noch ein wenig auf die Sprünge helfen, wo die Änderungen gemacht werden müssen? Viele Grüße Thomas
Nein, avr-mem.sh gibt's ja eben nicht mehr, dafür hat er die Option -A eingeführt (zu avr-size).
ich greif das mal auf: kann man einfach die avr-mem.sh einer älteren WinAVR-Ausgabe verwenden? Wenn ja: hat jemand die Datei? Ich fand die Ausgabe in Prozent usw. wesentlich anschaulicher. Danke AxelR.
Hi, lad dir mal das hier: http://alt.kreatives-chaos.com/download/avr-sizex.exe Und binde es wie folgt ein (alles geklaut von http://alt.kreatives-chaos.com): Um das Tool einzubinden muss man erstmal die Datei avr-sizex.exe in das \bin Verzeichniss von WinAVR kopieren. Außerdem sind noch zwei kleinere Änderungen im Makefile vorzunehmen. Man sucht folgende Zeilen im Makefile und fügt dann die rot makierten hinzu: # Display size of file. HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex ELFSIZE = $(SIZE) -A $(TARGET).elf SIZEX = avr-sizex --mcu=$(MCU) $(TARGET).elf sizebefore: @echo @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi sizeafter: @echo @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi ;$(SIZEX) Und das wars auch schon.
Da war ich jetzt beim rüberkopieren etwas schneller.. ;-)) Ich habe die avr-mem.sh noch gefunden und einfach nach C:\WinAVR\bin kopiert. geht wieder. Jetzt probiere ich Deinen Tip aus. Danke AxelR.
avr-sizex kennt den Atmega168 nicht, schade :-( Meine Ausgabe sieht nun so aus: Stimmt das? avr-size -A sagt: >>TOTAL 6923 [EDIT] section.data und section.text sind 3208 ;-) [/EDIT] aber avr-mem.sh sagt: >>Program: 3208 bytes (39.2% Full) Creating Symbol Table: i2c_test.sym avr-nm -n i2c_test.elf > i2c_test.sym Size after: i2c_test.elf : section size addr .data 34 8388864 .text 3174 0 .bss 74 8388898 .noinit 0 8388972 .eeprom 0 8454144 .stab 876 0 .stabstr 132 0 .debug_aranges 20 0 .debug_pubnames 242 0 .debug_info 865 0 .debug_abbrev 353 0 .debug_line 461 0 .debug_str 692 0 Total 6923 AVR Memory Usage: ----------------- Device: atmega168 Program: 3208 bytes (39.2% Full) (.text + .data + .bootloader) Data: 108 bytes (10.5% Full) (.data + .bss + .noinit) -------- end --------
Naja, "total" ist eben, was sein Name verspricht: die Summe aller Zahlen darüber. Eine ziemlich sinnlose Angabe folglich -- alle Debugsymbole werden ja auch mitgezählt. Du müsstest dir aus irgendeinem Thread bei avrfreaks.net mal das seinerzeit reparierte avr-mem.sh beschaffen: deine Version leidet noch unter dem Bug, dass der ATmega168 aus Versehen wie ein ATmega88 behandelt wird. Du kannst natürlich auch gleich Eric Weddington nerven, dass er in der nächsten Version wieder avr-mem.sh mit ausliefert. Ich finde seinen Hack mit avr-size -A ziemlich gruselig. Hab' ich ihm auch schon geschrieben, aber ich bin kein WinAVR-Nutzer. Wenn ihm seine Nutzer ebenfalls bescheinigen, dass sie das vorherige avr-mem.sh praktischer fanden, vielleicht überzeugt ihn das ja eher...
http://www.kieltech.de/~ufechner/avr-mem-3.zip alles klar! vielen Dank für die Unterstützung, ist nicht überall selbstverständlich. Gerade wenn man "neu" mit WinAVR dabei ist, hilft das sehr! Vielen Dank/Grüße AxelR.
Weil ich's gerade selber brauchte, bin ich hier d'rüber gestolpert. Vielleicht gibt's ja schon eine neue Version der *.sh, aber dieser fehlt noch der ATmege644. Deshalb dies ergänzen nach:
1 | # Table of AVR memory sizes. |
2 | case "$2" in |
dies:
1 | "atmega644") PROGMAX=${AVR64K}; DATAMAX=${AVR4K}; EEPROMMAX=${AVR2K};; |
Mit der Version WinAVR 20090313 ändert man im Makefile:
1 | #ELFSIZE = $(SIZE) -A $(TARGET).elf
|
2 | ELFSIZE = $(SIZE) -A $(TARGET).elf; $(SIZE) -C --mcu=$(MCU) $(TARGET).elf |
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.