[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,,
@@ -1082,6 +1082,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,
@@ -1212,7 +1213,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,
@@ -1313,6 +1313,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,
@@ -3076,10 +3077,12 @@ Variable,+,gpio_ext_pc1,const GpioPin,
Variable,+,gpio_ext_pc3,const GpioPin,
Variable,+,gpio_i2c_power_scl,const GpioPin,
Variable,+,gpio_i2c_power_sda,const GpioPin,
Variable,+,gpio_ibutton,const GpioPin,
Variable,+,gpio_infrared_rx,const GpioPin,
Variable,+,gpio_infrared_tx,const GpioPin,
Variable,+,gpio_nfc_cs,const GpioPin,
Variable,+,gpio_nfc_irq_rfid_pull,const GpioPin,
Variable,+,gpio_periph_power,const GpioPin,
Variable,+,gpio_pins,const GpioPinRecord[],
Variable,+,gpio_pins_count,const size_t,
Variable,+,gpio_rf_sw_0,const GpioPin,
@@ -3096,11 +3099,13 @@ Variable,+,gpio_spi_r_miso,const GpioPin,
Variable,+,gpio_spi_r_mosi,const GpioPin,
Variable,+,gpio_spi_r_sck,const GpioPin,
Variable,+,gpio_subghz_cs,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,+,lfrfid_protocols,const ProtocolBase*[],
@@ -3249,7 +3254,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,
@@ -3307,4 +3311,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
1082 Function + furi_hal_crypto_verify_key _Bool uint8_t
1083 Function + furi_hal_debug_disable void
1084 Function + furi_hal_debug_enable void
1085 Function + furi_hal_debug_is_gdb_session_active _Bool
1086 Function - furi_hal_deinit_early void
1087 Function - furi_hal_flash_erase void uint8_t
1088 Function - furi_hal_flash_get_base size_t
1213 Function + furi_hal_os_tick void
1214 Function + furi_hal_power_check_otg_status void
1215 Function + furi_hal_power_debug_get void PropertyValueCallback, void*
Function + furi_hal_power_deep_sleep_available _Bool
1216 Function + furi_hal_power_disable_external_3_3v void
1217 Function + furi_hal_power_disable_otg void
1218 Function + furi_hal_power_enable_external_3_3v void
1313 Function + furi_hal_rtc_set_log_level void uint8_t
1314 Function + furi_hal_rtc_set_pin_fails void uint32_t
1315 Function + furi_hal_rtc_set_register void FuriHalRtcRegister, uint32_t
1316 Function + furi_hal_rtc_sync_shadow void
1317 Function + furi_hal_rtc_validate_datetime _Bool FuriHalRtcDateTime*
1318 Function + furi_hal_speaker_acquire _Bool uint32_t
1319 Function - furi_hal_speaker_deinit void
3077 Variable + gpio_ext_pc3 const GpioPin
3078 Variable + gpio_i2c_power_scl const GpioPin
3079 Variable + gpio_i2c_power_sda const GpioPin
3080 Variable + gpio_ibutton const GpioPin
3081 Variable + gpio_infrared_rx const GpioPin
3082 Variable + gpio_infrared_tx const GpioPin
3083 Variable + gpio_nfc_cs const GpioPin
3084 Variable + gpio_nfc_irq_rfid_pull const GpioPin
3085 Variable + gpio_periph_power const GpioPin
3086 Variable + gpio_pins const GpioPinRecord[]
3087 Variable + gpio_pins_count const size_t
3088 Variable + gpio_rf_sw_0 const GpioPin
3099 Variable + gpio_spi_r_mosi const GpioPin
3100 Variable + gpio_spi_r_sck const GpioPin
3101 Variable + gpio_subghz_cs const GpioPin
3102 Variable + gpio_swclk const GpioPin
3103 Variable + gpio_swdio const GpioPin
3104 Variable + gpio_usart_rx const GpioPin
3105 Variable + gpio_usart_tx const GpioPin
3106 Variable + gpio_usb_dm const GpioPin
3107 Variable + gpio_usb_dp const GpioPin
3108 Variable + gpio_ibutton gpio_vibro const GpioPin
3109 Variable + input_pins const InputPin[]
3110 Variable + input_pins_count const size_t
3111 Variable + lfrfid_protocols const ProtocolBase*[]
3254 Variable + message_sound_off const NotificationMessage
3255 Variable + message_vibro_off const NotificationMessage
3256 Variable + message_vibro_on const NotificationMessage
Variable + gpio_periph_power const GpioPin
3257 Variable + sequence_audiovisual_alert const NotificationSequence
3258 Variable + sequence_blink_blue_10 const NotificationSequence
3259 Variable + sequence_blink_blue_100 const NotificationSequence
3311 Variable + usb_hid FuriHalUsbInterface
3312 Variable + usb_hid_u2f FuriHalUsbInterface
3313 Variable + usbd_devfs const usbd_driver
Variable + gpio_vibro const GpioPin