(目前master分支已无该问题,RT_ALIGN_SIZE默认为8了)主要讲讲MounRiver Studio下的浮点打印(RTT Studio)问题,RT-Thread Studio的话我没试过,不过论坛里的一些vsnprintf替换rt_vsnprintf应该是不可行的(gcc下 ch32v会抛出线程错误,其它的keil或许可以,不过没试过)。
MounRiver Studio比较特殊,网上的方法都不行,要么浮点打印失败,要么引发rtthread错误,中间试了很多方法,涉及到一些编译器C库之类的,过程就不赘述了,
直接说结论和方法
MounRiver Studio裸机开发ch32想printf浮点的话(ch32官方已经为我们实现了printf重定向,如果其它芯片比如stm32就要自己重定向一下),需要勾选一个选项,如图:

rt_kprintf打印浮点需要一个补丁包rt_vsnprintf_full
浮点问题解决了,大佬回复很快啊(这里感谢大佬@mysterywolf),将rtconfig.h里的字节对齐宏改为8,
#define RT_ALIGN_SIZE 8
之后如果想用printf的,就是要勾选我前面提到的Use wchprintfloat(其它芯片和IDE重定向printf并修改字节对齐)
想用rt_kprintf的,就要添加一个补丁包
rt_vsnprintf_full
那就大功告成了(亲测)
printf和rt_vsnprintf_full补丁包ROM都是8KB,所以不用纠结。
-
ROM
+关注
关注
4文章
578浏览量
88534 -
STM32
+关注
关注
2305文章
11120浏览量
371073 -
RT-Thread
+关注
关注
32文章
1540浏览量
44259 -
裸机
+关注
关注
0文章
41浏览量
6906 -
gcc编译器
+关注
关注
0文章
78浏览量
3912
发布评论请先 登录
ESP8266_RTOS_SDK如何打印浮点数?
PRINTF函数无法打印出浮点数内容是为什么?
怎样去解决RT-Thread浮点数打印的问题呢
rt-thread-studio不支持printf打印浮点数要怎么添加编译选项?
浮点数的表示方法
FLASH存储浮点数据的解决办法
谈一谈浮点数的精度问题

RT-Thread浮点数打印的问题及其解决办法
评论