فهرست منبع

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
Angus Gratton 6 سال پیش
والد
کامیت
0bc6f2b42c
2فایلهای تغییر یافته به همراه13 افزوده شده و 2 حذف شده
  1. 3 0
      components/driver/ledc.c
  2. 10 2
      components/driver/test/test_ledc.c

+ 3 - 0
components/driver/ledc.c

@@ -565,6 +565,9 @@ void IRAM_ATTR ledc_fade_isr(void* arg)
     uint32_t intr_status = 0;
 
     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);
         while(intr_status) {
             ledc_calc_fade_end_channel(&intr_status, &channel);

+ 10 - 2
components/driver/test/test_ledc.c

@@ -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_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
     const ledc_mode_t test_speed_mode = LEDC_HIGH_SPEED_MODE;
 #elif defined CONFIG_IDF_TARGET_ESP32S2BETA
@@ -444,8 +448,12 @@ TEST_CASE("LEDC fade with time(logic analyzer)", "[ledc][ignore]")
     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
     const ledc_mode_t test_speed_mode = LEDC_HIGH_SPEED_MODE;
 #elif defined CONFIG_IDF_TARGET_ESP32S2BETA