SRA Board Components
ESP-IDF component for SRA Board
include
esp_idf_lib_helpers.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2019 Tomoyuki Sakurai <
[email protected]
>
3
*
4
* Permission to use, copy, modify, and distribute this software for any
5
* purpose with or without fee is hereby granted, provided that the above
6
* copyright notice and this permission notice appear in all copies.
7
*
8
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
*/
16
17
#if !defined(__ESP_IDF_LIB_HELPERS__H__)
18
#define __ESP_IDF_LIB_HELPERS__H__
19
20
/* XXX this header file does not need to include freertos/FreeRTOS.h.
21
* but without it, ESP8266 RTOS SDK does not include `sdkconfig.h` in correct
22
* order. as this header depends on sdkconfig.h, sdkconfig.h must be included
23
* first. however, the SDK includes this header first, then includes
24
* `sdkconfig.h` when freertos/FreeRTOS.h is not explicitly included. an
25
* evidence can be found in `build/${COMPONENT}/${COMPONENT}.d` in a failed
26
* build.
27
*/
28
#include <freertos/FreeRTOS.h>
29
#include <esp_idf_version.h>
30
31
#if !defined(ESP_IDF_VERSION) || !defined(ESP_IDF_VERSION_VAL)
32
#error Unknown ESP-IDF/ESP8266 RTOS SDK version
33
#endif
34
35
/* Minimal supported version for ESP32, ESP32S2 */
36
#define HELPER_ESP32_MIN_VER ESP_IDF_VERSION_VAL(3, 3, 5)
37
/* Minimal supported version for ESP8266 */
38
#define HELPER_ESP8266_MIN_VER ESP_IDF_VERSION_VAL(3, 3, 0)
39
40
/* HELPER_TARGET_IS_ESP32
41
* 1 when the target is esp32
42
*/
43
#if defined(CONFIG_IDF_TARGET_ESP32) \
44
|| defined(CONFIG_IDF_TARGET_ESP32S2) \
45
|| defined(CONFIG_IDF_TARGET_ESP32S3) \
46
|| defined(CONFIG_IDF_TARGET_ESP32C3)
47
#define HELPER_TARGET_IS_ESP32 (1)
48
#define HELPER_TARGET_IS_ESP8266 (0)
49
50
/* HELPER_TARGET_IS_ESP8266
51
* 1 when the target is esp8266
52
*/
53
#elif defined(CONFIG_IDF_TARGET_ESP8266)
54
#define HELPER_TARGET_IS_ESP32 (0)
55
#define HELPER_TARGET_IS_ESP8266 (1)
56
#else
57
#error BUG: cannot determine the target
58
#endif
59
60
#if HELPER_TARGET_IS_ESP32 && ESP_IDF_VERSION < HELPER_ESP32_MIN_VER
61
#error Unsupported ESP-IDF version. Please update!
62
#endif
63
64
#if HELPER_TARGET_IS_ESP8266 && ESP_IDF_VERSION < HELPER_ESP8266_MIN_VER
65
#error Unsupported ESP8266 RTOS SDK version. Please update!
66
#endif
67
68
/* show the actual values for debugging */
69
#if DEBUG
70
#define VALUE_TO_STRING(x) #x
71
#define VALUE(x) VALUE_TO_STRING(x)
72
#define VAR_NAME_VALUE(var) #var "="
VALUE(var)
73
#pragma message(VAR_NAME_VALUE(CONFIG_IDF_TARGET_ESP32C3))
74
#pragma message(VAR_NAME_VALUE(CONFIG_IDF_TARGET_ESP32S2))
75
#pragma message(VAR_NAME_VALUE(CONFIG_IDF_TARGET_ESP32))
76
#pragma message(VAR_NAME_VALUE(CONFIG_IDF_TARGET_ESP8266))
77
#pragma message(VAR_NAME_VALUE(ESP_IDF_VERSION_MAJOR))
78
#endif
79
80
#endif
Generated by
1.9.2