correct sequence of include and defines

anonymous wrote on Thursday, July 09, 2009:


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?

rtel wrote on Thursday, July 09, 2009:

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.

Does that answer your question?


anonymous wrote on Thursday, July 09, 2009:

Yes. Thank you very much for your very fast answer.

Best regards