mikrocontroller.net

Forum: Compiler & IDEs avr-size problem


Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi zusammen,

ich habe ein kleines verständnisproblem bezüglich der ermittelten
grössenangaben vom gcc in der text und data sektion.

und zwar compiliere ich folgendes testprogramm mit dem aktuellen winavr
packet. Für den at90s8515 bekomme ich folgende ausgabe vom compiler die
sehr schlüssig und ordentlich aussieht.

#include <avr/io.h>

int main( void )
{

    while(1)
    {
  DDRA=oxff;
    }

    return(0);
}

ausgabe compiler:
-------- begin --------
avr-gcc (GCC) 3.4.1
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

Converting to AVR Extended COFF: wstation.cof
avr-objcopy --debugging --change-section-address .data-0x800000
--change-section-address .bss-0x800000 --change-section-address
.noinit-0x800000
--change-section-address .eeprom-0x810000  -O coff-ext-avr wstation.elf
wstation.cof
Discarding local symbol outside any compilation unit:
.do_copy_data_start
Discarding local symbol outside any compilation unit:
.do_copy_data_loop
Discarding local symbol outside any compilation unit:
.do_clear_bss_start
Discarding local symbol outside any compilation unit:
.do_clear_bss_loop

Size after:
wstation.elf  :
section    size      addr
.text        96         0
.data         0   8388704
.bss          0   8388704
.noinit       0   8388704
.eeprom       0   8454144
.stab       528         0
.stabstr   1205         0
Total      1829



Errors: none
-------- end --------


compiliere ich das ganze aber mit für den mega128 kommt da nur noch
schwachsinn rauss:

Converting to AVR Extended COFF: wstation.cof
avr-objcopy --debugging --change-section-address .data-0x800000
--change-section-address .bss-0x800000 --change-section-address
.noinit-0x800000
--change-section-address .eeprom-0x810000  -O coff-ext-avr wstation.elf
wstation.cof
Discarding local symbol outside any compilation unit:
.__do_copy_data_start
Discarding local symbol outside any compilation unit:
.__do_copy_data_loop

Size after:
wstation.elf  :
section    size      addr
.data         0   8388864
.text       216         0
.bss          0   8388864
.noinit       0   8388864
.eeprom       0   8454144
.stab       528         0
.stabstr   1205         0
Total      1949


Errors: none
-------- end --------

woran könnte das liegen? denn 216 bytes im sram und 0 bytes im flash
kann wohl nicht ganz
korrekt sein für dieses programm.

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo siehst Du denn 216 Bytes im SRAM?  Ich sehe nur 216 Bytes im ROM
(.text).  Du solltest Dich nicht davon verwirren lassen, daß die
sections hier aus irgendwelchen Gründen andersrum angeordnet sind...

Der größer ROM-Verbrauch für diese Einfachst-Applikation dürfte
größtenteils (wenn nicht ausschließlich) durch die größere
Interruptvektortabelle des ATmega128 begründet sein.

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
yo da haste recht. da war ich ein wenig voreilig. sorry

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.