Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/targets/f6/ble_glue/ble_glue.c4
-rw-r--r--firmware/targets/f6/furi_hal/furi_hal_power.c2
-rw-r--r--firmware/targets/f7/ble_glue/ble_glue.c4
-rw-r--r--firmware/targets/f7/furi_hal/furi_hal_power.c2
4 files changed, 10 insertions, 2 deletions
diff --git a/firmware/targets/f6/ble_glue/ble_glue.c b/firmware/targets/f6/ble_glue/ble_glue.c
index c38c0731..6e55b368 100644
--- a/firmware/targets/f6/ble_glue/ble_glue.c
+++ b/firmware/targets/f6/ble_glue/ble_glue.c
@@ -116,6 +116,7 @@ void ble_glue_init() {
bool ble_glue_wait_for_fus_start(WirelessFwInfo_t* info) {
bool ret = false;
+
size_t countdown = 1000;
while(countdown > 0) {
if(ble_glue->status == BleGlueStatusFusStarted) {
@@ -125,13 +126,14 @@ bool ble_glue_wait_for_fus_start(WirelessFwInfo_t* info) {
countdown--;
osDelay(1);
}
+
if(ble_glue->status == BleGlueStatusFusStarted) {
SHCI_GetWirelessFwInfo(info);
} else {
FURI_LOG_E(TAG, "Failed to start FUS");
ble_glue->status = BleGlueStatusBroken;
}
- furi_hal_power_insomnia_exit();
+
return ret;
}
diff --git a/firmware/targets/f6/furi_hal/furi_hal_power.c b/firmware/targets/f6/furi_hal/furi_hal_power.c
index 1dbdb3dd..a211b8c5 100644
--- a/firmware/targets/f6/furi_hal/furi_hal_power.c
+++ b/firmware/targets/f6/furi_hal/furi_hal_power.c
@@ -90,12 +90,14 @@ uint16_t furi_hal_power_insomnia_level() {
void furi_hal_power_insomnia_enter() {
vTaskSuspendAll();
+ furi_assert(furi_hal_power.insomnia < UINT8_MAX);
furi_hal_power.insomnia++;
xTaskResumeAll();
}
void furi_hal_power_insomnia_exit() {
vTaskSuspendAll();
+ furi_assert(furi_hal_power.insomnia > 0);
furi_hal_power.insomnia--;
xTaskResumeAll();
}
diff --git a/firmware/targets/f7/ble_glue/ble_glue.c b/firmware/targets/f7/ble_glue/ble_glue.c
index c38c0731..6e55b368 100644
--- a/firmware/targets/f7/ble_glue/ble_glue.c
+++ b/firmware/targets/f7/ble_glue/ble_glue.c
@@ -116,6 +116,7 @@ void ble_glue_init() {
bool ble_glue_wait_for_fus_start(WirelessFwInfo_t* info) {
bool ret = false;
+
size_t countdown = 1000;
while(countdown > 0) {
if(ble_glue->status == BleGlueStatusFusStarted) {
@@ -125,13 +126,14 @@ bool ble_glue_wait_for_fus_start(WirelessFwInfo_t* info) {
countdown--;
osDelay(1);
}
+
if(ble_glue->status == BleGlueStatusFusStarted) {
SHCI_GetWirelessFwInfo(info);
} else {
FURI_LOG_E(TAG, "Failed to start FUS");
ble_glue->status = BleGlueStatusBroken;
}
- furi_hal_power_insomnia_exit();
+
return ret;
}
diff --git a/firmware/targets/f7/furi_hal/furi_hal_power.c b/firmware/targets/f7/furi_hal/furi_hal_power.c
index 1dbdb3dd..a211b8c5 100644
--- a/firmware/targets/f7/furi_hal/furi_hal_power.c
+++ b/firmware/targets/f7/furi_hal/furi_hal_power.c
@@ -90,12 +90,14 @@ uint16_t furi_hal_power_insomnia_level() {
void furi_hal_power_insomnia_enter() {
vTaskSuspendAll();
+ furi_assert(furi_hal_power.insomnia < UINT8_MAX);
furi_hal_power.insomnia++;
xTaskResumeAll();
}
void furi_hal_power_insomnia_exit() {
vTaskSuspendAll();
+ furi_assert(furi_hal_power.insomnia > 0);
furi_hal_power.insomnia--;
xTaskResumeAll();
}