Select one of the symbols to view example projects that use it.
 
Outline
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include "esp_compiler.h"
esp_err_t
#define ESP_OK
#define ESP_FAIL
#define ESP_ERR_NO_MEM
#define ESP_ERR_INVALID_ARG
#define ESP_ERR_INVALID_STATE
#define ESP_ERR_INVALID_SIZE
#define ESP_ERR_NOT_FOUND
#define ESP_ERR_NOT_SUPPORTED
#define ESP_ERR_TIMEOUT
#define ESP_ERR_INVALID_RESPONSE
#define ESP_ERR_INVALID_CRC
#define ESP_ERR_INVALID_VERSION
#define ESP_ERR_INVALID_MAC
#define ESP_ERR_NOT_FINISHED
#define ESP_ERR_NOT_ALLOWED
#define ESP_ERR_WIFI_BASE
#define ESP_ERR_MESH_BASE
#define ESP_ERR_FLASH_BASE
#define ESP_ERR_HW_CRYPTO_BASE
#define ESP_ERR_MEMPROT_BASE
esp_err_to_name(esp_err_t);
esp_err_to_name_r(esp_err_t, char *, size_t);
_esp_error_check_failed(esp_err_t, const char *, int, const char *, const char *);
_esp_error_check_failed_without_abort(esp_err_t, const char *, int, const char *, const char *);
#define __ASSERT_FUNC
#define __ASSERT_FUNC
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/esp_common/include/esp_err.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #pragma once #include <stdint.h> #include <stdio.h> #include <assert.h> #include <stdlib.h> #include "esp_compiler.h"5 includes #ifdef __cplusplus extern "C" { #endif typedef int esp_err_t; /* Definitions for error constants. */ #define ESP_OK 0 /*!< esp_err_t value indicating success (no error) */ #define ESP_FAIL -1 /*!< Generic esp_err_t code indicating failure */ #define ESP_ERR_NO_MEM 0x101 /*!< Out of memory */ #define ESP_ERR_INVALID_ARG 0x102 /*!< Invalid argument */ #define ESP_ERR_INVALID_STATE 0x103 /*!< Invalid state */ #define ESP_ERR_INVALID_SIZE 0x104 /*!< Invalid size */ #define ESP_ERR_NOT_FOUND 0x105 /*!< Requested resource not found */ #define ESP_ERR_NOT_SUPPORTED 0x106 /*!< Operation or feature not supported */ #define ESP_ERR_TIMEOUT 0x107 /*!< Operation timed out */ #define ESP_ERR_INVALID_RESPONSE 0x108 /*!< Received response was invalid */ #define ESP_ERR_INVALID_CRC 0x109 /*!< CRC or checksum was invalid */ #define ESP_ERR_INVALID_VERSION 0x10A /*!< Version was invalid */ #define ESP_ERR_INVALID_MAC 0x10B /*!< MAC address was invalid */ #define ESP_ERR_NOT_FINISHED 0x10C /*!< Operation has not fully completed */ #define ESP_ERR_NOT_ALLOWED 0x10D /*!< Operation is not allowed */ #define ESP_ERR_WIFI_BASE 0x3000 /*!< Starting number of WiFi error codes */ #define ESP_ERR_MESH_BASE 0x4000 /*!< Starting number of MESH error codes */ #define ESP_ERR_FLASH_BASE 0x6000 /*!< Starting number of flash error codes */ #define ESP_ERR_HW_CRYPTO_BASE 0xc000 /*!< Starting number of HW cryptography module error codes */ #define ESP_ERR_MEMPROT_BASE 0xd000 /*!< Starting number of Memory Protection API error codes */20 defines /** * @brief Returns string for esp_err_t error codes * * This function finds the error code in a pre-generated lookup-table and * returns its string representation. * * The function is generated by the Python script * tools/gen_esp_err_to_name.py which should be run each time an esp_err_t * error is modified, created or removed from the IDF project. * * @param code esp_err_t error code * @return string error message *//* ... */ const char *esp_err_to_name(esp_err_t code); /** * @brief Returns string for esp_err_t and system error codes * * This function finds the error code in a pre-generated lookup-table of * esp_err_t errors and returns its string representation. If the error code * is not found then it is attempted to be found among system errors. * * The function is generated by the Python script * tools/gen_esp_err_to_name.py which should be run each time an esp_err_t * error is modified, created or removed from the IDF project. * * @param code esp_err_t error code * @param[out] buf buffer where the error message should be written * @param buflen Size of buffer buf. At most buflen bytes are written into the buf buffer (including the terminating null byte). * @return buf containing the string error message *//* ... */ const char *esp_err_to_name_r(esp_err_t code, char *buf, size_t buflen); /** @cond */ void _esp_error_check_failed(esp_err_t rc, const char *file, int line, const char *function, const char *expression) __attribute__((__noreturn__)); void _esp_error_check_failed_without_abort(esp_err_t rc, const char *file, int line, const char *function, const char *expression); #ifndef __ASSERT_FUNC /* This won't happen on IDF, which defines __ASSERT_FUNC in assert.h, but it does happen when building on the host which uses /usr/include/assert.h or equivalent. *//* ... */ #ifdef __ASSERT_FUNCTION #define __ASSERT_FUNC __ASSERT_FUNCTION /* used in glibc assert.h */ #else #define __ASSERT_FUNC "??" #endif/* ... */ #endif /** @endcond */ /** * Macro which can be used to check the error code, * and terminate the program in case the code is not ESP_OK. * Prints the error code, error location, and the failed statement to serial output. * * Disabled if assertions are disabled. *//* ... */ #ifdef NDEBUG #define ESP_ERROR_CHECK(x) do { \ esp_err_t err_rc_ = (x); \ (void) sizeof(err_rc_); \ }{...} while(0)... /* ... */#elif defined(CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT) #define ESP_ERROR_CHECK(x) do { \ esp_err_t err_rc_ = (x); \ if (unlikely(err_rc_ != ESP_OK)) { \ abort(); \ }{...} \ }{...} while(0)... /* ... */#else #define ESP_ERROR_CHECK(x) do { \ esp_err_t err_rc_ = (x); \ if (unlikely(err_rc_ != ESP_OK)) { \ _esp_error_check_failed(err_rc_, __FILE__, __LINE__, \ __ASSERT_FUNC, #x); \ }{...} \ }{...} while(0)... /* ... */#endif /** * Macro which can be used to check the error code. Prints the error code, error location, and the failed statement to * serial output. * In comparison with ESP_ERROR_CHECK(), this prints the same error message but isn't terminating the program. *//* ... */ #if defined NDEBUG || defined CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT #define ESP_ERROR_CHECK_WITHOUT_ABORT(x) ({ \ esp_err_t err_rc_ = (x); \ err_rc_; \ }{...})... /* ... */#else #define ESP_ERROR_CHECK_WITHOUT_ABORT(x) ({ \ esp_err_t err_rc_ = (x); \ if (unlikely(err_rc_ != ESP_OK)) { \ _esp_error_check_failed_without_abort(err_rc_, __FILE__, __LINE__, \ __ASSERT_FUNC, #x); \ }{...} \ err_rc_; \ }{...})... /* ... */#endif //NDEBUG #ifdef __cplusplus }{...} #endif
Details