PebbleOS
Loading...
Searching...
No Matches
Functions
nRF

Nordic nRF52 SoC interfaces. More...

Functions

void soc_nrf_sleep_full_block (void)
 Block full sleep.
 
void soc_nrf_sleep_full_release (void)
 Release a block taken with soc_nrf_sleep_full_block().
 
bool soc_nrf_sleep_full_is_allowed (void)
 Check whether full sleep is permitted.
 

Detailed Description

Nordic nRF52 SoC interfaces.

When idle for long enough, the nRF52 enters full sleep: flash is powered down, the tick is paused and the CPU is woken by the RTC alarm. Code that cannot tolerate that, e.g. while a transfer depends on the tick or on flash, blocks it for the duration:

prv_run_transfer();
void soc_nrf_sleep_full_release(void)
Release a block taken with soc_nrf_sleep_full_block().
void soc_nrf_sleep_full_block(void)
Block full sleep.

Function Documentation

◆ soc_nrf_sleep_full_block()

void soc_nrf_sleep_full_block ( void  )

Block full sleep.

Plain WFI sleep remains allowed. Refcounted; balance each call with soc_nrf_sleep_full_release(). Safe to call concurrently, including from ISRs.

◆ soc_nrf_sleep_full_is_allowed()

bool soc_nrf_sleep_full_is_allowed ( void  )

Check whether full sleep is permitted.

Returns
true if no block is outstanding.

◆ soc_nrf_sleep_full_release()

void soc_nrf_sleep_full_release ( void  )

Release a block taken with soc_nrf_sleep_full_block().