[FL-667] Power saving: deep sleep in tickless state (#300)
* SYSTEM: tickless mode with deep sleep. * Move FreeRTOS ticks to lptim2. * API: move all sumbodules init routines to one place. * Timebase: working lptim2 at tick source. * API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. * FreeRTOS: adjust configuration for tickless mode. * NFC: support for tickless mode. * API Timebase: improve tick error handling in IRQ. * Apploader: use insomnia mode to run applications. * BLE: prevent sleep while core2 starting. * HAL: nap while in insomnia mode. Co-authored-by: coreglitch <mail@s3f.ru>
This commit is contained in:
27
firmware/targets/f4/api-hal/api-hal-timebase.h
Normal file
27
firmware/targets/f4/api-hal/api-hal-timebase.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Initialize timebase
|
||||
* Configure and start tick timer
|
||||
*/
|
||||
void api_hal_timebase_init();
|
||||
|
||||
/* Get current insomnia level
|
||||
* @return insomnia level: 0 - no insomnia, >0 - insomnia, bearer count.
|
||||
*/
|
||||
uint16_t api_hal_timebase_insomnia_level();
|
||||
|
||||
/* Enter insomnia mode
|
||||
* Prevents device from going to sleep
|
||||
* @warning Internally increases insomnia level
|
||||
* Must be paired with api_hal_timebase_insomnia_exit
|
||||
*/
|
||||
void api_hal_timebase_insomnia_enter();
|
||||
|
||||
/* Exit insomnia mode
|
||||
* Allow device to go to sleep
|
||||
* @warning Internally decreases insomnia level.
|
||||
* Must be paired with api_hal_timebase_insomnia_enter
|
||||
*/
|
||||
void api_hal_timebase_insomnia_exit();
|
Reference in New Issue
Block a user