Просмотр исходного кода

feat(system): add an error log and a hint on failed interrupt alloc

When interrupt allocation fails, esp_intr_alloc will now print a
message telling that no free interrupt was found. This message is
then checked in hints.yml, to give a link to the troubleshooting
guide.
Ivan Grokhotkov 2 лет назад
Родитель
Сommit
0ebe2cecfa
2 измененных файлов с 5 добавлено и 0 удалено
  1. 1 0
      components/esp_hw_support/intr_alloc.c
  2. 4 0
      tools/idf_py_actions/hints.yml

+ 1 - 0
components/esp_hw_support/intr_alloc.c

@@ -542,6 +542,7 @@ esp_err_t esp_intr_alloc_intrstatus(int source, int flags, uint32_t intrstatusre
         //None found. Bail out.
         portEXIT_CRITICAL(&spinlock);
         free(ret);
+        ESP_LOGE(TAG, "No free interrupt inputs for %s interrupt (flags 0x%X)", esp_isr_names[source], flags);
         return ESP_ERR_NOT_FOUND;
     }
     //Get an int vector desc for int.

+ 4 - 0
tools/idf_py_actions/hints.yml

@@ -384,3 +384,7 @@
         -
             re_variables: ['ESP_HF_CME_MEMEORY_FAILURE']
             hint_variables: ['ESP_HF_CME_MEMEORY_FAILURE', 'ESP_HF_CME_MEMORY_FAILURE ']
+
+-
+    re: "intr_alloc: No free interrupt inputs for [_\\w]+ interrupt"
+    hint: "For troubleshooting instructions related to interrupt allocation, run 'idf.py docs -sp api-reference/system/intr_alloc.html'"