uxTopReadyPriority
records the highest priority for which a task is ready to run. It is updated whenever a task is added to ready list: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/tasks.c#L223. This way the scheduler does not need to search for the all the ready lists but only the list for uxTopReadyPriority
.
Port optimized task selection usually maintain top ready priority as a bit in a 32-bit number and use a hardware instruction to find the topmost set bit: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/portable/GCC/ARM_CM4F/portmacro.h#L132. It is not yet clear how setting uxTopReadyPriority
can cause any problem.
If you are using Cortex-M33, is there a reason not to use the official port: https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/main/portable/GCC/ARM_CM33.
Thanks.