jra01 wrote on Monday, November 13, 2006:
Working with real view compiler for ARM (used by Keil) I ran into a need for 8 byte alignment of the stack. (sprintf with float values did not work otherwise.)
To achive this I had to add the following lines in heap_1.c:
#if portBYTE_ALIGNMENT == 8
    #define heapBYTE_ALIGNMENT_MASK    ( ( size_t ) 0x0007 )
#endif
I also made some changes to my port of the OS.
In port.c, pxPortInitialiseStack, first lines:
    /* Setup the initial stack of the task.  The stack is set exactly as
    expected by the portRESTORE_CONTEXT() macro.
    8 byte alignment: */
    pxTopOfStack = (portSTACK_TYPE *)((long)pxTopOfStack & 0xfffffff8);
In portmacro.h:
#define portBYTE_ALIGNMENT            8
I’ll send the changes to Richard.
Regards
Jokke