What state must all other threads be in when entering Low Power Mode Standby (S5D9)?

Please forgive my trollish behavior, but I am after a definitive answer to what must be done before entering Low Power Mode Standby from my "base" thread.

I have a "base" thread which monitor changes in state of my board and executes 

g_sf_power_profiles_v2_common.p_api->lowPowerApply (... profile_Standby ..)

when even I'm running only on battery and all processes have finished running.

I can appreciate that entering standby whilst a Uart (for example) is being accessed would lead to undesirable consequences,
but I would like to know definitively what state my other threads MUST be in when Standby is entered.

i.e. Must tx_thread_suspend() be literally called on all threads, or would 
      tx_event_flags_get(), tx_semaphore_get(), ... etc be sufficient

 

Thanks to everyone for their time.

Karel

  • Hi Karel,

    Any API call that results in the thread blocking will work. There is no need to explicitly suspend the thread because the thread will be suspended when it is pending on a resource such as a semaphore, mutex, event flag or queue.

    -Gary