解决GD32VF103编译printf无法打印 float

解决GD32VF103编译printf无法打印 float

在GD32VF103编译后,采用printf打印float变量时,总是无法显示,是因为编译时采用用newlib-nano库,但是这个库对printf做了优化,在eclipse的build配置use-newlib-nano的选项取消勾选,就可以了

eclipse设置
但是这样的话,编译文件就会变大,程序太大的话,就下不进去了。所以,只能用于调试,调完后,还是改回去吧。或者自己做小数显示。

什么是newlib

Newlib是一个面向嵌入式系统的C运行库,由Cygnus Solutions收集组装的一个源代码集合,取名为newlib,现在由Red Hat维护,最新的版本是2.1.0。对于与GNU兼容的嵌入式C运行库,Newlib并不是唯一的选择,但是从成熟度来讲,newlib是最优秀的。
Newlib的特点包括以下几个方面:

轻量级:Newlib是一种轻量级的C语言标准库,大小只有几百KB,非常适合嵌入式系统使用。
移植性:Newlib可以运行在各种处理器平台和操作系统上,方便用户进行代码移植。
支持嵌入式系统:Newlib适合嵌入式系统中使用,提供了对底层硬件的支持,如中断、定时器等。
标准兼容:Newlib符合ANSI C和POSIX标准,提供了标准C库所需的所有基本函数和数据类型。
总的来说,Newlib具有轻量级、移植性强、支持嵌入式系统、标准兼容等特点,非常适合在嵌入式系统中使用。

什么是newlib-nano

newlib-nano是一个针对嵌入式系统优化的开源C库,特别适用于小型内存的MCU。它是newlib库的一个变种,专门进行了代码和数据大小缩减以及MCU特性优化。与使用标准版本的newlib相比,对于C和C++项目,使用newlib-nano可以极大地减少应用程序的大小。

newlib-nano在保持newlib所有功能的基础上,重新实现了printf和scanf等函数,以进一步减小代码大小。同时,它支持C89标准的转换说明符,移除了一些不必要的功能。但需要注意的是,newlib-nano并不支持C99中引入的新格式说明符,例如%hhX和%llX。总的来说,newlib-nano在提供丰富功能的同时,注重代码大小和运行效率的优化,使其尤其适合于资源有限的嵌入式系统。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值