[FL-3226] Deep Sleep Idle (#2569)

* Improve RNG error handling
* Sync RTC shadow registers on Stop mode exit
* Implement working STOP2 mode
* Fix formatting
* FuriHal: disable SWD pins if debug is disabled
* Power: cleanup battery info view, handle zero current report from gauge
* Fbt: add command line argument for extra global defines
* FuriHal: cleanup debug defines in power and os, drop deep_insomnia counter.
* Add a setting to disable deep sleep
* Clean up furi_hal_power
* FuriHal,FapLoader,Debug: implement debug in stop mode, workaround resume in stop
* FuriHal: document OS and power subsystems debugging
* Furi: enable debug interface on crash

---------

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
Georgii Surkov
2023-04-13 17:47:38 +03:00
committed by GitHub
parent 5d7bdca835
commit 37fb330b36
26 changed files with 246 additions and 120 deletions

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,21.0,,
Version,+,22.0,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,,
@@ -901,6 +901,7 @@ Function,+,furi_hal_crypto_verify_enclave,_Bool,"uint8_t*, uint8_t*"
Function,+,furi_hal_crypto_verify_key,_Bool,uint8_t
Function,+,furi_hal_debug_disable,void,
Function,+,furi_hal_debug_enable,void,
Function,+,furi_hal_debug_is_gdb_session_active,_Bool,
Function,-,furi_hal_deinit_early,void,
Function,-,furi_hal_flash_erase,void,uint8_t
Function,-,furi_hal_flash_get_base,size_t,
@@ -983,7 +984,6 @@ Function,-,furi_hal_os_init,void,
Function,+,furi_hal_os_tick,void,
Function,+,furi_hal_power_check_otg_status,void,
Function,+,furi_hal_power_debug_get,void,"PropertyValueCallback, void*"
Function,+,furi_hal_power_deep_sleep_available,_Bool,
Function,+,furi_hal_power_disable_external_3_3v,void,
Function,+,furi_hal_power_disable_otg,void,
Function,+,furi_hal_power_enable_external_3_3v,void,
@@ -1059,6 +1059,7 @@ Function,+,furi_hal_rtc_set_locale_units,void,FuriHalRtcLocaleUnits
Function,+,furi_hal_rtc_set_log_level,void,uint8_t
Function,+,furi_hal_rtc_set_pin_fails,void,uint32_t
Function,+,furi_hal_rtc_set_register,void,"FuriHalRtcRegister, uint32_t"
Function,+,furi_hal_rtc_sync_shadow,void,
Function,+,furi_hal_rtc_validate_datetime,_Bool,FuriHalRtcDateTime*
Function,+,furi_hal_speaker_acquire,_Bool,uint32_t
Function,-,furi_hal_speaker_deinit,void,
@@ -2149,6 +2150,8 @@ Variable,+,gpio_ext_pd0,const GpioPin,
Variable,+,gpio_ext_pe4,const GpioPin,
Variable,+,gpio_i2c_power_scl,const GpioPin,
Variable,+,gpio_i2c_power_sda,const GpioPin,
Variable,+,gpio_ibutton,const GpioPin,
Variable,+,gpio_periph_power,const GpioPin,
Variable,+,gpio_pins,const GpioPinRecord[],
Variable,+,gpio_pins_count,const size_t,
Variable,+,gpio_sdcard_cd,const GpioPin,
@@ -2157,11 +2160,13 @@ Variable,+,gpio_speaker,const GpioPin,
Variable,+,gpio_spi_d_miso,const GpioPin,
Variable,+,gpio_spi_d_mosi,const GpioPin,
Variable,+,gpio_spi_d_sck,const GpioPin,
Variable,+,gpio_swclk,const GpioPin,
Variable,+,gpio_swdio,const GpioPin,
Variable,+,gpio_usart_rx,const GpioPin,
Variable,+,gpio_usart_tx,const GpioPin,
Variable,+,gpio_usb_dm,const GpioPin,
Variable,+,gpio_usb_dp,const GpioPin,
Variable,+,gpio_ibutton,const GpioPin,
Variable,+,gpio_vibro,const GpioPin,
Variable,+,input_pins,const InputPin[],
Variable,+,input_pins_count,const size_t,
Variable,+,message_blink_set_color_blue,const NotificationMessage,
@@ -2309,7 +2314,6 @@ Variable,+,message_red_255,const NotificationMessage,
Variable,+,message_sound_off,const NotificationMessage,
Variable,+,message_vibro_off,const NotificationMessage,
Variable,+,message_vibro_on,const NotificationMessage,
Variable,+,gpio_periph_power,const GpioPin,
Variable,+,sequence_audiovisual_alert,const NotificationSequence,
Variable,+,sequence_blink_blue_10,const NotificationSequence,
Variable,+,sequence_blink_blue_100,const NotificationSequence,
@@ -2364,4 +2368,3 @@ Variable,+,usb_cdc_single,FuriHalUsbInterface,
Variable,+,usb_hid,FuriHalUsbInterface,
Variable,+,usb_hid_u2f,FuriHalUsbInterface,
Variable,+,usbd_devfs,const usbd_driver,
Variable,+,gpio_vibro,const GpioPin,
1 entry status name type params
2 Version + 21.0 22.0
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h
901 Function + furi_hal_crypto_verify_key _Bool uint8_t
902 Function + furi_hal_debug_disable void
903 Function + furi_hal_debug_enable void
904 Function + furi_hal_debug_is_gdb_session_active _Bool
905 Function - furi_hal_deinit_early void
906 Function - furi_hal_flash_erase void uint8_t
907 Function - furi_hal_flash_get_base size_t
984 Function + furi_hal_os_tick void
985 Function + furi_hal_power_check_otg_status void
986 Function + furi_hal_power_debug_get void PropertyValueCallback, void*
Function + furi_hal_power_deep_sleep_available _Bool
987 Function + furi_hal_power_disable_external_3_3v void
988 Function + furi_hal_power_disable_otg void
989 Function + furi_hal_power_enable_external_3_3v void
1059 Function + furi_hal_rtc_set_log_level void uint8_t
1060 Function + furi_hal_rtc_set_pin_fails void uint32_t
1061 Function + furi_hal_rtc_set_register void FuriHalRtcRegister, uint32_t
1062 Function + furi_hal_rtc_sync_shadow void
1063 Function + furi_hal_rtc_validate_datetime _Bool FuriHalRtcDateTime*
1064 Function + furi_hal_speaker_acquire _Bool uint32_t
1065 Function - furi_hal_speaker_deinit void
2150 Variable + gpio_ext_pe4 const GpioPin
2151 Variable + gpio_i2c_power_scl const GpioPin
2152 Variable + gpio_i2c_power_sda const GpioPin
2153 Variable + gpio_ibutton const GpioPin
2154 Variable + gpio_periph_power const GpioPin
2155 Variable + gpio_pins const GpioPinRecord[]
2156 Variable + gpio_pins_count const size_t
2157 Variable + gpio_sdcard_cd const GpioPin
2160 Variable + gpio_spi_d_miso const GpioPin
2161 Variable + gpio_spi_d_mosi const GpioPin
2162 Variable + gpio_spi_d_sck const GpioPin
2163 Variable + gpio_swclk const GpioPin
2164 Variable + gpio_swdio const GpioPin
2165 Variable + gpio_usart_rx const GpioPin
2166 Variable + gpio_usart_tx const GpioPin
2167 Variable + gpio_usb_dm const GpioPin
2168 Variable + gpio_usb_dp const GpioPin
2169 Variable + gpio_ibutton gpio_vibro const GpioPin
2170 Variable + input_pins const InputPin[]
2171 Variable + input_pins_count const size_t
2172 Variable + message_blink_set_color_blue const NotificationMessage
2314 Variable + message_sound_off const NotificationMessage
2315 Variable + message_vibro_off const NotificationMessage
2316 Variable + message_vibro_on const NotificationMessage
Variable + gpio_periph_power const GpioPin
2317 Variable + sequence_audiovisual_alert const NotificationSequence
2318 Variable + sequence_blink_blue_10 const NotificationSequence
2319 Variable + sequence_blink_blue_100 const NotificationSequence
2368 Variable + usb_hid FuriHalUsbInterface
2369 Variable + usb_hid_u2f FuriHalUsbInterface
2370 Variable + usbd_devfs const usbd_driver
Variable + gpio_vibro const GpioPin

View File

@@ -6,6 +6,9 @@
#define TAG "FuriHalResources"
const GpioPin gpio_swdio = {.port = GPIOA, .pin = LL_GPIO_PIN_13};
const GpioPin gpio_swclk = {.port = GPIOA, .pin = LL_GPIO_PIN_14};
const GpioPin gpio_vibro = {.port = GPIOA, .pin = LL_GPIO_PIN_8};
const GpioPin gpio_ibutton = {.port = GPIOB, .pin = LL_GPIO_PIN_14};

View File

@@ -50,6 +50,9 @@ extern const size_t input_pins_count;
extern const GpioPinRecord gpio_pins[];
extern const size_t gpio_pins_count;
extern const GpioPin gpio_swdio;
extern const GpioPin gpio_swclk;
extern const GpioPin gpio_vibro;
extern const GpioPin gpio_ibutton;