mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-13 06:18:35 -07:00
Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
entry,status,name,type,params
|
||||
Version,+,61.2,,
|
||||
Version,+,62.3,,
|
||||
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
|
||||
Header,+,applications/main/archive/helpers/archive_helpers_ext.h,,
|
||||
Header,+,applications/main/subghz/subghz_fap.h,,
|
||||
Header,+,applications/services/applications.h,,
|
||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||
Header,+,applications/services/bt/bt_service/bt_keys_storage.h,,
|
||||
Header,+,applications/services/bt/bt_settings.h,,
|
||||
Header,+,applications/services/cli/cli.h,,
|
||||
Header,+,applications/services/cli/cli_vcp.h,,
|
||||
@@ -173,6 +174,7 @@ Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight_listener.h,,
|
||||
Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight_poller.h,,
|
||||
Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight_poller_sync.h,,
|
||||
Header,+,lib/nfc/protocols/slix/slix.h,,
|
||||
Header,+,lib/nfc/protocols/slix/slix_poller.h,,
|
||||
Header,+,lib/nfc/protocols/st25tb/st25tb.h,,
|
||||
Header,+,lib/nfc/protocols/st25tb/st25tb_poller.h,,
|
||||
Header,+,lib/nfc/protocols/st25tb/st25tb_poller_sync.h,,
|
||||
@@ -239,10 +241,12 @@ Header,+,lib/toolbox/hex.h,,
|
||||
Header,+,lib/toolbox/keys_dict.h,,
|
||||
Header,+,lib/toolbox/manchester_decoder.h,,
|
||||
Header,+,lib/toolbox/manchester_encoder.h,,
|
||||
Header,+,lib/toolbox/md5_calc.h,,
|
||||
Header,+,lib/toolbox/name_generator.h,,
|
||||
Header,+,lib/toolbox/path.h,,
|
||||
Header,+,lib/toolbox/pretty_format.h,,
|
||||
Header,+,lib/toolbox/protocols/protocol_dict.h,,
|
||||
Header,+,lib/toolbox/pulse_protocols/pulse_glue.h,,
|
||||
Header,+,lib/toolbox/saved_struct.h,,
|
||||
Header,+,lib/toolbox/simple_array.h,,
|
||||
Header,+,lib/toolbox/stream/buffered_file_stream.h,,
|
||||
@@ -251,6 +255,7 @@ Header,+,lib/toolbox/stream/stream.h,,
|
||||
Header,+,lib/toolbox/stream/string_stream.h,,
|
||||
Header,+,lib/toolbox/tar/tar_archive.h,,
|
||||
Header,+,lib/toolbox/value_index.h,,
|
||||
Header,+,lib/toolbox/varint.h,,
|
||||
Header,+,lib/toolbox/version.h,,
|
||||
Header,+,targets/f7/ble_glue/furi_ble/event_dispatcher.h,,
|
||||
Header,+,targets/f7/ble_glue/furi_ble/gatt.h,,
|
||||
@@ -779,8 +784,15 @@ Function,-,bsearch,void*,"const void*, const void*, size_t, size_t, __compar_fn_
|
||||
Function,-,bt_close_rpc_connection,void,Bt*
|
||||
Function,+,bt_disconnect,void,Bt*
|
||||
Function,+,bt_forget_bonded_devices,void,Bt*
|
||||
Function,+,bt_keys_storage_alloc,BtKeysStorage*,const char*
|
||||
Function,+,bt_keys_storage_delete,_Bool,BtKeysStorage*
|
||||
Function,+,bt_keys_storage_free,void,BtKeysStorage*
|
||||
Function,+,bt_keys_storage_load,_Bool,BtKeysStorage*
|
||||
Function,+,bt_keys_storage_set_default_path,void,Bt*
|
||||
Function,+,bt_keys_storage_set_file_path,void,"BtKeysStorage*, const char*"
|
||||
Function,+,bt_keys_storage_set_ram_params,void,"BtKeysStorage*, uint8_t*, uint16_t"
|
||||
Function,+,bt_keys_storage_set_storage_path,void,"Bt*, const char*"
|
||||
Function,+,bt_keys_storage_update,_Bool,"BtKeysStorage*, uint8_t*, uint32_t"
|
||||
Function,-,bt_open_rpc_connection,void,Bt*
|
||||
Function,+,bt_profile_restore_default,_Bool,Bt*
|
||||
Function,+,bt_profile_start,FuriHalBleProfileBase*,"Bt*, const FuriHalBleProfileTemplate*, FuriHalBleProfileParams"
|
||||
@@ -877,7 +889,7 @@ Function,+,compress_alloc,Compress*,uint16_t
|
||||
Function,+,compress_decode,_Bool,"Compress*, uint8_t*, size_t, uint8_t*, size_t, size_t*"
|
||||
Function,+,compress_encode,_Bool,"Compress*, uint8_t*, size_t, uint8_t*, size_t, size_t*"
|
||||
Function,+,compress_free,void,Compress*
|
||||
Function,+,compress_icon_alloc,CompressIcon*,
|
||||
Function,+,compress_icon_alloc,CompressIcon*,size_t
|
||||
Function,+,compress_icon_decode,void,"CompressIcon*, const uint8_t*, uint8_t**"
|
||||
Function,+,compress_icon_free,void,CompressIcon*
|
||||
Function,-,copysign,double,"double, double"
|
||||
@@ -1789,7 +1801,7 @@ Function,+,furi_mutex_free,void,FuriMutex*
|
||||
Function,+,furi_mutex_get_owner,FuriThreadId,FuriMutex*
|
||||
Function,+,furi_mutex_release,FuriStatus,FuriMutex*
|
||||
Function,+,furi_pubsub_alloc,FuriPubSub*,
|
||||
Function,-,furi_pubsub_free,void,FuriPubSub*
|
||||
Function,+,furi_pubsub_free,void,FuriPubSub*
|
||||
Function,+,furi_pubsub_publish,void,"FuriPubSub*, void*"
|
||||
Function,+,furi_pubsub_subscribe,FuriPubSubSubscription*,"FuriPubSub*, FuriPubSubCallback, void*"
|
||||
Function,+,furi_pubsub_unsubscribe,void,"FuriPubSub*, FuriPubSubSubscription*"
|
||||
@@ -2018,8 +2030,10 @@ Function,+,icon_animation_set_update_callback,void,"IconAnimation*, IconAnimatio
|
||||
Function,+,icon_animation_start,void,IconAnimation*
|
||||
Function,+,icon_animation_stop,void,IconAnimation*
|
||||
Function,+,icon_get_data,const uint8_t*,const Icon*
|
||||
Function,+,icon_get_height,uint8_t,const Icon*
|
||||
Function,+,icon_get_width,uint8_t,const Icon*
|
||||
Function,+,icon_get_frame_count,uint32_t,const Icon*
|
||||
Function,+,icon_get_frame_data,const uint8_t*,"const Icon*, uint32_t"
|
||||
Function,+,icon_get_height,uint16_t,const Icon*
|
||||
Function,+,icon_get_width,uint16_t,const Icon*
|
||||
Function,-,ilogb,int,double
|
||||
Function,-,ilogbf,int,float
|
||||
Function,-,ilogbl,int,long double
|
||||
@@ -2491,6 +2505,8 @@ Function,-,mbedtls_sha256_update,int,"mbedtls_sha256_context*, const unsigned ch
|
||||
Function,-,mblen,int,"const char*, size_t"
|
||||
Function,-,mbstowcs,size_t,"wchar_t*, const char*, size_t"
|
||||
Function,-,mbtowc,int,"wchar_t*, const char*, size_t"
|
||||
Function,+,md5_calc_file,_Bool,"File*, const char*, unsigned char[16], FS_Error*"
|
||||
Function,+,md5_string_calc_file,_Bool,"File*, const char*, FuriString*, FS_Error*"
|
||||
Function,-,memccpy,void*,"void*, const void*, int, size_t"
|
||||
Function,+,memchr,void*,"const void*, int, size_t"
|
||||
Function,+,memcmp,int,"const void*, const void*, size_t"
|
||||
@@ -2966,6 +2982,11 @@ Function,+,protocol_dict_render_brief_data,void,"ProtocolDict*, FuriString*, siz
|
||||
Function,+,protocol_dict_render_data,void,"ProtocolDict*, FuriString*, size_t"
|
||||
Function,+,protocol_dict_render_uid,void,"ProtocolDict*, FuriString*, size_t"
|
||||
Function,+,protocol_dict_set_data,void,"ProtocolDict*, size_t, const uint8_t*, size_t"
|
||||
Function,+,pulse_glue_alloc,PulseGlue*,
|
||||
Function,+,pulse_glue_free,void,PulseGlue*
|
||||
Function,+,pulse_glue_pop,void,"PulseGlue*, uint32_t*, uint32_t*"
|
||||
Function,+,pulse_glue_push,_Bool,"PulseGlue*, _Bool, uint32_t"
|
||||
Function,+,pulse_glue_reset,void,PulseGlue*
|
||||
Function,-,pulse_reader_alloc,PulseReader*,"const GpioPin*, uint32_t"
|
||||
Function,-,pulse_reader_free,void,PulseReader*
|
||||
Function,-,pulse_reader_receive,uint32_t,"PulseReader*, int"
|
||||
@@ -3125,6 +3146,11 @@ Function,+,slix_is_counter_increment_protected,_Bool,const SlixData*
|
||||
Function,+,slix_is_equal,_Bool,"const SlixData*, const SlixData*"
|
||||
Function,+,slix_is_privacy_mode,_Bool,const SlixData*
|
||||
Function,+,slix_load,_Bool,"SlixData*, FlipperFormat*, uint32_t"
|
||||
Function,+,slix_poller_get_nxp_system_info,SlixError,"SlixPoller*, SlixSystemInfo*"
|
||||
Function,+,slix_poller_get_random_number,SlixError,"SlixPoller*, SlixRandomNumber*"
|
||||
Function,+,slix_poller_read_signature,SlixError,"SlixPoller*, SlixSignature*"
|
||||
Function,+,slix_poller_send_frame,SlixError,"SlixPoller*, const BitBuffer*, BitBuffer*, uint32_t"
|
||||
Function,+,slix_poller_set_password,SlixError,"SlixPoller*, SlixPasswordType, SlixPassword, SlixRandomNumber"
|
||||
Function,+,slix_reset,void,SlixData*
|
||||
Function,+,slix_save,_Bool,"const SlixData*, FlipperFormat*"
|
||||
Function,+,slix_set_uid,_Bool,"SlixData*, const uint8_t*, size_t"
|
||||
@@ -3622,6 +3648,12 @@ Function,+,variable_item_set_current_value_text,void,"VariableItem*, const char*
|
||||
Function,+,variable_item_set_item_label,void,"VariableItem*, const char*"
|
||||
Function,+,variable_item_set_locked,void,"VariableItem*, _Bool, const char*"
|
||||
Function,+,variable_item_set_values_count,void,"VariableItem*, uint8_t"
|
||||
Function,+,varint_int32_length,size_t,int32_t
|
||||
Function,+,varint_int32_pack,size_t,"int32_t, uint8_t*"
|
||||
Function,+,varint_int32_unpack,size_t,"int32_t*, const uint8_t*, size_t"
|
||||
Function,+,varint_uint32_length,size_t,uint32_t
|
||||
Function,+,varint_uint32_pack,size_t,"uint32_t, uint8_t*"
|
||||
Function,+,varint_uint32_unpack,size_t,"uint32_t*, const uint8_t*, size_t"
|
||||
Function,-,vasiprintf,int,"char**, const char*, __gnuc_va_list"
|
||||
Function,-,vasniprintf,char*,"char*, size_t*, const char*, __gnuc_va_list"
|
||||
Function,-,vasnprintf,char*,"char*, size_t*, const char*, __gnuc_va_list"
|
||||
|
||||
|
@@ -133,7 +133,7 @@ void furi_hal_clock_switch_hse2hsi(void) {
|
||||
;
|
||||
|
||||
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSI);
|
||||
furi_assert(LL_RCC_GetSMPSClockSelection() == LL_RCC_SMPS_CLKSOURCE_HSI);
|
||||
furi_check(LL_RCC_GetSMPSClockSelection() == LL_RCC_SMPS_CLKSOURCE_HSI);
|
||||
|
||||
while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSI)
|
||||
;
|
||||
@@ -170,7 +170,7 @@ void furi_hal_clock_switch_hsi2hse(void) {
|
||||
}
|
||||
|
||||
bool furi_hal_clock_switch_hse2pll(void) {
|
||||
furi_assert(LL_RCC_GetSysClkSource() == LL_RCC_SYS_CLKSOURCE_STATUS_HSE);
|
||||
furi_check(LL_RCC_GetSysClkSource() == LL_RCC_SYS_CLKSOURCE_STATUS_HSE);
|
||||
|
||||
LL_RCC_PLL_Enable();
|
||||
LL_RCC_PLLSAI1_Enable();
|
||||
@@ -180,12 +180,13 @@ bool furi_hal_clock_switch_hse2pll(void) {
|
||||
while(!LL_RCC_PLLSAI1_IsReady())
|
||||
;
|
||||
|
||||
if(SHCI_C2_SetSystemClock(SET_SYSTEM_CLOCK_HSE_TO_PLL) != SHCI_Success) {
|
||||
// This API returns garbage if stack version < 1.20.0
|
||||
SHCI_C2_SetSystemClock(SET_SYSTEM_CLOCK_HSE_TO_PLL);
|
||||
// So we'll check results by asking hardware directly
|
||||
if(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
furi_check(LL_RCC_GetSysClkSource() == LL_RCC_SYS_CLKSOURCE_STATUS_PLL);
|
||||
|
||||
LL_SetSystemCoreClock(CPU_CLOCK_PLL_HZ);
|
||||
SysTick->LOAD = (uint32_t)((SystemCoreClock / 1000) - 1UL);
|
||||
|
||||
@@ -193,18 +194,19 @@ bool furi_hal_clock_switch_hse2pll(void) {
|
||||
}
|
||||
|
||||
bool furi_hal_clock_switch_pll2hse(void) {
|
||||
furi_assert(LL_RCC_GetSysClkSource() == LL_RCC_SYS_CLKSOURCE_STATUS_PLL);
|
||||
furi_check(LL_RCC_GetSysClkSource() == LL_RCC_SYS_CLKSOURCE_STATUS_PLL);
|
||||
|
||||
LL_RCC_HSE_Enable();
|
||||
while(!LL_RCC_HSE_IsReady())
|
||||
;
|
||||
|
||||
if(SHCI_C2_SetSystemClock(SET_SYSTEM_CLOCK_PLL_ON_TO_HSE) != SHCI_Success) {
|
||||
// This API returns garbage if stack version < 1.20.0
|
||||
SHCI_C2_SetSystemClock(SET_SYSTEM_CLOCK_PLL_ON_TO_HSE);
|
||||
// So we'll check results by asking hardware directly
|
||||
if(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSE) {
|
||||
return false;
|
||||
}
|
||||
|
||||
furi_check(LL_RCC_GetSysClkSource() == LL_RCC_SYS_CLKSOURCE_STATUS_HSE);
|
||||
|
||||
LL_SetSystemCoreClock(CPU_CLOCK_HSE_HZ);
|
||||
SysTick->LOAD = (uint32_t)((SystemCoreClock / 1000) - 1UL);
|
||||
|
||||
|
||||
@@ -16,6 +16,12 @@
|
||||
|
||||
#define TAG "FuriHalFlash"
|
||||
|
||||
#ifdef FLASH_OP_DEBUG
|
||||
#undef FURI_LOG_T
|
||||
#define FURI_LOG_T(...)
|
||||
#else
|
||||
#endif
|
||||
|
||||
#define FURI_HAL_CRITICAL_MSG "Critical flash operation fail"
|
||||
#define FURI_HAL_FLASH_READ_BLOCK (8U)
|
||||
#define FURI_HAL_FLASH_WRITE_BLOCK (8U)
|
||||
@@ -295,6 +301,7 @@ bool furi_hal_flash_wait_last_operation(uint32_t timeout) {
|
||||
}
|
||||
|
||||
void furi_hal_flash_erase(uint8_t page) {
|
||||
uint32_t op_stat = DWT->CYCCNT;
|
||||
furi_hal_flash_begin(true);
|
||||
|
||||
/* Ensure that controller state is valid */
|
||||
@@ -317,6 +324,12 @@ void furi_hal_flash_erase(uint8_t page) {
|
||||
furi_hal_flush_cache();
|
||||
|
||||
furi_hal_flash_end(true);
|
||||
op_stat = DWT->CYCCNT - op_stat;
|
||||
FURI_LOG_T(
|
||||
TAG,
|
||||
"erase took %lu clocks or %fus",
|
||||
op_stat,
|
||||
(double)((float)op_stat / (float)furi_hal_cortex_instructions_per_microsecond()));
|
||||
}
|
||||
|
||||
static inline void furi_hal_flash_write_dword_internal_nowait(size_t address, uint64_t* data) {
|
||||
@@ -339,6 +352,7 @@ static inline void furi_hal_flash_write_dword_internal(size_t address, uint64_t*
|
||||
}
|
||||
|
||||
void furi_hal_flash_write_dword(size_t address, uint64_t data) {
|
||||
uint32_t op_stat = DWT->CYCCNT;
|
||||
furi_hal_flash_begin(false);
|
||||
|
||||
/* Ensure that controller state is valid */
|
||||
@@ -361,6 +375,12 @@ void furi_hal_flash_write_dword(size_t address, uint64_t data) {
|
||||
|
||||
/* Wait for last operation to be completed */
|
||||
furi_check(furi_hal_flash_wait_last_operation(FURI_HAL_FLASH_TIMEOUT));
|
||||
op_stat = DWT->CYCCNT - op_stat;
|
||||
FURI_LOG_T(
|
||||
TAG,
|
||||
"write_dword took %lu clocks or %fus",
|
||||
op_stat,
|
||||
(double)((float)op_stat / (float)furi_hal_cortex_instructions_per_microsecond()));
|
||||
}
|
||||
|
||||
static size_t furi_hal_flash_get_page_address(uint8_t page) {
|
||||
@@ -373,6 +393,7 @@ void furi_hal_flash_program_page(const uint8_t page, const uint8_t* data, uint16
|
||||
|
||||
furi_hal_flash_erase(page);
|
||||
|
||||
uint32_t op_stat = DWT->CYCCNT;
|
||||
furi_hal_flash_begin(false);
|
||||
|
||||
furi_check(furi_hal_flash_wait_last_operation(FURI_HAL_FLASH_TIMEOUT));
|
||||
@@ -432,6 +453,12 @@ void furi_hal_flash_program_page(const uint8_t page, const uint8_t* data, uint16
|
||||
CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
|
||||
|
||||
furi_hal_flash_end(false);
|
||||
op_stat = DWT->CYCCNT - op_stat;
|
||||
FURI_LOG_T(
|
||||
TAG,
|
||||
"program_page took %lu clocks or %fus",
|
||||
op_stat,
|
||||
(double)((float)op_stat / (float)furi_hal_cortex_instructions_per_microsecond()));
|
||||
}
|
||||
|
||||
int16_t furi_hal_flash_get_page_number(size_t address) {
|
||||
|
||||
@@ -47,7 +47,6 @@
|
||||
"mbedtls",
|
||||
"lfrfid",
|
||||
"flipper_application",
|
||||
"toolbox",
|
||||
"u8g2",
|
||||
"nanopb",
|
||||
"update_util",
|
||||
@@ -56,6 +55,7 @@
|
||||
"flipperformat",
|
||||
"flipper7",
|
||||
"bit_lib",
|
||||
"toolbox",
|
||||
"datetime"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user