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?
uxPriority = 5
configMAX_PRIORITIES = 6
Then (all case to unsigned) the assert test becomes:
( uxPriority & 0xffffffff ) < 6
( 5 & 0xffffffff ) < 6
5 < 6
so the assertion passes.
Ah, of course! I wasn't reading the parentheses right. Sorry.