Buggy assertion in xTaskGenericCreate?
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
Buggy assertion in xTaskGenericCreate?
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.
Buggy assertion in xTaskGenericCreate?
Ah, of course! I wasn’t reading the parentheses right. Sorry.
Thanks,
Bob