Yes, that is the intended behavior. The scheduler always runs the highest priority ready task. So, if your higher priority task never blocks, other lower priority tasks will starve. The tasks chapter in this book is good resource to learn these concepts - https://www.freertos.org/fr-content-src/uploads/2018/07/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf