Chapter 4. API Guides
• CONFIG_MBEDTLS_ECP_C (Alternatively: Leave this option enabled but disable some of the elliptic curves
listed in the sub-menu.)
• CONFIG_MBEDTLS_SSL_RENEGOTIATION
• Change CONFIG_MBEDTLS_TLS_MODE if both Server & Client are not needed
• Consider disabling some ciphersuites listed in the “TLS Key Exchange Methods”sub-menu (i.e. CON-
FIG_MBEDTLS_KEY_EXCHANGE_RSA)
The help text for each option has some more information.
Important: It is strongly not recommended to disable all these mbedTLS options. Only disable options where
you understand the functionality and are certain that it is not needed in the application. In particular:
• Ensure that any TLS server(s) the device connects to can still be used. If the server is controlled by a third
party or a cloud service, recommend ensuring that the firmware supports at least two of the supported cipher
suites in case one is disabled in a future update.
• Ensure that any TLS client(s) that connect to the device can still connect with supported/recommended cipher
suites. Note that future versions of client operating systems may remove support for some features, so it is
recommended to enable multiple supported cipher suites or algorithms for redundancy.
If depending on third party clients or servers, always pay attention to announcements about future changes to sup-
ported TLS features. If not, the ESP32-S2 device may become inaccessible if support changes.
Note: Not every combination of mbedTLS compile-time config is tested in ESP-IDF. If you find a combination that
fails to compile or function as expected, please report the details on GitHub.
FreeModBus If using Modbus, enable or disable CONFIG_FMB_COMM_MODE_TCP_EN, CON-
FIG_FMB_COMM_MODE_RTU_EN, CONFIG_FMB_COMM_MODE_ASCII_EN as applicable for the necessary
functionality.
VFS Virtual filesystem feature in ESP-IDF allows multiple filesystem drivers and file-like peripheral drivers to
be accessed using standard I/O functions (open, read, write, etc.) and C library functions (fopen, fread,
fwrite, etc.). When filesystem or file-like peripheral driver functionality is not used in the application this feature
can be fully or partially disabled. VFS component provides the following configuration options:
• CONFIG_VFS_SUPPORT_TERMIOS —can be disabled if the application doesn’t use termios family of
functions. Currently, these functions are implemented only for UART VFS driver. Most applications can
disable this option. Disabling this option reduces the code size by about 1.8 kB.
• CONFIG_VFS_SUPPORT_SELECT — can be disabled if the application doesn’t use select function with
file descriptors. Currently, only the UART and eventfd VFS drivers implement select support. Note that
when this option is disabled, select can still be used for socket file descriptors. Disabling this option reduces
the code size by about 2.7 kB.
• CONFIG_VFS_SUPPORT_DIR —can be disabled if the application doesn’t use directory related functions,
such as readdir (see the description of this option for the complete list). Applications which only open, read
and write specific files and don’t need to enumerate or create directories can disable this option, reducing the
code size by 0.5 kB or more, depending on the filesystem drivers in use.
• CONFIG_VFS_SUPPORT_IO —can be disabled if the application doesn’t use filesystems or file-like peripheral
drivers. This disables all VFS functionality, including the three options mentioned above. When this option is
disabled, console can’t be used. Note that the application can still use standard I/O functions with socket file
descriptors when this option is disabled. Compared to the default configuration, disabling this option reduces
code size by about 9.4 kB.
Bootloader Size This document deals with the size of an ESP-IDF app binary only, and not the ESP-IDF Second
stage bootloader.
For a discussion of ESP-IDF bootloader binary size, see Bootloader Size.
Espressif Systems 1451
Submit Document Feedback
Release v4.4