[FL-1816] Fix ble radio stack is alive check (#707)
* bt: fix bt_is_alive return, add bt_is_active * bt: fix bt_is_alive return * Cli: show heap usage in ps. * FuriHal: strict sequence for flash operations * Scripts: add stress test * Core: proper heap calculation. Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
@@ -67,17 +67,17 @@ int32_t bt_srv() {
|
||||
}
|
||||
}
|
||||
// Update statusbar
|
||||
view_port_enabled_set(bt->statusbar_view_port, furi_hal_bt_is_alive());
|
||||
view_port_enabled_set(bt->statusbar_view_port, furi_hal_bt_is_active());
|
||||
|
||||
BtMessage message;
|
||||
while(1) {
|
||||
furi_check(osMessageQueueGet(bt->message_queue, &message, NULL, osWaitForever) == osOK);
|
||||
if(message.type == BtMessageTypeUpdateStatusbar) {
|
||||
// Update statusbar
|
||||
view_port_enabled_set(bt->statusbar_view_port, furi_hal_bt_is_alive());
|
||||
view_port_enabled_set(bt->statusbar_view_port, furi_hal_bt_is_active());
|
||||
} else if(message.type == BtMessageTypeUpdateBatteryLevel) {
|
||||
// Update battery level
|
||||
if(furi_hal_bt_is_alive()) {
|
||||
if(furi_hal_bt_is_active()) {
|
||||
battery_svc_update_level(message.data.battery_level);
|
||||
}
|
||||
} else if(message.type == BtMessageTypePinCodeShow) {
|
||||
|
@@ -385,17 +385,19 @@ void cli_command_ps(Cli* cli, string_t args, void* context) {
|
||||
const uint8_t threads_num_max = 32;
|
||||
osThreadId_t threads_id[threads_num_max];
|
||||
uint8_t thread_num = osThreadEnumerate(threads_id, threads_num_max);
|
||||
printf("%d threads in total:\r\n", thread_num);
|
||||
printf("%-20s %-14s %-14s %s\r\n", "Name", "Stack start", "Stack alloc", "Stack watermark");
|
||||
printf(
|
||||
"%-20s %-14s %-8s %-8s %s\r\n", "Name", "Stack start", "Heap", "Stack", "Stack min free");
|
||||
for(uint8_t i = 0; i < thread_num; i++) {
|
||||
TaskControlBlock* tcb = (TaskControlBlock*)threads_id[i];
|
||||
printf(
|
||||
"%-20s 0x%-12lx %-14ld %ld\r\n",
|
||||
"%-20s 0x%-12lx %-8d %-8ld %-8ld\r\n",
|
||||
osThreadGetName(threads_id[i]),
|
||||
(uint32_t)tcb->pxStack,
|
||||
(uint32_t)(tcb->pxEndOfStack - tcb->pxStack + 1) * sizeof(uint32_t),
|
||||
osThreadGetStackSpace(threads_id[i]) * sizeof(uint32_t));
|
||||
memmgr_heap_get_thread_memory(threads_id[i]),
|
||||
(uint32_t)(tcb->pxEndOfStack - tcb->pxStack + 1) * sizeof(StackType_t),
|
||||
osThreadGetStackSpace(threads_id[i]));
|
||||
}
|
||||
printf("\r\nTotal: %d", thread_num);
|
||||
}
|
||||
|
||||
void cli_command_free(Cli* cli, string_t args, void* context) {
|
||||
|
Reference in New Issue
Block a user