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

components/esp32: add ESP_ERROR_CHECK

Convenience macro to do error check and assert in cases when error recovery is not expected
Ivan Grokhotkov 9 лет назад
Родитель
Сommit
e9b54b6b45
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      components/esp32/include/esp_err.h

+ 7 - 0
components/esp32/include/esp_err.h

@@ -15,6 +15,7 @@
 #define __ESP_ERR_H__
 
 #include <stdint.h>
+#include <assert.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -31,6 +32,12 @@ typedef int32_t esp_err_t;
 #define ESP_ERR_INVALID_ARG     0x102
 #define ESP_ERR_INVALID_STATE   0x103
 
+/**
+ * Macro which can be used to check the error code,
+ * and terminate the program in case the code is not ESP_OK.
+ * Prints the failed statement to serial output.
+ */
+#define ESP_ERROR_CHECK(x)   do { esp_err_t rc = (x); if (rc != ESP_OK) { assert(0 && #x);} } while(0);
 
 #ifdef __cplusplus
 }