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

Gast #3215193
Lesenswert?

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 #3215218
Lesenswert?

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 #3215242
Lesenswert?

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!
#3215254
Lesenswert?

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 #3215263
Lesenswert?

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

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