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
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.