SAM3N arm cortex-M3 mikro denetleyicisi için bir C programı yazıyorum. Kayan sayıları yazdırmaya çalıştığımda, sadece 'f' yazdırır. Örnek: printf("%f",43.12);
baskılar f
değil, yalnızca 43.12
.arm-none-eabi-gcc: printf kullanarak yazdırma float numarası
Ama tamsayılar yazdırmaya çalışıyor.
Nasıl şamandıraların tam yazdırmayı etkinleştirmek için? Derleyicinin, varsayılan olarak, kod boyutunu azaltmak için float yazdırmayı devre dışı bıraktığını biliyorum (yani, kesilmiş versiyona bağlılar). Ayrıca, makefile'de kullanılan CFLAGS=-Dprintf=iprintf
olduğunu unutmayın.
Araçlar ayrıntıları:
- ARM/GNU C derleyicisi: (crosstool-NG 1.13.1 - Atmel inşa: 13) Atmel stüdyosu 6.0 ile gelen aracı Üstü 4.6.1
- .
afaik çalıştı. Bu nedenle, tam baskı yeteneğini nasıl etkinleştireceğinizi öğrenmek için derleyici belgelerine başvurmanız gerekir. Örneğin AVR'de "-Wl, -u, vfprintf -lprintf_flt -lm" idi. Başka bir şekilde, araç satıcınıza başvurmalısınız, belki de bilinen bir konudur. –
Ne yazık ki, bu -lprintf sadece AVR-GCC için çalışır, ancak ARM için DEĞİL. – Prabhu