(目前master分支已無(wú)該問(wèn)題,RT_ALIGN_SIZE默認(rèn)為8了)主要講講MounRiver Studio下的浮點(diǎn)打?。≧TT Studio)問(wèn)題,RT-Thread Studio的話我沒(méi)試過(guò),不過(guò)論壇里的一些vsnprintf替換rt_vsnprintf應(yīng)該是不可行的(gcc下 ch32v會(huì)拋出線程錯(cuò)誤,其它的keil或許可以,不過(guò)沒(méi)試過(guò))。
MounRiver Studio比較特殊,網(wǎng)上的方法都不行,要么浮點(diǎn)打印失敗,要么引發(fā)rtthread錯(cuò)誤,中間試了很多方法,涉及到一些編譯器C庫(kù)之類(lèi)的,過(guò)程就不贅述了,
直接說(shuō)結(jié)論和方法
MounRiver Studio裸機(jī)開(kāi)發(fā)ch32想printf浮點(diǎn)的話(ch32官方已經(jīng)為我們實(shí)現(xiàn)了printf重定向,如果其它芯片比如stm32就要自己重定向一下),需要勾選一個(gè)選項(xiàng),如圖:
rt_kprintf打印浮點(diǎn)需要一個(gè)補(bǔ)丁包rt_vsnprintf_full
浮點(diǎn)問(wèn)題解決了,大佬回復(fù)很快?。ㄟ@里感謝大佬@mysterywolf),將rtconfig.h里的字節(jié)對(duì)齊宏改為8,
#define RT_ALIGN_SIZE 8
之后如果想用printf的,就是要勾選我前面提到的Use wchprintfloat(其它芯片和IDE重定向printf并修改字節(jié)對(duì)齊)
想用rt_kprintf的,就要添加一個(gè)補(bǔ)丁包
rt_vsnprintf_full
那就大功告成了(親測(cè))
printf和rt_vsnprintf_full補(bǔ)丁包ROM都是8KB,所以不用糾結(jié)。
-
ROM
+關(guān)注
關(guān)注
4文章
578瀏覽量
87282 -
STM32
+關(guān)注
關(guān)注
2293文章
11031瀏覽量
364306 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1400瀏覽量
41829 -
裸機(jī)
+關(guān)注
關(guān)注
0文章
40瀏覽量
6689 -
gcc編譯器
+關(guān)注
關(guān)注
0文章
78瀏覽量
3726
發(fā)布評(píng)論請(qǐng)先 登錄
ESP8266_RTOS_SDK如何打印浮點(diǎn)數(shù)?
PRINTF函數(shù)無(wú)法打印出浮點(diǎn)數(shù)內(nèi)容是為什么?
PRINT函數(shù)為什么無(wú)法打印浮點(diǎn)數(shù)?
怎樣去解決RT-Thread浮點(diǎn)數(shù)打印的問(wèn)題呢
rt-thread-studio不支持printf打印浮點(diǎn)數(shù)要怎么添加編譯選項(xiàng)?
浮點(diǎn)數(shù)的表示方法

浮點(diǎn)數(shù)常用的編碼方法

modbus 如何讀取浮點(diǎn)數(shù)
FLASH存儲(chǔ)浮點(diǎn)數(shù)據(jù)的解決辦法

談一談浮點(diǎn)數(shù)的精度問(wèn)題

什么是浮點(diǎn)數(shù)?浮點(diǎn)數(shù)在內(nèi)存中的存儲(chǔ)

評(píng)論