avr-size

Gast #411885
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
Gast
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
Gast
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.
Gast
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.
Angehängte Dateien:
Gast
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 --------
Moderator Persönliche Seite
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...
Gast
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};;

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.