STM32
直播中

刘军

7年用户 1396经验值
私信 关注
[问答]

为什么在CLion开发stm32下重定向printf却导致浮点型数据无法输出呢

为什么在CLion开发STM32下重定向printf却导致浮点型数据无法输出呢?有哪几种解决办法呢?

回帖(1)

李皓圳

2021-12-2 14:56:12
使用CLion开发stm32的情况下,重定向printf后,只能格式化字符串和整数输出,浮点型数据无法输出,根本原因是eabi 编译器为了节省空间,删减了一部分代码
方法一:

打开CMakeLists.txt,找到

就会发现其中有一个:-specs=nano.specs 这个参数的目的就是使用一个较小的库来代替,如果把这个删掉,然后重新加载cmake,

因为cmake文件有缓存,所以先清除缓存





这样的话,发现内存占用达到了59.2% ,之前占用时19%左右,所以这种方法不是优先考虑

方法二:

打开CMakeLists.txt,

在此处最后加上-u _printf_float,标识仍然使用删减库,但是浮点型输出例外.然后仍然和上面一样操作,先清除cmake缓存进行加载,然后重新编译
这次变成了34.28,虽然相比最开始增加了这么多,但是为了输出浮点型也没办法
举报

更多回帖

发帖
×
20
完善资料,
赚取积分