Forum: Compiler & IDEs avr-size problem


von Marcel (Gast)


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.

von Jörg Wunsch (Gast)


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.

von Marcel (Gast)


Lesenswert?

yo da haste recht. da war ich ein wenig voreilig. sorry

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
Noch kein Account? Hier anmelden.