Unable to sprintf float value with redlib(semihost-nf)

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Unable to sprintf float value with redlib(semihost-nf)

4,297 次查看
akimata
Contributor IV

Hi,

I'm struggling to sprintf a float value with redlib(semihost-nf). What i've done:

- set PRINTF_FLOAT_ENABLE=1

- set SCANF_FLOAT_ENABLE=1

- removed CR_INTEGER_PRINTF

Example code:

char text_buffer[64]

snprintf(text_buffer, sizeof(text_buffer), "declination: %.2f\r\n" , 5.25);

Any ideas what else might be wrong?

It's working on newlib(semihost) but semihosting on that lib is just too slow and i would rather to stay on redlib.

0 项奖励
回复
8 回复数

1,978 次查看
georgeliolidis
Contributor I

I had the same problem and i solved it after correcting the preprocess  symbol:

CR_INTEGER_PRINTF  to _CR_INTEGER_PRINTF.

(was missing the preceding underscore)

0 项奖励
回复

4,151 次查看
akimata
Contributor IV

That's what i got in the settings. The weirdest part is that i created new project and it's working just fine there, but i cannot get it to work on my project so i just generated whole new project and copied files there and problem solved!. Still have no clue why didn't it work on my last project tho.

0 项奖励
回复

4,152 次查看
zhiqunhu
Contributor III

Try to remove CR_INTEGER_PRINTF in Preprocessor configuration.

0 项奖励
回复

4,152 次查看
ErichStyger
Specialist I

could it be that you changed something in the linker settings? I would compare those.

0 项奖励
回复

4,152 次查看
ErichStyger
Specialist I

choose a different redlib library. nf means 'no-float'.

0 项奖励
回复

4,152 次查看
ErichStyger
Specialist I

correction: nf means no-files (not no-float)

0 项奖励
回复

4,152 次查看
akimata
Contributor IV

I tried also redlib(semihost) and redlib(semihost-mb) and noone of them works.

0 项奖励
回复

4,152 次查看
ErichStyger
Specialist I

this is what I have:

pastedImage_1.png

pastedImage_2.png

pastedImage_3.png

0 项奖励
回复