Hallo allerseis, ich wollte mal wieder etwas einfaches machen, deshalb nur ein vorgegebenes Programm compilieren und schauen, wie der Mikrocontroller 4000 Nachkommastellen von Pi ausgibt auf's Terminal. Nur war das Compilieren leider nicht in der Weise erfolgreich wie gewünscht, denn das Programm ist zu groß. http://www.mikrocontroller.net/articles/4000_Stellen_von_Pi_mit_ATtiny2313 AVR-Studio steuert folgende Compilerversion: WinAVR-20100110 Zitat aus dem Original: "Als Sprache wählte ich C99 und als Compiler avr-gcc[5] 4.7 oder neuer, so daß ein Executable erzeugen wird, das in die 2k Programmspeicher eines ATtiny2313 hineinpasst." folgende Textpassage habe ich bisher noch nicht umgesetzt (Zitat aus dem Original): "The only compiler that produces code small enough for the AVR ATtiny2313 hardware is avr-gcc 4.7 together with AVR-Libc. avr-gcc pi.c -o pi.elf $(CFLAGS) $(OPT) $(DEFS) $(LDFLAGS) with the following abbreviations for convenience: CFLAGS = -std=c99 -mmcu=attiny2313 OPT = -Os -mcall-prologues -fno-split-wide-types -fno-caller-saves -fno-tree-loop-optimize LDFLAGS = -Wl,--relax -Wl,--gc-sections -lm DEFS = -DF_CPU=22118400 -DBAUDRATE=115200 -DHOST_WINDOWS " Werte eingetragen und am mein spezielles Projekt angepaßt (Dateiname und Baudrate): avr-gcc pi_on_2313.c -o PI_on_2313.elf $(-std=c99 -mcu=attiny2313) $(-Os -mcall-prologues -fno-split-wide-types -fno-caller-saves -fno-tree-loop-optimize) $(-DF_CPU=20000000 -DBAUDRATE=57600) $(-Wl,--relax -Wl,--gc-sections -lm) ________________________________________________ Nur mit den Standardeinstellungen des AVR-Studios und ohne die Hinweise zu beachten, ist das Programm leider zu groß geraten: AVR Memory Usage ---------------- Device: attiny2313 Program: 4610 bytes (225.1% Full) (.text + .data + .bootloader) Data: 264 bytes (206.3% Full) (.data + .bss + .noinit) Build succeeded with 2 Warnings... Die von der anderen ACR-GCC-Version her vorgegeben Kommandozeile poaßt nicht genau. Hat jemand Ideen zur weiteren Vorgehensweise? die Kommandozeile an deie aktuell installierte Versio anpassen? In AVR-Studio bestimmte Einstellungen machen? Eine andere float-Bibliothek verwenden? Mit libc.a in AVR-Studio eingestellt: ---------------- Device: attiny2313 Program: 2154 bytes (105.2% Full) (.text + .data + .bootloader) Data: 0 bytes (0.0% Full) (.data + .bss + .noinit) Build succeeded with 2 Warnings... Mit libm.a in AVR-Studio eingestellt: AVR Memory Usage ---------------- Device: attiny2313 Program: 2154 bytes (105.2% Full) (.text + .data + .bootloader) Data: 0 bytes (0.0% Full) (.data + .bss + .noinit) Build succeeded with 2 Warnings... Mit libobjc.a in AVR-Studio eingestellt: Device: attiny2313 Program: 4610 bytes (225.1% Full) (.text + .data + .bootloader) Data: 264 bytes (206.3% Full) (.data + .bss + .noinit) Build succeeded with 2 Warnings... Mir bleiben folgende Optionen: - aufgeben - größeren Prozessor verwenden, z.B mega48, AT90S4433 - Anregungen der Experten umsetzen, damit es in den 2313 hinein paßt - genau die vorgegebene GCC-Version installieren und damit compilieren, falls die vorgegebene Kommandozeile paßt. - sich hier durchkämpfen (?): file:///C:/WinAVR-20100110/doc/gcc/HTML/gcc-4.3.2/gcc/Option-Summary.htm l#Option-Summary file:///C:/WinAVR-20100110/doc/gcc/HTML/gcc-4.3.2/gcc/Optimize-Options.h tml#Optimize-Options Kann mir da jemand weiter helfen bitte? mit freundlichem Gruß
Christian S. schrieb: > Mir bleiben folgende Optionen: > - aufgeben > - größeren Prozessor verwenden, z.B mega48, AT90S4433 > - Anregungen der Experten umsetzen, damit es in den 2313 hinein paßt > - genau die vorgegebene GCC-Version installieren und damit compilieren, > falls die vorgegebene Kommandozeile paßt. > - sich hier durchkämpfen (?): > file:///C:/WinAVR-20100110/doc/gcc/HTML/gcc-4.3.2/gcc/Option- > Summary.html#Option-Summary > file:///C:/WinAVR-20100110/doc/gcc/HTML/gcc-4.3.2/gcc/Optimize- > Options.html#Optimize-Options > > Kann mir da jemand weiter helfen bitte? Wie wärs mit richtig lesen? Aus deinen origial zitiertem Text z.B. > Zitat aus dem Original: > "Als Sprache wählte ich C99 und als Compiler avr-gcc[5] 4.7 oder neuer, > so daß ein Executable erzeugen wird, das in die 2k Programmspeicher > eines ATtiny2313 hineinpasst." Also ab auf die Atmel HP und die aktuelle Toolchain 4.7.x runterladen. Die erzeugt teilweise erheblich kleineren Code (mit Optimierungen aktiviert) als deine verwendete 4.3.2
:
Bearbeitet durch User
Also liegt es direkt am verwendeten Compiler. Ok, danke :-)
Christian S. schrieb: > Program: 4610 bytes (225.1% Full) Christian S. schrieb: > Also liegt es direkt am verwendeten Compiler. Nicht allein, außerdem musst Du mit der libc linken und die angegebenen Compileroptionen eintragen, das steht aber ebenfalls im Kommentar. Dann kommt auch auf 'nem neueren AVR GCC "nur" 107% Belegung raus.
MWS schrieb: > Nicht allein, außerdem musst Du mit der libc linken Vermutlich meinst du die libm. Oliver
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.