mirror of
https://github.com/esphome/esphome.git
synced 2025-07-28 14:16:40 +00:00
[esp32] Add config vars for compiler (#9023)
This commit is contained in:
parent
8894f5030a
commit
dde63e7459
@ -71,12 +71,28 @@ from .const import ( # noqa
|
|||||||
from .gpio import esp32_pin_to_code # noqa
|
from .gpio import esp32_pin_to_code # noqa
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
CODEOWNERS = ["@esphome/core"]
|
|
||||||
AUTO_LOAD = ["preferences"]
|
AUTO_LOAD = ["preferences"]
|
||||||
|
CODEOWNERS = ["@esphome/core"]
|
||||||
IS_TARGET_PLATFORM = True
|
IS_TARGET_PLATFORM = True
|
||||||
|
|
||||||
CONF_RELEASE = "release"
|
CONF_ASSERTION_LEVEL = "assertion_level"
|
||||||
|
CONF_COMPILER_OPTIMIZATION = "compiler_optimization"
|
||||||
CONF_ENABLE_IDF_EXPERIMENTAL_FEATURES = "enable_idf_experimental_features"
|
CONF_ENABLE_IDF_EXPERIMENTAL_FEATURES = "enable_idf_experimental_features"
|
||||||
|
CONF_ENABLE_LWIP_ASSERT = "enable_lwip_assert"
|
||||||
|
CONF_RELEASE = "release"
|
||||||
|
|
||||||
|
ASSERTION_LEVELS = {
|
||||||
|
"DISABLE": "CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE",
|
||||||
|
"ENABLE": "CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE",
|
||||||
|
"SILENT": "CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT",
|
||||||
|
}
|
||||||
|
|
||||||
|
COMPILER_OPTIMIZATIONS = {
|
||||||
|
"DEBUG": "CONFIG_COMPILER_OPTIMIZATION_DEBUG",
|
||||||
|
"NONE": "CONFIG_COMPILER_OPTIMIZATION_NONE",
|
||||||
|
"PERF": "CONFIG_COMPILER_OPTIMIZATION_PERF",
|
||||||
|
"SIZE": "CONFIG_COMPILER_OPTIMIZATION_SIZE",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def get_cpu_frequencies(*frequencies):
|
def get_cpu_frequencies(*frequencies):
|
||||||
@ -554,11 +570,18 @@ ESP_IDF_FRAMEWORK_SCHEMA = cv.All(
|
|||||||
},
|
},
|
||||||
cv.Optional(CONF_ADVANCED, default={}): cv.Schema(
|
cv.Optional(CONF_ADVANCED, default={}): cv.Schema(
|
||||||
{
|
{
|
||||||
|
cv.Optional(CONF_ASSERTION_LEVEL): cv.one_of(
|
||||||
|
*ASSERTION_LEVELS, upper=True
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_COMPILER_OPTIMIZATION, default="SIZE"): cv.one_of(
|
||||||
|
*COMPILER_OPTIMIZATIONS, upper=True
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_ENABLE_IDF_EXPERIMENTAL_FEATURES): cv.boolean,
|
||||||
|
cv.Optional(CONF_ENABLE_LWIP_ASSERT, default=True): cv.boolean,
|
||||||
cv.Optional(
|
cv.Optional(
|
||||||
CONF_IGNORE_EFUSE_CUSTOM_MAC, default=False
|
CONF_IGNORE_EFUSE_CUSTOM_MAC, default=False
|
||||||
): cv.boolean,
|
): cv.boolean,
|
||||||
cv.Optional(CONF_IGNORE_EFUSE_MAC_CRC): cv.boolean,
|
cv.Optional(CONF_IGNORE_EFUSE_MAC_CRC): cv.boolean,
|
||||||
cv.Optional(CONF_ENABLE_IDF_EXPERIMENTAL_FEATURES): cv.boolean,
|
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
cv.Optional(CONF_COMPONENTS, default=[]): cv.ensure_list(
|
cv.Optional(CONF_COMPONENTS, default=[]): cv.ensure_list(
|
||||||
@ -672,8 +695,6 @@ async def to_code(config):
|
|||||||
add_idf_sdkconfig_option(
|
add_idf_sdkconfig_option(
|
||||||
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME", "partitions.csv"
|
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME", "partitions.csv"
|
||||||
)
|
)
|
||||||
add_idf_sdkconfig_option("CONFIG_COMPILER_OPTIMIZATION_DEFAULT", False)
|
|
||||||
add_idf_sdkconfig_option("CONFIG_COMPILER_OPTIMIZATION_SIZE", True)
|
|
||||||
|
|
||||||
# Increase freertos tick speed from 100Hz to 1kHz so that delay() resolution is 1ms
|
# Increase freertos tick speed from 100Hz to 1kHz so that delay() resolution is 1ms
|
||||||
add_idf_sdkconfig_option("CONFIG_FREERTOS_HZ", 1000)
|
add_idf_sdkconfig_option("CONFIG_FREERTOS_HZ", 1000)
|
||||||
@ -693,8 +714,19 @@ async def to_code(config):
|
|||||||
"partitions.csv", CORE.relative_config_path(config[CONF_PARTITIONS])
|
"partitions.csv", CORE.relative_config_path(config[CONF_PARTITIONS])
|
||||||
)
|
)
|
||||||
|
|
||||||
for name, value in conf[CONF_SDKCONFIG_OPTIONS].items():
|
if assertion_level := conf[CONF_ADVANCED].get(CONF_ASSERTION_LEVEL):
|
||||||
add_idf_sdkconfig_option(name, RawSdkconfigValue(value))
|
for key, flag in ASSERTION_LEVELS.items():
|
||||||
|
add_idf_sdkconfig_option(flag, assertion_level == key)
|
||||||
|
|
||||||
|
add_idf_sdkconfig_option("CONFIG_COMPILER_OPTIMIZATION_DEFAULT", False)
|
||||||
|
compiler_optimization = conf[CONF_ADVANCED].get(CONF_COMPILER_OPTIMIZATION)
|
||||||
|
for key, flag in COMPILER_OPTIMIZATIONS.items():
|
||||||
|
add_idf_sdkconfig_option(flag, compiler_optimization == key)
|
||||||
|
|
||||||
|
add_idf_sdkconfig_option(
|
||||||
|
"CONFIG_LWIP_ESP_LWIP_ASSERT",
|
||||||
|
conf[CONF_ADVANCED][CONF_ENABLE_LWIP_ASSERT],
|
||||||
|
)
|
||||||
|
|
||||||
if conf[CONF_ADVANCED].get(CONF_IGNORE_EFUSE_MAC_CRC):
|
if conf[CONF_ADVANCED].get(CONF_IGNORE_EFUSE_MAC_CRC):
|
||||||
add_idf_sdkconfig_option("CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR", True)
|
add_idf_sdkconfig_option("CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR", True)
|
||||||
@ -719,6 +751,9 @@ async def to_code(config):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
for name, value in conf[CONF_SDKCONFIG_OPTIONS].items():
|
||||||
|
add_idf_sdkconfig_option(name, RawSdkconfigValue(value))
|
||||||
|
|
||||||
for component in conf[CONF_COMPONENTS]:
|
for component in conf[CONF_COMPONENTS]:
|
||||||
source = component[CONF_SOURCE]
|
source = component[CONF_SOURCE]
|
||||||
if source[CONF_TYPE] == TYPE_GIT:
|
if source[CONF_TYPE] == TYPE_GIT:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user