after downloading the actual freeRTOS 5.3 version and comparing the demo \freeRTOS53\FreeRTOS\Demo\ARM7_LPC2106_GCC there might be an error in the include-sequence. In the file FreeRTOSConfig.h are typedefs used, which are defined in portmacro.h, but protmacro.h uses a define ‘configUSE_16_BIT_TICKS’, which is set later in the freeRTOSConfig.h. How can this correctly pre-processed?
FreeRTOS.h should always be the first FreeRTOS related header file included. When this is done:
First projdefs.h is included. This just defined a few things like pdTRUE and pdFALSE, etc.
Next FreeRTOSConfig.h is included. This uses the as yet undefined typedef portTickType, but FreeRTOSConfig.h is just a header file so will replace macros with text that uses portTickType but does not yet have to compile. It will also define configUSE_16_BIT_TICKS.
Finally portable.h is included which itself included portmacro.h. portmacro.h defines portTickType depending on the already defined configUSE_16_BIT_TICKS. This happens before compilation starts so everything is now straight.