Merge branch 'fz-dev' into dev

This commit is contained in:
MX
2022-12-26 22:42:21 +03:00
203 changed files with 751 additions and 832 deletions

View File

@@ -149,7 +149,7 @@ static UpdateManifest* flipper_update_process_manifest(const FuriString* manifes
do {
uint16_t size_read = 0;
if(f_read(&file, manifest_data + bytes_read, MAX_READ, &size_read) != FR_OK) {
if(f_read(&file, manifest_data + bytes_read, MAX_READ, &size_read) != FR_OK) { //-V769
break;
}
bytes_read += size_read;

View File

@@ -456,17 +456,15 @@ BleGlueCommandResult ble_glue_fus_get_status() {
BleGlueCommandResult ble_glue_fus_wait_operation() {
furi_check(ble_glue->c2_info.mode == BleGlueC2ModeFUS);
bool wip;
do {
BleGlueCommandResult fus_status = ble_glue_fus_get_status();
if(fus_status == BleGlueCommandResultError) {
return BleGlueCommandResultError;
}
wip = fus_status == BleGlueCommandResultOperationOngoing;
if(wip) {
furi_delay_ms(20);
}
} while(wip);
return BleGlueCommandResultOK;
while(true) {
BleGlueCommandResult fus_status = ble_glue_fus_get_status();
if(fus_status == BleGlueCommandResultOperationOngoing) {
furi_delay_ms(20);
} else if(fus_status == BleGlueCommandResultError) {
return BleGlueCommandResultError;
} else {
return BleGlueCommandResultOK;
}
}
}

View File

@@ -227,7 +227,7 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification(void* pckt) {
case EVT_BLUE_GAP_NUMERIC_COMPARISON_VALUE: {
uint32_t pin =
((aci_gap_numeric_comparison_value_event_rp0*)(blue_evt->data))->Numeric_Value;
FURI_LOG_I(TAG, "Verify numeric comparison: %06ld", pin);
FURI_LOG_I(TAG, "Verify numeric comparison: %06lu", pin);
GapEvent event = {.type = GapEventTypePinCodeVerify, .data.pin_code = pin};
bool result = gap->on_event_cb(event, gap->context);
aci_gap_numeric_comparison_value_confirm_yesno(gap->service.connection_handle, result);
@@ -245,7 +245,7 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification(void* pckt) {
} else {
FURI_LOG_I(TAG, "Pairing complete");
GapEvent event = {.type = GapEventTypeConnected};
gap->on_event_cb(event, gap->context);
gap->on_event_cb(event, gap->context); //-V595
}
break;

View File

@@ -87,7 +87,7 @@ void hid_svc_start() {
#if(HID_SVC_REPORT_COUNT != 0)
for(uint8_t i = 0; i < HID_SVC_REPORT_COUNT; i++) {
if(i < HID_SVC_INPUT_REPORT_COUNT) {
if(i < HID_SVC_INPUT_REPORT_COUNT) { //-V547
uint8_t buf[2] = {i + 1, 1}; // 1 input
char_uuid.Char_UUID_16 = REPORT_CHAR_UUID;
status = aci_gatt_add_char(

View File

@@ -24,9 +24,9 @@
/* Global variables ---------------------------------------------------------*/
/* Private defines -----------------------------------------------------------*/
#define HW_IPCC_TX_PENDING(channel) \
(!(LL_C1_IPCC_IsActiveFlag_CHx(IPCC, channel))) && (((~(IPCC->C1MR)) & (channel << 16U)))
(!(LL_C1_IPCC_IsActiveFlag_CHx(IPCC, channel))) && (((~(IPCC->C1MR)) & ((channel) << 16U)))
#define HW_IPCC_RX_PENDING(channel) \
(LL_C2_IPCC_IsActiveFlag_CHx(IPCC, channel)) && (((~(IPCC->C1MR)) & (channel << 0U)))
(LL_C2_IPCC_IsActiveFlag_CHx(IPCC, channel)) && (((~(IPCC->C1MR)) & ((channel) << 0U)))
/* Private macros ------------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/

View File

@@ -405,9 +405,9 @@ uint8_t BSP_SD_GetCardInfo(SD_CardInfo* pCardInfo) {
pCardInfo->LogBlockNbr = (pCardInfo->CardCapacity) / (pCardInfo->LogBlockSize);
} else {
pCardInfo->CardCapacity = (pCardInfo->Csd.version.v1.DeviceSize + 1);
pCardInfo->CardCapacity *= (1 << (pCardInfo->Csd.version.v1.DeviceSizeMul + 2));
pCardInfo->CardCapacity *= (1UL << (pCardInfo->Csd.version.v1.DeviceSizeMul + 2));
pCardInfo->LogBlockSize = 512;
pCardInfo->CardBlockSize = 1 << (pCardInfo->Csd.RdBlockLen);
pCardInfo->CardBlockSize = 1UL << (pCardInfo->Csd.RdBlockLen);
pCardInfo->CardCapacity *= pCardInfo->CardBlockSize;
pCardInfo->LogBlockNbr = (pCardInfo->CardCapacity) / (pCardInfo->LogBlockSize);
}
@@ -982,7 +982,8 @@ uint8_t SD_GoIdleState(void) {
SD_IO_WriteByte(SD_DUMMY_BYTE);
/* Send ACMD41 (SD_CMD_SD_APP_OP_COND) to initialize SDHC or SDXC cards: R1 response (0x00: no errors) */
response = SD_SendCmd(SD_CMD_SD_APP_OP_COND, 0x00000000, 0xFF, SD_ANSWER_R1_EXPECTED);
response = //-V519
SD_SendCmd(SD_CMD_SD_APP_OP_COND, 0x00000000, 0xFF, SD_ANSWER_R1_EXPECTED);
SD_IO_CSState(1);
SD_IO_WriteByte(SD_DUMMY_BYTE);
if(counter >= SD_MAX_TRY) {
@@ -1001,7 +1002,8 @@ uint8_t SD_GoIdleState(void) {
SD_IO_WriteByte(SD_DUMMY_BYTE);
/* Send ACMD41 (SD_CMD_SD_APP_OP_COND) to initialize SDHC or SDXC cards: R1 response (0x00: no errors) */
response = SD_SendCmd(SD_CMD_SD_APP_OP_COND, 0x40000000, 0xFF, SD_ANSWER_R1_EXPECTED);
response = //-V519
SD_SendCmd(SD_CMD_SD_APP_OP_COND, 0x40000000, 0xFF, SD_ANSWER_R1_EXPECTED);
SD_IO_CSState(1);
SD_IO_WriteByte(SD_DUMMY_BYTE);
if(counter >= SD_MAX_TRY) {

View File

@@ -415,7 +415,7 @@ float furi_hal_bt_get_rssi() {
val += 6.0;
rssi >>= 1;
}
val += (417 * rssi + 18080) >> 10;
val += (float)((417 * rssi + 18080) >> 10);
}
return val;
}

View File

@@ -216,7 +216,7 @@ bool furi_hal_bt_hid_kb_release_all() {
bool furi_hal_bt_hid_consumer_key_press(uint16_t button) {
furi_assert(consumer_report);
for(uint8_t i = 0; i < FURI_HAL_BT_HID_CONSUMER_MAX_KEYS; i++) {
for(uint8_t i = 0; i < FURI_HAL_BT_HID_CONSUMER_MAX_KEYS; i++) { //-V1008
if(consumer_report->key[i] == 0) {
consumer_report->key[i] = button;
break;
@@ -228,7 +228,7 @@ bool furi_hal_bt_hid_consumer_key_press(uint16_t button) {
bool furi_hal_bt_hid_consumer_key_release(uint16_t button) {
furi_assert(consumer_report);
for(uint8_t i = 0; i < FURI_HAL_BT_HID_CONSUMER_MAX_KEYS; i++) {
for(uint8_t i = 0; i < FURI_HAL_BT_HID_CONSUMER_MAX_KEYS; i++) { //-V1008
if(consumer_report->key[i] == button) {
consumer_report->key[i] = 0;
break;
@@ -240,7 +240,7 @@ bool furi_hal_bt_hid_consumer_key_release(uint16_t button) {
bool furi_hal_bt_hid_consumer_key_release_all() {
furi_assert(consumer_report);
for(uint8_t i = 0; i < FURI_HAL_BT_HID_CONSUMER_MAX_KEYS; i++) {
for(uint8_t i = 0; i < FURI_HAL_BT_HID_CONSUMER_MAX_KEYS; i++) { //-V1008
consumer_report->key[i] = 0;
}
return hid_svc_update_input_report(

View File

@@ -108,7 +108,7 @@ void furi_hal_i2c_bus_handle_power_event(
GpioSpeedLow,
GpioAltFn4I2C1);
LL_I2C_InitTypeDef I2C_InitStruct = {0};
LL_I2C_InitTypeDef I2C_InitStruct;
I2C_InitStruct.PeripheralMode = LL_I2C_MODE_I2C;
I2C_InitStruct.AnalogFilter = LL_I2C_ANALOGFILTER_ENABLE;
I2C_InitStruct.DigitalFilter = 0;
@@ -152,7 +152,7 @@ void furi_hal_i2c_bus_handle_external_event(
furi_hal_gpio_init_ex(
&gpio_ext_pc1, GpioModeAltFunctionOpenDrain, GpioPullNo, GpioSpeedLow, GpioAltFn4I2C3);
LL_I2C_InitTypeDef I2C_InitStruct = {0};
LL_I2C_InitTypeDef I2C_InitStruct;
I2C_InitStruct.PeripheralMode = LL_I2C_MODE_I2C;
I2C_InitStruct.AnalogFilter = LL_I2C_ANALOGFILTER_ENABLE;
I2C_InitStruct.DigitalFilter = 0;

View File

@@ -55,9 +55,9 @@ void furi_hal_memory_init() {
memory->region[SRAM_B].size = sram2b_unprotected_size;
FURI_LOG_I(
TAG, "SRAM2A: 0x%p, %ld", memory->region[SRAM_A].start, memory->region[SRAM_A].size);
TAG, "SRAM2A: 0x%p, %lu", memory->region[SRAM_A].start, memory->region[SRAM_A].size);
FURI_LOG_I(
TAG, "SRAM2B: 0x%p, %ld", memory->region[SRAM_B].start, memory->region[SRAM_B].size);
TAG, "SRAM2B: 0x%p, %lu", memory->region[SRAM_B].start, memory->region[SRAM_B].size);
if((memory->region[SRAM_A].size > 0) || (memory->region[SRAM_B].size > 0)) {
if((memory->region[SRAM_A].size > 0)) {
@@ -120,4 +120,4 @@ size_t furi_hal_memory_max_pool_block() {
}
}
return max;
}
}

View File

@@ -425,7 +425,7 @@ bool furi_hal_nfc_emulate_nfca(
buff_rx_len = 0;
buff_tx_len = 0;
uint32_t flag = furi_event_flag_wait(event, EVENT_FLAG_ALL, FuriFlagWaitAny, timeout);
if(flag == FuriFlagErrorTimeout || flag == EVENT_FLAG_STOP) {
if(flag == (unsigned)FuriFlagErrorTimeout || flag == EVENT_FLAG_STOP) {
break;
}
bool data_received = false;
@@ -609,9 +609,9 @@ static uint16_t furi_hal_nfc_data_and_parity_to_bitstream(
out[curr_bit_pos / 8] = next_par_bit;
curr_bit_pos++;
} else {
out[curr_bit_pos / 8] |= data[i] << curr_bit_pos % 8;
out[curr_bit_pos / 8] |= data[i] << (curr_bit_pos % 8);
out[curr_bit_pos / 8 + 1] = data[i] >> (8 - curr_bit_pos % 8);
out[curr_bit_pos / 8 + 1] |= next_par_bit << curr_bit_pos % 8;
out[curr_bit_pos / 8 + 1] |= next_par_bit << (curr_bit_pos % 8);
curr_bit_pos += 9;
}
}
@@ -635,7 +635,7 @@ uint16_t furi_hal_nfc_bitstream_to_data_and_parity(
uint16_t bit_processed = 0;
memset(out_parity, 0, in_buff_bits / 9);
while(bit_processed < in_buff_bits) {
out_data[curr_byte] = in_buff[bit_processed / 8] >> bit_processed % 8;
out_data[curr_byte] = in_buff[bit_processed / 8] >> (bit_processed % 8);
out_data[curr_byte] |= in_buff[bit_processed / 8 + 1] << (8 - bit_processed % 8);
out_parity[curr_byte / 8] |= FURI_BIT(in_buff[bit_processed / 8 + 1], bit_processed % 8)
<< (7 - curr_byte % 8);
@@ -802,4 +802,4 @@ FuriHalNfcReturn furi_hal_nfc_ll_txrx_bits(
void furi_hal_nfc_ll_poll() {
rfalWorker();
}
}

View File

@@ -15,8 +15,8 @@
#define FURI_HAL_IDLE_TIMER_CLK_HZ 32768
#define FURI_HAL_OS_TICK_HZ configTICK_RATE_HZ
#define FURI_HAL_OS_IDLE_CNT_TO_TICKS(x) ((x * FURI_HAL_OS_TICK_HZ) / FURI_HAL_IDLE_TIMER_CLK_HZ)
#define FURI_HAL_OS_TICKS_TO_IDLE_CNT(x) ((x * FURI_HAL_IDLE_TIMER_CLK_HZ) / FURI_HAL_OS_TICK_HZ)
#define FURI_HAL_OS_IDLE_CNT_TO_TICKS(x) (((x)*FURI_HAL_OS_TICK_HZ) / FURI_HAL_IDLE_TIMER_CLK_HZ)
#define FURI_HAL_OS_TICKS_TO_IDLE_CNT(x) (((x)*FURI_HAL_IDLE_TIMER_CLK_HZ) / FURI_HAL_OS_TICK_HZ)
#define FURI_HAL_IDLE_TIMER_TICK_PER_EPOCH (FURI_HAL_OS_IDLE_CNT_TO_TICKS(FURI_HAL_IDLE_TIMER_MAX))
#define FURI_HAL_OS_MAX_SLEEP (FURI_HAL_IDLE_TIMER_TICK_PER_EPOCH - 1)

View File

@@ -110,7 +110,7 @@ void furi_hal_pwm_set_params(FuriHalPwmOutputId channel, uint32_t freq, uint8_t
bool clock_lse = false;
do {
period = freq_div / (1 << prescaler);
period = freq_div / (1UL << prescaler);
if(period <= 0xFFFF) {
break;
}

View File

@@ -154,7 +154,7 @@ void furi_hal_rtc_deinit_early() {
}
void furi_hal_rtc_init() {
LL_RTC_InitTypeDef RTC_InitStruct = {0};
LL_RTC_InitTypeDef RTC_InitStruct;
RTC_InitStruct.HourFormat = LL_RTC_HOURFORMAT_24HOUR;
RTC_InitStruct.AsynchPrescaler = 127;
RTC_InitStruct.SynchPrescaler = 255;

View File

@@ -26,7 +26,7 @@ static void furi_hal_usart_init(uint32_t baud) {
GpioSpeedVeryHigh,
GpioAltFn7USART1);
LL_USART_InitTypeDef USART_InitStruct = {0};
LL_USART_InitTypeDef USART_InitStruct;
USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1;
USART_InitStruct.BaudRate = baud;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
@@ -62,7 +62,7 @@ static void furi_hal_lpuart_init(uint32_t baud) {
GpioSpeedVeryHigh,
GpioAltFn8LPUART1);
LL_LPUART_InitTypeDef LPUART_InitStruct = {0};
LL_LPUART_InitTypeDef LPUART_InitStruct;
LPUART_InitStruct.PrescalerValue = LL_LPUART_PRESCALER_DIV1;
LPUART_InitStruct.BaudRate = 115200;
LPUART_InitStruct.DataWidth = LL_LPUART_DATAWIDTH_8B;

View File

@@ -360,11 +360,11 @@ bool furi_hal_hid_consumer_key_release(uint16_t button) {
static void* hid_set_string_descr(char* str) {
furi_assert(str);
uint8_t len = strlen(str);
size_t len = strlen(str);
struct usb_string_descriptor* dev_str_desc = malloc(len * 2 + 2);
dev_str_desc->bLength = len * 2 + 2;
dev_str_desc->bDescriptorType = USB_DTYPE_STRING;
for(uint8_t i = 0; i < len; i++) dev_str_desc->wString[i] = str[i];
for(size_t i = 0; i < len; i++) dev_str_desc->wString[i] = str[i];
return dev_str_desc;
}

View File

@@ -190,8 +190,6 @@ static void furi_hal_version_load_otp_v2() {
void furi_hal_version_init() {
switch(furi_hal_version_get_otp_version()) {
case FuriHalVersionOtpVersionUnknown:
furi_hal_version_load_otp_default();
break;
case FuriHalVersionOtpVersionEmpty:
furi_hal_version_load_otp_default();
break;