Merge branch 'bugfix/rmt_mem_num_maximum_limit_is_not_accurate' into 'master'

bugfix(rmt): Modify the rmt_mem_num maximum limit value from 15 to 8.

See merge request idf/esp-idf!2734
This commit is contained in:
Wang Jia Lin 2018-07-18 16:15:14 +08:00
commit de907e8801

View file

@ -137,7 +137,7 @@ esp_err_t rmt_get_rx_idle_thresh(rmt_channel_t channel, uint16_t *thresh)
esp_err_t rmt_set_mem_block_num(rmt_channel_t channel, uint8_t rmt_mem_num) esp_err_t rmt_set_mem_block_num(rmt_channel_t channel, uint8_t rmt_mem_num)
{ {
RMT_CHECK(channel < RMT_CHANNEL_MAX, RMT_CHANNEL_ERROR_STR, ESP_ERR_INVALID_ARG); RMT_CHECK(channel < RMT_CHANNEL_MAX, RMT_CHANNEL_ERROR_STR, ESP_ERR_INVALID_ARG);
RMT_CHECK(rmt_mem_num < 16, RMT_MEM_CNT_ERROR_STR, ESP_ERR_INVALID_ARG); RMT_CHECK(rmt_mem_num <= RMT_CHANNEL_MAX - channel, RMT_MEM_CNT_ERROR_STR, ESP_ERR_INVALID_ARG);
RMT.conf_ch[channel].conf0.mem_size = rmt_mem_num; RMT.conf_ch[channel].conf0.mem_size = rmt_mem_num;
return ESP_OK; return ESP_OK;
} }
@ -669,7 +669,7 @@ esp_err_t rmt_driver_uninstall(rmt_channel_t channel)
} }
//Avoid blocking here(when the interrupt is disabled and do not wait tx done). //Avoid blocking here(when the interrupt is disabled and do not wait tx done).
if(p_rmt_obj[channel]->wait_done) { if(p_rmt_obj[channel]->wait_done) {
xSemaphoreTake(p_rmt_obj[channel]->tx_sem, portMAX_DELAY); xSemaphoreTake(p_rmt_obj[channel]->tx_sem, portMAX_DELAY);
} }
rmt_set_rx_intr_en(channel, 0); rmt_set_rx_intr_en(channel, 0);
rmt_set_err_intr_en(channel, 0); rmt_set_err_intr_en(channel, 0);
@ -929,4 +929,4 @@ esp_err_t rmt_write_sample(rmt_channel_t channel, const uint8_t *src, size_t src
xSemaphoreGive(p_rmt->tx_sem); xSemaphoreGive(p_rmt->tx_sem);
} }
return ESP_OK; return ESP_OK;
} }