It could be, but we have a Firmware stack alignment bug which prevent correct handling of floating point values with both RVDS and ARM EABI GCC (This bug is planned for fix in 2.35 Software Suite).
BTW, concerning ARM ELF GCC, since memory stubs have been added to OS 6.34 (for malloc, calloc and free), floating point printf bug is fixed as soon as you add a calloc_r stub in your application:
#include "adl_global.h"
#ifdef __REMOTETASKS__
#define COMPILER "MinGW"
#else
#ifdef __GNU_GCC__
#if __GNUC_MINOR__ >= 4
#define COMPILER "GCC EABI 4.4.1"
#else
#define COMPILER "GCC ARM ELF 4.0.1"
#endif
#else
#if __ARMCC_VERSION >= 300000
#define COMPILER "RVDS"
#else
#define COMPILER "ADS"
#endif
#endif
#endif
#ifdef __GNU_GCC__
void *_calloc_r( struct _reent *reent, size_t n, size_t s)
{
return calloc(n,s);
}
#endif
void goHandler (adl_atCmdPreParser_t * Params )
{
// Float handling
float myFloat = 2.3;
char buff [ 100 ];
snprintf ( buff, 100, "My float: %f", myFloat );
TRACE (( 1, buff ));
// Answer
adl_atSendStdResponsePort( ADL_AT_RSP, Params->Port, ADL_STR_OK );
}
void main_task ( void )
{
TRACE (( 1, "Float test application; built with " COMPILER "; " __TIME__ ));
// Subscribe to AT command
adl_atCmdSubscribe ( "at+go", goHandler, ADL_CMD_TYPE_ACT );
}