PIC32 & FreeRTOS: sprintf alternative

anonymous wrote on Wednesday, February 25, 2009:

Hello all,

I’m using FreeRTOS on a PIC32 and so far everything is going well apart from sprintf. After some searching on the Microchip forums, I came across this post (http://forum.microchip.com/tm.aspx?m=372645) which describes a similar problem to what I’m facing. In my case, when running the release build of the firmware, sprintf(%f) will always print 0.00 and not the number I input. Strangly enough, it works fine if I run the PIC in debug mode using the ICD3.

Regardless, I was wondering if there was a known fix for this, or if there are other alternatives I could use for printing a floating point number into a string while using FreeRTOS?



rtel wrote on Wednesday, February 25, 2009:

Is the library selection different between the release and debug builds?  Often a compiler will switch libraries silently to use an optimised library, and it might be that the release library does not have floating point support.


anonymous wrote on Thursday, February 26, 2009:

Hi Richard,

Thanks for your reply - Both libraries have floating point support as I’ve used them before in projects without FreeRTOS.

Also, I’ve just written a simple demo using FreeRTOS and sprintf and in this case, the opposite occurs! I get 0.00 when running in Debug and it works fine in release mode! All that the demo requires is an Explorer16 board, PIC32MX360F512L PIM and an ICD3. If you want, I can email it to you.