Hello.
I am trying to implement MPU mode and TICKLESS mode (for power saving) on cortex-M4 mcu. When I launch the execution, only the privileged tasks remain active after the first vTaskDelay(the first call to vPortSuppressTickAndSleep). Does anyone know if unprivileged tasks can work with configUSE_TICKLESS_IDLE set to 1? or Why it does not work?
Hi @myriamKC,
The CM4 MPU port doesn’t support tickless idle. Have you modified the official port? If so, what modifications did you make? Or are you using a 3rd party port – one not provided by FreeRTOS?
Yes, I have modified the official port. I add the implementation of vPortSuppressTicksAndSleep of CM4F port in port.c of CM4 MPU
I do not think we have tested MPU ports with tickless idle. Just to make sure - does your code work when you disable tickless idle? And where did you get the implementation of vPortSuppressTickAndSleep from?
It should work on the MPU port. As Gaurav said please make sure the application works with tickless idle disabled.
Do you mean portable/GCC/ARM_CM4F/port.c? Did you copy all of the code blocks marked with #if ( configUSE_TICKLESS_IDLE == 1 )
?
Did you copy this block of code inside vPortSetupTimerInterrupt()
?
Which kernel version are you using? Where did you get it?