AVR Studio 5.0 und 5.1 Version GCC/Toolchain?

Gast #2688753
Lesenswert?

Hallo,

ich habe ein Projekt von Version 5.0 auf 5.1. portiert (Source und 
Header kopiert) und dann kompiliert. Ergebnis waren leicht 
unterschiedliche Codegrößen bei gleichen Compiler/Linkereinstellungen.

Device: atmega644
    Program:   14598 bytes (22.3% Full)
    (.text + .data + .bootloader)
    Data:       1538 bytes (37.5% Full)
    (.data + .bss + .noinit)
    EEPROM:       30 bytes (1.5% Full)

zu

Device: atmega644p
    Program:   14610 bytes (22.3% Full)
    (.text + .data + .bootloader)
    Data:       1538 bytes (37.5% Full)
    (.data + .bss + .noinit)
    EEPROM:       30 bytes (1.5% Full)
    (.eeprom)

Der kleinere Code kommt vom 5.0er. Warum?
Sind die Toolchains von Version 5.1 nicht aktueller? Optimierung steht 
auf Os.

Interessant ist das bei 5.0 die AVR Toolchain auch als solche bezeichnet 
wird, im 5.1 heisst es nur AVRGCC. Ist dort irgendwas verstellt, ich 
möchte eigentlich die AVR Toolchain nutzen; mach ich was falsch?


Ingo
Angehängte Dateien:
Moderator Persönliche Seite #2689625
Lesenswert?

Ingo schrieb:
> Gibt es eigentlich einen Unterschied zum AVRGCC und der AVR Toolchain

Die Toolchain besteht aus mehr als nur dem GCC, nämlich binutils
(Assembler, Linker, paar Hilfswerkzeuge wie objcopy), Compiler (GCC)
und Standardbibliothek (avr-libc).  Dazu kommen typischerweise noch
lokale Patches (bspw. um neue AVR-Devices einzupflegen, die von den
offiziellen Versionen noch nicht unterstützt sind).  Gemäß GPL
sollten sie dir die entsprechenden Patches zumindest für binutils und
GCC auf Anfrage aushändigen (die avr-libc steht nicht unter GPL, dort
sind sie also formal nicht dazu verpflichtet).

Die Atmel-Versionierung ist dabei völlig von ihnen selbst gewählt.
Keine Ahnung, ob sie irgendwo eine Übersicht haben, welche Versionen
der Komponenten ihrer jeweiligen Toolchain-Version entsprechen.
Persönliche Seite #2690116
Lesenswert?

Ingo schrieb:
> Johann L. schrieb:
>> Welche Version wird denn bei avr-gcc -v angezeigt?
>
> Wo?

avr-gcc ist ein Kommandozeilen-Progamm.

Man gibt es also ein: In der Kommandozeile.

avr-gcc --version gibt dann sowas aus:
1
avr-gcc (WinAVR 20100110) 4.3.3

oder sowas:
1
avr-gcc (GCC) 4.8.0 20120521 (experimental)

mit avr-gcc -v kommen etwas mehr Informationen, aber auch daraus ist die 
GCC-Version erkennbar.

Allerdings hatte Atmel auf Bugs durch eigene Patches; wenn das behoben 
wurde, kann sich also die Codegröße ändewrn ohne daß sich die 
GCC-Version ändert. Ob in dem Fall kleinerer oder größerer Code besser 
(korrekt) ist, kommt auf den jeweiligen Fall an.
Gast #2690511
Lesenswert?

Hmm, vielleicht noch eine ältere Version drauf (AVR Studio 4 z.B.)?
Wenn du nur "avr-gcc ...", also ohne Pfadangabe, auf der Konsole eingibt 
nimmt er den, den er über die Windows-Umgebungsvariablen findet. Schau 
mal was da für Pfade eingetragen sind.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren