From 8056c0a5ef8f85fd119572c64bfb2116680f6da8 Mon Sep 17 00:00:00 2001 From: Xu Si Yu Date: Tue, 11 Aug 2026 20:43:04 +0800 Subject: [PATCH] fix(ieee802154): clear RX buffer state on MAC init --- components/ieee802154/driver/esp_ieee802154_dev.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/components/ieee802154/driver/esp_ieee802154_dev.c b/components/ieee802154/driver/esp_ieee802154_dev.c index 54e41eb1664..16cdd05de3c 100644 --- a/components/ieee802154/driver/esp_ieee802154_dev.c +++ b/components/ieee802154/driver/esp_ieee802154_dev.c @@ -129,6 +129,16 @@ esp_err_t ieee802154_receive_handle_done(const uint8_t *data) return ESP_OK; } +static void ieee802154_rx_buffer_clear(void) +{ + memset(s_rx_frame, 0, sizeof(s_rx_frame)); + memset(s_rx_frame_info, 0, sizeof(s_rx_frame_info)); + s_rx_index = 0; + s_recent_rx_frame_info_index = 0; + s_needs_next_operation = false; + s_pending_rx_stop = false; +} + static IRAM_ATTR void event_end_process(void) { ieee802154_etm_channel_clear(IEEE802154_ETM_CHANNEL0); @@ -920,7 +930,7 @@ esp_err_t ieee802154_mac_init(void) ieee802154_txon_delay_set(); - memset(s_rx_frame, 0, sizeof(s_rx_frame)); + ieee802154_rx_buffer_clear(); ieee802154_set_state(IEEE802154_STATE_IDLE); // TODO: Add flags for IEEE802154 ISR allocating. TZ-102