arm-none-eabi-gcc:使用printf打印浮点数

Pra*_*bhu 6 c printf gcc arm

我正在为SAM3N arm cortex-M3微控制器编写一个C程序.当我尝试打印浮点数时,它只打印'f'.示例:仅printf("%f",43.12);打印f,而不是43.12.

但用整数打印效果很好.

如何启用浮动的完整打印?我知道默认情况下,编译器禁用浮动打印以减少代码大小(即看起来,它们链接了缩减版本).另请注意,CFLAGS=-Dprintf=iprintfmakefile中没有使用.

工具详情:

  • ARM/GNU C编译器:(crosstool-NG 1.13.1 - Atmel build:13)4.6.1
  • 以上工具附带Atmel studio 6.0.

小智 7

您可以尝试在链接器设置中添加以下选项

-lc -lrdimon -u _printf_float

它在ARM-CORTEXM0中对我有用


Sni*_*gus 0

在默认情况下禁用浮点的编译器中,默认库可以处理它们是不寻常的。查看您的参考资料,您将找到有关如何重新编译具有浮动支持的适当库的信息,或者(更有可能)在哪里可以找到已经使用它构建的版本。