Dear FreeRTOS people,
Ive been messing around with an annoying problem in FreeRTOS and after few hours of testing, google searching i still cant resolve my problem. I am currently developing on a LM3S6965 Ethernet Eval Board.
In my project its necessary to use float and double but i cant seem to get it right.
INT8U buffer; float value = 123.45; sprintf(buffer, "%3.2f", value);
When following code has been executed the buffer still remains 0x00 in all fields. Although normal integers does work with sprintf.
The interesting part of my config looks like following:
... #define configUSE_PREEMPTION 1 #define configUSE_IDLE_HOOK 0 #define configUSE_TICK_HOOK 0 #define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 50000000 ) #define configTICK_RATE_HZ ( ( portTickType ) 100 ) #define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 40 ) #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2400 ) ) #define configMAX_TASK_NAME_LEN ( 12 ) #define configUSE_TRACE_FACILITY 0 #define configUSE_16_BIT_TICKS 0 #define configIDLE_SHOULD_YIELD 0 #define configUSE_CO_ROUTINES 0 #define configUSE_MUTEXES 1 ...
And my portmacro.h
/* Architecture specifics. */ #define portSTACK_GROWTH ( -1 ) #define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) #define portBYTE_ALIGNMENT 8
Basically it does not function in any way by using float or double.
Is it a hardware restriction or have a simply overseen something?
Thanks in advance.