Hi, ich habe grade versucht AVR studio auf meinem neuen Rechner zum laufen zu bekommen. Nach einigem hin und her scheint es auch soweit zu laufen... Allerdings habe ich das Problem, dass meine compilierte hex datei auf einmal fast doppelt so groß wird als wenn ich das selbe GCC Projekt auf dem alten PC compiliere. Leider passt das Programm so jetzt nicht mehr auf den Controller. Die eep Datei ist auch 6 mal so groß... Habe schon mit der Optimierungs-Einstellung rumgespielt (-Os usw ) allerdings ohne große Auswirkung auf die Dateigröße. Jemand eine Idee woran es liegen könnte? Gruß
Thomas schrieb: > ich habe grade versucht AVR studio auf meinem neuen Rechner zum laufen > zu bekommen. Nach einigem hin und her scheint es auch soweit zu > laufen... > > Allerdings habe ich das Problem, dass meine compilierte hex datei auf > einmal fast doppelt so groß wird als wenn ich das selbe GCC Projekt auf > dem alten PC compiliere. Leider passt das Programm so jetzt nicht mehr > auf den Controller. Die eep Datei ist auch 6 mal so groß... > > Habe schon mit der Optimierungs-Einstellung rumgespielt (-Os usw ) > allerdings ohne große Auswirkung auf die Dateigröße. > > Jemand eine Idee woran es liegen könnte? Daran, dass du nicht den Hauch einer Andeutung einer Ahnung von dem hast, was du da zu tuen versuchst. Primär ist dir nicht klar, dass die Größe einer *.hex oder *.eep-Datei vollkommen irrelevant ist. Das ist Quelltext. Man kann problemlos z.B. eine *.hex mit einer Größe von 100MByte produzieren, die sich dann trotzdem erfolgreich auf einen ATtiny13 flashen läßt. Auf den Inhalt kommt es an, nicht auf die Größe der Repräsentation...
c-hater schrieb: > Daran, dass du nicht den Hauch einer Andeutung einer Ahnung von dem > hast, was du da zu tuen versuchst. Wenn ich so viel Ahnung hätte wie du scheinbar hast würde ich wohl nicht um Hilfe suchen... c-hater schrieb: > Daran, dass du nicht den Hauch einer Andeutung einer Ahnung von dem > hast, was du da zu tuen versuchst. > > Primär ist dir nicht klar, dass die Größe einer *.hex oder *.eep-Datei > vollkommen irrelevant ist. Das ist Quelltext. Man kann problemlos z.B. > eine *.hex mit einer Größe von 100MByte produzieren, die sich dann > trotzdem erfolgreich auf einen ATtiny13 flashen läßt. Auf den Inhalt > kommt es an, nicht auf die Größe der Repräsentation... Das ist mir schon klar... das Programm lässt sich aber eben nicht mehr flashen. AVR Memory Usage ---------------- Device: atmega48p Program: 5238 bytes (127.9% Full) (.text + .data + .bootloader) Data: 308 bytes (60.2% Full) (.data + .bss + .noinit) Build succeeded with 1 Warnings... Compiliere ich 1:1 die gleichen Dateien auf meinem alten Rechner werden bloß 2658 byte verbraucht. Beides mal mit Avr-Studio 4.18 und WinAVR-20100110.
Thomas schrieb: > Jemand eine Idee woran es liegen könnte? Du machst irgendwas falsch. :-) Vergleiche die Map-Dateien, ob in deinem Ergebnis Dinge drin sind, die da nicht mehr sein sollten oder ob sich eine bestimmte Funktion aufgebläht hat. Vergleiche die CFLAGS, und zwar alle (hast du LTO aktiviert, getrennte Sections pro Funktion, gibst du die Flags auch an den Linker weiter, etc.pp.) Irritierend ist, dass die EEPROM-Daten größer sind. Das sollte nicht passieren, denn die hast du normalerweise komplett unter deiner Kontrolle. Und stelle sicher, dass du auch definitiv den richtigen Quelltext kompilierst und nicht versehentlich unterschiedliche Programme vergleichst.
Thomas schrieb: > Jemand eine Idee woran es liegen könnte? Ohne Infos: Nein. Mach mal -v zu dein Compiler- und Linkerflags hinzu, und schau wie die Objekte generiert werden. -v führt zwar zu viel Ausgabe, aber dann siehst du genau, was wie übersetzt wird. > Die eep Datei ist auch 6 mal so groß... Dann geht irgendwas gründlich schief. Bei gleichem Projekt sollte die gleich bleiben, dann deren Größe hängt i.d.R. nicht von (Optimierungs-)Schaltern ab. Und im Gegensatz zu dem, was c-hater-experte sagt, enthält sie keinen "Quelltext". Mittem im Projekt wechselt man eigentlich auch nicht zu ner anderen Toolchain; du könntest auf dem neuen PC also auch ein WinAVR haben. Es ist möglich, mehr als 1 Toolchain auf einem Rechner haben und ui nutzen, die dann per absolutem Pfad angesprochen werden oder per Umsetzen von PATH. (Wie das in AStudio geht kann ich dir nicht sagen).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.