Hallo alle, Ich kann mit Avr eclipse Zeichen und ganze Zahlen über printf ausgeben. Leider ich kann keine Fliesskommazahlen ausgeben. Beispiel: float f = 1.0098; printf("f = %f\n", f); Ausgabe: f = ? Die Libraries: printf_flt.a und m.a sind über Eclipse eingebunden. Compiler Einstellung sind: Building file: ../src/main.c Invoking: AVR Compiler avr-gcc -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums -funsigned-char -funsigned-bitfields -Wl,-u,vfprintf -lprintf_flt -lm -mmcu=atmega8 -DF_CPU=3686400UL -MMD -MP -MF"src/main.d" -MT"src/main.d" -c -o"src/main.o" "../src/main.c" Linker Einstelungen: Invoking: AVR C Linker avr-gcc -Wl,-Map,Temperature_Sensor.map -mmcu=atmega8 -o"Temperature_Sensor.elf" ./src/main.o ./src/drivers/i2c.o ./src/drivers/lm75A.o ./src/drivers/serial.o -lprintf_flt -lm Danke im Voraus.
:
Verschoben durch Admin
Das "-Wl,-u,vfprintf" muss in den Linker-Aufruf. Beim Compilieren hat das nichts zu suchen (wie übrigens auch -lprintf_flt und -lm).
Stefan, durch -Wl wird das durch das Compiler-Frontend an den Linker alles richtig übergeben. Das ist richtig so. Warum die Ausgabe nicht funktioniert sehe ich gerade auch nicht.
Pause schrieb: > Stefan, durch -Wl wird das durch das Compiler-Frontend an den Linker > alles richtig übergeben. Das ist richtig so. Aber nicht, wenn bei dem gcc-Aufruf überhaupt nichts gelinkt wird, sondern nur übersetzt. Und da, wo dann tatsächlich gelinkt wird, fehlt die Option.
Hallo, Pause ich habe das jetzt geändert: Invoking: AVR Compiler avr-gcc -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=3686400UL -MMD -MP -MF"src/drivers/serial.d" -MT"src/drivers/serial.d" -c -o"src/drivers/serial.o" "../src/drivers/serial.c" Finished building: ../src/drivers/serial.c Invoking: AVR C Linker avr-gcc -Wl,-Map,Temperature_Sensor.map -Wl,-u,vfprintf -lprintf_flt -lm -mmcu=atmega8 -o"Temperature_Sensor.elf" ./src/main.o ./src/drivers/i2c.o ./src/drivers/lm75A.o ./src/drivers/serial.o -lprintf_flt -lm Finished building target: Temperature_Sensor.elf Trotzdem geht das nicht.
Robert schrieb: > Hallo, Pause > > ich habe das jetzt geändert: > > Invoking: AVR Compiler > avr-gcc -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums > -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=3686400UL > -MMD -MP -MF"src/drivers/serial.d" -MT"src/drivers/serial.d" -c > -o"src/drivers/serial.o" "../src/drivers/serial.c" > Finished building: ../src/drivers/serial.c > > Invoking: AVR C Linker > avr-gcc -Wl,-Map,Temperature_Sensor.map -Wl,-u,vfprintf -lprintf_flt -lm > -mmcu=atmega8 -o"Temperature_Sensor.elf" ./src/main.o > ./src/drivers/i2c.o ./src/drivers/lm75A.o ./src/drivers/serial.o > -lprintf_flt -lm > Finished building target: Temperature_Sensor.elf > > Trotzdem geht das nicht. probier mal das '-lm' als letzte Option zu übergeben, und vor dem Output, also: Invoking: AVR C Linker avr-gcc -Wl,-Map,Temperature_Sensor.map -Wl,-u,vfprintf -mmcu=atmega8 ./src/main.o ./src/drivers/i2c.o ./src/drivers/lm75A.o ./src/drivers/serial.o -lprintf_flt -lm -o"Temperature_Sensor.elf"
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.