在多任務(wù)情況,使用printf不能正常顯示單精度浮點(diǎn)數(shù)。比如:在LiteOS任務(wù)中顯示單精度浮點(diǎn)數(shù)時(shí),串口調(diào)試助手顯示0.00
printf不能正常顯示單精度浮點(diǎn)數(shù).pdf
在多任務(wù)情況,使用printf不能正常顯示單精度浮點(diǎn)數(shù)。比如:在LiteOS任務(wù)中顯示單精度浮點(diǎn)數(shù)時(shí),串口調(diào)試助手顯示0.00
printf不能正常顯示單精度浮點(diǎn)數(shù).pdf
您好,可按照下圖勾選配置試一下。
也不行,和printf相關(guān)的選項(xiàng)均以試過,解決不了。
您好,LiteOS中可以將任務(wù)堆棧設(shè)置為8字節(jié)對齊,即可正常打印,可按照下圖配置一下
您好,可以通過手動(dòng)指定堆棧8字節(jié)對齊來解決該問題:
確實(shí)可以解決了!太爽了。能不能順便說明一下這其中原因?
您好,printf的C運(yùn)行庫要求8字節(jié)對齊,若沒有對齊導(dǎo)致發(fā)送浮點(diǎn)數(shù),因此操作操作系統(tǒng)需要對任務(wù)堆棧做出要求,需要進(jìn)行8字節(jié)對齊。
我也在調(diào)試這個(gè)問題, 改8字節(jié)對齊后,直接異常了
您好,由mcause的值可知異常的原因是由非法指令引起的,mepc的值為當(dāng)前遇到異常時(shí)的指令PC值,mtval的值主要反映引起當(dāng)前異常的指令編碼,若方便,可將你的工程具體發(fā)到我的郵箱看一下(lzs@wch.cn)
我用rt-thread也遇到這個(gè)問題,打印的是0或者-2,8字節(jié)對齊后程序就掛了
您好,參考一下4樓回復(fù)配置一下