paoloferrari wrote on Tuesday, November 11, 2008:
Hi all,
I’m new and I would use FreeRTOS on STR912FA with IAR compiler. I downloaded the last version (5.1.0) and the compiler gives this error:
Error[Li005]: no definition for "usTaskCheckFreeStackSpace" [referenced from C:\Documents and Settings\paolo\Documenti\str912\RTOS\FreeRTOSV5.1.0\
FreeRTOSV5.1.0\FreeRTOS\Demo\ARM9_STR91X_IAR\ARM - uIP - D\Obj\tasks.o]
In the file task.c I saw that the definition of the prototype "usTaskCheckFreeStackSpace" is different from that of the function
#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) <------- Different ******
unsigned portSHORT usTaskCheckFreeStackSpace( const unsigned portCHAR * pucStackByte );
#endif
#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) <------- Different ******
unsigned portSHORT usTaskCheckFreeStackSpace( const unsigned portCHAR * pucStackByte )
{
register unsigned portSHORT usCount = 0;
while( *pucStackByte == tskSTACK_FILL_BYTE )
{
pucStackByte -= portSTACK_GROWTH;
usCount++;
}
usCount /= sizeof( portSTACK_TYPE );
return usCount;
}
#endif
Setting them equal everything works properly, or should I set "INCLUDE_uxTaskGetStackHighWaterMark" to 1?
What is the correct thing to do?
Thanks for your answer
Paolo Ferrari