Merge branch 'bugfix/fix_crash_when_use_one_speed_mode' into 'master'

bugfix(ledc): fix crash when use one speed mode

See merge request espressif/esp-idf!6788
This commit is contained in:
Angus Gratton 2019-12-17 11:16:11 +08:00
commit 0bc6f2b42c
2 changed files with 13 additions and 2 deletions

View file

@ -565,6 +565,9 @@ void IRAM_ATTR ledc_fade_isr(void* arg)
uint32_t intr_status = 0; uint32_t intr_status = 0;
for (speed_mode = 0; speed_mode < LEDC_SPEED_MODE_MAX; speed_mode++) { for (speed_mode = 0; speed_mode < LEDC_SPEED_MODE_MAX; speed_mode++) {
if (p_ledc_obj[speed_mode] == NULL) {
continue;
}
ledc_hal_get_fade_end_intr_status(&(p_ledc_obj[speed_mode]->ledc_hal), &intr_status); ledc_hal_get_fade_end_intr_status(&(p_ledc_obj[speed_mode]->ledc_hal), &intr_status);
while(intr_status) { while(intr_status) {
ledc_calc_fade_end_channel(&intr_status, &channel); ledc_calc_fade_end_channel(&intr_status, &channel);

View file

@ -400,8 +400,12 @@ TEST_CASE("LEDC timer pause and resume", "[ledc][test_env=UT_T1_LEDC]")
TEST_ASSERT_UINT32_WITHIN(5, count, 5000); TEST_ASSERT_UINT32_WITHIN(5, count, 5000);
} }
TEST_CASE("LEDC fade with time(logic analyzer)", "[ledc][ignore]") TEST_CASE("LEDC fade with time(logic analyzer)", "[ledc][test_env=UT_T1_LEDC]")
{ {
#ifdef CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE
return;
#endif
#ifdef CONFIG_IDF_TARGET_ESP32 #ifdef CONFIG_IDF_TARGET_ESP32
const ledc_mode_t test_speed_mode = LEDC_HIGH_SPEED_MODE; const ledc_mode_t test_speed_mode = LEDC_HIGH_SPEED_MODE;
#elif defined CONFIG_IDF_TARGET_ESP32S2BETA #elif defined CONFIG_IDF_TARGET_ESP32S2BETA
@ -444,8 +448,12 @@ TEST_CASE("LEDC fade with time(logic analyzer)", "[ledc][ignore]")
ledc_fade_func_uninstall(); ledc_fade_func_uninstall();
} }
TEST_CASE("LEDC fade with step(logic analyzer)", "[ledc][ignore]") TEST_CASE("LEDC fade with step(logic analyzer)", "[ledc][test_env=UT_T1_LEDC]")
{ {
#ifdef CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE
return;
#endif
#ifdef CONFIG_IDF_TARGET_ESP32 #ifdef CONFIG_IDF_TARGET_ESP32
const ledc_mode_t test_speed_mode = LEDC_HIGH_SPEED_MODE; const ledc_mode_t test_speed_mode = LEDC_HIGH_SPEED_MODE;
#elif defined CONFIG_IDF_TARGET_ESP32S2BETA #elif defined CONFIG_IDF_TARGET_ESP32S2BETA