[AVR] pointer size miss match

anonymous wrote on Wednesday, March 27, 2013:

I am getting a warning in heap_1.c

warning: cast from pointer to integer of different size 

I think that the portPOINTER_SIZE_TYPE to unsigned short in portmacro.h
Is this right?

anonymous wrote on Wednesday, March 27, 2013:

and in task.c the same thing. Following lines

...
configASSERT( ( ( ( unsigned long ) pxTopOfStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) );
...
portALIGNMENT_ASSERT_pxCurrentTCB( ( ( ( unsigned long ) pxNewTCB->pxTopOfStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) );

should be replaced by

...
configASSERT( ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack & ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) == (portPOINTER_SIZE_TYPE)0 ) );
...
portALIGNMENT_ASSERT_pxCurrentTCB( ( ( ( portPOINTER_SIZE_TYPE ) pxNewTCB->pxTopOfStack & ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) == (portPOINTER_SIZE_TYPE)0 ) );
...

davedoors wrote on Wednesday, March 27, 2013:

This can happen with 8 bit architectures, but the assert macros are not actually part of the FreeRTOS functionality, just checks that the port is working correctly used when the code is being ported to new devices.