mikrocontroller.net

Forum: Compiler & IDEs avr-size


Autor: Thomas Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst dein Makefile anpassen, Eric Weddington hat den Script
avr-size.sh durch einen eigenen Modus innerhalb von avr-size
selbst ersetzt.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Quatsch, avr-mem.sh hieß der Script.

Autor: Thomas Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, avr-mem.sh gibt's ja eben nicht mehr, dafür hat er die Option
-A eingeführt (zu avr-size).

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Axel R. (axelr) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 --------

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
# Table of AVR memory sizes.
case "$2" in

dies:
"atmega644")  PROGMAX=${AVR64K}; DATAMAX=${AVR4K}; EEPROMMAX=${AVR2K};;

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit der Version WinAVR 20090313 ändert man im Makefile:
#ELFSIZE = $(SIZE) -A $(TARGET).elf
ELFSIZE = $(SIZE) -A $(TARGET).elf; $(SIZE) -C --mcu=$(MCU) $(TARGET).elf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.