diff --git a/components/driver/rmt.c b/components/driver/rmt.c index 7a5443eba..2d1a2bc24 100644 --- a/components/driver/rmt.c +++ b/components/driver/rmt.c @@ -501,9 +501,9 @@ esp_err_t rmt_config(const rmt_config_t* rmt_param) static void IRAM_ATTR rmt_fill_memory(rmt_channel_t channel, const rmt_item32_t* item, uint16_t item_num, uint16_t mem_offset) { - portENTER_CRITICAL(&rmt_spinlock); + portENTER_CRITICAL_SAFE(&rmt_spinlock); RMT.apb_conf.fifo_mask = RMT_DATA_MODE_MEM; - portEXIT_CRITICAL(&rmt_spinlock); + portEXIT_CRITICAL_SAFE(&rmt_spinlock); int i; for(i = 0; i < item_num; i++) { RMTMEM.chan[channel].data32[i + mem_offset].val = item[i].val;