Hi,
I've enabled configASSERT and I'm seeing an assertion failure in xTaskGenericCreate (FreeRTOS 8.0.0, PIC32 port). The assertion is:
~~~ configASSERT( ( ( uxPriority & ( UBaseTypet ) ( ~portPRIVILEGEBIT ) ) < ( UBaseTypet ) configMAXPRIORITIES ) ); ~~~
portPRIVILEGEBIT is zero so ~portPRIVILEGEBIT is 0xffffffff. The assertion expects that to be less than the max priority level. Since it's an unsigned comparison (UBaseType_t is an unsigned long) the test will always fail.
So how can this configASSERT test be correct?
Thank you, Bob
Assume:
uxPriority = 5 configMAX_PRIORITIES = 6
Then (all case to unsigned) the assert test becomes:
( uxPriority & 0xffffffff ) < 6
which equals
( 5 & 0xffffffff ) < 6
which equals
5 < 6
so the assertion passes.
Ah, of course! I wasn't reading the parentheses right. Sorry.
Thanks, Bob