]> granicus.if.org Git - esp-idf/commitdiff
components/esp32: add ESP_ERROR_CHECK
authorIvan Grokhotkov <ivan@espressif.com>
Sun, 25 Sep 2016 17:34:05 +0000 (01:34 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Sun, 25 Sep 2016 17:34:05 +0000 (01:34 +0800)
Convenience macro to do error check and assert in cases when error recovery is not expected

components/esp32/include/esp_err.h

index 6ea176991c1e1626a049e6762b4c021724833c8b..4f013f91ab37b522bc5278886a7d9015d8665a71 100644 (file)
@@ -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
 }