(目前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文章
575瀏覽量
85871 -
STM32
+關注
關注
2270文章
10918瀏覽量
356822 -
RT-Thread
+關注
關注
31文章
1302瀏覽量
40273 -
裸機
+關注
關注
0文章
39瀏覽量
6406 -
gcc編譯器
+關注
關注
0文章
78瀏覽量
3408
發布評論請先 登錄
相關推薦
ESP8266_RTOS_SDK如何打印浮點數?
怎樣去解決RT-Thread浮點數打印的問題呢
rt-thread-studio不支持printf打印浮點數要怎么添加編譯選項?
浮點數的表示方法
![<b class='flag-5'>浮點數</b>的表示方法](https://file1.elecfans.com//web2/M00/A5/4F/wKgZomUMN9mALScLAAACIFGGUgU666.gif)
FLASH存儲浮點數據的解決辦法
![FLASH存儲<b class='flag-5'>浮點數</b>據的<b class='flag-5'>解決辦法</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
談一談浮點數的精度問題
![談一談<b class='flag-5'>浮點數</b>的精度問題](https://file.elecfans.com/web2/M00/5D/CF/poYBAGL0oKOAGnTXAABXAQp6GqM658.png)
評論