diff --git a/.gitignore b/.gitignore index 93ceeaa4..d6b55809 100644 --- a/.gitignore +++ b/.gitignore @@ -304,3 +304,18 @@ tpm/evp_tpm **/main/build/CMakeFiles/* **/build/* +# VisualGDB +**/.visualgdb + +# Espressif sdk config default should be saved in sdkconfig.defaults +# we won't track the actual working sdkconfig files +/ESP32/**/sdkconfig +/ESP32/**/sdkconfig.old +/ESP32/**/sdkconfig.bak + +# the solution files are not needed (Visual Studio will generated them) +/ESP32/**/*.sln + +# auto-created CMake backups +**/CMakeLists.txt.old + diff --git a/ESP32/README.md b/ESP32/README.md index 1ae60a28..d9f285f2 100644 --- a/ESP32/README.md +++ b/ESP32/README.md @@ -1,5 +1,12 @@ # wolfSSL ESP32 Examples +These are wolfSSL TLS 1.3 clients and servers for both wired and wireless Internet. + +Note: wolfSSL v5.5.4 or newer is needed to use these examples with ESP-IDF v5. + +See the [setup scripts](https://github.com/wolfSSL/wolfssl/tree/master/IDE/Espressif/ESP-IDF) to install. + + ## ESP32 TLS 1.3 Server - [Wireless STA server](./TLS13-wifi_station-server/README.md) @@ -39,7 +46,7 @@ coming soon: ## ESP-IDF Although the examples were created using VisualGDB extension for Visual Studio, the -examples can be compiled using the ESP-IDF. +examples can of course be compiled using the ESP-IDF `idf.py`. Once the EDP-IDF is installed, use the [setp_win.bat](https://github.com/wolfSSL/wolfssl/blob/master/IDE/Espressif/ESP-IDF/setup_win.bat) to copy wolfSSL files to the `esp-idf\components` directory, typically in @@ -54,12 +61,39 @@ cd wolfssl\IDE\Espressif\ESP-IDF\ .\setup_win.bat ``` -# Tips +Build with VisualGDB toolchain from WSL +``` +. /mnt/c/SysGCC/esp32/esp-idf/v5.0/export.sh +idf.py -b 115200 -p /dev/ttyS15 build flash monitor +``` + + +## Tips If JTAG gets into a mode where it is simply always returning an error (app continually resetting) try using serial port to program a basic, operational ["hello world"](./ESP32-hello-world/README.md). The Arduino IDE or command-line ESP-IDF can be handy here. +## Toolchain Switching in VisualGDB + +Due to occasional difficulty in switching between toolchains, separate VisualGDB solution +files are included for ESP-IDF v4.4.1 and v5.0. + +See the `ProjectModeSettings` of the respective .`vgdbproj` file: + +``` + + + release/v5.0 + esp-idf/v5.0 + ESPIDF + + COM20 + false + false + ESP32 + +``` ## See also: diff --git a/ESP32/TLS13-enc28j60.sln b/ESP32/TLS13-enc28j60.sln deleted file mode 100644 index 84e812e5..00000000 --- a/ESP32/TLS13-enc28j60.sln +++ /dev/null @@ -1,47 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31729.503 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{7087FBCD-E3BF-44F5-BA16-5A9B41782406}" - ProjectSection(SolutionItems) = preProject - README-output.txt = README-output.txt - README.md = README.md - EndProjectSection -EndProject -Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "TLS13-ENC28J60-server", "TLS13-ENC28J60-server\TLS13-ENC28J60-server.vgdbproj", "{78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}" -EndProject -Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "TLS13-enc28j60-client", "TLS13-ENC28J60-client\TLS13-enc28j60-client.vgdbproj", "{67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|VisualGDB = Debug|VisualGDB - Release|VisualGDB = Release|VisualGDB - Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB - Tests (Release)|VisualGDB = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB - {78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}.Debug|VisualGDB.Build.0 = Debug|VisualGDB - {78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}.Release|VisualGDB.ActiveCfg = Release|VisualGDB - {78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}.Release|VisualGDB.Build.0 = Release|VisualGDB - {78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB - {78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB - {78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB - {78B33F2B-5B03-4D34-BAF6-82060DD9FA8F}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB - {67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB - {67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}.Debug|VisualGDB.Build.0 = Debug|VisualGDB - {67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}.Release|VisualGDB.ActiveCfg = Release|VisualGDB - {67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}.Release|VisualGDB.Build.0 = Release|VisualGDB - {67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB - {67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB - {67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB - {67AFCF00-979E-40FB-AE8A-CDEB4F8EE7DC}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {65BE29BE-BAE2-4235-9F23-0B1E199AB7BB} - EndGlobalSection -EndGlobal diff --git a/ESP32/TLS13-wifi.sln b/ESP32/TLS13-wifi.sln deleted file mode 100644 index af56530f..00000000 --- a/ESP32/TLS13-wifi.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31729.503 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{7087FBCD-E3BF-44F5-BA16-5A9B41782406}" - ProjectSection(SolutionItems) = preProject - README-output.txt = README-output.txt - README.md = README.md - EndProjectSection -EndProject -Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "TLS13-wifi_station-client", "TLS13-wifi_station-client\TLS13-wifi_station-client.vgdbproj", "{4904362E-3B9F-44CC-9C44-740B27FDFBE5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|VisualGDB = Debug|VisualGDB - Release|VisualGDB = Release|VisualGDB - Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB - Tests (Release)|VisualGDB = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Debug|VisualGDB.Build.0 = Debug|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Release|VisualGDB.ActiveCfg = Release|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Release|VisualGDB.Build.0 = Release|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {65BE29BE-BAE2-4235-9F23-0B1E199AB7BB} - EndGlobalSection -EndGlobal diff --git a/ESP32/TLS13-wifi_station-client/TLS13-client.sln b/ESP32/TLS13-wifi_station-client/TLS13-client.sln deleted file mode 100644 index 842994b3..00000000 --- a/ESP32/TLS13-wifi_station-client/TLS13-client.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31729.503 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "TLS13-client", "TLS13-client.vgdbproj", "{4904362E-3B9F-44CC-9C44-740B27FDFBE5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|VisualGDB = Debug|VisualGDB - Release|VisualGDB = Release|VisualGDB - Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB - Tests (Release)|VisualGDB = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Debug|VisualGDB.Build.0 = Debug|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Release|VisualGDB.ActiveCfg = Release|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Release|VisualGDB.Build.0 = Release|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E0F17030-83D2-4967-AF75-777516FF525D} - EndGlobalSection -EndGlobal diff --git a/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client.sln b/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client.sln deleted file mode 100644 index d9ab8887..00000000 --- a/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31729.503 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "TLS13-client", "TLS13-wifi_station-client.vgdbproj", "{4904362E-3B9F-44CC-9C44-740B27FDFBE5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|VisualGDB = Debug|VisualGDB - Release|VisualGDB = Release|VisualGDB - Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB - Tests (Release)|VisualGDB = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Debug|VisualGDB.Build.0 = Debug|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Release|VisualGDB.ActiveCfg = Release|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Release|VisualGDB.Build.0 = Release|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB - {4904362E-3B9F-44CC-9C44-740B27FDFBE5}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E0F17030-83D2-4967-AF75-777516FF525D} - EndGlobalSection -EndGlobal diff --git a/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client.vgdbproj b/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client_v4.4.1.vgdbproj similarity index 95% rename from ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client.vgdbproj rename to ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client_v4.4.1.vgdbproj index 3f5ac37c..cb4b448a 100644 --- a/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client.vgdbproj +++ b/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client_v4.4.1.vgdbproj @@ -1,220 +1,224 @@ - - - - - - Unknown - - true - - eb963948-ff31-4e03-878f-5cd21b92f36b - true - true - SourceDirs - - - - - - com.visualgdb.xtensa-esp32-elf - - 8.4.0 - 8.1.0 - 7 - - - DEBUG - build/$(PlatformName)/$(ConfigurationName) - - false - $(ToolchainNinja) - $(BuildDir) - - - - false - $(SYSPROGS_CMAKE_PATH) - - - true - false - false - Ninja - false - RemoveBuildDirectory - false - - - true - true - true - false - true - false - true - HideOuterProjectTargets - true - false - true - - true - 4904362e-3b9f-44cc-9c44-740b27fdfbe5 - - Upper - HeaderDirectoryAndSubdirectories - true - - - release/v4.4 - esp-idf/v4.4 - ESPIDF - - COM20 - false - false - ESP32 - - - - - - - - - - - - - - - Default - - - - COM20 - - 115200 - 8 - None - One - None - - - 0 - false - false - false - ASCII - - - 255 - 0 - 0 - 0 - - - 255 - 169 - 169 - 169 - - - 255 - 211 - 211 - 211 - - - 255 - 144 - 238 - 144 - - - 255 - 169 - 169 - 169 - - - - 16 - true - true - true - true - 0 - - LF - false - false - false - - - - true - - - - Unknown - - true - true - true - - - - false - - - - - Debug - - - - Release - - - - - - - - false - false - false - false - false - false - false - false - false - - false - false - false - false - false - false - true - false - None - false - false - app_main - true - false - false - true - 0 - false - 0 - true - false - - - openocd + + + + + + Unknown + + true + + eb963948-ff31-4e03-878f-5cd21b92f36b + true + true + SourceDirs + + + + + + com.visualgdb.xtensa-esp32-elf + + 8.4.0 + 8.1.0 + 9 + + + + DEBUG + build/$(PlatformName)/$(ConfigurationName) + + false + $(ToolchainNinja) + $(BuildDir) + + + + false + $(SYSPROGS_CMAKE_PATH) + + + true + false + false + Ninja + false + RemoveBuildDirectory + false + + + true + true + true + false + true + false + true + HideOuterProjectTargets + true + false + true + + + true + 4904362e-3b9f-44cc-9c44-740b27fdfbe5 + + Upper + HeaderDirectoryAndSubdirectories + true + + + v4.4.1 + esp-idf/v4.4.1 + ESPIDF + + COM20 + false + false + ESP32 + + + + + + + + + + + + + + + Default + + + + COM20 + + 115200 + 8 + None + One + None + + + 0 + false + false + false + ASCII + + + 255 + 0 + 0 + 0 + + + 255 + 169 + 169 + 169 + + + 255 + 211 + 211 + 211 + + + 255 + 144 + 238 + 144 + + + 255 + 169 + 169 + 169 + + + + 16 + true + true + true + true + 0 + + LF + false + false + false + + + + true + + + + + Unknown + + true + true + true + + + + false + + + + + Debug + + + + Release + + + + + + + + + false + false + false + false + false + false + false + false + false + + false + false + false + false + false + false + true + false + None + false + false + app_main + true + false + false + true + 0 + false + 0 + true + false + + + openocd -f interface/jlink.cfg -c "adapter_khz 3000" -f target/esp32.cfg @@ -245,21 +249,21 @@ DIO true - - - true - Auto - 0 - false - false - true - false - false - - _estack - 0 - false - - true - + + + true + Auto + 0 + false + false + true + false + false + + _estack + 0 + false + + true + \ No newline at end of file diff --git a/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client_v5.0.vgdbproj b/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client_v5.0.vgdbproj new file mode 100644 index 00000000..8a66c68e --- /dev/null +++ b/ESP32/TLS13-wifi_station-client/TLS13-wifi_station-client_v5.0.vgdbproj @@ -0,0 +1,345 @@ + + + + + + Unknown + + true + + eb963948-ff31-4e03-878f-5cd21b92f36b + true + true + SourceDirs + + + 30 + 60 + 5 + 5 + + + + + + com.visualgdb.xtensa-esp32-elf + + 11.2.0 + 9.2.90 + 2 + + + + DEBUG + build/$(PlatformName)/$(ConfigurationName) + + false + + BuildMachine + BuiltinShortcut + + $(ToolchainNinja) + $(BuildDir) + + + + false + + BuildMachine + BuiltinShortcut + + $(SYSPROGS_CMAKE_PATH) + + + true + false + false + Ninja + false + RemoveBuildDirectory + false + + + true + true + true + false + true + false + true + HideOuterProjectTargets + true + false + true + + + true + 4904362e-3b9f-44cc-9c44-740b27fdfbe5 + + Upper + HeaderDirectoryAndSubdirectories + true + + + release/v5.0 + esp-idf/v5.0 + ESPIDF + + COM20 + false + false + ESP32 + + + + + + + + + + + + + + + Default + + false + + BuildMachine + BuiltinShortcut + + + + + + + COM20 + + 115200 + 8 + None + One + None + + + 0 + false + false + false + ASCII + + + 255 + 0 + 0 + 0 + + + 255 + 169 + 169 + 169 + + + 255 + 211 + 211 + 211 + + + 255 + 144 + 238 + 144 + + + 255 + 169 + 169 + 169 + + + + 16 + true + true + true + true + 0 + + LF + false + false + false + + + + true + + + + + True + + true + true + + Enabled + true + true + true + + true + + + + false + + apiModeling.google.GTest + core.builtin.BuiltinFunctions + core.builtin.NoReturnFunctions + core.CallAndMessage + core.DivideZero + core.DynamicTypePropagation + core.NonnilStringConstants + core.NonNullParamChecker + core.NullDereference + core.StackAddressEscape + core.UndefinedBinaryOperatorResult + core.uninitialized.ArraySubscript + core.uninitialized.Assign + core.uninitialized.Branch + core.uninitialized.CapturedBlockVariable + core.uninitialized.UndefReturn + core.VLASize + cplusplus.NewDelete + cplusplus.NewDeleteLeaks + cplusplus.SelfAssignment + deadcode.DeadStores + nullability.NullPassedToNonnull + nullability.NullReturnedFromNonnull + security.insecureAPI.getpw + security.insecureAPI.gets + security.insecureAPI.mkstemp + security.insecureAPI.mktemp + security.insecureAPI.UncheckedReturn + security.insecureAPI.vfork + unix.API + unix.cstring.BadSizeArg + unix.cstring.NullArg + unix.Malloc + unix.MallocSizeof + unix.MismatchedDeallocator + unix.StdCLibraryFunctions + unix.Vfork + + + -analyzer-store=region + -analyzer-opt-analyze-nested-blocks + -analyzer-eagerly-assume + + + + + + Debug + + + + Release + + + + + + + + + + + + + false + false + false + false + false + false + false + false + false + + false + false + false + false + false + false + true + false + None + false + false + app_main + true + false + false + true + 0 + false + 0 + true + false + + + openocd + + -f interface/tigard.cfg -c "adapter_khz 13000" -f target/esp32.cfg + + + + false + + 131072 + Enabled + + set remotetimeout 60 + target remote :$$SYS:GDB_PORT$$ + mon gdb_breakpoint_override hard + mon reset halt + load + + false + 0 + 0 + false + + 5000 + 1 + true + + size2MB + freq40M + DIO + + true + + + true + Disabled + 0 + false + false + true + false + false + + _estack + 0 + false + + true + + \ No newline at end of file diff --git a/ESP32/TLS13-wifi_station-client/main/station_example_main.c b/ESP32/TLS13-wifi_station-client/main/station_example_main.c index 795cf0f1..a35990ed 100644 --- a/ESP32/TLS13-wifi_station-client/main/station_example_main.c +++ b/ESP32/TLS13-wifi_station-client/main/station_example_main.c @@ -35,7 +35,7 @@ #include #ifdef WOLFSSL_TRACK_MEMORY -#include + #include #endif @@ -52,15 +52,17 @@ #define USE_MY_PRIVATE_CONFIG #ifdef USE_MY_PRIVATE_CONFIG -#include "/workspace/my_private_config.h" + #include "/workspace/my_private_config.h" #else -/* The examples use WiFi configuration that you can set via project configuration menu - - If you'd rather not, just change the below entries to strings with - the config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid" -*/ -#define EXAMPLE_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID -#define EXAMPLE_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD + /* + ** The examples use WiFi configuration that you can set via project + ** configuration menu + ** + ** If you'd rather not, just change the below entries to strings with + ** the config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid" + */ + #define EXAMPLE_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID + #define EXAMPLE_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD #endif /* ESP lwip */ @@ -72,15 +74,15 @@ #define TLS_SMP_CLIENT_TASK_WORDS 10240 #define TLS_SMP_CLIENT_TASK_PRIORITY 8 -#define TLS_SMP_TARGET_HOST "192.168.1.144" +#define TLS_SMP_TARGET_HOST "192.168.25.114" -/* include certificates. Note that there is an experiation date! - * +/* include certificates. Note that there is an experiation date! + * * See also https://github.com/wolfSSL/wolfssl/blob/master/wolfssl/certs_test.h - + for example: - + #define USE_CERT_BUFFERS_2048 #include */ @@ -129,28 +131,41 @@ static void event_handler(void* arg, esp_event_base_t event_base, { if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) { esp_wifi_connect(); - } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { - if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) { - esp_wifi_connect(); - s_retry_num++; - ESP_LOGI(TAG, "retry to connect to the AP"); - } else { - xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); + } + else { + if ( event_base == WIFI_EVENT + && + event_id == WIFI_EVENT_STA_DISCONNECTED) { + + /* WiFi disconnected event */ + if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) { + esp_wifi_connect(); + s_retry_num++; + ESP_LOGI(TAG, "retry to connect to the AP"); + } + else { + xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); + } + ESP_LOGI(TAG, "connect to the AP fail"); + } /* is WiFi disconnected event */ + else { + if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { + ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; + ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); + s_retry_num = 0; + xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); + } /* is got IP event */ } - ESP_LOGI(TAG,"connect to the AP fail"); - } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { - ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; - ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); - s_retry_num = 0; - xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); } } int set_time() { /* we'll also return a result code of zero */ int res = 0; - - //*ideally, we'd like to set time from network, but let's set a default time, just in case */ + + /* ideally, we'd like to set time from network, + ** but let's set a default time, just in case + */ struct tm timeinfo; timeinfo.tm_year = 2022 - 1900; timeinfo.tm_mon = 3; @@ -162,18 +177,18 @@ int set_time() { t = mktime(&timeinfo); struct timeval now = { .tv_sec = t }; - settimeofday(&now, NULL); + settimeofday(&now, NULL); /* set timezone */ setenv("TZ", TIME_ZONE, 1); tzset(); - /* next, let's setup NTP time servers - * + /* next, let's setup NTP time servers + * * see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/system_time.html#sntp-time-synchronization */ sntp_setoperatingmode(SNTP_OPMODE_POLL); - + int i = 0; for (i = 0; i < NTP_SERVER_COUNT; i++) { const char* thisServer = ntpServerList[i]; @@ -269,40 +284,32 @@ int tls_smp_client_task() { size_t len; /* we'll be looking at the length of messages sent and received */ struct hostent *hp; struct ip4_addr *ip4_addr; - - struct timeval tv_now; - WOLFSSL_ENTER("tls_smp_client_task"); /* see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/system_time.html#overview */ - // ret = gettimeofday(&tv_now, NULL); - /* 0x0005dcacd95af765 */ - // int64_t time_us = (int64_t)tv_now.tv_sec * 1000000L + (int64_t)tv_now.tv_usec; - - // WOLFSSL_MSG(time_us) ; - + /* declare wolfSSL objects */ WOLFSSL_CTX *ctx = NULL; /* the wolfSSL context object*/ WOLFSSL *ssl = NULL; /* although called "ssl" is is the secure object for reading and writings data*/ #ifdef DEBUG_WOLFSSL - WOLFSSL_MSG("Debug ON"); + ESP_LOGI(TAG,"Debug ON"); wolfSSL_Debugging_ON(); - //ShowCiphers(); + /* ShowCiphers(); */ #endif - + /* Initialize the server address struct with zeros */ memset(&servAddr, 0, sizeof(servAddr)); /* Fill in the server address */ servAddr.sin_family = AF_INET; /* using IPv4 */ - servAddr.sin_port = htons(DEFAULT_PORT); /* on DEFAULT_PORT */ + servAddr.sin_port = htons(DEFAULT_PORT); /* on DEFAULT_PORT */ + + - - ESP_LOGI(TAG, "get target IP address"); hp = gethostbyname(TLS_SMP_TARGET_HOST); @@ -314,133 +321,136 @@ int tls_smp_client_task() { ip4_addr = (struct ip4_addr *)hp->h_addr; ESP_LOGI(TAG, IPSTR, IP2STR(ip4_addr)); } - + if (*targetServer >= '1' && *targetServer <= '9') { /* Get the server IPv4 address from the command line call */ - WOLFSSL_MSG("inet_pton"); + ESP_LOGI(TAG,"inet_pton"); if ((ret = inet_pton(AF_INET, TLS_SMP_TARGET_HOST, &servAddr.sin_addr)) != 1) { ESP_LOGE(TAG, "ERROR: invalid address ret=%d\n", ret); ret = WOLFSSL_FAILURE; - WOLFSSL_ERROR_MSG("ERROR: invalid address\n"); + ESP_LOGE(TAG, "ERROR: invalid address\n"); } } else { servAddr.sin_addr.s_addr = ip4_addr->addr; } - - /* + + /* *************************************************************************** * Create a socket that uses an internet IPv4 address, * Sets the socket to be stream based (TCP), * 0 means choose the default protocol. - * + * * #include * - * int socket(int domain, int type, int protocol); - * + * int socket(int domain, int type, int protocol); + * * see: https://linux.die.net/man/3/socket *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { - /* Upon successful completion, socket() shall return + /* Upon successful completion, socket() shall return * a non-negative integer, the socket file descriptor. */ sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd > 0) { - WOLFSSL_MSG("socket creation successful\n"); + ESP_LOGI(TAG,"socket creation successful\n"); } else { - // TODO show errno + // TODO show errno ret = WOLFSSL_FAILURE; - WOLFSSL_ERROR_MSG("ERROR: failed to create a socket.\n"); + ESP_LOGE(TAG, "ERROR: failed to create a socket.\n"); } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("Skipping socket create.\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "Skipping socket create.\n"); } - - /* + + /* *************************************************************************** - * Connect the TCP socket to the server (no encryption yet!) - * + * Connect the TCP socket to the server (no encryption yet!) + * * #include * int connect(int socket, const struct sockaddr *address, socklen_t address_len); - * + * * See https://linux.die.net/man/3/connect *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { /* - * Upon successful completion, socket() shall return a non-negative integer, - * the socket file descriptor. - * - * Upon successful completion, connect() shall return 0; otherwise, + * Upon successful completion, socket() shall return a non-negative integer, + * the socket file descriptor. + * + * Upon successful completion, connect() shall return 0; otherwise, * -1 shall be returned and errno set to indicate the error. */ - int connectResult = connect(sockfd, (struct sockaddr*) &servAddr, sizeof(servAddr)); + int connectResult = connect(sockfd, + (struct sockaddr*) &servAddr, + sizeof(servAddr) + ); if (0 == connectResult) { - WOLFSSL_MSG("sockfd connect successful\n"); + ESP_LOGI(TAG,"sockfd connect successful\n"); } else { // TODO show errno - WOLFSSL_ERROR_MSG("ERROR: socket connect failed\n"); + ESP_LOGE(TAG, "ERROR: socket connect failed\n"); ret = WOLFSSL_FAILURE; } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("Skipping socket connect.\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "Skipping socket connect.\n"); } - - - /* + + + /* *************************************************************************** - * Initialize wolfSSL - * + * Initialize wolfSSL + * * WOLFSSL_API int wolfSSL_Init (void) * - * Initializes the wolfSSL library for use. Must be called once per + * Initializes the wolfSSL library for use. Must be called once per * application and before any other call to the library. * * Returns * SSL_SUCCESS If successful the call will return. * BAD_MUTEX_E is an error that may be returned. * WC_INIT_E wolfCrypt initialization error returned. - * + * * see: https://www.wolfssl.com/doxygen/group__TLS.html#gae2a25854de5230820a6edf16281d8fd7 *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { /* only proceed if the prior step was successful */ - WOLFSSL_MSG("calling wolfSSL_Init"); + ESP_LOGI(TAG,"calling wolfSSL_Init"); ret = wolfSSL_Init(); if (ret == WOLFSSL_SUCCESS) { - WOLFSSL_MSG("wolfSSL_Init successful\n"); + ESP_LOGI(TAG,"wolfSSL_Init successful\n"); } else { - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_Init failed\n"); + ESP_LOGE(TAG, "ERROR: wolfSSL_Init failed\n"); } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("Skipping wolfSSL_Init\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "Skipping wolfSSL_Init\n"); } - - /* + + /* *************************************************************************** * Create and initialize WOLFSSL_CTX (aka the context) - * + * * WOLFSSL_API WOLFSSL_CTX* wolfSSL_CTX_new (WOLFSSL_METHOD *) - * - * This function creates a new SSL context, taking a desired + * + * This function creates a new SSL context, taking a desired * SSL/TLS protocol method for input. * * Returns @@ -448,112 +458,112 @@ int tls_smp_client_task() { * NULL upon failure. * * Parameters - * method pointer to the desired WOLFSSL_METHOD to use for the SSL context. + * method pointer to the desired WOLFSSL_METHOD to use for the SSL context. * This is created using one of the wolfSSLvXX_XXXX_method() functions to * specify SSL/TLS/DTLS protocol level. - * + * * see https://www.wolfssl.com/doxygen/group__Setup.html#gadfa552e771944a6a1102aa43f45378b5 *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { WOLFSSL_METHOD* method = wolfTLSv1_3_client_method(); if (method == NULL) { - WOLFSSL_ERROR_MSG("ERROR : failed to get wolfTLSv1_3_client_method.\n"); + ESP_LOGE(TAG, "ERROR : failed to get wolfTLSv1_3_client_method.\n"); ret = WOLFSSL_FAILURE; } else { ctx = wolfSSL_CTX_new(method); if (ctx == NULL) { - WOLFSSL_ERROR_MSG("ERROR : failed to create WOLFSSL_CTX\n"); + ESP_LOGE(TAG, "ERROR : failed to create WOLFSSL_CTX\n"); ret = WOLFSSL_FAILURE; } } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("skipping wolfSSL_CTX_new\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "skipping wolfSSL_CTX_new\n"); } - - - /* + + + /* *************************************************************************** - * load CERT_FILE - * - * + * load CERT_FILE + * + * * WOLFSSL_API int wolfSSL_use_certificate_buffer (WOLFSSL * , * const unsigned char * , * long, - * int + * int * ) - * - * The wolfSSL_use_certificate_buffer() function loads a certificate buffer - * into the WOLFSSL object. It behaves like the non-buffered version, only - * differing in its ability to be called with a buffer as input instead of - * a file. The buffer is provided by the in argument of size sz. - * - * format specifies the format type of the buffer; SSL_FILETYPE_ASN1 or + * + * The wolfSSL_use_certificate_buffer() function loads a certificate buffer + * into the WOLFSSL object. It behaves like the non-buffered version, only + * differing in its ability to be called with a buffer as input instead of + * a file. The buffer is provided by the in argument of size sz. + * + * format specifies the format type of the buffer; SSL_FILETYPE_ASN1 or * SSL_FILETYPE_PEM. Please see the examples for proper usage. - * + * * Returns * SSL_SUCCESS upon success. * SSL_BAD_FILETYPE will be returned if the file is the wrong format. * SSL_BAD_FILE will be returned if the file doesn’t exist, can’t be read, or is corrupted. * MEMORY_E will be returned if an out of memory condition occurs. * ASN_INPUT_E will be returned if Base16 decoding fails on the file. - * + * * Parameters * ssl pointer to the SSL session, created with wolfSSL_new(). * in buffer containing certificate to load. * sz size of the certificate located in buffer. * format format of the certificate to be loaded. Possible values are SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. - * + * * * Pay attention to expiration dates and the current date setting - * + * * see https://www.wolfssl.com/doxygen/group__CertsKeys.html#gaf4e8d912f3fe2c37731863e1cad5c97e *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { - WOLFSSL_MSG("Loading cert"); - ret = wolfSSL_CTX_use_certificate_buffer(ctx, - CERT_FILE, - sizeof_CERT_FILE(), + ESP_LOGI(TAG, "Loading cert"); + ret = wolfSSL_CTX_use_certificate_buffer(ctx, + CERT_FILE, + sizeof_CERT_FILE(), WOLFSSL_FILETYPE_PEM); if (ret == WOLFSSL_SUCCESS) { - WOLFSSL_MSG("wolfSSL_CTX_use_certificate_buffer successful\n"); + ESP_LOGI(TAG, "wolfSSL_CTX_use_certificate_buffer successful\n"); } else { - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_CTX_use_certificate_buffer failed\n"); + ESP_LOGE(TAG, "ERROR: wolfSSL_CTX_use_certificate_buffer failed\n"); } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("skipping wolfSSL_CTX_use_certificate_buffer\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "skipping wolfSSL_CTX_use_certificate_buffer\n"); } - - - /* + + + /* *************************************************************************** - * Load client private key into WOLFSSL_CTX - * + * Load client private key into WOLFSSL_CTX + * * wolfSSL_CTX_use_PrivateKey_buffer() - * + * * WOLFSSL_API int wolfSSL_CTX_use_PrivateKey_buffer(WOLFSSL_CTX *, * const unsigned char *, * long, - * int + * int * ) * - * This function loads a private key buffer into the SSL Context. - * It behaves like the non-buffered version, only differing in its - * ability to be called with a buffer as input instead of a file. - * - * The buffer is provided by the in argument of size sz. format - * specifies the format type of the buffer; - * SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. - * + * This function loads a private key buffer into the SSL Context. + * It behaves like the non-buffered version, only differing in its + * ability to be called with a buffer as input instead of a file. + * + * The buffer is provided by the in argument of size sz. format + * specifies the format type of the buffer; + * SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. + * * Please see the examples for proper usage. * * Returns @@ -567,65 +577,65 @@ int tls_smp_client_task() { * Parameters * ctx pointer to the SSL context, created with wolfSSL_CTX_new(). * inthe input buffer containing the private key to be loaded. - * + * * sz the size of the input buffer. - * - * format the format of the private key located in the input buffer(in). + * + * format the format of the private key located in the input buffer(in). * Possible values are SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. * * see: https://www.wolfssl.com/doxygen/group__CertsKeys.html#ga71850887b87138b7c2d794bf6b1eafab *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { - ret = wolfSSL_CTX_use_PrivateKey_buffer(ctx, - KEY_FILE, - sizeof_KEY_FILE(), + ret = wolfSSL_CTX_use_PrivateKey_buffer(ctx, + KEY_FILE, + sizeof_KEY_FILE(), WOLFSSL_FILETYPE_PEM); if (ret == WOLFSSL_SUCCESS) { - WOLFSSL_MSG("wolfSSL_CTX_use_PrivateKey_buffer successful\n"); + ESP_LOGI(TAG, "wolfSSL_CTX_use_PrivateKey_buffer successful\n"); } else { /* TODO fetch and print expiration date since it is a common fail */ - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_CTX_use_PrivateKey_buffer failed\n"); + ESP_LOGE(TAG, "ERROR: wolfSSL_CTX_use_PrivateKey_buffer failed\n"); } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("Skipping wolfSSL_CTX_use_PrivateKey_buffer\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "Skipping wolfSSL_CTX_use_PrivateKey_buffer\n"); } - - /* + + /* *************************************************************************** - * Load CA certificate into WOLFSSL_CTX - * + * Load CA certificate into WOLFSSL_CTX + * * wolfSSL_CTX_load_verify_buffer() * WOLFSSL_API int wolfSSL_CTX_load_verify_buffer(WOLFSSL_CTX *, * const unsigned char *, * long, - * int - * ) - * - * This function loads a CA certificate buffer into the WOLFSSL Context. - * It behaves like the non-buffered version, only differing in its ability - * to be called with a buffer as input instead of a file. The buffer is - * provided by the in argument of size sz. format specifies the format type - * of the buffer; SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. More than one + * int + * ) + * + * This function loads a CA certificate buffer into the WOLFSSL Context. + * It behaves like the non-buffered version, only differing in its ability + * to be called with a buffer as input instead of a file. The buffer is + * provided by the in argument of size sz. format specifies the format type + * of the buffer; SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. More than one * CA certificate may be loaded per buffer as long as the format is in PEM. - * + * * Please see the examples for proper usage. - * + * * Returns - * + * * SSL_SUCCESS upon success * SSL_BAD_FILETYPE will be returned if the file is the wrong format. * SSL_BAD_FILE will be returned if the file doesn’t exist, can’t be read, or is corrupted. * MEMORY_E will be returned if an out of memory condition occurs. * ASN_INPUT_E will be returned if Base16 decoding fails on the file. * BUFFER_E will be returned if a chain buffer is bigger than the receiving buffer. - * + * * Parameters - * + * * ctx pointer to the SSL context, created with wolfSSL_CTX_new(). * in pointer to the CA certificate buffer. * sz size of the input CA certificate buffer, in. @@ -637,130 +647,130 @@ int tls_smp_client_task() { if (ret == WOLFSSL_SUCCESS) { ret = wolfSSL_CTX_load_verify_buffer(ctx, CA_FILE, sizeof_CA_FILE(), WOLFSSL_FILETYPE_PEM); if (ret == WOLFSSL_SUCCESS) { - WOLFSSL_MSG("wolfSSL_CTX_load_verify_buffer successful\n"); + ESP_LOGI(TAG, "wolfSSL_CTX_load_verify_buffer successful\n"); } else { - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_CTX_load_verify_buffer failed\n"); + ESP_LOGE(TAG, "ERROR: wolfSSL_CTX_load_verify_buffer failed\n"); } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("skipping wolfSSL_CTX_load_verify_buffer\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "skipping wolfSSL_CTX_load_verify_buffer\n"); } - - - /* + + + /* *************************************************************************** - * Create a WOLFSSL object - * - * The wolfSSL_new() function creates a new SSL session, taking an already + * Create a WOLFSSL object + * + * The wolfSSL_new() function creates a new SSL session, taking an already * created SSL context as input. * * wolfSSL_new() Returns: - * - * If successful the call will return a pointer to the newly-created + * + * If successful the call will return a pointer to the newly-created * wolfSSL structure. - * + * * NULL Upon failure. - * + * * Parameters: WOLFSSL_API WOLFSSL* wolfSSL_new(WOLFSSL_CTX *) - * + * * ctx pointer to the SSL context, created with wolfSSL_CTX_new(). * * See: https://www.wolfssl.com/doxygen/group__Setup.html#ga3b1873a50ef7fcee4e2cc8968c81b6c9 - * + * *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { ssl = wolfSSL_new(ctx); if (ssl == NULL) { - WOLFSSL_ERROR_MSG("ERROR : failed to create WOLFSSL object\n"); + ESP_LOGE(TAG, "ERROR : failed to create WOLFSSL object\n"); ret = WOLFSSL_FAILURE; } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("skipping wolfSSL_new\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "skipping wolfSSL_new\n"); } - /* + /* *************************************************************************** * Attach wolfSSL to the socket using wolfSSL_set_fd() - * - * This function assigns a file descriptor (fd) as the input/output - * facility for the SSL connection. Typically this will be a socket + * + * This function assigns a file descriptor (fd) as the input/output + * facility for the SSL connection. Typically this will be a socket * file descriptor. - * + * * wolfSSL_set_fd returns: - * + * * SSL_SUCCESS upon success. * Bad_FUNC_ARG upon failure. - * + * * Parameters: - * + * * ssl pointer to the SSL session, created with wolfSSL_new(). * fd file descriptor to use with SSL/TLS connection. - * + * * see https://www.wolfssl.com/doxygen/group__Setup.html#ga4f23ec6e60cc92e0e899071653d3188b *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { ret = wolfSSL_set_fd(ssl, sockfd); if (ret == WOLFSSL_SUCCESS) { - WOLFSSL_MSG("wolfSSL_set_fd successful\n"); + ESP_LOGI(TAG, "wolfSSL_set_fd successful\n"); } else { - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_set_fd failed\n"); + ESP_LOGE(TAG, "ERROR: wolfSSL_set_fd failed\n"); } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("skipping wolfSSL_set_fd\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "skipping wolfSSL_set_fd\n"); } - /* + /* *************************************************************************** - * Connect to wolfSSL on the server side - * - * This function is called on the client side and initiates an SSL/TLS - * handshake with a server. When this function is called, the underlying - * communication channel has already been set up. wolfSSL_connect() works - * with both blocking and non-blocking I/O. When the underlying I/O is - * non-blocking, wolfSSL_connect() will return when the underlying I/O - * could not satisfy the needs of wolfSSL_connect to continue the - * handshake. - * - * In this case, a call to wolfSSL_get_error() will yield either - * SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE. The calling process must - * then repeat the call to wolfSSL_connect() when the underlying I/O - * is ready and wolfSSL will pick up where it left off. - * - * When using a non-blocking socket, nothing needs to be done, - * but select() can be used to check for the required condition. - * - * If the underlying I/O is blocking, wolfSSL_connect() will only return - * once the handshake has been finished or an error occurred. wolfSSL takes - * a different approach to certificate verification than OpenSSL does. - * - * The default policy for the client is to verify the server, this means - * that if you don't load CAs to verify the server you'll get a connect - * error, unable to verify (-155). - * - * If you want to mimic OpenSSL behavior of having SSL_connect succeed even - * if verifying the server fails and reducing security you can do this by - * calling: SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); before + * Connect to wolfSSL on the server side + * + * This function is called on the client side and initiates an SSL/TLS + * handshake with a server. When this function is called, the underlying + * communication channel has already been set up. wolfSSL_connect() works + * with both blocking and non-blocking I/O. When the underlying I/O is + * non-blocking, wolfSSL_connect() will return when the underlying I/O + * could not satisfy the needs of wolfSSL_connect to continue the + * handshake. + * + * In this case, a call to wolfSSL_get_error() will yield either + * SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE. The calling process must + * then repeat the call to wolfSSL_connect() when the underlying I/O + * is ready and wolfSSL will pick up where it left off. + * + * When using a non-blocking socket, nothing needs to be done, + * but select() can be used to check for the required condition. + * + * If the underlying I/O is blocking, wolfSSL_connect() will only return + * once the handshake has been finished or an error occurred. wolfSSL takes + * a different approach to certificate verification than OpenSSL does. + * + * The default policy for the client is to verify the server, this means + * that if you don't load CAs to verify the server you'll get a connect + * error, unable to verify (-155). + * + * If you want to mimic OpenSSL behavior of having SSL_connect succeed even + * if verifying the server fails and reducing security you can do this by + * calling: SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); before * calling SSL_new(); Though it's not recommended. - * + * * Returns: - * + * * SSL_SUCCESS If successful. - * SSL_FATAL_ERROR will be returned if an error occurred. To get a more + * SSL_FATAL_ERROR will be returned if an error occurred. To get a more * detailed error code, call wolfSSL_get_error(). - * + * * Parameters: - * + * * ssl a pointer to a WOLFSSL structure, created using wolfSSL_new(). * * see: https://www.wolfssl.com/doxygen/group__IO.html#ga5b8f41cca120758d1860c7bc959755dd @@ -769,58 +779,58 @@ int tls_smp_client_task() { if (ret == WOLFSSL_SUCCESS) { ret = wolfSSL_connect(ssl); if (ret == WOLFSSL_SUCCESS) { - WOLFSSL_MSG("wolfSSL_connect successful\n"); + ESP_LOGI(TAG, "wolfSSL_connect successful\n"); } else { - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_connect failed\n"); + ESP_LOGE(TAG, "ERROR: wolfSSL_connect failed\n"); } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("skipping wolfSSL_connect\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "skipping wolfSSL_connect\n"); } - + /* *************************************************************************** - * send the message to the server - * - * The wolfSSL_write() function writes sz bytes from the buffer, data, to - * the SSL connection, ssl. If necessary, wolfSSL_write() will negotiate an - * SSL/TLS session if the handshake has not already been performed yet by - * wolfSSL_connect() or wolfSSL_accept(). wolfSSL_write() works with both - * blocking and non-blocking I/O. - * - * When the underlying I/O is non-blocking, wolfSSL_write() will return - * when the underlying I/O could not satisfy the needs of wolfSSL_write() - * to continue. In this case, a call to wolfSSL_get_error() will yield - * either SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE. The calling process - * must then repeat the call to wolfSSL_write() when the underlying I/O is - * ready. - * - * If the underlying I/O is blocking, wolfSSL_write() will only return once - * the buffer data of size sz has been completely written or an error + * send the message to the server + * + * The wolfSSL_write() function writes sz bytes from the buffer, data, to + * the SSL connection, ssl. If necessary, wolfSSL_write() will negotiate an + * SSL/TLS session if the handshake has not already been performed yet by + * wolfSSL_connect() or wolfSSL_accept(). wolfSSL_write() works with both + * blocking and non-blocking I/O. + * + * When the underlying I/O is non-blocking, wolfSSL_write() will return + * when the underlying I/O could not satisfy the needs of wolfSSL_write() + * to continue. In this case, a call to wolfSSL_get_error() will yield + * either SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE. The calling process + * must then repeat the call to wolfSSL_write() when the underlying I/O is + * ready. + * + * If the underlying I/O is blocking, wolfSSL_write() will only return once + * the buffer data of size sz has been completely written or an error * occurred. - * + * * wolfSSL_write() Returns: - * + * * >0 the number of bytes written upon success. - * - * 0 will be returned upon failure. Call wolfSSL_get_error() for + * + * 0 will be returned upon failure. Call wolfSSL_get_error() for * the specific error code. - * - * SSL_FATAL_ERROR will be returned upon failure when either an error - * occurred or, when using non-blocking sockets, the SSL_ERROR_WANT_READ + * + * SSL_FATAL_ERROR will be returned upon failure when either an error + * occurred or, when using non-blocking sockets, the SSL_ERROR_WANT_READ * or SSL_ERROR_WANT_WRITE error was received and and the application - * needs to call wolfSSL_write() again. Use wolfSSL_get_error() + * needs to call wolfSSL_write() again. Use wolfSSL_get_error() * to get a specific error code. * - * Parameters: - * + * Parameters: + * * ssl pointer to the SSL session, created with wolfSSL_new(). * data data buffer which will be sent to peer. * sz size, in bytes, of data to send to the peer (data). - * + * * see: https://www.wolfssl.com/doxygen/group__IO.html#ga74b924a81e9efdf66d074690e5f53ef1 * *************************************************************************** @@ -828,18 +838,18 @@ int tls_smp_client_task() { if (ret == WOLFSSL_SUCCESS) { memset(buff, 0, BUFF_SIZE); - + /* get the length of our message, never longer than the declared size */ - + /* TODO check for zero length */ - + len = strnlen(sendMessage, sendMessageSize); - + /* write the message over secure connection to the server */ if (wolfSSL_write(ssl, sendMessage, len) == len) { - WOLFSSL_MSG("wolfSSL_write message sent successfully:\n"); - WOLFSSL_MSG(sendMessage); + ESP_LOGI(TAG, "wolfSSL_write message sent successfully:\n"); + ESP_LOGI(TAG, "%s", sendMessage); } else { @@ -848,81 +858,81 @@ int tls_smp_client_task() { char err_buff[80]; wolfSSL_ERR_error_string(err, err_buff); - WOLFSSL_ERROR_MSG(err_buff); + ESP_LOGE(TAG, "%s", err_buff); - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_write FAILED.\n"); + ESP_LOGE(TAG, "ERROR: wolfSSL_write FAILED.\n"); ret = WOLFSSL_FAILURE; } } else { - /* a prior error occured */ - WOLFSSL_ERROR_MSG("Skipping wolfSSL_write\n"); + /* a prior error occurred */ + ESP_LOGE(TAG, "Skipping wolfSSL_write\n"); } - - /* + + /* *************************************************************************** - * - * Read the server data into our buff array - * - * The wolfSSL_read() function reads sz bytes from the SSL session (ssl) - * internal read buffer into the buffer data. The bytes read are removed - * from the internal receive buffer. If necessary wolfSSL_read() will - * negotiate an SSL/TLS session if the handshake has not already been - * performed yet by wolfSSL_connect() or wolfSSL_accept(). The SSL/TLS - * protocol uses SSL records which have a maximum size of 16kB (the max - * record size can be controlled by the MAX_RECORD_SIZE define in - * /wolfssl/internal.h). - * - * As such, wolfSSL needs to read an entire SSL record internally before - * it is able to process and decrypt the record. Because of this, a call - * to wolfSSL_read() will only be able to return the maximum buffer size + * + * Read the server data into our buff array + * + * The wolfSSL_read() function reads sz bytes from the SSL session (ssl) + * internal read buffer into the buffer data. The bytes read are removed + * from the internal receive buffer. If necessary wolfSSL_read() will + * negotiate an SSL/TLS session if the handshake has not already been + * performed yet by wolfSSL_connect() or wolfSSL_accept(). The SSL/TLS + * protocol uses SSL records which have a maximum size of 16kB (the max + * record size can be controlled by the MAX_RECORD_SIZE define in + * /wolfssl/internal.h). + * + * As such, wolfSSL needs to read an entire SSL record internally before + * it is able to process and decrypt the record. Because of this, a call + * to wolfSSL_read() will only be able to return the maximum buffer size * which has been decrypted at the time of calling. There may be additional - * not-yet-decrypted data waiting in the internal wolfSSL receive buffer - * which will be retrieved and decrypted with the next call to - * wolfSSL_read(). - * - * If sz is larger than the number of bytes in the internal read buffer, - * SSL_read() will return the bytes available in the internal read buffer. - * If no bytes are buffered in the internal read buffer yet, a call to + * not-yet-decrypted data waiting in the internal wolfSSL receive buffer + * which will be retrieved and decrypted with the next call to + * wolfSSL_read(). + * + * If sz is larger than the number of bytes in the internal read buffer, + * SSL_read() will return the bytes available in the internal read buffer. + * If no bytes are buffered in the internal read buffer yet, a call to * wolfSSL_read() will trigger processing of the next record. * Returns - * + * * >0 the number of bytes read upon success. - * + * * 0 will be returned upon failure. This may be caused by a either a clean - * (close notify alert) shutdown or just that the peer closed the + * (close notify alert) shutdown or just that the peer closed the * connection. Call wolfSSL_get_error() for the specific error code. - * - * SSL_FATAL_ERROR will be returned upon failure when either an error - * occurred or, when using non-blocking sockets, the - * SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE error was received and - * the application needs to call wolfSSL_read() again. - * + * + * SSL_FATAL_ERROR will be returned upon failure when either an error + * occurred or, when using non-blocking sockets, the + * SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE error was received and + * the application needs to call wolfSSL_read() again. + * * Use wolfSSL_get_error() to get a specific error code. - * + * * Parameters - * + * * ssl pointer to the SSL session, created with wolfSSL_new(). * data buffer where wolfSSL_read() will place data read. * sz number of bytes to read into data. - * + * *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { - /* even though the result should be a zero-terminated string, + /* even though the result should be a zero-terminated string, * we'll clear the receive buffer */ memset(buff, 0, BUFF_SIZE); - + /* read the response data from our secure connection */ if (wolfSSL_read(ssl, buff, BUFF_SIZE - 1) > 0) { - + /* one or more bytes received is considered success */ - - /* Print to stdout any data the server sends */ - WOLFSSL_MSG("wolfSSL_read received message:\n"); - WOLFSSL_MSG(buff); + + /* Print any data the server sends */ + ESP_LOGI(TAG, "wolfSSL_read received message:\n"); + ESP_LOGI(TAG, "%s", buff); } else { /* get the integer error value */ @@ -932,46 +942,62 @@ int tls_smp_client_task() { /* get the human-readable error string. */ char err_buff[80] = "\x0"; wolfSSL_ERR_error_string(err, err_buff); - WOLFSSL_ERROR_MSG(err_buff); - - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_read FAILED.\n"); + ESP_LOGE(TAG, "%s", err_buff); + + ESP_LOGE(TAG, "ERROR: wolfSSL_read FAILED.\n"); ret = WOLFSSL_FAILURE; } } - - /* + + /* *************************************************************************** - * - * Cleanup and return - * + * + * Cleanup and return + * *************************************************************************** */ if (sockfd != SOCKET_INVALID) { close(sockfd); /* Close the connection to the server */ } - + if (ssl) { - wolfSSL_free(ssl); /* Free the wolfSSL object */ + wolfSSL_free(ssl); /* Free the wolfSSL object */ } - + if (ctx) { - wolfSSL_CTX_free(ctx); /* Free the wolfSSL context object */ + wolfSSL_CTX_free(ctx); /* Free the wolfSSL context object */ } - + wolfSSL_Cleanup(); /* Cleanup the wolfSSL environment */ WOLFSSL_LEAVE("tls_smp_client_task", ret); - WOLFSSL_MSG("tls_smp_client_task done!\n"); + ESP_LOGI(TAG,"tls_smp_client_task done!\n"); return ret; } void app_main(void) { - //Initialize NVS + ESP_LOGI(TAG, "--------------------------------------------------------"); + ESP_LOGI(TAG, "--------------------------------------------------------"); + ESP_LOGI(TAG, "---------------------- BEGIN MAIN ----------------------"); + ESP_LOGI(TAG, "--------------------------------------------------------"); + ESP_LOGI(TAG, "--------------------------------------------------------"); + + + ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_STRING = %s", LIBWOLFSSL_VERSION_STRING); + ESP_LOGI(TAG, "CONFIG_IDF_TARGET = %s", CONFIG_IDF_TARGET); + ESP_LOGI(TAG, "CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ = %u MHz", CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ); + ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount); + + ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL)); + + /* Initialize NVS */ esp_err_t ret = nvs_flash_init(); - if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + if (ret == ESP_ERR_NVS_NO_FREE_PAGES + || + ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); ret = nvs_flash_init(); } @@ -981,14 +1007,16 @@ void app_main(void) wifi_init_sta(); set_time(); - + for (;;) { ESP_LOGI(TAG, "main loop"); - vTaskDelay(DelayTicks ? DelayTicks : 1); /* Minimum delay = 1 tick */ + vTaskDelay(DelayTicks ? DelayTicks : 1); /* Minimum delay = 1 tick */ tls_smp_client_task(); + + /* upon completion, wait forever */ for (;;) { - vTaskDelay(DelayTicks ? DelayTicks : 1); /* Minimum delay = 1 tick */ + vTaskDelay(DelayTicks ? DelayTicks : 1); /* Minimum delay = 1 tick */ } } } diff --git a/ESP32/TLS13-wifi_station-client/sdkconfig b/ESP32/TLS13-wifi_station-client/sdkconfig deleted file mode 100644 index 83356afe..00000000 --- a/ESP32/TLS13-wifi_station-client/sdkconfig +++ /dev/null @@ -1,1394 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) Project Configuration -# -CONFIG_IDF_CMAKE=y -CONFIG_IDF_TARGET_ARCH_XTENSA=y -CONFIG_IDF_TARGET="esp32" -CONFIG_IDF_TARGET_ESP32=y -CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 - -# -# SDK tool configuration -# -CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-" -# CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set -# end of SDK tool configuration - -# -# Build type -# -CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y -# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set -CONFIG_APP_BUILD_GENERATE_BINARIES=y -CONFIG_APP_BUILD_BOOTLOADER=y -CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y -# end of Build type - -# -# Application manager -# -CONFIG_APP_COMPILE_TIME_DATE=y -# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set -# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set -# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set -CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 -# end of Application manager - -# -# Bootloader config -# -CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 -CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set -CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y -# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set -CONFIG_BOOTLOADER_LOG_LEVEL=3 -# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set -CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y -# CONFIG_BOOTLOADER_FACTORY_RESET is not set -# CONFIG_BOOTLOADER_APP_TEST is not set -CONFIG_BOOTLOADER_WDT_ENABLE=y -# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set -CONFIG_BOOTLOADER_WDT_TIME_MS=9000 -# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set -CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 -# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set -CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y -# end of Bootloader config - -# -# Security features -# -# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set -# CONFIG_SECURE_BOOT is not set -# CONFIG_SECURE_FLASH_ENC_ENABLED is not set -# end of Security features - -# -# Serial flasher config -# -CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 -# CONFIG_ESPTOOLPY_NO_STUB is not set -# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set -# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y -# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set -CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y -CONFIG_ESPTOOLPY_FLASHMODE="dio" -# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_40M=y -# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ="40m" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="2MB" -CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y -CONFIG_ESPTOOLPY_BEFORE_RESET=y -# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set -CONFIG_ESPTOOLPY_BEFORE="default_reset" -CONFIG_ESPTOOLPY_AFTER_RESET=y -# CONFIG_ESPTOOLPY_AFTER_NORESET is not set -CONFIG_ESPTOOLPY_AFTER="hard_reset" -# CONFIG_ESPTOOLPY_MONITOR_BAUD_CONSOLE is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set -CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y -# CONFIG_ESPTOOLPY_MONITOR_BAUD_230400B is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_921600B is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_2MB is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER is not set -CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER_VAL=115200 -CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 -# end of Serial flasher config - -# -# Partition Table -# -CONFIG_PARTITION_TABLE_SINGLE_APP=y -# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set -# CONFIG_PARTITION_TABLE_TWO_OTA is not set -# CONFIG_PARTITION_TABLE_CUSTOM is not set -CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" -CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 -CONFIG_PARTITION_TABLE_MD5=y -# end of Partition Table - -# -# Example Configuration -# -CONFIG_ESP_WIFI_SSID="myssid" -CONFIG_ESP_WIFI_PASSWORD="mypassword" -CONFIG_ESP_MAXIMUM_RETRY=5 -# end of Example Configuration - -# -# Compiler options -# -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_COMPILER_OPTIMIZATION_NONE is not set -CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set -CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set -CONFIG_COMPILER_HIDE_PATHS_MACROS=y -# CONFIG_COMPILER_CXX_EXCEPTIONS is not set -# CONFIG_COMPILER_CXX_RTTI is not set -CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y -# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set -# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set -# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set -# CONFIG_COMPILER_DUMP_RTL_FILES is not set -# end of Compiler options - -# -# Component config -# - -# -# Application Level Tracing -# -# CONFIG_APPTRACE_DEST_JTAG is not set -CONFIG_APPTRACE_DEST_NONE=y -CONFIG_APPTRACE_LOCK_ENABLE=y -# end of Application Level Tracing - -# -# ESP-ASIO -# -# CONFIG_ASIO_SSL_SUPPORT is not set -# end of ESP-ASIO - -# -# Bluetooth -# -# CONFIG_BT_ENABLED is not set -# end of Bluetooth - -# -# CoAP Configuration -# -CONFIG_COAP_MBEDTLS_PSK=y -# CONFIG_COAP_MBEDTLS_PKI is not set -# CONFIG_COAP_MBEDTLS_DEBUG is not set -CONFIG_COAP_LOG_DEFAULT_LEVEL=0 -# end of CoAP Configuration - -# -# Driver configurations -# - -# -# ADC configuration -# -# CONFIG_ADC_FORCE_XPD_FSM is not set -CONFIG_ADC_DISABLE_DAC=y -# end of ADC configuration - -# -# MCPWM configuration -# -# CONFIG_MCPWM_ISR_IN_IRAM is not set -# end of MCPWM configuration - -# -# SPI configuration -# -# CONFIG_SPI_MASTER_IN_IRAM is not set -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -# CONFIG_SPI_SLAVE_IN_IRAM is not set -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y -# end of SPI configuration - -# -# TWAI configuration -# -# CONFIG_TWAI_ISR_IN_IRAM is not set -# CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set -# CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set -# CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set -# CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set -# end of TWAI configuration - -# -# UART configuration -# -# CONFIG_UART_ISR_IN_IRAM is not set -# end of UART configuration - -# -# RTCIO configuration -# -# CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC is not set -# end of RTCIO configuration - -# -# GPIO Configuration -# -# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set -# end of GPIO Configuration - -# -# GDMA Configuration -# -# CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GDMA_ISR_IRAM_SAFE is not set -# end of GDMA Configuration -# end of Driver configurations - -# -# eFuse Bit Manager -# -# CONFIG_EFUSE_CUSTOM_TABLE is not set -# CONFIG_EFUSE_VIRTUAL is not set -# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set -CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y -# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set -CONFIG_EFUSE_MAX_BLK_LEN=192 -# end of eFuse Bit Manager - -# -# ESP-TLS -# -CONFIG_ESP_TLS_USING_MBEDTLS=y -# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set -# CONFIG_ESP_TLS_SERVER is not set -# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_PSK_VERIFICATION is not set -# CONFIG_ESP_TLS_INSECURE is not set -# end of ESP-TLS - -# -# ESP32-specific -# -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -CONFIG_ESP32_REV_MIN=0 -CONFIG_ESP32_DPORT_WORKAROUND=y -# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set -CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y -# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 -# CONFIG_ESP32_SPIRAM_SUPPORT is not set -# CONFIG_ESP32_TRAX is not set -CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 -# CONFIG_ESP32_ULP_COPROC_ENABLED is not set -CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0 -CONFIG_ESP32_DEBUG_OCDAWARE=y -CONFIG_ESP32_BROWNOUT_DET=y -CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set -CONFIG_ESP32_BROWNOUT_DET_LVL=0 -CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y -# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set -CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y -# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set -CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 -CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP32_XTAL_FREQ_40=y -# CONFIG_ESP32_XTAL_FREQ_26 is not set -# CONFIG_ESP32_XTAL_FREQ_AUTO is not set -CONFIG_ESP32_XTAL_FREQ=40 -# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set -# CONFIG_ESP32_NO_BLOBS is not set -# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set -# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set -# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set -CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5 -# end of ESP32-specific - -# -# ADC-Calibration -# -CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y -CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y -CONFIG_ADC_CAL_LUT_ENABLE=y -# end of ADC-Calibration - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# Ethernet -# -CONFIG_ETH_ENABLED=y -CONFIG_ETH_USE_ESP32_EMAC=y -CONFIG_ETH_PHY_INTERFACE_RMII=y -CONFIG_ETH_RMII_CLK_INPUT=y -# CONFIG_ETH_RMII_CLK_OUTPUT is not set -CONFIG_ETH_RMII_CLK_IN_GPIO=0 -CONFIG_ETH_DMA_BUFFER_SIZE=512 -CONFIG_ETH_DMA_RX_BUFFER_NUM=10 -CONFIG_ETH_DMA_TX_BUFFER_NUM=10 -CONFIG_ETH_USE_SPI_ETHERNET=y -# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set -# CONFIG_ETH_SPI_ETHERNET_W5500 is not set -# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set -# CONFIG_ETH_USE_OPENETH is not set -# end of Ethernet - -# -# Event Loop Library -# -# CONFIG_ESP_EVENT_LOOP_PROFILING is not set -CONFIG_ESP_EVENT_POST_FROM_ISR=y -CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y -# end of Event Loop Library - -# -# GDB Stub -# -# end of GDB Stub - -# -# ESP HTTP client -# -CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y -# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set -CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y -# end of ESP HTTP client - -# -# HTTP Server -# -CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 -CONFIG_HTTPD_MAX_URI_LEN=512 -CONFIG_HTTPD_ERR_RESP_NO_DELAY=y -CONFIG_HTTPD_PURGE_BUF_LEN=32 -# CONFIG_HTTPD_LOG_PURGE_DATA is not set -# CONFIG_HTTPD_WS_SUPPORT is not set -# end of HTTP Server - -# -# ESP HTTPS OTA -# -# CONFIG_OTA_ALLOW_HTTP is not set -# end of ESP HTTPS OTA - -# -# ESP HTTPS server -# -# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set -# end of ESP HTTPS server - -# -# Hardware Settings -# - -# -# MAC Config -# -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y -# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set -CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 -# end of MAC Config - -# -# Sleep Config -# -CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y -CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y -# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set -# CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND is not set -# end of Sleep Config - -# -# RTC Clock Config -# -# end of RTC Clock Config -# end of Hardware Settings - -# -# IPC (Inter-Processor Call) -# -CONFIG_ESP_IPC_TASK_STACK_SIZE=1536 -CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y -CONFIG_ESP_IPC_ISR_ENABLE=y -# end of IPC (Inter-Processor Call) - -# -# LCD and Touch Panel -# - -# -# LCD Peripheral Configuration -# -CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 -# end of LCD Peripheral Configuration -# end of LCD and Touch Panel - -# -# ESP NETIF Adapter -# -CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 -CONFIG_ESP_NETIF_TCPIP_LWIP=y -# CONFIG_ESP_NETIF_LOOPBACK is not set -CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y -# end of ESP NETIF Adapter - -# -# PHY -# -CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP_PHY_MAX_TX_POWER=20 -CONFIG_ESP_PHY_REDUCE_TX_POWER=y -# end of PHY - -# -# Power Management -# -# CONFIG_PM_ENABLE is not set -# end of Power Management - -# -# ESP System Settings -# -# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set -CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y -# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set - -# -# Memory protection -# -# end of Memory protection - -CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 -CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y -# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set -# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 -CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_NONE is not set -CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_MULTIPLE_UART=y -CONFIG_ESP_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 -CONFIG_ESP_INT_WDT=y -CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 -CONFIG_ESP_INT_WDT_CHECK_CPU1=y -CONFIG_ESP_TASK_WDT=y -# CONFIG_ESP_TASK_WDT_PANIC is not set -CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP_PANIC_HANDLER_IRAM is not set -# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set -# CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set -CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y -# end of ESP System Settings - -# -# High resolution timer (esp_timer) -# -# CONFIG_ESP_TIMER_PROFILING is not set -CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y -CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y -CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 -# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set -# CONFIG_ESP_TIMER_IMPL_FRC2 is not set -CONFIG_ESP_TIMER_IMPL_TG0_LAC=y -# end of High resolution timer (esp_timer) - -# -# Wi-Fi -# -CONFIG_ESP32_WIFI_ENABLED=y -CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 -CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_CSI_ENABLED is not set -CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP32_WIFI_TX_BA_WIN=6 -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_NVS_ENABLED=y -CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP32_WIFI_IRAM_OPT=y -CONFIG_ESP32_WIFI_RX_IRAM_OPT=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y -# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set -# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y -# end of Wi-Fi - -# -# Core dump -# -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set -# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y -# end of Core dump - -# -# FAT Filesystem support -# -# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set -CONFIG_FATFS_CODEPAGE_437=y -# CONFIG_FATFS_CODEPAGE_720 is not set -# CONFIG_FATFS_CODEPAGE_737 is not set -# CONFIG_FATFS_CODEPAGE_771 is not set -# CONFIG_FATFS_CODEPAGE_775 is not set -# CONFIG_FATFS_CODEPAGE_850 is not set -# CONFIG_FATFS_CODEPAGE_852 is not set -# CONFIG_FATFS_CODEPAGE_855 is not set -# CONFIG_FATFS_CODEPAGE_857 is not set -# CONFIG_FATFS_CODEPAGE_860 is not set -# CONFIG_FATFS_CODEPAGE_861 is not set -# CONFIG_FATFS_CODEPAGE_862 is not set -# CONFIG_FATFS_CODEPAGE_863 is not set -# CONFIG_FATFS_CODEPAGE_864 is not set -# CONFIG_FATFS_CODEPAGE_865 is not set -# CONFIG_FATFS_CODEPAGE_866 is not set -# CONFIG_FATFS_CODEPAGE_869 is not set -# CONFIG_FATFS_CODEPAGE_932 is not set -# CONFIG_FATFS_CODEPAGE_936 is not set -# CONFIG_FATFS_CODEPAGE_949 is not set -# CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set -CONFIG_FATFS_FS_LOCK=0 -CONFIG_FATFS_TIMEOUT_MS=10000 -CONFIG_FATFS_PER_FILE_CACHE=y -# CONFIG_FATFS_USE_FASTSEEK is not set -# end of FAT Filesystem support - -# -# Modbus configuration -# -CONFIG_FMB_COMM_MODE_TCP_EN=y -CONFIG_FMB_TCP_PORT_DEFAULT=502 -CONFIG_FMB_TCP_PORT_MAX_CONN=5 -CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20 -CONFIG_FMB_COMM_MODE_RTU_EN=y -CONFIG_FMB_COMM_MODE_ASCII_EN=y -CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150 -CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200 -CONFIG_FMB_QUEUE_LENGTH=20 -CONFIG_FMB_PORT_TASK_STACK_SIZE=4096 -CONFIG_FMB_SERIAL_BUF_SIZE=256 -CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8 -CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000 -CONFIG_FMB_PORT_TASK_PRIO=10 -# CONFIG_FMB_PORT_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_FMB_PORT_TASK_AFFINITY_CPU0=y -# CONFIG_FMB_PORT_TASK_AFFINITY_CPU1 is not set -CONFIG_FMB_PORT_TASK_AFFINITY=0x0 -CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT=y -CONFIG_FMB_CONTROLLER_SLAVE_ID=0x00112233 -CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20 -CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 -CONFIG_FMB_CONTROLLER_STACK_SIZE=4096 -CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20 -# CONFIG_FMB_TIMER_PORT_ENABLED is not set -CONFIG_FMB_TIMER_GROUP=0 -CONFIG_FMB_TIMER_INDEX=0 -CONFIG_FMB_MASTER_TIMER_GROUP=0 -CONFIG_FMB_MASTER_TIMER_INDEX=0 -# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set -# end of Modbus configuration - -# -# FreeRTOS -# -# CONFIG_FREERTOS_UNICORE is not set -CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y -CONFIG_FREERTOS_CORETIMER_0=y -# CONFIG_FREERTOS_CORETIMER_1 is not set -CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y -CONFIG_FREERTOS_HZ=100 -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set -CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y -# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set -CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y -CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 -CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y -# CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set -# CONFIG_FREERTOS_ASSERT_DISABLE is not set -CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 -CONFIG_FREERTOS_ISR_STACKSIZE=1536 -# CONFIG_FREERTOS_LEGACY_HOOKS is not set -CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 -CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y -# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set -CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 -CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 -CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 -# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set -# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y -CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y -# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -CONFIG_FREERTOS_DEBUG_OCDAWARE=y -# CONFIG_FREERTOS_FPU_IN_ISR is not set -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y -# CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set -# end of FreeRTOS - -# -# Hardware Abstraction Layer (HAL) and Low Level (LL) -# -CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y -# CONFIG_HAL_ASSERTION_DISABLE is not set -# CONFIG_HAL_ASSERTION_SILIENT is not set -# CONFIG_HAL_ASSERTION_ENABLE is not set -CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 -# end of Hardware Abstraction Layer (HAL) and Low Level (LL) - -# -# Heap memory debugging -# -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set -# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set -CONFIG_HEAP_TRACING_OFF=y -# CONFIG_HEAP_TRACING_STANDALONE is not set -# CONFIG_HEAP_TRACING_TOHOST is not set -# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set -# end of Heap memory debugging - -# -# jsmn -# -# CONFIG_JSMN_PARENT_LINKS is not set -# CONFIG_JSMN_STRICT is not set -# end of jsmn - -# -# libsodium -# -# end of libsodium - -# -# Log output -# -# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set -# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set -# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set -CONFIG_LOG_DEFAULT_LEVEL_INFO=y -# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set -# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_LOG_DEFAULT_LEVEL=3 -CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set -# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=3 -CONFIG_LOG_COLORS=y -CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y -# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Log output - -# -# LWIP -# -CONFIG_LWIP_LOCAL_HOSTNAME="espressif" -# CONFIG_LWIP_NETIF_API is not set -# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set -CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y -# CONFIG_LWIP_L2_TO_L3_COPY is not set -# CONFIG_LWIP_IRAM_OPTIMIZATION is not set -CONFIG_LWIP_TIMERS_ONDEMAND=y -CONFIG_LWIP_MAX_SOCKETS=10 -# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set -# CONFIG_LWIP_SO_LINGER is not set -CONFIG_LWIP_SO_REUSE=y -CONFIG_LWIP_SO_REUSE_RXTOALL=y -# CONFIG_LWIP_SO_RCVBUF is not set -# CONFIG_LWIP_NETBUF_RECVINFO is not set -CONFIG_LWIP_IP4_FRAG=y -CONFIG_LWIP_IP6_FRAG=y -# CONFIG_LWIP_IP4_REASSEMBLY is not set -# CONFIG_LWIP_IP6_REASSEMBLY is not set -# CONFIG_LWIP_IP_FORWARD is not set -# CONFIG_LWIP_STATS is not set -# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set -CONFIG_LWIP_ESP_GRATUITOUS_ARP=y -CONFIG_LWIP_GARP_TMR_INTERVAL=60 -CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 -CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y -# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set -CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y -# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set -CONFIG_LWIP_DHCP_OPTIONS_LEN=68 - -# -# DHCP server -# -CONFIG_LWIP_DHCPS=y -CONFIG_LWIP_DHCPS_LEASE_UNIT=60 -CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 -# end of DHCP server - -# CONFIG_LWIP_AUTOIP is not set -CONFIG_LWIP_IPV6=y -# CONFIG_LWIP_IPV6_AUTOCONFIG is not set -CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 -# CONFIG_LWIP_IPV6_FORWARD is not set -# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set -CONFIG_LWIP_NETIF_LOOPBACK=y -CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 - -# -# TCP -# -CONFIG_LWIP_MAX_ACTIVE_TCP=16 -CONFIG_LWIP_MAX_LISTENING_TCP=16 -CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y -CONFIG_LWIP_TCP_MAXRTX=12 -CONFIG_LWIP_TCP_SYNMAXRTX=12 -CONFIG_LWIP_TCP_MSS=1440 -CONFIG_LWIP_TCP_TMR_INTERVAL=250 -CONFIG_LWIP_TCP_MSL=60000 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 -CONFIG_LWIP_TCP_WND_DEFAULT=5744 -CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 -CONFIG_LWIP_TCP_QUEUE_OOSEQ=y -# CONFIG_LWIP_TCP_SACK_OUT is not set -# CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set -CONFIG_LWIP_TCP_OVERSIZE_MSS=y -# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_TCP_RTO_TIME=1500 -# end of TCP - -# -# UDP -# -CONFIG_LWIP_MAX_UDP_PCBS=16 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 -# end of UDP - -# -# Checksums -# -# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set -# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set -CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y -# end of Checksums - -CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_LWIP_PPP_SUPPORT is not set -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 -# CONFIG_LWIP_SLIP_SUPPORT is not set - -# -# ICMP -# -CONFIG_LWIP_ICMP=y -# CONFIG_LWIP_MULTICAST_PING is not set -# CONFIG_LWIP_BROADCAST_PING is not set -# end of ICMP - -# -# LWIP RAW API -# -CONFIG_LWIP_MAX_RAW_PCBS=16 -# end of LWIP RAW API - -# -# SNTP -# -CONFIG_LWIP_SNTP_MAX_SERVERS=1 -# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set -CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 -# end of SNTP - -CONFIG_LWIP_ESP_LWIP_ASSERT=y - -# -# Hooks -# -# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set -CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y -# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y -# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set -CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y -# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set -# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set -CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set -# end of Hooks - -# CONFIG_LWIP_DEBUG is not set -# end of LWIP - -# -# mbedTLS -# -CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y -# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set -# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set -CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y -CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 -CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 -# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set -# CONFIG_MBEDTLS_DEBUG is not set - -# -# mbedTLS v2.28.x related -# -# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set -# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set -# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set -CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y -# end of mbedTLS v2.28.x related - -# -# Certificate Bundle -# -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set -# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set -# end of Certificate Bundle - -# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set -# CONFIG_MBEDTLS_CMAC_C is not set -CONFIG_MBEDTLS_HARDWARE_AES=y -CONFIG_MBEDTLS_HARDWARE_MPI=y -CONFIG_MBEDTLS_HARDWARE_SHA=y -CONFIG_MBEDTLS_ROM_MD5=y -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set -CONFIG_MBEDTLS_HAVE_TIME=y -# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set -CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y -CONFIG_MBEDTLS_SHA512_C=y -CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y -# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set -# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y - -# -# TLS Key Exchange Methods -# -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -# end of TLS Key Exchange Methods - -CONFIG_MBEDTLS_SSL_RENEGOTIATION=y -# CONFIG_MBEDTLS_SSL_PROTO_SSL3 is not set -CONFIG_MBEDTLS_SSL_PROTO_TLS1=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y -CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y -CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y - -# -# Symmetric Ciphers -# -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -CONFIG_MBEDTLS_RC4_DISABLED=y -# CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT is not set -# CONFIG_MBEDTLS_RC4_ENABLED is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_NIST_KW_C is not set -# end of Symmetric Ciphers - -# CONFIG_MBEDTLS_RIPEMD160_C is not set - -# -# Certificates -# -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -CONFIG_MBEDTLS_X509_CSR_PARSE_C=y -# end of Certificates - -CONFIG_MBEDTLS_ECP_C=y -CONFIG_MBEDTLS_ECDH_C=y -CONFIG_MBEDTLS_ECDSA_C=y -# CONFIG_MBEDTLS_ECJPAKE_C is not set -CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y -CONFIG_MBEDTLS_ECP_NIST_OPTIM=y -# CONFIG_MBEDTLS_POLY1305_C is not set -# CONFIG_MBEDTLS_CHACHA20_C is not set -# CONFIG_MBEDTLS_HKDF_C is not set -# CONFIG_MBEDTLS_THREADING_C is not set -# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set -# CONFIG_MBEDTLS_SECURITY_RISKS is not set -# end of mbedTLS - -# -# mDNS -# -CONFIG_MDNS_MAX_SERVICES=10 -CONFIG_MDNS_TASK_PRIORITY=1 -CONFIG_MDNS_TASK_STACK_SIZE=4096 -# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_MDNS_TASK_AFFINITY_CPU0=y -# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set -CONFIG_MDNS_TASK_AFFINITY=0x0 -CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 -# CONFIG_MDNS_STRICT_MODE is not set -CONFIG_MDNS_TIMER_PERIOD_MS=100 -# CONFIG_MDNS_NETWORKING_SOCKET is not set -CONFIG_MDNS_MULTIPLE_INSTANCE=y -# end of mDNS - -# -# ESP-MQTT Configurations -# -CONFIG_MQTT_PROTOCOL_311=y -CONFIG_MQTT_TRANSPORT_SSL=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y -# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set -# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set -# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set -# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set -# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set -# CONFIG_MQTT_CUSTOM_OUTBOX is not set -# end of ESP-MQTT Configurations - -# -# Newlib -# -CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set -CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y -# CONFIG_NEWLIB_NANO_FORMAT is not set -# end of Newlib - -# -# NVS -# -# end of NVS - -# -# OpenSSL -# -# CONFIG_OPENSSL_DEBUG is not set -CONFIG_OPENSSL_ERROR_STACK=y -# CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set -CONFIG_OPENSSL_ASSERT_EXIT=y -# end of OpenSSL - -# -# OpenThread -# -# CONFIG_OPENTHREAD_ENABLED is not set -# end of OpenThread - -# -# PThreads -# -CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_PTHREAD_STACK_MIN=768 -CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y -# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set -# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set -CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" -# end of PThreads - -# -# SPI Flash driver -# -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set -# CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set -# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set -# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set -CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y -CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 -CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 -CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 -# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set -# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set -# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set - -# -# Auto-detect flash chips -# -CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y -# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set -# end of Auto-detect flash chips - -CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y -# end of SPI Flash driver - -# -# SPIFFS Configuration -# -CONFIG_SPIFFS_MAX_PARTITIONS=3 - -# -# SPIFFS Cache Configuration -# -CONFIG_SPIFFS_CACHE=y -CONFIG_SPIFFS_CACHE_WR=y -# CONFIG_SPIFFS_CACHE_STATS is not set -# end of SPIFFS Cache Configuration - -CONFIG_SPIFFS_PAGE_CHECK=y -CONFIG_SPIFFS_GC_MAX_RUNS=10 -# CONFIG_SPIFFS_GC_STATS is not set -CONFIG_SPIFFS_PAGE_SIZE=256 -CONFIG_SPIFFS_OBJ_NAME_LEN=32 -# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set -CONFIG_SPIFFS_USE_MAGIC=y -CONFIG_SPIFFS_USE_MAGIC_LENGTH=y -CONFIG_SPIFFS_META_LENGTH=4 -CONFIG_SPIFFS_USE_MTIME=y - -# -# Debug Configuration -# -# CONFIG_SPIFFS_DBG is not set -# CONFIG_SPIFFS_API_DBG is not set -# CONFIG_SPIFFS_GC_DBG is not set -# CONFIG_SPIFFS_CACHE_DBG is not set -# CONFIG_SPIFFS_CHECK_DBG is not set -# CONFIG_SPIFFS_TEST_VISUALISATION is not set -# end of Debug Configuration -# end of SPIFFS Configuration - -# -# TCP Transport -# - -# -# Websocket -# -CONFIG_WS_TRANSPORT=y -CONFIG_WS_BUFFER_SIZE=1024 -# end of Websocket -# end of TCP Transport - -# -# Unity unit testing library -# -CONFIG_UNITY_ENABLE_FLOAT=y -CONFIG_UNITY_ENABLE_DOUBLE=y -# CONFIG_UNITY_ENABLE_64BIT is not set -# CONFIG_UNITY_ENABLE_COLOR is not set -CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y -# CONFIG_UNITY_ENABLE_FIXTURE is not set -# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set -# end of Unity unit testing library - -# -# Virtual file system -# -CONFIG_VFS_SUPPORT_IO=y -CONFIG_VFS_SUPPORT_DIR=y -CONFIG_VFS_SUPPORT_SELECT=y -CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_VFS_SUPPORT_TERMIOS=y - -# -# Host File System I/O (Semihosting) -# -CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 -# end of Host File System I/O (Semihosting) -# end of Virtual file system - -# -# Wear Levelling -# -# CONFIG_WL_SECTOR_SIZE_512 is not set -CONFIG_WL_SECTOR_SIZE_4096=y -CONFIG_WL_SECTOR_SIZE=4096 -# end of Wear Levelling - -# -# Wi-Fi Provisioning Manager -# -CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 -CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 -# end of Wi-Fi Provisioning Manager - -# -# Supplicant -# -CONFIG_WPA_MBEDTLS_CRYPTO=y -# CONFIG_WPA_WAPI_PSK is not set -# CONFIG_WPA_SUITE_B_192 is not set -# CONFIG_WPA_DEBUG_PRINT is not set -# CONFIG_WPA_TESTING_OPTIONS is not set -# CONFIG_WPA_WPS_STRICT is not set -# CONFIG_WPA_11KV_SUPPORT is not set -# end of Supplicant -# end of Component config - -# -# Compatibility options -# -# CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set -# end of Compatibility options - -# Deprecated options for backward compatibility -CONFIG_TOOLPREFIX="xtensa-esp32-elf-" -# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set -CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y -# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set -CONFIG_LOG_BOOTLOADER_LEVEL=3 -# CONFIG_APP_ROLLBACK_ENABLE is not set -# CONFIG_FLASH_ENCRYPTION_ENABLED is not set -# CONFIG_FLASHMODE_QIO is not set -# CONFIG_FLASHMODE_QOUT is not set -CONFIG_FLASHMODE_DIO=y -# CONFIG_FLASHMODE_DOUT is not set -# CONFIG_MONITOR_BAUD_9600B is not set -# CONFIG_MONITOR_BAUD_57600B is not set -CONFIG_MONITOR_BAUD_115200B=y -# CONFIG_MONITOR_BAUD_230400B is not set -# CONFIG_MONITOR_BAUD_921600B is not set -# CONFIG_MONITOR_BAUD_2MB is not set -# CONFIG_MONITOR_BAUD_OTHER is not set -CONFIG_MONITOR_BAUD_OTHER_VAL=115200 -CONFIG_MONITOR_BAUD=115200 -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set -CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y -# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set -CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_CXX_EXCEPTIONS is not set -CONFIG_STACK_CHECK_NONE=y -# CONFIG_STACK_CHECK_NORM is not set -# CONFIG_STACK_CHECK_STRONG is not set -# CONFIG_STACK_CHECK_ALL is not set -# CONFIG_WARN_WRITE_STRINGS is not set -# CONFIG_DISABLE_GCC8_WARNINGS is not set -# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set -CONFIG_ESP32_APPTRACE_DEST_NONE=y -CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y -CONFIG_ADC2_DISABLE_DAC=y -# CONFIG_SPIRAM_SUPPORT is not set -CONFIG_TRACEMEM_RESERVE_DRAM=0x0 -# CONFIG_ULP_COPROC_ENABLED is not set -CONFIG_ULP_COPROC_RESERVE_MEM=0 -CONFIG_BROWNOUT_DET=y -CONFIG_BROWNOUT_DET_LVL_SEL_0=y -# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set -CONFIG_BROWNOUT_DET_LVL=0 -CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y -# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set -# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set -# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set -# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set -# CONFIG_NO_BLOBS is not set -# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set -# CONFIG_EVENT_LOOP_PROFILING is not set -CONFIG_POST_EVENTS_FROM_ISR=y -CONFIG_POST_EVENTS_FROM_IRAM_ISR=y -# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set -CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y -CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 -CONFIG_ESP_SYSTEM_PD_FLASH=y -# CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND is not set -CONFIG_IPC_TASK_STACK_SIZE=1536 -CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP32_PHY_MAX_TX_POWER=20 -CONFIG_ESP32_REDUCE_PHY_TX_POWER=y -# CONFIG_ESP32S2_PANIC_PRINT_HALT is not set -CONFIG_ESP32S2_PANIC_PRINT_REBOOT=y -# CONFIG_ESP32S2_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP32S2_PANIC_GDBSTUB is not set -CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_MAIN_TASK_STACK_SIZE=3584 -CONFIG_CONSOLE_UART_DEFAULT=y -# CONFIG_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_UART_NONE is not set -CONFIG_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_CONSOLE_UART_BAUDRATE=115200 -CONFIG_INT_WDT=y -CONFIG_INT_WDT_TIMEOUT_MS=300 -CONFIG_INT_WDT_CHECK_CPU1=y -CONFIG_TASK_WDT=y -# CONFIG_TASK_WDT_PANIC is not set -CONFIG_TASK_WDT_TIMEOUT_S=5 -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set -CONFIG_TIMER_TASK_STACK_SIZE=3584 -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y -CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150 -CONFIG_MB_MASTER_DELAY_MS_CONVERT=200 -CONFIG_MB_QUEUE_LENGTH=20 -CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096 -CONFIG_MB_SERIAL_BUF_SIZE=256 -CONFIG_MB_SERIAL_TASK_PRIO=10 -CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT=y -CONFIG_MB_CONTROLLER_SLAVE_ID=0x00112233 -CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20 -CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 -CONFIG_MB_CONTROLLER_STACK_SIZE=4096 -CONFIG_MB_EVENT_QUEUE_TIMEOUT=20 -# CONFIG_MB_TIMER_PORT_ENABLED is not set -CONFIG_MB_TIMER_GROUP=0 -CONFIG_MB_TIMER_INDEX=0 -# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set -CONFIG_TIMER_TASK_PRIORITY=1 -CONFIG_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_TIMER_QUEUE_LENGTH=10 -# CONFIG_L2_TO_L3_COPY is not set -# CONFIG_USE_ONLY_LWIP_SELECT is not set -CONFIG_ESP_GRATUITOUS_ARP=y -CONFIG_GARP_TMR_INTERVAL=60 -CONFIG_TCPIP_RECVMBOX_SIZE=32 -CONFIG_TCP_MAXRTX=12 -CONFIG_TCP_SYNMAXRTX=12 -CONFIG_TCP_MSS=1440 -CONFIG_TCP_MSL=60000 -CONFIG_TCP_SND_BUF_DEFAULT=5744 -CONFIG_TCP_WND_DEFAULT=5744 -CONFIG_TCP_RECVMBOX_SIZE=6 -CONFIG_TCP_QUEUE_OOSEQ=y -# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set -CONFIG_TCP_OVERSIZE_MSS=y -# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_TCP_OVERSIZE_DISABLE is not set -CONFIG_UDP_RECVMBOX_SIZE=6 -CONFIG_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_PPP_SUPPORT is not set -CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_ESP32_PTHREAD_STACK_MIN=768 -CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y -# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set -# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set -CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" -CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set -CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_SUPPORT_TERMIOS=y -CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 -# End of deprecated options diff --git a/ESP32/TLS13-wifi_station-client/sdkconfig.defaults b/ESP32/TLS13-wifi_station-client/sdkconfig.defaults new file mode 100644 index 00000000..3f85bd82 --- /dev/null +++ b/ESP32/TLS13-wifi_station-client/sdkconfig.defaults @@ -0,0 +1,37 @@ +# +# Default main stack size +# +# This is typically way bigger than needed for stack size. See user_settings.h +# +CONFIG_ESP_MAIN_TASK_STACK_SIZE=55000 + +# Legacy stack size for older ESP-IDF versions +CONFIG_MAIN_TASK_STACK_SIZE=55000 + +# +# Compiler options +# +CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y +CONFIG_COMPILER_STACK_CHECK=y + +# minimum C3 chip revision known to work is 2. +# rev 0 and 1 not available for testing. +# all revisions expected to work. +CONFIG_ESP32C3_REV_MIN_0= +CONFIG_ESP32C3_REV_MIN_1= +CONFIG_ESP32C3_REV_MIN_2=y +CONFIG_ESP32C3_REV_MIN_3= + +# +# Partition Table +# +CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_large.csv" +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +CONFIG_PARTITION_TABLE_MD5=y +# end of Partition Table diff --git a/ESP32/TLS13-wifi_station-server/ESP32-TLS13-server.sln b/ESP32/TLS13-wifi_station-server/ESP32-TLS13-server.sln deleted file mode 100644 index 6a50039e..00000000 --- a/ESP32/TLS13-wifi_station-server/ESP32-TLS13-server.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31729.503 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "ESP32-TLS13-server", "ESP32-TLS13-wifi_station-server.vgdbproj", "{6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|VisualGDB = Debug|VisualGDB - Release|VisualGDB = Release|VisualGDB - Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB - Tests (Release)|VisualGDB = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB - {6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}.Debug|VisualGDB.Build.0 = Debug|VisualGDB - {6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}.Release|VisualGDB.ActiveCfg = Release|VisualGDB - {6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}.Release|VisualGDB.Build.0 = Release|VisualGDB - {6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB - {6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB - {6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB - {6B1C0FCA-05B1-4F65-A57E-5EC9768F9866}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C818398D-7E23-4E3B-8076-2DCDCB03967C} - EndGlobalSection -EndGlobal diff --git a/ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server.vgdbproj b/ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server_v4.4.1.vgdbproj similarity index 95% rename from ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server.vgdbproj rename to ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server_v4.4.1.vgdbproj index 2aa2b1db..866a222e 100644 --- a/ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server.vgdbproj +++ b/ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server_v4.4.1.vgdbproj @@ -1,220 +1,224 @@ - - - - - - Unknown - - true - - 591b9b62-1581-445d-93c1-f2751ed04cfc - true - true - SourceDirs - - - - - - com.visualgdb.xtensa-esp32-elf - - 8.4.0 - 8.1.0 - 7 - - - DEBUG - build/$(PlatformName)/$(ConfigurationName) - - false - $(ToolchainNinja) - $(BuildDir) - - - - false - $(SYSPROGS_CMAKE_PATH) - - - true - false - false - Ninja - false - RemoveBuildDirectory - false - - - true - true - true - false - true - false - true - HideOuterProjectTargets - true - false - true - - true - 6b1c0fca-05b1-4f65-a57e-5ec9768f9866 - - Upper - HeaderDirectoryAndSubdirectories - true - - - release/v4.4 - esp-idf/v4.4 - ESPIDF - - COM20 - false - false - ESP32 - - - - - - - - - - - - - - - Default - - - - COM20 - - 115200 - 8 - None - One - None - - - 0 - false - false - false - ASCII - - - 255 - 0 - 0 - 0 - - - 255 - 169 - 169 - 169 - - - 255 - 211 - 211 - 211 - - - 255 - 144 - 238 - 144 - - - 255 - 169 - 169 - 169 - - - - 16 - true - true - true - true - 0 - - LF - false - false - false - - - - true - - - - Unknown - - true - true - true - - - - false - - - - - Debug - - - - Release - - - - - - - - false - false - false - false - false - false - false - false - false - - false - false - false - false - false - false - true - false - None - false - false - app_main - true - false - false - true - 0 - false - 0 - true - false - - - openocd + + + + + + Unknown + + true + + 591b9b62-1581-445d-93c1-f2751ed04cfc + true + true + SourceDirs + + + + + + com.visualgdb.xtensa-esp32-elf + + 8.4.0 + 8.1.0 + 9 + + + + DEBUG + build/$(PlatformName)/$(ConfigurationName) + + false + $(ToolchainNinja) + $(BuildDir) + + + + false + $(SYSPROGS_CMAKE_PATH) + + + true + false + false + Ninja + false + RemoveBuildDirectory + false + + + true + true + true + false + true + false + true + HideOuterProjectTargets + true + false + true + + + true + 6b1c0fca-05b1-4f65-a57e-5ec9768f9866 + + Upper + HeaderDirectoryAndSubdirectories + true + + + v4.4.1 + esp-idf/v4.4.1 + ESPIDF + + COM20 + false + false + ESP32 + + + + + + + + + + + + + + + Default + + + + COM20 + + 115200 + 8 + None + One + None + + + 0 + false + false + false + ASCII + + + 255 + 0 + 0 + 0 + + + 255 + 169 + 169 + 169 + + + 255 + 211 + 211 + 211 + + + 255 + 144 + 238 + 144 + + + 255 + 169 + 169 + 169 + + + + 16 + true + true + true + true + 0 + + LF + false + false + false + + + + true + + + + + Unknown + + true + true + true + + + + false + + + + + Debug + + + + Release + + + + + + + + + false + false + false + false + false + false + false + false + false + + false + false + false + false + false + false + true + false + None + false + false + app_main + true + false + false + true + 0 + false + 0 + true + false + + + openocd -f interface/jlink.cfg -c "adapter_khz 3000" -f target/esp32.cfg @@ -245,21 +249,21 @@ DIO true - - - true - Auto - 0 - false - false - true - false - false - - _estack - 0 - false - - true - + + + true + Auto + 0 + false + false + true + false + false + + _estack + 0 + false + + true + \ No newline at end of file diff --git a/ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server_v5.0.vgdbproj b/ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server_v5.0.vgdbproj new file mode 100644 index 00000000..43275482 --- /dev/null +++ b/ESP32/TLS13-wifi_station-server/ESP32-TLS13-wifi_station-server_v5.0.vgdbproj @@ -0,0 +1,269 @@ + + + + + + Unknown + + true + + 591b9b62-1581-445d-93c1-f2751ed04cfc + true + true + SourceDirs + + + + + + com.visualgdb.xtensa-esp32-elf + + 11.2.0 + 9.2.90 + 2 + + + + DEBUG + build/$(PlatformName)/$(ConfigurationName) + + false + $(ToolchainNinja) + $(BuildDir) + + + + false + $(SYSPROGS_CMAKE_PATH) + + + true + false + false + Ninja + false + RemoveBuildDirectory + false + + + true + true + true + false + true + false + true + HideOuterProjectTargets + true + false + true + + + true + 6b1c0fca-05b1-4f65-a57e-5ec9768f9866 + + Upper + HeaderDirectoryAndSubdirectories + true + + + release/v5.0 + esp-idf/v5.0 + ESPIDF + + COM20 + false + false + ESP32 + + + + + + + + + + + + + + + Default + + + + COM20 + + 115200 + 8 + None + One + None + + + 0 + false + false + false + ASCII + + + 255 + 0 + 0 + 0 + + + 255 + 169 + 169 + 169 + + + 255 + 211 + 211 + 211 + + + 255 + 144 + 238 + 144 + + + 255 + 169 + 169 + 169 + + + + 16 + true + true + true + true + 0 + + LF + false + false + false + + + + true + + + + + Unknown + + true + true + true + + + + false + + + + + Debug + + + + Release + + + + + + + + + false + false + false + false + false + false + false + false + false + + false + false + false + false + false + false + true + false + None + false + false + app_main + true + false + false + true + 0 + false + 0 + true + false + + + openocd + + -f interface/tigard.cfg -c "adapter_khz 13000" -f target/esp32.cfg + + + + false + + 131072 + Enabled + + set remotetimeout 60 + target remote :$$SYS:GDB_PORT$$ + mon gdb_breakpoint_override hard + mon reset halt + load + + false + 0 + 0 + false + + 5000 + 1 + true + + size2MB + freq40M + DIO + + true + + + true + Auto + 0 + false + false + true + false + false + + _estack + 0 + false + + true + + \ No newline at end of file diff --git a/ESP32/TLS13-wifi_station-server/main/station_example_main.c b/ESP32/TLS13-wifi_station-server/main/station_example_main.c index be4b022b..91044619 100644 --- a/ESP32/TLS13-wifi_station-server/main/station_example_main.c +++ b/ESP32/TLS13-wifi_station-server/main/station_example_main.c @@ -31,15 +31,17 @@ #define WOLFSSL_ESPIDF #define WOLFSSL_ESPWROOM32 #define WOLFSSL_USER_SETTINGS -#include // make sure this appears before any other wolfSSL headers + + +#include +/* make sure user_settings.h appears before any other wolfSSL headers */ +#include #include #ifdef WOLFSSL_TRACK_MEMORY -#include + #include #endif - - /** ****************************************************************************** ****************************************************************************** @@ -48,19 +50,23 @@ ****************************************************************************** **/ -/* when using a private config with plain text passwords, not my_private_config.h should be excluded from git updates */ +/* when using a private config with plain text passwords, +** define USE_MY_PRIVATE_CONFIG. +** note my_private_config.h should be excluded from git updates +*/ #define USE_MY_PRIVATE_CONFIG #ifdef USE_MY_PRIVATE_CONFIG -#include "/workspace/my_private_config.h" + #include "/mnt/c/workspace/my_private_config.h" #else -/* The examples use WiFi configuration that you can set via project configuration menu - - If you'd rather not, just change the below entries to strings with - the config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid" -*/ -#define EXAMPLE_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID -#define EXAMPLE_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD + /* The examples use WiFi configuration that you can set via project + * configuration menu + * + * If you'd rather not, just change the below entries to strings with + * the config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid" + */ + #define EXAMPLE_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID + #define EXAMPLE_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD #endif /* ESP lwip */ @@ -72,14 +78,14 @@ #define TLS_SMP_CLIENT_TASK_WORDS 10240 #define TLS_SMP_CLIENT_TASK_PRIORITY 8 -/* include certificates. Note that there is an experiation date! - * - * See also https://github.com/wolfSSL/wolfssl/blob/master/wolfssl/certs_test.h - - for example: - - #define USE_CERT_BUFFERS_2048 - #include +/* include certificates. Note that there is an expiration date! +** +** See also https://github.com/wolfSSL/wolfssl/blob/master/wolfssl/certs_test.h +** +** for example: +** +** #define USE_CERT_BUFFERS_2048 +** #include */ #include "embedded_CLIENT_CERT_FILE.h" #include "embedded_SERVER_CERT_FILE.h" @@ -107,9 +113,11 @@ TickType_t DelayTicks = 5000 / portTICK_PERIOD_MS; /* FreeRTOS event group to signal when we are connected*/ static EventGroupHandle_t s_wifi_event_group; -/* The event group allows multiple bits for each event, but we only care about two events: - * - we are connected to the AP with an IP - * - we failed to connect after the maximum amount of retries */ +/* The event group allows multiple bits for each event, +** but we only care about two events: +** - we are connected to the AP with an IP +** - we failed to connect after the maximum amount of retries +*/ #define WIFI_CONNECTED_BIT BIT0 #define WIFI_FAIL_BIT BIT1 @@ -120,30 +128,48 @@ static int s_retry_num = 0; static void event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { - if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) { + if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) + { esp_wifi_connect(); - } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { - if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) { + } + else if (event_base == WIFI_EVENT + && + event_id == WIFI_EVENT_STA_DISCONNECTED) + { + + /* we have WiFi disconnected event, so try reconnect */ + if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) + { esp_wifi_connect(); s_retry_num++; ESP_LOGI(TAG, "retry to connect to the AP"); - } else { + } + else + { xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); } - ESP_LOGI(TAG,"connect to the AP fail"); - } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { + ESP_LOGI(TAG, "connect to the AP fail"); + } + else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) + { + + /* we have an IP address! */ ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); s_retry_num = 0; xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); } + else { + ESP_LOGI(TAG, "WiFi event not handled: event_id = %li", event_id); + } } int set_time() { /* we'll also return a result code of zero */ int res = 0; - - //*ideally, we'd like to set time from network, but let's set a default time, just in case */ + + /*ideally, we'd like to set time from network, + but let's set a default time, just in case */ struct tm timeinfo; timeinfo.tm_year = 2022 - 1900; timeinfo.tm_mon = 3; @@ -155,18 +181,18 @@ int set_time() { t = mktime(&timeinfo); struct timeval now = { .tv_sec = t }; - settimeofday(&now, NULL); + settimeofday(&now, NULL); /* set timezone */ setenv("TZ", TIME_ZONE, 1); tzset(); - /* next, let's setup NTP time servers - * + /* next, let's setup NTP time servers + * * see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/system_time.html#sntp-time-synchronization */ sntp_setoperatingmode(SNTP_OPMODE_POLL); - + int i = 0; for (i = 0; i < NTP_SERVER_COUNT; i++) { const char* thisServer = ntpServerList[i]; @@ -209,9 +235,11 @@ void wifi_init_sta(void) .sta = { .ssid = EXAMPLE_ESP_WIFI_SSID, .password = EXAMPLE_ESP_WIFI_PASS, - /* Setting a password implies station will connect to all security modes including WEP/WPA. - * However these modes are deprecated and not advisable to be used. Incase your Access point - * doesn't support WPA2, these mode can be enabled by commenting below line */ + /* Setting a password implies station will connect to all security + * modes including WEP/WPA.However these modes are deprecated and + * not advisable to be used. In case your Access point doesn't + * support WPA2, these mode can be enabled by commenting below line + */ .threshold.authmode = WIFI_AUTH_WPA2_PSK, .pmf_cfg = { @@ -226,29 +254,40 @@ void wifi_init_sta(void) ESP_LOGI(TAG, "wifi_init_sta finished."); - /* Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum - * number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) */ + /* Waiting until either the connection is established (WIFI_CONNECTED_BIT) + ** or connection failed for the maximum number of re-tries (WIFI_FAIL_BIT). + ** The bits are set by event_handler() (see above) + */ EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT | WIFI_FAIL_BIT, pdFALSE, pdFALSE, portMAX_DELAY); - /* xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually - * happened. */ + /* xEventGroupWaitBits() returns the bits before the call returned, + ** hence we can test which event actually happened. + */ if (bits & WIFI_CONNECTED_BIT) { ESP_LOGI(TAG, "connected to ap SSID:%s password:%s", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); - } else if (bits & WIFI_FAIL_BIT) { + } + else if (bits & WIFI_FAIL_BIT) { ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); - } else { + } + else { ESP_LOGE(TAG, "UNEXPECTED EVENT"); } /* The event will not be processed after unregister */ - ESP_ERROR_CHECK(esp_event_handler_instance_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, instance_got_ip)); - ESP_ERROR_CHECK(esp_event_handler_instance_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, instance_any_id)); + ESP_ERROR_CHECK(esp_event_handler_instance_unregister(IP_EVENT, + IP_EVENT_STA_GOT_IP, + instance_got_ip) + ); + ESP_ERROR_CHECK(esp_event_handler_instance_unregister(WIFI_EVENT, + ESP_EVENT_ANY_ID, + instance_any_id) + ); vEventGroupDelete(s_wifi_event_group); } @@ -258,7 +297,7 @@ int tls_smp_server_task() { struct sockaddr_in servAddr; const int BUFF_SIZE = 256; char buff[BUFF_SIZE]; - size_t len; /* we'll be looking at the length of messages sent and received */ + size_t len; /* we'll be looking at the length of messages sent & received */ struct sockaddr_in clientAddr; socklen_t size = sizeof(clientAddr); @@ -270,7 +309,10 @@ int tls_smp_server_task() { /* declare wolfSSL objects */ WOLFSSL_CTX *ctx = NULL; /* the wolfSSL context object*/ - WOLFSSL *ssl = NULL; /* although called "ssl" is is the secure object for reading and writings data*/ + + + WOLFSSL *ssl = NULL; /* although called "ssl" this is the secure object + for reading and writing data*/ #ifdef HAVE_SIGNAL signal(SIGINT, sig_handler); @@ -279,14 +321,14 @@ int tls_smp_server_task() { #ifdef DEBUG_WOLFSSL wolfSSL_Debugging_ON(); WOLFSSL_MSG("Debug ON v0.2b"); - //ShowCiphers(); + /* ShowCiphers(); */ #endif /* DEBUG_WOLFSSL */ #ifndef WOLFSSL_TLS13 ret = WOLFSSL_FAILURE; WOLFSSL_ERROR_MSG("ERROR: Example requires TLS v1.3.\n"); #endif /* WOLFSSL_TLS13 */ - + /* Initialize the server address struct with zeros */ memset(&servAddr, 0, sizeof(servAddr)); @@ -295,86 +337,93 @@ int tls_smp_server_task() { servAddr.sin_port = htons(DEFAULT_PORT); /* on DEFAULT_PORT */ servAddr.sin_addr.s_addr = INADDR_ANY; /* from anywhere */ - /* + /* *************************************************************************** - * Create a socket that uses an internet IPv4 address, + * Create a socket that uses an Internet IPv4 address, * Sets the socket to be stream based (TCP), * 0 means choose the default protocol. - * + * * #include * - * int socket(int domain, int type, int protocol); - * - * The socket() function shall create an unbound socket in a communications - * domain, and return a file descriptor that can be used in later function + * int socket(int domain, int type, int protocol); + * + * The socket() function shall create an unbound socket in a communications + * domain, and return a file descriptor that can be used in later function * calls that operate on sockets. - * + * * The socket() function takes the following arguments: - * domain Specifies the communications domain in which a + * domain Specifies the communications domain in which a * socket is to be created. * type Specifies the type of socket to be created. - * protocol Specifies a particular protocol to be used with the socket. - * Specifying a protocol of 0 causes socket() to use an - * unspecified default protocol appropriate for the + * protocol Specifies a particular protocol to be used with the socket. + * Specifying a protocol of 0 causes socket() to use an + * unspecified default protocol appropriate for the * requested socket type. - * - * The domain argument specifies the address family used in the - * communications domain. The address families supported by the system + * + * The domain argument specifies the address family used in the + * communications domain. The address families supported by the system * are implementation-defined. - * + * * Symbolic constants that can be used for the domain argument are * defined in the header. * - * The type argument specifies the socket type, which determines the semantics - * of communication over the socket. The following socket types are defined; - * implementations may specify additional socket types: + * The type argument specifies the socket type, which determines the + * semantics of communication over the socket. The following socket types + * are defined; implementations may specify additional socket types: * - * SOCK_STREAM Provides sequenced, reliable, bidirectional, - * connection-mode byte streams, and may provide a + * SOCK_STREAM Provides sequenced, reliable, bidirectional, + * connection-mode byte streams, and may provide a * transmission mechanism for out-of-band data. * SOCK_DGRAM Provides datagrams, which are connectionless-mode, * unreliable messages of fixed maximum length. - * SOCK_SEQPACKET Provides sequenced, reliable, bidirectional, - * connection-mode transmission paths for records. - * A record can be sent using one or more output - * operations and received using one or more input - * operations, but a single operation never transfers - * part of more than one record. Record boundaries + * SOCK_SEQPACKET Provides sequenced, reliable, bidirectional, + * connection-mode transmission paths for records. + * A record can be sent using one or more output + * operations and received using one or more input + * operations, but a single operation never transfers + * part of more than one record. Record boundaries * are visible to the receiver via the MSG_EOR flag. - * - * If the protocol argument is non-zero, it shall - * specify a protocol that is supported by the address + * + * If the protocol argument is non-zero, it shall + * specify a protocol that is supported by the address * family. If the protocol argument is zero, the default * protocol for this address family and type shall be - * used. The protocols supported by the system are + * used. The protocols supported by the system are * implementation-defined. - * - * The process may need to have appropriate privileges to use the socket() function or to create some sockets. - * + * + * The process may need to have appropriate privileges to use the + * socket() function or to create some sockets. + * * Return Value - * Upon successful completion, socket() shall return a non-negative integer, - * the socket file descriptor. Otherwise, a value of -1 shall be returned + * Upon successful completion, socket() shall return a non-negative + * integer, the socket file descriptor. + * + * Otherwise, a value of -1 shall be returned * and errno set to indicate the error. - * + * * Errors; The socket() function shall fail if: - * - * EAFNOSUPPORT The implementation does not support the specified address family. - * EMFILE No more file descriptors are available for this process. + * + * EAFNOSUPPORT The implementation does not support the specified + * address family. + * EMFILE No more file descriptors are available + * for this process. * ENFILE No more file descriptors are available for the system. - * EPROTONOSUPPORT The protocol is not supported by the address family, or the protocol is not supported by the implementation. + * EPROTONOSUPPORT The protocol is not supported by the address family, + * or the protocol is not supported by the implementation. * EPROTOTYPE The socket type is not supported by the protocol. - * + * * The socket() function may fail if: - * + * * EACCES The process does not have appropriate privileges. - * ENOBUFS Insufficient resources were available in the system to perform the operation. + * ENOBUFS Insufficient resources were available in the system to + * perform the operation. * ENOMEM Insufficient memory was available to fulfill the request. - * + * * see: https://linux.die.net/man/3/socket *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { - /* Upon successful completion, socket() shall return + /* Upon successful completion, socket() shall return * a non-negative integer, the socket file descriptor. */ sockfd = socket(AF_INET, SOCK_STREAM, 0); @@ -382,7 +431,7 @@ int tls_smp_server_task() { WOLFSSL_MSG("socket creation successful\n"); } else { - // TODO show errno + // TODO show errno ret = WOLFSSL_FAILURE; WOLFSSL_ERROR_MSG("ERROR: failed to create a socket.\n"); } @@ -395,7 +444,7 @@ int tls_smp_server_task() { /* *************************************************************************** * set SO_REUSEADDR on socket - * + * * #include * # include * int getsockopt(int sockfd, @@ -407,26 +456,32 @@ int tls_smp_server_task() { * int optname, * const void *optval, * socklen_t optlen); - * - * setsockopt() manipulates options for the socket referred to by the file - * descriptor sockfd. Options may exist at multiple protocol levels; they + * + * setsockopt() manipulates options for the socket referred to by the file + * descriptor sockfd. Options may exist at multiple protocol levels; they * are always present at the uppermost socket level. - * - * When manipulating socket options, the level at which the option resides - * and the name of the option must be specified. To manipulate options at - * the sockets API level, level is specified as SOL_SOCKET. To manipulate - * options at any other level the protocol number of the appropriate - * protocol controlling the option is supplied. For example, to indicate - * that an option is to be interpreted by the TCP protocol, level should + * + * When manipulating socket options, the level at which the option resides + * and the name of the option must be specified. To manipulate options at + * the sockets API level, level is specified as SOL_SOCKET. To manipulate + * options at any other level the protocol number of the appropriate + * protocol controlling the option is supplied. For example, to indicate + * that an option is to be interpreted by the TCP protocol, level should * be set to the protocol number of TCP - * + * * Return Value - * On success, zero is returned. On error, -1 is returned, and errno is set appropriately. + * On success, zero is returned. + * On error, -1 is returned, and errno is set appropriately. * * Errors * EBADF The argument sockfd is not a valid descriptor. - * EFAULT The address pointed to by optval is not in a valid part of the process address space. For getsockopt(), this error may also be returned if optlen is not in a valid part of the process address space. - * EINVAL optlen invalid in setsockopt(). In some cases this error can also occur for an invalid value in optval (e.g., for the IP_ADD_MEMBERSHIP option described in ip(7)). + * EFAULT The address pointed to by optval is not in a valid part of + * the process address space. For getsockopt(), this error + * may also be returned if optlen is not in a valid part of + * the process address space. + * EINVAL optlen invalid in setsockopt(). In some cases this error + * can also occur for an invalid value in optval + * e.g., for the IP_ADD_MEMBERSHIP option described in ip(7) * ENOPROTOOPT The option is unknown at the level indicated. * ENOTSOCK The argument sockfd is a file, not a socket. * @@ -441,12 +496,12 @@ int tls_smp_server_task() { SO_REUSEADDR, (char*)&on, (socklen_t)sizeof(on)); - + if (soc_ret == 0) { WOLFSSL_MSG("setsockopt re-use addr successful\n"); } else { - // TODO show errno + ESP_LOGE(TAG, "setsockopt failed with code %i", soc_ret); ret = WOLFSSL_FAILURE; WOLFSSL_ERROR_MSG("ERROR: failed to setsockopt addr on socket.\n"); } @@ -454,7 +509,7 @@ int tls_smp_server_task() { else { WOLFSSL_ERROR_MSG("Skipping setsockopt addr\n"); } - + #ifdef SO_REUSEPORT /* see above for details on getsockopt */ if (ret == WOLFSSL_SUCCESS) { @@ -463,64 +518,68 @@ int tls_smp_server_task() { SO_REUSEPORT, (char*)&on, (socklen_t)sizeof(on)); - + if (soc_ret == 0) { WOLFSSL_MSG("setsockopt re-use port successful\n"); } - else { - // TODO show errno - // ret = WOLFSSL_FAILURE; - // TODO what's up with the error? - WOLFSSL_ERROR_MSG("ERROR: failed to setsockopt port on socket. >> IGNORED << \n"); + else { + WOLFSSL_MSG("Note: failed to setsockopt port on socket." + " >> IGNORED << \n"); } - } + } else { WOLFSSL_ERROR_MSG("Skipping setsockopt port\n"); } #else WOLFSSL_MSG("SO_REUSEPORT not configured for setsockopt to re-use port\n"); #endif - + /* *************************************************************************** - * #include + * #include * #include - * + * * int bind(int sockfd, * const struct sockaddr *addr, * socklen_t addrlen); - * + * * Description - * - * When a socket is created with socket(2), it exists in a name + * + * When a socket is created with socket(2), it exists in a name * space(address family) but has no address assigned to it. - * - * bind() assigns the address specified by addr to the socket referred to - * by the file descriptor sockfd.addrlen specifies the size, in bytes, of - * the address structure pointed to by addr.Traditionally, this operation + * + * bind() assigns the address specified by addr to the socket referred to + * by the file descriptor sockfd.addrlen specifies the size, in bytes, of + * the address structure pointed to by addr.Traditionally, this operation * is called "assigning a name to a socket". - * + * * It is normally necessary to assign a local address using bind() before * a SOCK_STREAM socket may receive connections. * * Return Value - * On success, zero is returned. On error, -1 is returned, and errno is set appropriately. + * On success, zero is returned. + * On error, -1 is returned, and errno is set appropriately. * * Errors - * EACCES The address is protected, and the user is not the superuser. + * EACCES The address is protected, and + * the user is not the superuser. * EADDRINUSE The given address is already in use. * EBADF sockfd is not a valid descriptor. * EINVAL The socket is already bound to an address. * ENOTSOCK sockfd is a descriptor for a file, not a socket. * * see: https://linux.die.net/man/2/bind - * + * * https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/lwip.html *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { /* Bind the server socket to our port */ - int soc_ret = bind(sockfd, (struct sockaddr*)&servAddr, sizeof(servAddr)); + int soc_ret = bind(sockfd, + (struct sockaddr*)&servAddr, + sizeof(servAddr) + ); + if (soc_ret > -1) { WOLFSSL_MSG("socket bind successful\n"); } @@ -530,42 +589,43 @@ int tls_smp_server_task() { } } - /* + /* *************************************************************************** - * Listen for a new connection, allow 5 pending connections + * Listen for a new connection, allow 5 pending connections * - * #include + * #include * #include * int listen(int sockfd, int backlog); * * Description - * - * listen() marks the socket referred to by sockfd as a passive socket, - * that is, as a socket that will be used to accept incoming connection + * + * listen() marks the socket referred to by sockfd as a passive socket, + * that is, as a socket that will be used to accept incoming connection * requests using accept. * - * The sockfd argument is a file descriptor that refers to a socket of + * The sockfd argument is a file descriptor that refers to a socket of * type SOCK_STREAM or SOCK_SEQPACKET. - * - * The backlog argument defines the maximum length to which the queue of - * pending connections for sockfd may grow.If a connection request arrives - * when the queue is full, the client may receive an error with an indication - * of ECONNREFUSED or, if the underlying protocol supports retransmission, - * the request may be ignored so that a later reattempt at connection - * succeeds. + * + * The backlog argument defines the maximum length to which the queue of + * pending connections for sockfd may grow.If a connection request arrives + * when the queue is full, the client may receive an error with an + * indication of ECONNREFUSED or, if the underlying protocol supports + * retransmission, the request may be ignored so that a later reattempt + * at connection succeeds. * * Return Value * On success, zero is returned. * On Error, -1 is returned, and errno is set appropriately. - * Errors + * Errors * EADDRINUSE Another socket is already listening on the same port. * EBADF The argument sockfd is not a valid descriptor. * ENOTSOCK The argument sockfd is not a socket. - * EOPNOTSUPP The socket is not of a type that supports the listen() operation. + * EOPNOTSUPP The socket is not of a type that supports + * the listen() operation. * - * ses: https://linux.die.net/man/2/listen + * see: https://linux.die.net/man/2/listen */ - + if (ret == WOLFSSL_SUCCESS) { int soc_ret = listen(sockfd, 5); if (soc_ret > -1) { @@ -575,22 +635,22 @@ int tls_smp_server_task() { ret = WOLFSSL_FAILURE; WOLFSSL_ERROR_MSG("ERROR: failed to listen to socket.\n"); } - } - - /* + } + + /* *************************************************************************** - * Initialize wolfSSL - * + * Initialize wolfSSL + * * WOLFSSL_API int wolfSSL_Init (void) * - * Initializes the wolfSSL library for use. Must be called once per + * Initializes the wolfSSL library for use. Must be called once per * application and before any other call to the library. * * Returns * SSL_SUCCESS If successful the call will return. * BAD_MUTEX_E is an error that may be returned. * WC_INIT_E wolfCrypt initialization error returned. - * + * * see: https://www.wolfssl.com/doxygen/group__TLS.html#gae2a25854de5230820a6edf16281d8fd7 *************************************************************************** */ @@ -610,24 +670,26 @@ int tls_smp_server_task() { WOLFSSL_ERROR_MSG("Skipping wolfSSL_Init\n"); } - /* + /* *************************************************************************** * Create and initialize WOLFSSL_CTX (aka the context) - * + * * WOLFSSL_API WOLFSSL_CTX* wolfSSL_CTX_new (WOLFSSL_METHOD *) - * - * This function creates a new SSL context, taking a desired + * + * This function creates a new SSL context, taking a desired * SSL/TLS protocol method for input. * * Returns - * pointer If successful the call will return a pointer to the newly-created WOLFSSL_CTX. + * pointer If successful the call will return a pointer + * to the newly-created WOLFSSL_CTX. + * NULL upon failure. * * Parameters - * method pointer to the desired WOLFSSL_METHOD to use for the SSL context. + * method pointer to the desired WOLFSSL_METHOD to use for SSL context. * This is created using one of the wolfSSLvXX_XXXX_method() functions to * specify SSL/TLS/DTLS protocol level. - * + * * see https://www.wolfssl.com/doxygen/group__Setup.html#gadfa552e771944a6a1102aa43f45378b5 *************************************************************************** */ @@ -635,7 +697,8 @@ int tls_smp_server_task() { WOLFSSL_METHOD* method = wolfTLSv1_3_server_method(); WOLFSSL_MSG("calling wolfTLSv1_3_server_method"); if (method == NULL) { - WOLFSSL_ERROR_MSG("ERROR : failed to get wolfTLSv1_3_server_method.\n"); + WOLFSSL_ERROR_MSG("ERROR : " + "failed to get wolfTLSv1_3_server_method.\n"); ret = WOLFSSL_FAILURE; } else { @@ -652,203 +715,217 @@ int tls_smp_server_task() { WOLFSSL_ERROR_MSG("skipping wolfSSL_CTX_new\n"); } - /* + /* *************************************************************************** - * load CERT_FILE - * - * + * load CERT_FILE + * + * * WOLFSSL_API int wolfSSL_use_certificate_buffer (WOLFSSL * , * const unsigned char * , * long, - * int + * int * ) - * - * The wolfSSL_use_certificate_buffer() function loads a certificate buffer - * into the WOLFSSL object. It behaves like the non-buffered version, only - * differing in its ability to be called with a buffer as input instead of - * a file. The buffer is provided by the in argument of size sz. - * - * format specifies the format type of the buffer; SSL_FILETYPE_ASN1 or + * + * The wolfSSL_use_certificate_buffer() function loads a certificate buffer + * into the WOLFSSL object. It behaves like the non-buffered version, only + * differing in its ability to be called with a buffer as input instead of + * a file. The buffer is provided by the in argument of size sz. + * + * format specifies the format type of the buffer; SSL_FILETYPE_ASN1 or * SSL_FILETYPE_PEM. Please see the examples for proper usage. - * + * * Returns * SSL_SUCCESS upon success. * SSL_BAD_FILETYPE will be returned if the file is the wrong format. - * SSL_BAD_FILE will be returned if the file doesn’t exist, can’t be read, or is corrupted. + * SSL_BAD_FILE will be returned if the file doesn’t exist, + * can’t be read, or is corrupted. * MEMORY_E will be returned if an out of memory condition occurs. * ASN_INPUT_E will be returned if Base16 decoding fails on the file. - * + * * Parameters * ssl pointer to the SSL session, created with wolfSSL_new(). * in buffer containing certificate to load. * sz size of the certificate located in buffer. - * format format of the certificate to be loaded. Possible values are SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. - * + * format format of the certificate to be loaded. + * Possible values are SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. + * * * Pay attention to expiration dates and the current date setting - * + * * see https://www.wolfssl.com/doxygen/group__CertsKeys.html#gaf4e8d912f3fe2c37731863e1cad5c97e *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { WOLFSSL_MSG("Loading cert"); - ret = wolfSSL_CTX_use_certificate_buffer(ctx, - CERT_FILE, - sizeof_CERT_FILE(), + ret = wolfSSL_CTX_use_certificate_buffer(ctx, + CERT_FILE, + sizeof_CERT_FILE(), WOLFSSL_FILETYPE_PEM); if (ret == WOLFSSL_SUCCESS) { WOLFSSL_MSG("wolfSSL_CTX_use_certificate_buffer successful\n"); } else { - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_CTX_use_certificate_buffer failed\n"); + WOLFSSL_ERROR_MSG("ERROR: " + "wolfSSL_CTX_use_certificate_buffer failed\n"); } } else { WOLFSSL_ERROR_MSG("skipping wolfSSL_CTX_use_certificate_buffer\n"); } - - - /* + + + /* *************************************************************************** - * Load client private key into WOLFSSL_CTX - * + * Load client private key into WOLFSSL_CTX + * * wolfSSL_CTX_use_PrivateKey_buffer() - * + * * WOLFSSL_API int wolfSSL_CTX_use_PrivateKey_buffer(WOLFSSL_CTX *, * const unsigned char *, * long, - * int + * int * ) * - * This function loads a private key buffer into the SSL Context. - * It behaves like the non-buffered version, only differing in its - * ability to be called with a buffer as input instead of a file. - * - * The buffer is provided by the in argument of size sz. format - * specifies the format type of the buffer; - * SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. - * + * This function loads a private key buffer into the SSL Context. + * It behaves like the non-buffered version, only differing in its + * ability to be called with a buffer as input instead of a file. + * + * The buffer is provided by the in argument of size sz. format + * specifies the format type of the buffer; + * SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. + * * Please see the examples for proper usage. * * Returns - * SSL_SUCCESS upon success - * SSL_BAD_FILETYPE will be returned if the file is the wrong format. - * SSL_BAD_FILE will be returned if the file doesn’t exist, can’t be read, or is corrupted. - * MEMORY_E will be returned if an out of memory condition occurs. - * ASN_INPUT_E will be returned if Base16 decoding fails on the file. - * NO_PASSWORD will be returned if the key file is encrypted but no password is provided. + * SSL_SUCCESS upon success. + * SSL_BAD_FILETYPE returned if the file is the wrong format. + * SSL_BAD_FILE returned if the file doesn’t exist, + * can’t be read, or is corrupted. + * + * MEMORY_E returned if an out of memory condition occurs. + * ASN_INPUT_E returned if Base16 decoding fails on the file. + * NO_PASSWORD returned if the key file is encrypted + * but no password is provided. * * Parameters - * ctx pointer to the SSL context, created with wolfSSL_CTX_new(). - * inthe input buffer containing the private key to be loaded. - * - * sz the size of the input buffer. - * - * format the format of the private key located in the input buffer(in). + * ctx pointer to the SSL context, created with wolfSSL_CTX_new(). + * in the input buffer containing the private key to be loaded. + * + * sz the size of the input buffer. + * + * format the format of the private key located in the input buffer(in). * Possible values are SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. * * see: https://www.wolfssl.com/doxygen/group__CertsKeys.html#ga71850887b87138b7c2d794bf6b1eafab *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { - ret = wolfSSL_CTX_use_PrivateKey_buffer(ctx, - KEY_FILE, - sizeof_KEY_FILE(), + ret = wolfSSL_CTX_use_PrivateKey_buffer(ctx, + KEY_FILE, + sizeof_KEY_FILE(), WOLFSSL_FILETYPE_PEM); + if (ret == WOLFSSL_SUCCESS) { WOLFSSL_MSG("wolfSSL_CTX_use_PrivateKey_buffer successful\n"); } else { /* TODO fetch and print expiration date since it is a common fail */ - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_CTX_use_PrivateKey_buffer failed\n"); + WOLFSSL_ERROR_MSG("ERROR: " + "wolfSSL_CTX_use_PrivateKey_buffer failed\n"); } } else { WOLFSSL_ERROR_MSG("Skipping wolfSSL_CTX_use_PrivateKey_buffer\n"); } - - /* + + /* *************************************************************************** - * Load CA certificate into WOLFSSL_CTX - * + * Load CA certificate into WOLFSSL_CTX + * * wolfSSL_CTX_load_verify_buffer() * WOLFSSL_API int wolfSSL_CTX_load_verify_buffer(WOLFSSL_CTX *, * const unsigned char *, * long, - * int - * ) - * - * This function loads a CA certificate buffer into the WOLFSSL Context. - * It behaves like the non-buffered version, only differing in its ability - * to be called with a buffer as input instead of a file. The buffer is - * provided by the in argument of size sz. format specifies the format type - * of the buffer; SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. More than one + * int + * ) + * + * This function loads a CA certificate buffer into the WOLFSSL Context. + * It behaves like the non-buffered version, only differing in its ability + * to be called with a buffer as input instead of a file. The buffer is + * provided by the in argument of size sz. format specifies the format type + * of the buffer; SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. More than one * CA certificate may be loaded per buffer as long as the format is in PEM. - * + * * Please see the examples for proper usage. - * + * * Returns - * - * SSL_SUCCESS upon success - * SSL_BAD_FILETYPE will be returned if the file is the wrong format. - * SSL_BAD_FILE will be returned if the file doesn’t exist, can’t be read, or is corrupted. - * MEMORY_E will be returned if an out of memory condition occurs. - * ASN_INPUT_E will be returned if Base16 decoding fails on the file. - * BUFFER_E will be returned if a chain buffer is bigger than the receiving buffer. - * + * + * SSL_SUCCESS upon success + * SSL_BAD_FILETYPE returned if the file is the wrong format. + * SSL_BAD_FILE returned if the file doesn’t exist, can’t be read, + * or is corrupted. + * MEMORY_E returned if an out of memory condition occurs. + * ASN_INPUT_E returned if Base16 decoding fails on the file. + * BUFFER_E returned if a chain buffer is bigger than + * the receiving buffer. + * * Parameters - * - * ctx pointer to the SSL context, created with wolfSSL_CTX_new(). - * in pointer to the CA certificate buffer. - * sz size of the input CA certificate buffer, in. - * format format of the buffer certificate, either SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM. + * + * ctx pointer to the SSL context, created with wolfSSL_CTX_new(). + * in pointer to the CA certificate buffer. + * sz size of the input CA certificate buffer, in. + * format format of the buffer certificate, either SSL_FILETYPE_ASN1 + * or SSL_FILETYPE_PEM. * * see https://www.wolfssl.com/doxygen/group__CertsKeys.html#gaa37539cce3388c628ac4672cf5606785 *************************************************************************** */ if (ret == WOLFSSL_SUCCESS) { - ret = wolfSSL_CTX_load_verify_buffer(ctx, CA_FILE, sizeof_CA_FILE(), WOLFSSL_FILETYPE_PEM); + ret = wolfSSL_CTX_load_verify_buffer(ctx, + CA_FILE, + sizeof_CA_FILE(), + WOLFSSL_FILETYPE_PEM + ); + if (ret == WOLFSSL_SUCCESS) { WOLFSSL_MSG("wolfSSL_CTX_load_verify_buffer successful\n"); } else { - WOLFSSL_ERROR_MSG("ERROR: wolfSSL_CTX_load_verify_buffer failed\n"); + WOLFSSL_ERROR_MSG("ERROR: " + "wolfSSL_CTX_load_verify_buffer failed\n"); } } else { WOLFSSL_ERROR_MSG("skipping wolfSSL_CTX_load_verify_buffer\n"); } - + /* Require mutual authentication */ wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_PEER | WOLFSSL_VERIFY_FAIL_IF_NO_PEER_CERT, NULL); - - - /* Continue to accept clients until mShutdown is issued */ while (!mShutdown && (ret == WOLFSSL_SUCCESS)) { WOLFSSL_MSG("Waiting for a connection...\n"); - + /* Accept client connections */ if ((mConnd = accept(sockfd, (struct sockaddr*)&clientAddr, &size)) == -1) { - // fprintf(stderr, "ERROR: failed to accept the connection\n\n"); - ret = -1; - // TODO goto exit; - WOLFSSL_ERROR_MSG("ERROR: failed socket accept\n"); + + ret = -1; + goto exit; + WOLFSSL_ERROR_MSG("ERROR: failed socket connection accept\n"); ret = WOLFSSL_FAILURE; } /* Create a WOLFSSL object */ if ((ssl = wolfSSL_new(ctx)) == NULL) { - // fprintf(stderr, "ERROR: failed to create WOLFSSL object\n"); - ret = -1; - //TODO goto exit; - WOLFSSL_ERROR_MSG("ERROR: filed wolfSSL_new during loop\n"); + WOLFSSL_ERROR_MSG("ERROR: failed to create WOLFSSL object\n"); + ret = -1; + goto exit; + WOLFSSL_ERROR_MSG("ERROR: failed wolfSSL_new during loop\n"); ret = WOLFSSL_FAILURE; } @@ -868,17 +945,16 @@ int tls_smp_server_task() { /* Establish TLS connection */ if ((ret = wolfSSL_accept(ssl)) != WOLFSSL_SUCCESS) { WOLFSSL_ERROR_MSG("ERROR: wolfSSL_accept\n"); + ret = WOLFSSL_FAILURE; - // fprintf(stderr, - // "wolfSSL_accept error = %d\n", - // wolfSSL_get_error(ssl, ret)); - // TODO goto exit; + ESP_LOGE(TAG, "wolfSSL_accept error = %d\n", + wolfSSL_get_error(ssl, ret)); + goto exit; } else { WOLFSSL_MSG("Client connected successfully\n"); } - #ifdef HAVE_SECRET_CALLBACK wolfSSL_FreeArrays(ssl); #endif @@ -886,16 +962,17 @@ int tls_smp_server_task() { /* Read the client data into our buff array */ memset(buff, 0, sizeof(buff)); if ((ret = wolfSSL_read(ssl, buff, sizeof(buff) - 1)) < 0) { - // fprintf(stderr, "ERROR: failed to read\n"); - //TODO goto exit; + ESP_LOGE(TAG, "wolfSSL_read error = %d\n", + wolfSSL_get_error(ssl, ret)); + goto exit; } - /* Print to stdout any data the client sends */ - // printf("Client: %s\n", buff); + /* Print any data the client sends */ + ESP_LOGI(TAG, "Client: %s\n", buff); /* Check for server shutdown command */ if (strncmp(buff, "shutdown", 8) == 0) { - // printf("Shutdown command issued!\n"); + ESP_LOGI(TAG, "Shutdown command issued!\n"); mShutdown = 1; } @@ -906,14 +983,15 @@ int tls_smp_server_task() { /* Reply back to the client */ if ((ret = wolfSSL_write(ssl, buff, len)) != len) { - // fprintf(stderr, "ERROR: failed to write\n"); - // TODO goto exit; + ESP_LOGE(TAG, "wolfSSL_write error = %d\n", + wolfSSL_get_error(ssl, ret)); + goto exit; } /* Cleanup after this connection */ wolfSSL_shutdown(ssl); if (ssl) { - wolfSSL_free(ssl); /* Free the wolfSSL object */ + wolfSSL_free(ssl); /* Free the wolfSSL object */ ssl = NULL; } if (mConnd != SOCKET_INVALID) { @@ -924,33 +1002,34 @@ int tls_smp_server_task() { WOLFSSL_MSG("Shutdown complete\n"); - /* + /* *************************************************************************** - * - * Cleanup and return - * + * + * Cleanup and return + * *************************************************************************** */ +exit: if (mConnd != SOCKET_INVALID) { - close(mConnd); /* Close the connection to the client */ + close(mConnd); /* Close the connection to the client */ mConnd = SOCKET_INVALID; } if (sockfd != SOCKET_INVALID) { - close(sockfd); /* Close the socket listening for clients */ + close(sockfd); /* Close the socket listening for clients */ sockfd = SOCKET_INVALID; } - + if (ssl) { - wolfSSL_free(ssl); /* Free the wolfSSL object */ + wolfSSL_free(ssl); /* Free the wolfSSL object */ } - + if (ctx) { - wolfSSL_CTX_free(ctx); /* Free the wolfSSL context object */ + wolfSSL_CTX_free(ctx); /* Free the wolfSSL context object */ } - - wolfSSL_Cleanup(); /* Cleanup the wolfSSL environment */ + + wolfSSL_Cleanup(); /* Cleanup the wolfSSL environment */ return ret; } @@ -958,7 +1037,21 @@ int tls_smp_server_task() { void app_main(void) { - //Initialize NVS + ESP_LOGI(TAG, "--------------------------------------------------------"); + ESP_LOGI(TAG, "--------------------------------------------------------"); + ESP_LOGI(TAG, "---------------------- BEGIN MAIN ----------------------"); + ESP_LOGI(TAG, "--------------------------------------------------------"); + ESP_LOGI(TAG, "--------------------------------------------------------"); + + + ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_STRING = %s", LIBWOLFSSL_VERSION_STRING); + ESP_LOGI(TAG, "CONFIG_IDF_TARGET = %s", CONFIG_IDF_TARGET); + ESP_LOGI(TAG, "CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ = %u MHz", CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ); + ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount); + + ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL)); + + /* Initialize NVS */ esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); @@ -970,14 +1063,17 @@ void app_main(void) wifi_init_sta(); set_time(); - + for (;;) { ESP_LOGI(TAG, "main loop"); - vTaskDelay(DelayTicks ? DelayTicks : 1); /* Minimum delay = 1 tick */ + vTaskDelay(DelayTicks ? DelayTicks : 1); /* Minimum delay = 1 tick */ tls_smp_server_task(); + + /* done. wait forever */ for (;;) { - vTaskDelay(DelayTicks ? DelayTicks : 1); /* Minimum delay = 1 tick */ + vTaskDelay(DelayTicks ? DelayTicks : 1); /* Minimum delay = 1 tick + */ } } } diff --git a/ESP32/TLS13-wifi_station-server/sdkconfig b/ESP32/TLS13-wifi_station-server/sdkconfig deleted file mode 100644 index 83356afe..00000000 --- a/ESP32/TLS13-wifi_station-server/sdkconfig +++ /dev/null @@ -1,1394 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) Project Configuration -# -CONFIG_IDF_CMAKE=y -CONFIG_IDF_TARGET_ARCH_XTENSA=y -CONFIG_IDF_TARGET="esp32" -CONFIG_IDF_TARGET_ESP32=y -CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 - -# -# SDK tool configuration -# -CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-" -# CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set -# end of SDK tool configuration - -# -# Build type -# -CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y -# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set -CONFIG_APP_BUILD_GENERATE_BINARIES=y -CONFIG_APP_BUILD_BOOTLOADER=y -CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y -# end of Build type - -# -# Application manager -# -CONFIG_APP_COMPILE_TIME_DATE=y -# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set -# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set -# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set -CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 -# end of Application manager - -# -# Bootloader config -# -CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 -CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set -CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y -# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set -CONFIG_BOOTLOADER_LOG_LEVEL=3 -# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set -CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y -# CONFIG_BOOTLOADER_FACTORY_RESET is not set -# CONFIG_BOOTLOADER_APP_TEST is not set -CONFIG_BOOTLOADER_WDT_ENABLE=y -# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set -CONFIG_BOOTLOADER_WDT_TIME_MS=9000 -# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set -CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 -# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set -CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y -# end of Bootloader config - -# -# Security features -# -# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set -# CONFIG_SECURE_BOOT is not set -# CONFIG_SECURE_FLASH_ENC_ENABLED is not set -# end of Security features - -# -# Serial flasher config -# -CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 -# CONFIG_ESPTOOLPY_NO_STUB is not set -# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set -# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y -# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set -CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y -CONFIG_ESPTOOLPY_FLASHMODE="dio" -# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_40M=y -# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ="40m" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="2MB" -CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y -CONFIG_ESPTOOLPY_BEFORE_RESET=y -# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set -CONFIG_ESPTOOLPY_BEFORE="default_reset" -CONFIG_ESPTOOLPY_AFTER_RESET=y -# CONFIG_ESPTOOLPY_AFTER_NORESET is not set -CONFIG_ESPTOOLPY_AFTER="hard_reset" -# CONFIG_ESPTOOLPY_MONITOR_BAUD_CONSOLE is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set -CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y -# CONFIG_ESPTOOLPY_MONITOR_BAUD_230400B is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_921600B is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_2MB is not set -# CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER is not set -CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER_VAL=115200 -CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 -# end of Serial flasher config - -# -# Partition Table -# -CONFIG_PARTITION_TABLE_SINGLE_APP=y -# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set -# CONFIG_PARTITION_TABLE_TWO_OTA is not set -# CONFIG_PARTITION_TABLE_CUSTOM is not set -CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" -CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 -CONFIG_PARTITION_TABLE_MD5=y -# end of Partition Table - -# -# Example Configuration -# -CONFIG_ESP_WIFI_SSID="myssid" -CONFIG_ESP_WIFI_PASSWORD="mypassword" -CONFIG_ESP_MAXIMUM_RETRY=5 -# end of Example Configuration - -# -# Compiler options -# -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_COMPILER_OPTIMIZATION_NONE is not set -CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set -CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set -CONFIG_COMPILER_HIDE_PATHS_MACROS=y -# CONFIG_COMPILER_CXX_EXCEPTIONS is not set -# CONFIG_COMPILER_CXX_RTTI is not set -CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y -# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set -# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set -# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set -# CONFIG_COMPILER_DUMP_RTL_FILES is not set -# end of Compiler options - -# -# Component config -# - -# -# Application Level Tracing -# -# CONFIG_APPTRACE_DEST_JTAG is not set -CONFIG_APPTRACE_DEST_NONE=y -CONFIG_APPTRACE_LOCK_ENABLE=y -# end of Application Level Tracing - -# -# ESP-ASIO -# -# CONFIG_ASIO_SSL_SUPPORT is not set -# end of ESP-ASIO - -# -# Bluetooth -# -# CONFIG_BT_ENABLED is not set -# end of Bluetooth - -# -# CoAP Configuration -# -CONFIG_COAP_MBEDTLS_PSK=y -# CONFIG_COAP_MBEDTLS_PKI is not set -# CONFIG_COAP_MBEDTLS_DEBUG is not set -CONFIG_COAP_LOG_DEFAULT_LEVEL=0 -# end of CoAP Configuration - -# -# Driver configurations -# - -# -# ADC configuration -# -# CONFIG_ADC_FORCE_XPD_FSM is not set -CONFIG_ADC_DISABLE_DAC=y -# end of ADC configuration - -# -# MCPWM configuration -# -# CONFIG_MCPWM_ISR_IN_IRAM is not set -# end of MCPWM configuration - -# -# SPI configuration -# -# CONFIG_SPI_MASTER_IN_IRAM is not set -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -# CONFIG_SPI_SLAVE_IN_IRAM is not set -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y -# end of SPI configuration - -# -# TWAI configuration -# -# CONFIG_TWAI_ISR_IN_IRAM is not set -# CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set -# CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set -# CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set -# CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set -# end of TWAI configuration - -# -# UART configuration -# -# CONFIG_UART_ISR_IN_IRAM is not set -# end of UART configuration - -# -# RTCIO configuration -# -# CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC is not set -# end of RTCIO configuration - -# -# GPIO Configuration -# -# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set -# end of GPIO Configuration - -# -# GDMA Configuration -# -# CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GDMA_ISR_IRAM_SAFE is not set -# end of GDMA Configuration -# end of Driver configurations - -# -# eFuse Bit Manager -# -# CONFIG_EFUSE_CUSTOM_TABLE is not set -# CONFIG_EFUSE_VIRTUAL is not set -# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set -CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y -# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set -CONFIG_EFUSE_MAX_BLK_LEN=192 -# end of eFuse Bit Manager - -# -# ESP-TLS -# -CONFIG_ESP_TLS_USING_MBEDTLS=y -# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set -# CONFIG_ESP_TLS_SERVER is not set -# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_PSK_VERIFICATION is not set -# CONFIG_ESP_TLS_INSECURE is not set -# end of ESP-TLS - -# -# ESP32-specific -# -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -CONFIG_ESP32_REV_MIN=0 -CONFIG_ESP32_DPORT_WORKAROUND=y -# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set -CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y -# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 -# CONFIG_ESP32_SPIRAM_SUPPORT is not set -# CONFIG_ESP32_TRAX is not set -CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 -# CONFIG_ESP32_ULP_COPROC_ENABLED is not set -CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0 -CONFIG_ESP32_DEBUG_OCDAWARE=y -CONFIG_ESP32_BROWNOUT_DET=y -CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set -CONFIG_ESP32_BROWNOUT_DET_LVL=0 -CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y -# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set -CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y -# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set -CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 -CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP32_XTAL_FREQ_40=y -# CONFIG_ESP32_XTAL_FREQ_26 is not set -# CONFIG_ESP32_XTAL_FREQ_AUTO is not set -CONFIG_ESP32_XTAL_FREQ=40 -# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set -# CONFIG_ESP32_NO_BLOBS is not set -# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set -# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set -# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set -CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5 -# end of ESP32-specific - -# -# ADC-Calibration -# -CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y -CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y -CONFIG_ADC_CAL_LUT_ENABLE=y -# end of ADC-Calibration - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# Ethernet -# -CONFIG_ETH_ENABLED=y -CONFIG_ETH_USE_ESP32_EMAC=y -CONFIG_ETH_PHY_INTERFACE_RMII=y -CONFIG_ETH_RMII_CLK_INPUT=y -# CONFIG_ETH_RMII_CLK_OUTPUT is not set -CONFIG_ETH_RMII_CLK_IN_GPIO=0 -CONFIG_ETH_DMA_BUFFER_SIZE=512 -CONFIG_ETH_DMA_RX_BUFFER_NUM=10 -CONFIG_ETH_DMA_TX_BUFFER_NUM=10 -CONFIG_ETH_USE_SPI_ETHERNET=y -# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set -# CONFIG_ETH_SPI_ETHERNET_W5500 is not set -# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set -# CONFIG_ETH_USE_OPENETH is not set -# end of Ethernet - -# -# Event Loop Library -# -# CONFIG_ESP_EVENT_LOOP_PROFILING is not set -CONFIG_ESP_EVENT_POST_FROM_ISR=y -CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y -# end of Event Loop Library - -# -# GDB Stub -# -# end of GDB Stub - -# -# ESP HTTP client -# -CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y -# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set -CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y -# end of ESP HTTP client - -# -# HTTP Server -# -CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 -CONFIG_HTTPD_MAX_URI_LEN=512 -CONFIG_HTTPD_ERR_RESP_NO_DELAY=y -CONFIG_HTTPD_PURGE_BUF_LEN=32 -# CONFIG_HTTPD_LOG_PURGE_DATA is not set -# CONFIG_HTTPD_WS_SUPPORT is not set -# end of HTTP Server - -# -# ESP HTTPS OTA -# -# CONFIG_OTA_ALLOW_HTTP is not set -# end of ESP HTTPS OTA - -# -# ESP HTTPS server -# -# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set -# end of ESP HTTPS server - -# -# Hardware Settings -# - -# -# MAC Config -# -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y -# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set -CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 -# end of MAC Config - -# -# Sleep Config -# -CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y -CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y -# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set -# CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND is not set -# end of Sleep Config - -# -# RTC Clock Config -# -# end of RTC Clock Config -# end of Hardware Settings - -# -# IPC (Inter-Processor Call) -# -CONFIG_ESP_IPC_TASK_STACK_SIZE=1536 -CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y -CONFIG_ESP_IPC_ISR_ENABLE=y -# end of IPC (Inter-Processor Call) - -# -# LCD and Touch Panel -# - -# -# LCD Peripheral Configuration -# -CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 -# end of LCD Peripheral Configuration -# end of LCD and Touch Panel - -# -# ESP NETIF Adapter -# -CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 -CONFIG_ESP_NETIF_TCPIP_LWIP=y -# CONFIG_ESP_NETIF_LOOPBACK is not set -CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y -# end of ESP NETIF Adapter - -# -# PHY -# -CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP_PHY_MAX_TX_POWER=20 -CONFIG_ESP_PHY_REDUCE_TX_POWER=y -# end of PHY - -# -# Power Management -# -# CONFIG_PM_ENABLE is not set -# end of Power Management - -# -# ESP System Settings -# -# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set -CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y -# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set - -# -# Memory protection -# -# end of Memory protection - -CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 -CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y -# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set -# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 -CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_NONE is not set -CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_MULTIPLE_UART=y -CONFIG_ESP_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 -CONFIG_ESP_INT_WDT=y -CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 -CONFIG_ESP_INT_WDT_CHECK_CPU1=y -CONFIG_ESP_TASK_WDT=y -# CONFIG_ESP_TASK_WDT_PANIC is not set -CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP_PANIC_HANDLER_IRAM is not set -# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set -# CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set -CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y -# end of ESP System Settings - -# -# High resolution timer (esp_timer) -# -# CONFIG_ESP_TIMER_PROFILING is not set -CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y -CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y -CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 -# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set -# CONFIG_ESP_TIMER_IMPL_FRC2 is not set -CONFIG_ESP_TIMER_IMPL_TG0_LAC=y -# end of High resolution timer (esp_timer) - -# -# Wi-Fi -# -CONFIG_ESP32_WIFI_ENABLED=y -CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 -CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_CSI_ENABLED is not set -CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP32_WIFI_TX_BA_WIN=6 -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_NVS_ENABLED=y -CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP32_WIFI_IRAM_OPT=y -CONFIG_ESP32_WIFI_RX_IRAM_OPT=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y -# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set -# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y -# end of Wi-Fi - -# -# Core dump -# -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set -# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y -# end of Core dump - -# -# FAT Filesystem support -# -# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set -CONFIG_FATFS_CODEPAGE_437=y -# CONFIG_FATFS_CODEPAGE_720 is not set -# CONFIG_FATFS_CODEPAGE_737 is not set -# CONFIG_FATFS_CODEPAGE_771 is not set -# CONFIG_FATFS_CODEPAGE_775 is not set -# CONFIG_FATFS_CODEPAGE_850 is not set -# CONFIG_FATFS_CODEPAGE_852 is not set -# CONFIG_FATFS_CODEPAGE_855 is not set -# CONFIG_FATFS_CODEPAGE_857 is not set -# CONFIG_FATFS_CODEPAGE_860 is not set -# CONFIG_FATFS_CODEPAGE_861 is not set -# CONFIG_FATFS_CODEPAGE_862 is not set -# CONFIG_FATFS_CODEPAGE_863 is not set -# CONFIG_FATFS_CODEPAGE_864 is not set -# CONFIG_FATFS_CODEPAGE_865 is not set -# CONFIG_FATFS_CODEPAGE_866 is not set -# CONFIG_FATFS_CODEPAGE_869 is not set -# CONFIG_FATFS_CODEPAGE_932 is not set -# CONFIG_FATFS_CODEPAGE_936 is not set -# CONFIG_FATFS_CODEPAGE_949 is not set -# CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set -CONFIG_FATFS_FS_LOCK=0 -CONFIG_FATFS_TIMEOUT_MS=10000 -CONFIG_FATFS_PER_FILE_CACHE=y -# CONFIG_FATFS_USE_FASTSEEK is not set -# end of FAT Filesystem support - -# -# Modbus configuration -# -CONFIG_FMB_COMM_MODE_TCP_EN=y -CONFIG_FMB_TCP_PORT_DEFAULT=502 -CONFIG_FMB_TCP_PORT_MAX_CONN=5 -CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20 -CONFIG_FMB_COMM_MODE_RTU_EN=y -CONFIG_FMB_COMM_MODE_ASCII_EN=y -CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150 -CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200 -CONFIG_FMB_QUEUE_LENGTH=20 -CONFIG_FMB_PORT_TASK_STACK_SIZE=4096 -CONFIG_FMB_SERIAL_BUF_SIZE=256 -CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8 -CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000 -CONFIG_FMB_PORT_TASK_PRIO=10 -# CONFIG_FMB_PORT_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_FMB_PORT_TASK_AFFINITY_CPU0=y -# CONFIG_FMB_PORT_TASK_AFFINITY_CPU1 is not set -CONFIG_FMB_PORT_TASK_AFFINITY=0x0 -CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT=y -CONFIG_FMB_CONTROLLER_SLAVE_ID=0x00112233 -CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20 -CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 -CONFIG_FMB_CONTROLLER_STACK_SIZE=4096 -CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20 -# CONFIG_FMB_TIMER_PORT_ENABLED is not set -CONFIG_FMB_TIMER_GROUP=0 -CONFIG_FMB_TIMER_INDEX=0 -CONFIG_FMB_MASTER_TIMER_GROUP=0 -CONFIG_FMB_MASTER_TIMER_INDEX=0 -# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set -# end of Modbus configuration - -# -# FreeRTOS -# -# CONFIG_FREERTOS_UNICORE is not set -CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y -CONFIG_FREERTOS_CORETIMER_0=y -# CONFIG_FREERTOS_CORETIMER_1 is not set -CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y -CONFIG_FREERTOS_HZ=100 -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set -CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y -# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set -CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y -CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 -CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y -# CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set -# CONFIG_FREERTOS_ASSERT_DISABLE is not set -CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 -CONFIG_FREERTOS_ISR_STACKSIZE=1536 -# CONFIG_FREERTOS_LEGACY_HOOKS is not set -CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 -CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y -# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set -CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 -CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 -CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 -# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set -# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y -CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y -# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -CONFIG_FREERTOS_DEBUG_OCDAWARE=y -# CONFIG_FREERTOS_FPU_IN_ISR is not set -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y -# CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set -# end of FreeRTOS - -# -# Hardware Abstraction Layer (HAL) and Low Level (LL) -# -CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y -# CONFIG_HAL_ASSERTION_DISABLE is not set -# CONFIG_HAL_ASSERTION_SILIENT is not set -# CONFIG_HAL_ASSERTION_ENABLE is not set -CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 -# end of Hardware Abstraction Layer (HAL) and Low Level (LL) - -# -# Heap memory debugging -# -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set -# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set -CONFIG_HEAP_TRACING_OFF=y -# CONFIG_HEAP_TRACING_STANDALONE is not set -# CONFIG_HEAP_TRACING_TOHOST is not set -# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set -# end of Heap memory debugging - -# -# jsmn -# -# CONFIG_JSMN_PARENT_LINKS is not set -# CONFIG_JSMN_STRICT is not set -# end of jsmn - -# -# libsodium -# -# end of libsodium - -# -# Log output -# -# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set -# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set -# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set -CONFIG_LOG_DEFAULT_LEVEL_INFO=y -# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set -# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_LOG_DEFAULT_LEVEL=3 -CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set -# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=3 -CONFIG_LOG_COLORS=y -CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y -# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Log output - -# -# LWIP -# -CONFIG_LWIP_LOCAL_HOSTNAME="espressif" -# CONFIG_LWIP_NETIF_API is not set -# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set -CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y -# CONFIG_LWIP_L2_TO_L3_COPY is not set -# CONFIG_LWIP_IRAM_OPTIMIZATION is not set -CONFIG_LWIP_TIMERS_ONDEMAND=y -CONFIG_LWIP_MAX_SOCKETS=10 -# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set -# CONFIG_LWIP_SO_LINGER is not set -CONFIG_LWIP_SO_REUSE=y -CONFIG_LWIP_SO_REUSE_RXTOALL=y -# CONFIG_LWIP_SO_RCVBUF is not set -# CONFIG_LWIP_NETBUF_RECVINFO is not set -CONFIG_LWIP_IP4_FRAG=y -CONFIG_LWIP_IP6_FRAG=y -# CONFIG_LWIP_IP4_REASSEMBLY is not set -# CONFIG_LWIP_IP6_REASSEMBLY is not set -# CONFIG_LWIP_IP_FORWARD is not set -# CONFIG_LWIP_STATS is not set -# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set -CONFIG_LWIP_ESP_GRATUITOUS_ARP=y -CONFIG_LWIP_GARP_TMR_INTERVAL=60 -CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 -CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y -# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set -CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y -# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set -CONFIG_LWIP_DHCP_OPTIONS_LEN=68 - -# -# DHCP server -# -CONFIG_LWIP_DHCPS=y -CONFIG_LWIP_DHCPS_LEASE_UNIT=60 -CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 -# end of DHCP server - -# CONFIG_LWIP_AUTOIP is not set -CONFIG_LWIP_IPV6=y -# CONFIG_LWIP_IPV6_AUTOCONFIG is not set -CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 -# CONFIG_LWIP_IPV6_FORWARD is not set -# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set -CONFIG_LWIP_NETIF_LOOPBACK=y -CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 - -# -# TCP -# -CONFIG_LWIP_MAX_ACTIVE_TCP=16 -CONFIG_LWIP_MAX_LISTENING_TCP=16 -CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y -CONFIG_LWIP_TCP_MAXRTX=12 -CONFIG_LWIP_TCP_SYNMAXRTX=12 -CONFIG_LWIP_TCP_MSS=1440 -CONFIG_LWIP_TCP_TMR_INTERVAL=250 -CONFIG_LWIP_TCP_MSL=60000 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 -CONFIG_LWIP_TCP_WND_DEFAULT=5744 -CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 -CONFIG_LWIP_TCP_QUEUE_OOSEQ=y -# CONFIG_LWIP_TCP_SACK_OUT is not set -# CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set -CONFIG_LWIP_TCP_OVERSIZE_MSS=y -# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_TCP_RTO_TIME=1500 -# end of TCP - -# -# UDP -# -CONFIG_LWIP_MAX_UDP_PCBS=16 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 -# end of UDP - -# -# Checksums -# -# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set -# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set -CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y -# end of Checksums - -CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_LWIP_PPP_SUPPORT is not set -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 -# CONFIG_LWIP_SLIP_SUPPORT is not set - -# -# ICMP -# -CONFIG_LWIP_ICMP=y -# CONFIG_LWIP_MULTICAST_PING is not set -# CONFIG_LWIP_BROADCAST_PING is not set -# end of ICMP - -# -# LWIP RAW API -# -CONFIG_LWIP_MAX_RAW_PCBS=16 -# end of LWIP RAW API - -# -# SNTP -# -CONFIG_LWIP_SNTP_MAX_SERVERS=1 -# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set -CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 -# end of SNTP - -CONFIG_LWIP_ESP_LWIP_ASSERT=y - -# -# Hooks -# -# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set -CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y -# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y -# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set -CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y -# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set -# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set -CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set -# end of Hooks - -# CONFIG_LWIP_DEBUG is not set -# end of LWIP - -# -# mbedTLS -# -CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y -# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set -# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set -CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y -CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 -CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 -# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set -# CONFIG_MBEDTLS_DEBUG is not set - -# -# mbedTLS v2.28.x related -# -# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set -# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set -# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set -CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y -# end of mbedTLS v2.28.x related - -# -# Certificate Bundle -# -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set -# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set -# end of Certificate Bundle - -# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set -# CONFIG_MBEDTLS_CMAC_C is not set -CONFIG_MBEDTLS_HARDWARE_AES=y -CONFIG_MBEDTLS_HARDWARE_MPI=y -CONFIG_MBEDTLS_HARDWARE_SHA=y -CONFIG_MBEDTLS_ROM_MD5=y -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set -CONFIG_MBEDTLS_HAVE_TIME=y -# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set -CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y -CONFIG_MBEDTLS_SHA512_C=y -CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y -# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set -# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y - -# -# TLS Key Exchange Methods -# -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -# end of TLS Key Exchange Methods - -CONFIG_MBEDTLS_SSL_RENEGOTIATION=y -# CONFIG_MBEDTLS_SSL_PROTO_SSL3 is not set -CONFIG_MBEDTLS_SSL_PROTO_TLS1=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y -CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y -CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y - -# -# Symmetric Ciphers -# -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -CONFIG_MBEDTLS_RC4_DISABLED=y -# CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT is not set -# CONFIG_MBEDTLS_RC4_ENABLED is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_NIST_KW_C is not set -# end of Symmetric Ciphers - -# CONFIG_MBEDTLS_RIPEMD160_C is not set - -# -# Certificates -# -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -CONFIG_MBEDTLS_X509_CSR_PARSE_C=y -# end of Certificates - -CONFIG_MBEDTLS_ECP_C=y -CONFIG_MBEDTLS_ECDH_C=y -CONFIG_MBEDTLS_ECDSA_C=y -# CONFIG_MBEDTLS_ECJPAKE_C is not set -CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y -CONFIG_MBEDTLS_ECP_NIST_OPTIM=y -# CONFIG_MBEDTLS_POLY1305_C is not set -# CONFIG_MBEDTLS_CHACHA20_C is not set -# CONFIG_MBEDTLS_HKDF_C is not set -# CONFIG_MBEDTLS_THREADING_C is not set -# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set -# CONFIG_MBEDTLS_SECURITY_RISKS is not set -# end of mbedTLS - -# -# mDNS -# -CONFIG_MDNS_MAX_SERVICES=10 -CONFIG_MDNS_TASK_PRIORITY=1 -CONFIG_MDNS_TASK_STACK_SIZE=4096 -# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_MDNS_TASK_AFFINITY_CPU0=y -# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set -CONFIG_MDNS_TASK_AFFINITY=0x0 -CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 -# CONFIG_MDNS_STRICT_MODE is not set -CONFIG_MDNS_TIMER_PERIOD_MS=100 -# CONFIG_MDNS_NETWORKING_SOCKET is not set -CONFIG_MDNS_MULTIPLE_INSTANCE=y -# end of mDNS - -# -# ESP-MQTT Configurations -# -CONFIG_MQTT_PROTOCOL_311=y -CONFIG_MQTT_TRANSPORT_SSL=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y -# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set -# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set -# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set -# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set -# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set -# CONFIG_MQTT_CUSTOM_OUTBOX is not set -# end of ESP-MQTT Configurations - -# -# Newlib -# -CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set -CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y -# CONFIG_NEWLIB_NANO_FORMAT is not set -# end of Newlib - -# -# NVS -# -# end of NVS - -# -# OpenSSL -# -# CONFIG_OPENSSL_DEBUG is not set -CONFIG_OPENSSL_ERROR_STACK=y -# CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set -CONFIG_OPENSSL_ASSERT_EXIT=y -# end of OpenSSL - -# -# OpenThread -# -# CONFIG_OPENTHREAD_ENABLED is not set -# end of OpenThread - -# -# PThreads -# -CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_PTHREAD_STACK_MIN=768 -CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y -# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set -# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set -CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" -# end of PThreads - -# -# SPI Flash driver -# -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set -# CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set -# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set -# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set -CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y -CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 -CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 -CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 -# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set -# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set -# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set - -# -# Auto-detect flash chips -# -CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y -# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set -# end of Auto-detect flash chips - -CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y -# end of SPI Flash driver - -# -# SPIFFS Configuration -# -CONFIG_SPIFFS_MAX_PARTITIONS=3 - -# -# SPIFFS Cache Configuration -# -CONFIG_SPIFFS_CACHE=y -CONFIG_SPIFFS_CACHE_WR=y -# CONFIG_SPIFFS_CACHE_STATS is not set -# end of SPIFFS Cache Configuration - -CONFIG_SPIFFS_PAGE_CHECK=y -CONFIG_SPIFFS_GC_MAX_RUNS=10 -# CONFIG_SPIFFS_GC_STATS is not set -CONFIG_SPIFFS_PAGE_SIZE=256 -CONFIG_SPIFFS_OBJ_NAME_LEN=32 -# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set -CONFIG_SPIFFS_USE_MAGIC=y -CONFIG_SPIFFS_USE_MAGIC_LENGTH=y -CONFIG_SPIFFS_META_LENGTH=4 -CONFIG_SPIFFS_USE_MTIME=y - -# -# Debug Configuration -# -# CONFIG_SPIFFS_DBG is not set -# CONFIG_SPIFFS_API_DBG is not set -# CONFIG_SPIFFS_GC_DBG is not set -# CONFIG_SPIFFS_CACHE_DBG is not set -# CONFIG_SPIFFS_CHECK_DBG is not set -# CONFIG_SPIFFS_TEST_VISUALISATION is not set -# end of Debug Configuration -# end of SPIFFS Configuration - -# -# TCP Transport -# - -# -# Websocket -# -CONFIG_WS_TRANSPORT=y -CONFIG_WS_BUFFER_SIZE=1024 -# end of Websocket -# end of TCP Transport - -# -# Unity unit testing library -# -CONFIG_UNITY_ENABLE_FLOAT=y -CONFIG_UNITY_ENABLE_DOUBLE=y -# CONFIG_UNITY_ENABLE_64BIT is not set -# CONFIG_UNITY_ENABLE_COLOR is not set -CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y -# CONFIG_UNITY_ENABLE_FIXTURE is not set -# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set -# end of Unity unit testing library - -# -# Virtual file system -# -CONFIG_VFS_SUPPORT_IO=y -CONFIG_VFS_SUPPORT_DIR=y -CONFIG_VFS_SUPPORT_SELECT=y -CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_VFS_SUPPORT_TERMIOS=y - -# -# Host File System I/O (Semihosting) -# -CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 -# end of Host File System I/O (Semihosting) -# end of Virtual file system - -# -# Wear Levelling -# -# CONFIG_WL_SECTOR_SIZE_512 is not set -CONFIG_WL_SECTOR_SIZE_4096=y -CONFIG_WL_SECTOR_SIZE=4096 -# end of Wear Levelling - -# -# Wi-Fi Provisioning Manager -# -CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 -CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 -# end of Wi-Fi Provisioning Manager - -# -# Supplicant -# -CONFIG_WPA_MBEDTLS_CRYPTO=y -# CONFIG_WPA_WAPI_PSK is not set -# CONFIG_WPA_SUITE_B_192 is not set -# CONFIG_WPA_DEBUG_PRINT is not set -# CONFIG_WPA_TESTING_OPTIONS is not set -# CONFIG_WPA_WPS_STRICT is not set -# CONFIG_WPA_11KV_SUPPORT is not set -# end of Supplicant -# end of Component config - -# -# Compatibility options -# -# CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set -# end of Compatibility options - -# Deprecated options for backward compatibility -CONFIG_TOOLPREFIX="xtensa-esp32-elf-" -# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set -CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y -# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set -CONFIG_LOG_BOOTLOADER_LEVEL=3 -# CONFIG_APP_ROLLBACK_ENABLE is not set -# CONFIG_FLASH_ENCRYPTION_ENABLED is not set -# CONFIG_FLASHMODE_QIO is not set -# CONFIG_FLASHMODE_QOUT is not set -CONFIG_FLASHMODE_DIO=y -# CONFIG_FLASHMODE_DOUT is not set -# CONFIG_MONITOR_BAUD_9600B is not set -# CONFIG_MONITOR_BAUD_57600B is not set -CONFIG_MONITOR_BAUD_115200B=y -# CONFIG_MONITOR_BAUD_230400B is not set -# CONFIG_MONITOR_BAUD_921600B is not set -# CONFIG_MONITOR_BAUD_2MB is not set -# CONFIG_MONITOR_BAUD_OTHER is not set -CONFIG_MONITOR_BAUD_OTHER_VAL=115200 -CONFIG_MONITOR_BAUD=115200 -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set -CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y -# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set -CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_CXX_EXCEPTIONS is not set -CONFIG_STACK_CHECK_NONE=y -# CONFIG_STACK_CHECK_NORM is not set -# CONFIG_STACK_CHECK_STRONG is not set -# CONFIG_STACK_CHECK_ALL is not set -# CONFIG_WARN_WRITE_STRINGS is not set -# CONFIG_DISABLE_GCC8_WARNINGS is not set -# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set -CONFIG_ESP32_APPTRACE_DEST_NONE=y -CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y -CONFIG_ADC2_DISABLE_DAC=y -# CONFIG_SPIRAM_SUPPORT is not set -CONFIG_TRACEMEM_RESERVE_DRAM=0x0 -# CONFIG_ULP_COPROC_ENABLED is not set -CONFIG_ULP_COPROC_RESERVE_MEM=0 -CONFIG_BROWNOUT_DET=y -CONFIG_BROWNOUT_DET_LVL_SEL_0=y -# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set -CONFIG_BROWNOUT_DET_LVL=0 -CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y -# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set -# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set -# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set -# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set -# CONFIG_NO_BLOBS is not set -# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set -# CONFIG_EVENT_LOOP_PROFILING is not set -CONFIG_POST_EVENTS_FROM_ISR=y -CONFIG_POST_EVENTS_FROM_IRAM_ISR=y -# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set -CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y -CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 -CONFIG_ESP_SYSTEM_PD_FLASH=y -# CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND is not set -CONFIG_IPC_TASK_STACK_SIZE=1536 -CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP32_PHY_MAX_TX_POWER=20 -CONFIG_ESP32_REDUCE_PHY_TX_POWER=y -# CONFIG_ESP32S2_PANIC_PRINT_HALT is not set -CONFIG_ESP32S2_PANIC_PRINT_REBOOT=y -# CONFIG_ESP32S2_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP32S2_PANIC_GDBSTUB is not set -CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_MAIN_TASK_STACK_SIZE=3584 -CONFIG_CONSOLE_UART_DEFAULT=y -# CONFIG_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_UART_NONE is not set -CONFIG_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_CONSOLE_UART_BAUDRATE=115200 -CONFIG_INT_WDT=y -CONFIG_INT_WDT_TIMEOUT_MS=300 -CONFIG_INT_WDT_CHECK_CPU1=y -CONFIG_TASK_WDT=y -# CONFIG_TASK_WDT_PANIC is not set -CONFIG_TASK_WDT_TIMEOUT_S=5 -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set -CONFIG_TIMER_TASK_STACK_SIZE=3584 -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y -CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150 -CONFIG_MB_MASTER_DELAY_MS_CONVERT=200 -CONFIG_MB_QUEUE_LENGTH=20 -CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096 -CONFIG_MB_SERIAL_BUF_SIZE=256 -CONFIG_MB_SERIAL_TASK_PRIO=10 -CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT=y -CONFIG_MB_CONTROLLER_SLAVE_ID=0x00112233 -CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20 -CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 -CONFIG_MB_CONTROLLER_STACK_SIZE=4096 -CONFIG_MB_EVENT_QUEUE_TIMEOUT=20 -# CONFIG_MB_TIMER_PORT_ENABLED is not set -CONFIG_MB_TIMER_GROUP=0 -CONFIG_MB_TIMER_INDEX=0 -# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set -CONFIG_TIMER_TASK_PRIORITY=1 -CONFIG_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_TIMER_QUEUE_LENGTH=10 -# CONFIG_L2_TO_L3_COPY is not set -# CONFIG_USE_ONLY_LWIP_SELECT is not set -CONFIG_ESP_GRATUITOUS_ARP=y -CONFIG_GARP_TMR_INTERVAL=60 -CONFIG_TCPIP_RECVMBOX_SIZE=32 -CONFIG_TCP_MAXRTX=12 -CONFIG_TCP_SYNMAXRTX=12 -CONFIG_TCP_MSS=1440 -CONFIG_TCP_MSL=60000 -CONFIG_TCP_SND_BUF_DEFAULT=5744 -CONFIG_TCP_WND_DEFAULT=5744 -CONFIG_TCP_RECVMBOX_SIZE=6 -CONFIG_TCP_QUEUE_OOSEQ=y -# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set -CONFIG_TCP_OVERSIZE_MSS=y -# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_TCP_OVERSIZE_DISABLE is not set -CONFIG_UDP_RECVMBOX_SIZE=6 -CONFIG_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_PPP_SUPPORT is not set -CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_ESP32_PTHREAD_STACK_MIN=768 -CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y -# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set -# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set -CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" -CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set -CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_SUPPORT_TERMIOS=y -CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 -# End of deprecated options diff --git a/ESP32/TLS13-wifi_station-server/sdkconfig.defaults b/ESP32/TLS13-wifi_station-server/sdkconfig.defaults new file mode 100644 index 00000000..3f85bd82 --- /dev/null +++ b/ESP32/TLS13-wifi_station-server/sdkconfig.defaults @@ -0,0 +1,37 @@ +# +# Default main stack size +# +# This is typically way bigger than needed for stack size. See user_settings.h +# +CONFIG_ESP_MAIN_TASK_STACK_SIZE=55000 + +# Legacy stack size for older ESP-IDF versions +CONFIG_MAIN_TASK_STACK_SIZE=55000 + +# +# Compiler options +# +CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y +CONFIG_COMPILER_STACK_CHECK=y + +# minimum C3 chip revision known to work is 2. +# rev 0 and 1 not available for testing. +# all revisions expected to work. +CONFIG_ESP32C3_REV_MIN_0= +CONFIG_ESP32C3_REV_MIN_1= +CONFIG_ESP32C3_REV_MIN_2=y +CONFIG_ESP32C3_REV_MIN_3= + +# +# Partition Table +# +CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_large.csv" +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +CONFIG_PARTITION_TABLE_MD5=y +# end of Partition Table