Hex erzeugen: AVR Studio viel größer als Arduino?

Gast #3215193
Hi!

Folgendes Problem: Ich möchte von der normalen Arduino IDE langfristig 
auf AVR-Studio umsteigen, da mir dies mehr Möglichkeiten bietet.
Dennoch möchte ich am Anfang noch die allgemeine Arduino Library 
benutzen, einiges geht dadurch halt doch (noch) einfacher.
Diese habe ich nach einer Anleitung eingebunden.

Dies funktioniert auch soweit, und ich kann Programme mit normalen 
Arduino Befehlen wie z.B.
Serial.println("Hallo Welt");
ohne Fehler kompilieren. Library ist also richtig eingebunden.

Jetzt ist aber das Problem, dass die vom AVR-Studio erzugten Hex Dateien 
VIEL größer als die von der Arduino IDE erzeugten IDE sind.

Konkret sind das z.B. 3,6kbytes von der Arduino IDE und 9,5kbytes von 
AVR Studio beim Arduino Beispiel 
http://arduino.cc/en/Tutorial/ReadASCIIString

An was kann das liegen? Wäre für jede Antwort dankbar!

Grüße!
Gast
Hi!

Bei den "Project Properties" sind under Toolchain sowohl bei AVR/GNU C 
Compiler als auch bei AVR/GNU C++ Compiler "Optimize for size (-Os)" 
eingestellt, daran kanns also nicht liegen.

Grüße!
Gast
Vorab schonmal danke für die schnelle Antwort!

Ich weiss jetzt aber leider nicht genau, was es mit "Floating Point 
Variante von printf gelinkt?" auf sich hat.

Habe über google die FAQ hier gefunden. Werde da aber auch nicht schlau 
daraus, dort gibt es bloß Hilfe zum Aktivieren dieser floating Point 
Variante.

Irgendwelche Tipps wie man feststellen kann ob das aktiviert ist?


Grüße!
Gast
Debuging aktiviert?
Dann wird das Compilat auch größer!
Auf Release stellen, dann sollte es kleiner werden, weil die 
Debug-Informationen fehlen.
Gast
Also, ich denke nicht, dass das Debugging aktiviert ist.
Ich erzeuge das Hex indem ich auf "Build" => "Build projektname" drücke.

Unter "Debug" ist der Eintrag "Stop Debugging" ausgegraut. Dann sollte 
ja das Debugging nicht aktiv sein, oder?

Hätte das aktivierte Debugging überhaupt einen Einfluss auf die Größe 
des Hex? Im Hex ist doch der reine Maschinencode, oder?

Grüße!
Student schrieb:
> Konkret sind das z.B. 3,6kbytes von der Arduino IDE und 9,5kbytes von
> AVR Studio beim Arduino Beispiel
> http://arduino.cc/en/Tutorial/ReadASCIIString

Das läßt sich mit AS nicht übersetzen, das sind ja haufenweise Arduino 
Aufrufe. Vermutlich linkst Du da ne riesige Arduino-Lib hinzu und das 
kostet eben.

Und auf dem vorprogrammierten Arduino ist die Lib ja bereits im Flash 
und wird nur aufgerufen. Daher der Größenunterschied.
Gast
hmm ok, das könnte natürlich sein.
Hab gerade nachgeschaut, die Arduino Library hat über 300kb.
Könnte natürlich sein, dass da dann einiges an Speicher dafür draufgeht.

Werde also den Code nochmal in C neuschreiben.
Gute Übung, wa? ;-)

Grüßle...

Antwort schreiben

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