mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
refactor(ble_log): move runtime dispatch to esp_timer
Replace the dedicated BLE Log FreeRTOS task with a deferred esp_timer batch dispatch. The first submission anchors a one-shot 1 ms deadline; the callback drains the queue depth captured at entry and schedules the next fixed defer only for arrivals left behind. Later submissions cannot move the current deadline, and no fixed batch-size cap limits throughput. Protect queue and timer lifetime with runtime references. Drain queued submissions before ble_log_lbm_flush_all_trans waits for transport ownership to return, so synchronous flush does not depend on the deferred alarm firing. Keep the defer alarm as a light-sleep wake source and select ESP_TIMER_IN_IRAM. Timestamp synchronization uses the shared ESP timer task with skipped unhandled events, so it neither wakes light sleep nor replays missed periods. Retain legacy task and trigger symbols as hidden no-op sdkconfig compatibility options.
This commit is contained in:
@@ -59,6 +59,7 @@ typedef enum {
|
||||
bool ble_log_init(void);
|
||||
void ble_log_deinit(void);
|
||||
bool ble_log_enable(bool enable);
|
||||
/* Blocking; call only from a caller-owned task, not an ISR or system callback. */
|
||||
void ble_log_flush(void);
|
||||
bool ble_log_write_hex(ble_log_src_t src_code, const uint8_t *addr, size_t len);
|
||||
void ble_log_dump_to_console(void);
|
||||
|
||||
Reference in New Issue
Block a user