AnsweredAssumed Answered

Board low power modes, alongside Tickless FreeRTOS

Question asked by Gabriel Santamaría on Jun 27, 2018
Latest reply on Jul 2, 2018 by Alice_Yang

Greetings,

 

I'm trying to implement a very deep-state test project implementation, taking advantage of LLS state and FreeRTOS tickless operation;

 

for now, I can successfully enter RUN->VLPR->LLS state (which by itself is enough deep-state for the application i'm testing), but is required to do it within a function, not specially a task.

In parallel, I have also successfully put the current two FreeRTOS tasks I've created into the suspended state (by manually using vTaskSuspend( TaskHandle ), rather than vTaskSuspendAll() ) and then entered tickless operation.

 

The three main concerns I have for now are the following:

1) If I suspend all the tasks, including the current one running, task-internal-sequential-code is not continued (as the current task also enters suspended state and the core goes to tickless mode), so I can't call my function I previously mentioned to enter LLS.

 

2) I've read that the Idle task can redirect to a callback (also named "hook functions" I believe), but for now I haven't been able to perform that.

 

3) When I achieve tickless operation (which by the way, I configured to 1sec, i.e. 200 ticks with the default systick configuration), I don't see that any task is taken from the suspended state to running, as I understood from this link: Tickless Low power features in FreeRTOS ; am I supposed to manually resume (with vTaskResume(TaskHandle) ) any task I want to return to running? how would the core know when to listen to such sentence?

 

Any guiding/tip/example would be greatly appreciated, thanks in advance.

Best regads,

Gabriel

 

IDE:

MCU Xpresso IDE v10.2.0

 

SDK:

SDK_2.x_FRDM-KL43Z

Outcomes