AVR Studio 5.0 und 5.1 Version GCC/Toolchain?

Gast #2688753
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
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
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 #2690475
Cool, das geht ja tatsächlich!!!
Da steht:

gcc version 4.5.1 (AVR_8_bit_GNU_Toolchain_3.3.0_364)
Irgendwie wiedersprüchlich was oben steht!?

Sehr eigenartig


Ingo
Gast #2690511
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

Eine eigene Frage? Dieser Thread ist über 14 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.