mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 10:47:19 +02:00
feat(ble): refactored flush module and provided public flush api
(cherry picked from commit 70792443c7
)
Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
This commit is contained in:
@ -93,8 +93,8 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
LL_EV_ISR_APPEND = 0,
|
LL_EV_FLAG_ISR_APPEND = 0,
|
||||||
LL_EV_FLUSH_LOG,
|
LL_EV_FLAG_FLUSH_LOG,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Private variables
|
// Private variables
|
||||||
@ -106,9 +106,6 @@ static uint32_t last_tx_done_ts = 0;
|
|||||||
static bool ul_log_inited = false;
|
static bool ul_log_inited = false;
|
||||||
static SemaphoreHandle_t ul_log_mutex = NULL;
|
static SemaphoreHandle_t ul_log_mutex = NULL;
|
||||||
static spi_out_log_cb_t *ul_log_cb = NULL;
|
static spi_out_log_cb_t *ul_log_cb = NULL;
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
static esp_timer_handle_t ul_log_flushout_timer = NULL;
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
|
|
||||||
#if SPI_OUT_LL_ENABLED
|
#if SPI_OUT_LL_ENABLED
|
||||||
static bool ll_log_inited = false;
|
static bool ll_log_inited = false;
|
||||||
@ -117,9 +114,6 @@ static spi_out_log_cb_t *ll_isr_log_cb = NULL;
|
|||||||
static spi_out_log_cb_t *ll_hci_log_cb = NULL;
|
static spi_out_log_cb_t *ll_hci_log_cb = NULL;
|
||||||
static uint32_t ll_ev_flags = 0;
|
static uint32_t ll_ev_flags = 0;
|
||||||
static esp_bt_controller_status_t ll_status = ESP_BT_CONTROLLER_STATUS_IDLE;
|
static esp_bt_controller_status_t ll_status = ESP_BT_CONTROLLER_STATUS_IDLE;
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
static esp_timer_handle_t ll_log_flushout_timer = NULL;
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
#endif // SPI_OUT_LL_ENABLED
|
#endif // SPI_OUT_LL_ENABLED
|
||||||
|
|
||||||
#if SPI_OUT_TS_SYNC_ENABLED
|
#if SPI_OUT_TS_SYNC_ENABLED
|
||||||
@ -128,6 +122,10 @@ static bool sync_io_level = false;
|
|||||||
static esp_timer_handle_t ts_sync_timer = NULL;
|
static esp_timer_handle_t ts_sync_timer = NULL;
|
||||||
#endif // SPI_OUT_TS_SYNC_ENABLED
|
#endif // SPI_OUT_TS_SYNC_ENABLED
|
||||||
|
|
||||||
|
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
static esp_timer_handle_t flush_timer = NULL;
|
||||||
|
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
|
||||||
// Extern function declarations
|
// Extern function declarations
|
||||||
extern void esp_panic_handler_feed_wdts(void);
|
extern void esp_panic_handler_feed_wdts(void);
|
||||||
|
|
||||||
@ -146,21 +144,16 @@ static bool spi_out_log_cb_write(spi_out_log_cb_t *log_cb, const uint8_t *addr,
|
|||||||
const uint8_t *addr_append, uint16_t len_append, uint8_t source);
|
const uint8_t *addr_append, uint16_t len_append, uint8_t source);
|
||||||
static void spi_out_log_cb_write_packet_loss(spi_out_log_cb_t *log_cb, uint8_t flag);
|
static void spi_out_log_cb_write_packet_loss(spi_out_log_cb_t *log_cb, uint8_t flag);
|
||||||
static void spi_out_log_cb_dump(spi_out_log_cb_t *log_cb);
|
static void spi_out_log_cb_dump(spi_out_log_cb_t *log_cb);
|
||||||
|
static void spi_out_log_flush(void);
|
||||||
|
|
||||||
static int spi_out_ul_log_init(void);
|
static int spi_out_ul_log_init(void);
|
||||||
static void spi_out_ul_log_deinit(void);
|
static void spi_out_ul_log_deinit(void);
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
static void esp_timer_cb_ul_log_flushout(void);
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
|
|
||||||
#if SPI_OUT_LL_ENABLED
|
#if SPI_OUT_LL_ENABLED
|
||||||
static int spi_out_ll_log_init(void);
|
static int spi_out_ll_log_init(void);
|
||||||
static void spi_out_ll_log_deinit(void);
|
static void spi_out_ll_log_deinit(void);
|
||||||
static void spi_out_ll_log_flush(void);
|
static void spi_out_ll_log_flush(void);
|
||||||
static inline void spi_out_ll_log_put_ev(void);
|
static inline void spi_out_ll_log_put_ev(void);
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
static void esp_timer_cb_ll_log_flushout(void);
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
#endif // SPI_OUT_LL_ENABLED
|
#endif // SPI_OUT_LL_ENABLED
|
||||||
|
|
||||||
#if SPI_OUT_TS_SYNC_ENABLED
|
#if SPI_OUT_TS_SYNC_ENABLED
|
||||||
@ -342,9 +335,12 @@ IRAM_ATTR static inline void spi_out_log_cb_append_trans(spi_out_log_cb_t *log_c
|
|||||||
|
|
||||||
IRAM_ATTR static inline void spi_out_log_cb_flush_trans(spi_out_log_cb_t *log_cb)
|
IRAM_ATTR static inline void spi_out_log_cb_flush_trans(spi_out_log_cb_t *log_cb)
|
||||||
{
|
{
|
||||||
spi_out_trans_cb_t *trans_cb = log_cb->trans_cb[log_cb->trans_cb_idx];
|
spi_out_trans_cb_t *trans_cb;
|
||||||
if (trans_cb->length && (trans_cb->flag == TRANS_CB_FLAG_AVAILABLE)) {
|
for (uint8_t i = 0; i < 2; i++) {
|
||||||
trans_cb->flag = TRANS_CB_FLAG_NEED_QUEUE;
|
trans_cb = log_cb->trans_cb[i];
|
||||||
|
if (trans_cb->length && (trans_cb->flag == TRANS_CB_FLAG_AVAILABLE)) {
|
||||||
|
trans_cb->flag = TRANS_CB_FLAG_NEED_QUEUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,6 +415,30 @@ static void spi_out_log_cb_dump(spi_out_log_cb_t *log_cb)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void spi_out_log_flush(void)
|
||||||
|
{
|
||||||
|
// Flush ul log
|
||||||
|
xSemaphoreTake(ul_log_mutex, portMAX_DELAY);
|
||||||
|
spi_out_log_cb_flush_trans(ul_log_cb);
|
||||||
|
spi_out_log_cb_append_trans(ul_log_cb);
|
||||||
|
xSemaphoreGive(ul_log_mutex);
|
||||||
|
|
||||||
|
#if SPI_OUT_LL_ENABLED
|
||||||
|
// LL log flush shall be run in LL task context
|
||||||
|
ll_ev_flags |= BIT(LL_EV_FLAG_FLUSH_LOG);
|
||||||
|
spi_out_ll_log_put_ev();
|
||||||
|
#endif // SPI_OUT_LL_ENABLED
|
||||||
|
}
|
||||||
|
|
||||||
|
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
// Context: ESP timer
|
||||||
|
static void esp_timer_cb_log_flush(void)
|
||||||
|
{
|
||||||
|
spi_out_log_flush();
|
||||||
|
esp_timer_start_once(flush_timer, SPI_OUT_FLUSH_TIMEOUT_US);
|
||||||
|
}
|
||||||
|
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
|
||||||
static int spi_out_ul_log_init(void)
|
static int spi_out_ul_log_init(void)
|
||||||
{
|
{
|
||||||
if (ul_log_inited) {
|
if (ul_log_inited) {
|
||||||
@ -432,18 +452,6 @@ static int spi_out_ul_log_init(void)
|
|||||||
goto mutex_init_failed;
|
goto mutex_init_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
// Initialize flushout timer
|
|
||||||
esp_timer_create_args_t timer_args = {
|
|
||||||
.callback = (esp_timer_cb_t)esp_timer_cb_ul_log_flushout,
|
|
||||||
.dispatch_method = ESP_TIMER_TASK
|
|
||||||
};
|
|
||||||
if (esp_timer_create(&timer_args, &ul_log_flushout_timer) != ESP_OK) {
|
|
||||||
ESP_LOGE(BLE_LOG_TAG, "Failed to initialize flushout timer upper layer task log!");
|
|
||||||
goto timer_init_failed;
|
|
||||||
}
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
|
|
||||||
// Initialize log control block
|
// Initialize log control block
|
||||||
if (spi_out_log_cb_init(&ul_log_cb, SPI_OUT_UL_TASK_BUF_SIZE) != 0) {
|
if (spi_out_log_cb_init(&ul_log_cb, SPI_OUT_UL_TASK_BUF_SIZE) != 0) {
|
||||||
ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for upper layer task log!");
|
ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for upper layer task log!");
|
||||||
@ -456,10 +464,6 @@ static int spi_out_ul_log_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
log_cb_init_failed:
|
log_cb_init_failed:
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
esp_timer_delete(ul_log_flushout_timer);
|
|
||||||
timer_init_failed:
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
vSemaphoreDelete(ul_log_mutex);
|
vSemaphoreDelete(ul_log_mutex);
|
||||||
mutex_init_failed:
|
mutex_init_failed:
|
||||||
return -1;
|
return -1;
|
||||||
@ -471,11 +475,6 @@ static void spi_out_ul_log_deinit(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
esp_timer_stop(ul_log_flushout_timer);
|
|
||||||
esp_timer_delete(ul_log_flushout_timer);
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
|
|
||||||
xSemaphoreTake(ul_log_mutex, portMAX_DELAY);
|
xSemaphoreTake(ul_log_mutex, portMAX_DELAY);
|
||||||
spi_out_log_cb_deinit(&ul_log_cb);
|
spi_out_log_cb_deinit(&ul_log_cb);
|
||||||
xSemaphoreGive(ul_log_mutex);
|
xSemaphoreGive(ul_log_mutex);
|
||||||
@ -488,18 +487,6 @@ static void spi_out_ul_log_deinit(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
IRAM_ATTR static void esp_timer_cb_ul_log_flushout(void)
|
|
||||||
{
|
|
||||||
xSemaphoreTake(ul_log_mutex, portMAX_DELAY);
|
|
||||||
spi_out_log_cb_flush_trans(ul_log_cb);
|
|
||||||
spi_out_log_cb_append_trans(ul_log_cb);
|
|
||||||
xSemaphoreGive(ul_log_mutex);
|
|
||||||
|
|
||||||
esp_timer_start_once(ul_log_flushout_timer, SPI_OUT_FLUSH_TIMEOUT_US);
|
|
||||||
}
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
|
|
||||||
#if SPI_OUT_LL_ENABLED
|
#if SPI_OUT_LL_ENABLED
|
||||||
static int spi_out_ll_log_init(void)
|
static int spi_out_ll_log_init(void)
|
||||||
{
|
{
|
||||||
@ -507,18 +494,6 @@ static int spi_out_ll_log_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
// Initialize flushout timer
|
|
||||||
esp_timer_create_args_t timer_args = {
|
|
||||||
.callback = (esp_timer_cb_t)esp_timer_cb_ll_log_flushout,
|
|
||||||
.dispatch_method = ESP_TIMER_TASK
|
|
||||||
};
|
|
||||||
if (esp_timer_create(&timer_args, &ll_log_flushout_timer) != ESP_OK) {
|
|
||||||
ESP_LOGE(BLE_LOG_TAG, "Failed to initialize flushout timer for controller log!");
|
|
||||||
goto timer_init_failed;
|
|
||||||
}
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
|
|
||||||
// Initialize log control blocks for controller task & ISR logs
|
// Initialize log control blocks for controller task & ISR logs
|
||||||
if (spi_out_log_cb_init(&ll_task_log_cb, SPI_OUT_LL_TASK_BUF_SIZE) != 0) {
|
if (spi_out_log_cb_init(&ll_task_log_cb, SPI_OUT_LL_TASK_BUF_SIZE) != 0) {
|
||||||
ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for controller task!");
|
ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for controller task!");
|
||||||
@ -543,10 +518,6 @@ hci_log_cb_init_failed:
|
|||||||
isr_log_cb_init_failed:
|
isr_log_cb_init_failed:
|
||||||
spi_out_log_cb_deinit(&ll_task_log_cb);
|
spi_out_log_cb_deinit(&ll_task_log_cb);
|
||||||
task_log_cb_init_failed:
|
task_log_cb_init_failed:
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
esp_timer_delete(ll_log_flushout_timer);
|
|
||||||
timer_init_failed:
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,11 +527,6 @@ static void spi_out_ll_log_deinit(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
esp_timer_stop(ll_log_flushout_timer);
|
|
||||||
esp_timer_delete(ll_log_flushout_timer);
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
|
|
||||||
spi_out_log_cb_deinit(&ll_hci_log_cb);
|
spi_out_log_cb_deinit(&ll_hci_log_cb);
|
||||||
spi_out_log_cb_deinit(&ll_isr_log_cb);
|
spi_out_log_cb_deinit(&ll_isr_log_cb);
|
||||||
spi_out_log_cb_deinit(&ll_task_log_cb);
|
spi_out_log_cb_deinit(&ll_task_log_cb);
|
||||||
@ -606,14 +572,6 @@ static void spi_out_ll_log_flush(void)
|
|||||||
spi_out_log_cb_append_trans(ll_hci_log_cb);
|
spi_out_log_cb_append_trans(ll_hci_log_cb);
|
||||||
spi_out_log_cb_append_trans(ll_isr_log_cb);
|
spi_out_log_cb_append_trans(ll_isr_log_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
IRAM_ATTR static void esp_timer_cb_ll_log_flushout(void)
|
|
||||||
{
|
|
||||||
ll_ev_flags |= BIT(LL_EV_FLUSH_LOG);
|
|
||||||
spi_out_ll_log_put_ev();
|
|
||||||
}
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
|
||||||
#endif // SPI_OUT_LL_ENABLED
|
#endif // SPI_OUT_LL_ENABLED
|
||||||
|
|
||||||
#if SPI_OUT_TS_SYNC_ENABLED
|
#if SPI_OUT_TS_SYNC_ENABLED
|
||||||
@ -768,22 +726,32 @@ int ble_log_spi_out_init(void)
|
|||||||
}
|
}
|
||||||
#endif // SPI_OUT_TS_SYNC_ENABLED
|
#endif // SPI_OUT_TS_SYNC_ENABLED
|
||||||
|
|
||||||
|
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
esp_timer_create_args_t timer_args = {
|
||||||
|
.callback = (esp_timer_cb_t)esp_timer_cb_log_flush,
|
||||||
|
.dispatch_method = ESP_TIMER_TASK
|
||||||
|
};
|
||||||
|
if (esp_timer_create(&timer_args, &flush_timer) != ESP_OK) {
|
||||||
|
ESP_LOGE(BLE_LOG_TAG, "Failed to initialize flush timer!");
|
||||||
|
goto timer_init_failed;
|
||||||
|
}
|
||||||
|
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
|
||||||
// Initialization done
|
// Initialization done
|
||||||
ESP_LOGI(BLE_LOG_TAG, "Succeeded to initialize BLE log SPI output interface!");
|
ESP_LOGI(BLE_LOG_TAG, "Succeeded to initialize BLE log SPI output interface!");
|
||||||
spi_out_inited = true;
|
spi_out_inited = true;
|
||||||
spi_out_enabled = true;
|
spi_out_enabled = true;
|
||||||
|
|
||||||
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
// Start flushout timer
|
esp_timer_start_once(flush_timer, SPI_OUT_FLUSH_TIMEOUT_US);
|
||||||
esp_timer_start_once(ul_log_flushout_timer, SPI_OUT_FLUSH_TIMEOUT_US);
|
|
||||||
|
|
||||||
#if SPI_OUT_LL_ENABLED
|
|
||||||
esp_timer_start_once(ll_log_flushout_timer, SPI_OUT_FLUSH_TIMEOUT_US);
|
|
||||||
#endif // SPI_OUT_LL_ENABLED
|
|
||||||
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
timer_init_failed:
|
||||||
|
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
#if SPI_OUT_TS_SYNC_ENABLED
|
#if SPI_OUT_TS_SYNC_ENABLED
|
||||||
|
spi_out_ts_sync_deinit();
|
||||||
ts_sync_init_failed:
|
ts_sync_init_failed:
|
||||||
#endif // SPI_OUT_TS_SYNC_ENABLED
|
#endif // SPI_OUT_TS_SYNC_ENABLED
|
||||||
#if SPI_OUT_LL_ENABLED
|
#if SPI_OUT_LL_ENABLED
|
||||||
@ -807,6 +775,11 @@ void ble_log_spi_out_deinit(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
esp_timer_stop(flush_timer);
|
||||||
|
esp_timer_delete(flush_timer);
|
||||||
|
#endif // SPI_OUT_FLUSH_TIMER_ENABLED
|
||||||
|
|
||||||
// Drain all queued transactions
|
// Drain all queued transactions
|
||||||
assert(spi_device_acquire_bus(spi_handle, portMAX_DELAY) == ESP_OK);
|
assert(spi_device_acquire_bus(spi_handle, portMAX_DELAY) == ESP_OK);
|
||||||
spi_device_release_bus(spi_handle);
|
spi_device_release_bus(spi_handle);
|
||||||
@ -901,7 +874,7 @@ IRAM_ATTR void ble_log_spi_out_ll_write(uint32_t len, const uint8_t *addr, uint3
|
|||||||
}
|
}
|
||||||
if (need_append) {
|
if (need_append) {
|
||||||
if (in_isr) {
|
if (in_isr) {
|
||||||
ll_ev_flags |= BIT(LL_EV_ISR_APPEND);
|
ll_ev_flags |= BIT(LL_EV_FLAG_ISR_APPEND);
|
||||||
spi_out_ll_log_put_ev();
|
spi_out_ll_log_put_ev();
|
||||||
} else {
|
} else {
|
||||||
spi_out_log_cb_append_trans(log_cb);
|
spi_out_log_cb_append_trans(log_cb);
|
||||||
@ -922,14 +895,14 @@ IRAM_ATTR void ble_log_spi_out_ll_log_ev_proc(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ll_ev_flags & BIT(LL_EV_ISR_APPEND)) {
|
if (ll_ev_flags & BIT(LL_EV_FLAG_ISR_APPEND)) {
|
||||||
spi_out_log_cb_append_trans(ll_isr_log_cb);
|
spi_out_log_cb_append_trans(ll_isr_log_cb);
|
||||||
ll_ev_flags &= ~BIT(LL_EV_ISR_APPEND);
|
ll_ev_flags &= ~BIT(LL_EV_FLAG_ISR_APPEND);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ll_ev_flags & BIT(LL_EV_FLUSH_LOG)) {
|
if (ll_ev_flags & BIT(LL_EV_FLAG_FLUSH_LOG)) {
|
||||||
spi_out_ll_log_flush();
|
spi_out_ll_log_flush();
|
||||||
ll_ev_flags &= ~BIT(LL_EV_FLUSH_LOG);
|
ll_ev_flags &= ~BIT(LL_EV_FLAG_FLUSH_LOG);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // SPI_OUT_LL_ENABLED
|
#endif // SPI_OUT_LL_ENABLED
|
||||||
@ -1122,4 +1095,13 @@ void ble_log_spi_out_enable(bool enable)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ble_log_spi_out_flush(void)
|
||||||
|
{
|
||||||
|
if (!spi_out_enabled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
spi_out_log_flush();
|
||||||
|
}
|
||||||
|
|
||||||
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED
|
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED
|
||||||
|
@ -56,5 +56,6 @@ int ble_log_spi_out_printf_enh(uint8_t source, uint8_t level, const char *tag, c
|
|||||||
int ble_log_spi_out_write_with_ts(uint8_t source, const uint8_t *addr, uint16_t len);
|
int ble_log_spi_out_write_with_ts(uint8_t source, const uint8_t *addr, uint16_t len);
|
||||||
void ble_log_spi_out_dump_all(void);
|
void ble_log_spi_out_dump_all(void);
|
||||||
void ble_log_spi_out_enable(bool enable);
|
void ble_log_spi_out_enable(bool enable);
|
||||||
|
void ble_log_spi_out_flush(void);
|
||||||
|
|
||||||
#endif // __BT_SPI_OUT_H__
|
#endif // __BT_SPI_OUT_H__
|
||||||
|
Reference in New Issue
Block a user