possible problem in xTaskCheckForTimeOut
Hi,
I’m using vs2008 to compile the FreeRTOS V5.4.1 with win32 emulation (with unsigned short portTickType) . I’ve found a possible bug in the xTaskCheckForTimeOut() function using this enviroment:
in tasks.c at line 1704:
else if( ( ( portTickType ) xTickCount – ( portTickType ) pxTimeOut->xTimeOnEntering ) < ( portTickType ) *pxTicksToWait )
should be replace to:
else if( ( portTickType )( xTickCount – pxTimeOut->xTimeOnEntering ) < ( portTickType ) *pxTicksToWait )
not doing this, the substraction will be converted to 32bit wide integert instead of "unsigned short", which could lead to other problems (invalid pxTicksToWait for example).
I don’t know how it affects the other environments, but I hope this helps for somebody.
possible problem in xTaskCheckForTimeOut
Those casts are new in V5.4.1 and intended to stop exactly the situation you describe. It worked for the code I was working on at the time, but it seems not all compilers.
Can you add a bug report in the SourceForge tracker for this – that way it will get looked at again before the next release.
Thanks and regards.
possible problem in xTaskCheckForTimeOut
I’ve added this bug to the tracker!
Regards!