mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Espressif examples run with local wolfSSL (no setup!) (#6018)
* Espressif examples run with local wolfSSL (no setup!) * include.am Espressif local no-setup component files * cleanup Espressif Example CMakeLists.txt, use function * multiple wolfSSL installs is now a fatal Espressif build error * Examples no longer need setup * CompileAll builds local examples, not IDF_PATH ones * Espressif compileAllExamples both local & ESP-IDF components * add wolfssl_test_idf test project * move VisualGDB projects to subdirectories * move VisualGDB wolfssl_server to subdirectory * update include.am for moved VisualGDB project files
This commit is contained in:
@ -1,14 +1,111 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# testing script: compileAllExamples
|
||||||
|
#
|
||||||
|
# This script will compile all the local examples, optionally installing wolfSSL in the ESP-IDF components directory.
|
||||||
|
#
|
||||||
# Example usage:
|
# Example usage:
|
||||||
# cd wolfssl && docker run --rm -v $PWD:/project -w /project espressif/idf:latest IDE/Espressif/ESP-IDF/compileAllExamples.sh
|
# cd wolfssl && docker run --rm -v $PWD:/project -w /project espressif/idf:latest IDE/Espressif/ESP-IDF/compileAllExamples.sh
|
||||||
|
#
|
||||||
|
# Parameter option to also run the ./setup.sh to install the wolfSSL component in ESP-IDF and test for multiple installs:
|
||||||
|
#
|
||||||
|
# --run-setup
|
||||||
|
#
|
||||||
|
# Note that once installed, the wolfSSL component will need to be manually removed to successfully run this script.
|
||||||
|
#
|
||||||
|
if [[ "$IDF_PATH" == "" ]]; then
|
||||||
|
echo "Error: $IDF_PATH not found; run Espressif export.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
SCRIPT_DIR=$(builtin cd ${BASH_SOURCE%/*}; pwd)
|
SCRIPT_DIR=$(builtin cd ${BASH_SOURCE%/*}; pwd)
|
||||||
pushd ${SCRIPT_DIR} && ./setup.sh; popd
|
RUN_SETUP=$1
|
||||||
|
THIS_ERR=0
|
||||||
|
|
||||||
|
echo "Found IDF_PATH = $IDF_PATH"
|
||||||
|
|
||||||
|
# Regular tests of wolfSSL in local component directories of each project:
|
||||||
|
#
|
||||||
|
# Note these tests should FAIL if wolfSSL is already installed in ESP-IDF
|
||||||
|
#
|
||||||
for file in "benchmark" "client" "server" "test"; do
|
for file in "benchmark" "client" "server" "test"; do
|
||||||
cd ${IDF_PATH}/examples/protocols/wolfssl_${file}/ && idf.py build
|
pushd ${SCRIPT_DIR}/examples/wolfssl_${file}/ && idf.py fullclean build;
|
||||||
if [ $? -ne 0 ]; then
|
THIS_ERR=$?
|
||||||
|
popd
|
||||||
|
if [ $THIS_ERR -ne 0 ]; then
|
||||||
echo "Failed in ${file}"
|
echo "Failed in ${file}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Check for option to also install wolfSSL.
|
||||||
|
#
|
||||||
|
# When doing so, we'll run a check that multiple installs should cause build failure.
|
||||||
|
if [[ "$RUN_SETUP" == "--run-setup" ]]; then
|
||||||
|
echo "Running wolfSSL setup.sh"
|
||||||
|
|
||||||
|
# install wolfSSL into EDP-IDF shared components directory.
|
||||||
|
./setup.sh --verbose
|
||||||
|
|
||||||
|
THIS_ERR=$?
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Failed running setup.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check ESP-IDF install:
|
||||||
|
#
|
||||||
|
# The wolfssl_test_idf should NOT have a local components/wolfssl when testing!
|
||||||
|
# This test is to confirm the ESP-IDF component build properly after setup.
|
||||||
|
#
|
||||||
|
echo ""
|
||||||
|
echo "Testing a build of wolfSSL in ESP-IDF components directory"
|
||||||
|
echo ""
|
||||||
|
for file in "test_idf"; do
|
||||||
|
pushd ${SCRIPT_DIR}/examples/wolfssl_${file}/ && idf.py fullclean build;
|
||||||
|
THIS_ERR=$?
|
||||||
|
popd
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Failed in ${file}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check multiple installs: the wolfSSL component in ESP-IDF and local directory:
|
||||||
|
#
|
||||||
|
# The wolfssl_test project already has a local wolfSSL component directory.
|
||||||
|
#
|
||||||
|
# Once wolfssl has been installed to ESP-IDF components, the local
|
||||||
|
# component build SHOULD fail:
|
||||||
|
echo ""
|
||||||
|
echo "Testing a build of wolfSSL in both local and ESP-IDF components directory"
|
||||||
|
echo ""
|
||||||
|
for file in "test"; do
|
||||||
|
pushd ${SCRIPT_DIR}/examples/wolfssl_${file}/ && idf.py fullclean build;
|
||||||
|
THIS_ERR=$?
|
||||||
|
popd
|
||||||
|
if [ $THIS_ERR -ne 0 ]; then
|
||||||
|
echo ""
|
||||||
|
echo "Success: Confirmed build fails when wolfSSL found in ESP-IDF and local project."
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "Error: build should have failed when wolfSSL found in ESP-IDF and local project."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "Skipping ESP-IDF install tests. For these tests, use parameter: --run-setup"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Show a reminder that wolfSSL was installed as a shared component.
|
||||||
|
if [[ "$RUN_SETUP" == "--run-setup" ]]; then
|
||||||
|
echo ""
|
||||||
|
echo "wolfSSL was installed as an ESP-IDF component. This will be in conflict with any project that has a local component."
|
||||||
|
echo ""
|
||||||
|
echo "Delete the installed component before re-running this test."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Done
|
||||||
|
echo "Completed compileAllExamples in $SCRIPT_DIR"
|
||||||
|
@ -1,39 +1,39 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 16
|
# Visual Studio Version 16
|
||||||
VisualStudioVersion = 16.0.32802.440
|
VisualStudioVersion = 16.0.33027.164
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "VisualGDB_wolfssl_benchmark", "VisualGDB_wolfssl_benchmark.vgdbproj", "{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}"
|
Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "VisualGDB_wolfssl_benchmark", "VisualGDB_wolfssl_benchmark.vgdbproj", "{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CF8A8B6E-ECCF-481A-92AC-1E2F432816E8}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{51FEFEA9-C2BA-43A1-8B36-9140367E5AAF}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
components\wolfssl\wolfcrypt\benchmark\benchmark.c = components\wolfssl\wolfcrypt\benchmark\benchmark.c
|
..\..\..\..\..\wolfcrypt\benchmark\benchmark.c = ..\..\..\..\..\wolfcrypt\benchmark\benchmark.c
|
||||||
components\wolfssl\wolfcrypt\benchmark\benchmark.h = components\wolfssl\wolfcrypt\benchmark\benchmark.h
|
..\..\..\..\..\wolfcrypt\benchmark\benchmark.h = ..\..\..\..\..\wolfcrypt\benchmark\benchmark.h
|
||||||
..\..\README.md = ..\..\README.md
|
components\wolfssl\CMakeLists.txt = components\wolfssl\CMakeLists.txt
|
||||||
..\..\UPDATE.md = ..\..\UPDATE.md
|
..\..\..\..\..\include\user_settings.h = ..\..\..\..\..\include\user_settings.h
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|VisualGDB = Debug|VisualGDB
|
Debug|VisualGDB = Debug|VisualGDB
|
||||||
Release|VisualGDB = Release|VisualGDB
|
Release|VisualGDB = Release|VisualGDB
|
||||||
Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB
|
Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB
|
||||||
Tests (Release)|VisualGDB = Tests (Release)|VisualGDB
|
Tests (Release)|VisualGDB = Tests (Release)|VisualGDB
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.Build.0 = Debug|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.Build.0 = Debug|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.ActiveCfg = Release|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.ActiveCfg = Release|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.Build.0 = Release|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.Build.0 = Release|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {969EF1DC-F8DA-46B8-A2AC-A7FDC3234245}
|
SolutionGuid = {668EEFC0-010C-4688-916F-A628190717D4}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
@ -1,268 +1,269 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<VisualGDBProjectSettings2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
<VisualGDBProjectSettings2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
<Project xsi:type="com.visualgdb.project.external.esp-idf">
|
<Project xsi:type="com.visualgdb.project.external.esp-idf">
|
||||||
<CustomSourceDirectories>
|
<CustomSourceDirectories>
|
||||||
<Directories />
|
<Directories />
|
||||||
<PathStyle>Unknown</PathStyle>
|
<PathStyle>Unknown</PathStyle>
|
||||||
</CustomSourceDirectories>
|
</CustomSourceDirectories>
|
||||||
<AutoProgramSPIFFSPartition>true</AutoProgramSPIFFSPartition>
|
<AutoProgramSPIFFSPartition>true</AutoProgramSPIFFSPartition>
|
||||||
<ProjectModeSettings>
|
<ProjectModeSettings>
|
||||||
<ProjectGUID>7bbd1486-d457-4e49-92ba-0cfc9d80849e</ProjectGUID>
|
<ProjectGUID>7bbd1486-d457-4e49-92ba-0cfc9d80849e</ProjectGUID>
|
||||||
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
<HeaderScanMode>SourceDirs</HeaderScanMode>
|
<HeaderScanMode>SourceDirs</HeaderScanMode>
|
||||||
</ProjectModeSettings>
|
</ProjectModeSettings>
|
||||||
</Project>
|
</Project>
|
||||||
<Build xsi:type="com.visualgdb.build.cmake">
|
<Build xsi:type="com.visualgdb.build.cmake">
|
||||||
<BuildLogMode xsi:nil="true" />
|
<BuildLogMode xsi:nil="true" />
|
||||||
<ToolchainID>
|
<ToolchainID>
|
||||||
<ID>com.visualgdb.xtensa-esp32-elf</ID>
|
<ID>com.visualgdb.xtensa-esp32-elf</ID>
|
||||||
<Version>
|
<Version>
|
||||||
<GCC>8.4.0</GCC>
|
<GCC>11.2.0</GCC>
|
||||||
<GDB>8.1.0</GDB>
|
<GDB>9.2.90</GDB>
|
||||||
<Revision>9</Revision>
|
<Revision>2</Revision>
|
||||||
</Version>
|
</Version>
|
||||||
</ToolchainID>
|
</ToolchainID>
|
||||||
<RelativeSourceDirectory />
|
<RelativeSourceDirectory>..</RelativeSourceDirectory>
|
||||||
<ConfigurationType>DEBUG</ConfigurationType>
|
<ConfigurationType>DEBUG</ConfigurationType>
|
||||||
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
||||||
<MakeCommandTemplate>
|
<MakeCommandTemplate>
|
||||||
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
||||||
<Command>$(ToolchainNinja)</Command>
|
<Command>$(ToolchainNinja)</Command>
|
||||||
<WorkingDirectory>$(BuildDir)</WorkingDirectory>
|
<WorkingDirectory>$(BuildDir)</WorkingDirectory>
|
||||||
<BackgroundMode xsi:nil="true" />
|
<BackgroundMode xsi:nil="true" />
|
||||||
</MakeCommandTemplate>
|
</MakeCommandTemplate>
|
||||||
<CMakeCommand>
|
<CMakeCommand>
|
||||||
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
||||||
<Command>$(SYSPROGS_CMAKE_PATH)</Command>
|
<Command>$(SYSPROGS_CMAKE_PATH)</Command>
|
||||||
<BackgroundMode xsi:nil="true" />
|
<BackgroundMode xsi:nil="true" />
|
||||||
</CMakeCommand>
|
</CMakeCommand>
|
||||||
<UpdateSourcesInCMakeFile>true</UpdateSourcesInCMakeFile>
|
<UpdateSourcesInCMakeFile>true</UpdateSourcesInCMakeFile>
|
||||||
<ExportCompileCommands>false</ExportCompileCommands>
|
<ExportCompileCommands>false</ExportCompileCommands>
|
||||||
<DisableToolchainFile>false</DisableToolchainFile>
|
<DisableToolchainFile>false</DisableToolchainFile>
|
||||||
<CMakeMakefileType>Ninja</CMakeMakefileType>
|
<CMakeMakefileType>Ninja</CMakeMakefileType>
|
||||||
<DeployAsRoot>false</DeployAsRoot>
|
<DeployAsRoot>false</DeployAsRoot>
|
||||||
<CMakeCleanMode>RemoveBuildDirectory</CMakeCleanMode>
|
<CMakeCleanMode>RemoveBuildDirectory</CMakeCleanMode>
|
||||||
<UseCCache>false</UseCCache>
|
<UseCCache>false</UseCCache>
|
||||||
<ProjectModeSettings>
|
<ProjectModeSettings>
|
||||||
<ProjectItemSettings>
|
<ProjectItemSettings>
|
||||||
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
<GroupTargetsByPaths>true</GroupTargetsByPaths>
|
<GroupTargetsByPaths>true</GroupTargetsByPaths>
|
||||||
<FollowCMakeSourceGroups>false</FollowCMakeSourceGroups>
|
<FollowCMakeSourceGroups>false</FollowCMakeSourceGroups>
|
||||||
<AutoRefreshProject>true</AutoRefreshProject>
|
<AutoRefreshProject>true</AutoRefreshProject>
|
||||||
<AlwaysConsiderOutdated>false</AlwaysConsiderOutdated>
|
<AlwaysConsiderOutdated>false</AlwaysConsiderOutdated>
|
||||||
<SortTargetsByName>true</SortTargetsByName>
|
<SortTargetsByName>true</SortTargetsByName>
|
||||||
<RedundantTargetMode>HideOuterProjectTargets</RedundantTargetMode>
|
<RedundantTargetMode>HideOuterProjectTargets</RedundantTargetMode>
|
||||||
<SortSourcesByName>true</SortSourcesByName>
|
<SortSourcesByName>true</SortSourcesByName>
|
||||||
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
|
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
|
||||||
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
|
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
|
||||||
</ProjectItemSettings>
|
</ProjectItemSettings>
|
||||||
<TargetSpecificSettings />
|
<TargetSpecificSettings />
|
||||||
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
|
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
|
||||||
<ProjectGUID>eadcc9ab-72b3-4b51-a838-593e5d80ddf7</ProjectGUID>
|
<ProjectGUID>eadcc9ab-72b3-4b51-a838-593e5d80ddf7</ProjectGUID>
|
||||||
<VirtualFolders />
|
<VirtualFolders />
|
||||||
<ConfigurationNameCase>Upper</ConfigurationNameCase>
|
<ConfigurationNameCase>Upper</ConfigurationNameCase>
|
||||||
<DefaultHeaderDiscoveryMode>HeaderDirectoryAndSubdirectories</DefaultHeaderDiscoveryMode>
|
<DefaultHeaderDiscoveryMode>HeaderDirectoryAndSubdirectories</DefaultHeaderDiscoveryMode>
|
||||||
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
||||||
<ESPIDFExtension>
|
<ESPIDFExtension>
|
||||||
<IDFCheckout>
|
<IDFCheckout>
|
||||||
<Subdirectory>esp-idf/v4.4.2</Subdirectory>
|
<Version>release/v5.0</Version>
|
||||||
<Type>ESPIDF</Type>
|
<Subdirectory>esp-idf/v5.0</Subdirectory>
|
||||||
</IDFCheckout>
|
<Type>ESPIDF</Type>
|
||||||
<COMPort>COM7</COMPort>
|
</IDFCheckout>
|
||||||
<SuppressTestPrerequisiteChecks>false</SuppressTestPrerequisiteChecks>
|
<COMPort>COM20</COMPort>
|
||||||
<UseCCache>false</UseCCache>
|
<SuppressTestPrerequisiteChecks>false</SuppressTestPrerequisiteChecks>
|
||||||
<DeviceID>ESP32</DeviceID>
|
<UseCCache>false</UseCCache>
|
||||||
</ESPIDFExtension>
|
<DeviceID>ESP32</DeviceID>
|
||||||
</ProjectModeSettings>
|
</ESPIDFExtension>
|
||||||
</Build>
|
</ProjectModeSettings>
|
||||||
<CustomBuild>
|
</Build>
|
||||||
<PreSyncActions />
|
<CustomBuild>
|
||||||
<PreBuildActions />
|
<PreSyncActions />
|
||||||
<PostBuildActions />
|
<PreBuildActions />
|
||||||
<PreCleanActions />
|
<PostBuildActions />
|
||||||
<PostCleanActions />
|
<PreCleanActions />
|
||||||
</CustomBuild>
|
<PostCleanActions />
|
||||||
<CustomDebug>
|
</CustomBuild>
|
||||||
<PreDebugActions />
|
<CustomDebug>
|
||||||
<PostDebugActions />
|
<PreDebugActions />
|
||||||
<DebugStopActions />
|
<PostDebugActions />
|
||||||
<BreakMode>Default</BreakMode>
|
<DebugStopActions />
|
||||||
</CustomDebug>
|
<BreakMode>Default</BreakMode>
|
||||||
<DeviceTerminalSettings>
|
</CustomDebug>
|
||||||
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
|
<DeviceTerminalSettings>
|
||||||
<ComPortName>COM20</ComPortName>
|
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
|
||||||
<AdvancedSettings>
|
<ComPortName>COM20</ComPortName>
|
||||||
<BaudRate>115200</BaudRate>
|
<AdvancedSettings>
|
||||||
<DataBits>8</DataBits>
|
<BaudRate>115200</BaudRate>
|
||||||
<Parity>None</Parity>
|
<DataBits>8</DataBits>
|
||||||
<StopBits>One</StopBits>
|
<Parity>None</Parity>
|
||||||
<FlowControl>None</FlowControl>
|
<StopBits>One</StopBits>
|
||||||
</AdvancedSettings>
|
<FlowControl>None</FlowControl>
|
||||||
</Connection>
|
</AdvancedSettings>
|
||||||
<LastConnectionTime>0</LastConnectionTime>
|
</Connection>
|
||||||
<EchoTypedCharacters>false</EchoTypedCharacters>
|
<LastConnectionTime>0</LastConnectionTime>
|
||||||
<ClearContentsWhenReconnecting>false</ClearContentsWhenReconnecting>
|
<EchoTypedCharacters>false</EchoTypedCharacters>
|
||||||
<ReconnectAutomatically>false</ReconnectAutomatically>
|
<ClearContentsWhenReconnecting>false</ClearContentsWhenReconnecting>
|
||||||
<DisplayMode>ASCII</DisplayMode>
|
<ReconnectAutomatically>false</ReconnectAutomatically>
|
||||||
<Colors>
|
<DisplayMode>ASCII</DisplayMode>
|
||||||
<Background>
|
<Colors>
|
||||||
<Alpha>255</Alpha>
|
<Background>
|
||||||
<Red>0</Red>
|
<Alpha>255</Alpha>
|
||||||
<Green>0</Green>
|
<Red>0</Red>
|
||||||
<Blue>0</Blue>
|
<Green>0</Green>
|
||||||
</Background>
|
<Blue>0</Blue>
|
||||||
<Disconnected>
|
</Background>
|
||||||
<Alpha>255</Alpha>
|
<Disconnected>
|
||||||
<Red>169</Red>
|
<Alpha>255</Alpha>
|
||||||
<Green>169</Green>
|
<Red>169</Red>
|
||||||
<Blue>169</Blue>
|
<Green>169</Green>
|
||||||
</Disconnected>
|
<Blue>169</Blue>
|
||||||
<Text>
|
</Disconnected>
|
||||||
<Alpha>255</Alpha>
|
<Text>
|
||||||
<Red>211</Red>
|
<Alpha>255</Alpha>
|
||||||
<Green>211</Green>
|
<Red>211</Red>
|
||||||
<Blue>211</Blue>
|
<Green>211</Green>
|
||||||
</Text>
|
<Blue>211</Blue>
|
||||||
<Echo>
|
</Text>
|
||||||
<Alpha>255</Alpha>
|
<Echo>
|
||||||
<Red>144</Red>
|
<Alpha>255</Alpha>
|
||||||
<Green>238</Green>
|
<Red>144</Red>
|
||||||
<Blue>144</Blue>
|
<Green>238</Green>
|
||||||
</Echo>
|
<Blue>144</Blue>
|
||||||
<Inactive>
|
</Echo>
|
||||||
<Alpha>255</Alpha>
|
<Inactive>
|
||||||
<Red>169</Red>
|
<Alpha>255</Alpha>
|
||||||
<Green>169</Green>
|
<Red>169</Red>
|
||||||
<Blue>169</Blue>
|
<Green>169</Green>
|
||||||
</Inactive>
|
<Blue>169</Blue>
|
||||||
</Colors>
|
</Inactive>
|
||||||
<HexSettings>
|
</Colors>
|
||||||
<MaximumBytesPerLine>16</MaximumBytesPerLine>
|
<HexSettings>
|
||||||
<ShowTextView>true</ShowTextView>
|
<MaximumBytesPerLine>16</MaximumBytesPerLine>
|
||||||
<BreaksAroundEcho>true</BreaksAroundEcho>
|
<ShowTextView>true</ShowTextView>
|
||||||
<AutoSend>true</AutoSend>
|
<BreaksAroundEcho>true</BreaksAroundEcho>
|
||||||
<SendAsHex>true</SendAsHex>
|
<AutoSend>true</AutoSend>
|
||||||
<TimeoutForAutoBreak>0</TimeoutForAutoBreak>
|
<SendAsHex>true</SendAsHex>
|
||||||
</HexSettings>
|
<TimeoutForAutoBreak>0</TimeoutForAutoBreak>
|
||||||
<LineEnding>LF</LineEnding>
|
</HexSettings>
|
||||||
<TreatLFAsCRLF>false</TreatLFAsCRLF>
|
<LineEnding>LF</LineEnding>
|
||||||
<KeepOpenAfterExit>false</KeepOpenAfterExit>
|
<TreatLFAsCRLF>false</TreatLFAsCRLF>
|
||||||
<ShowAfterProgramming>false</ShowAfterProgramming>
|
<KeepOpenAfterExit>false</KeepOpenAfterExit>
|
||||||
</DeviceTerminalSettings>
|
<ShowAfterProgramming>false</ShowAfterProgramming>
|
||||||
<CustomShortcuts>
|
</DeviceTerminalSettings>
|
||||||
<Shortcuts />
|
<CustomShortcuts>
|
||||||
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
<Shortcuts />
|
||||||
</CustomShortcuts>
|
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
||||||
<UserDefinedVariables />
|
</CustomShortcuts>
|
||||||
<ImportedPropertySheets />
|
<UserDefinedVariables />
|
||||||
<CodeSense>
|
<ImportedPropertySheets />
|
||||||
<Enabled>Unknown</Enabled>
|
<CodeSense>
|
||||||
<ExtraSettings>
|
<Enabled>Unknown</Enabled>
|
||||||
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
|
<ExtraSettings>
|
||||||
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
|
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
|
||||||
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
|
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
|
||||||
<FormattingEngine xsi:nil="true" />
|
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
|
||||||
</ExtraSettings>
|
<FormattingEngine xsi:nil="true" />
|
||||||
<CodeAnalyzerSettings>
|
</ExtraSettings>
|
||||||
<Enabled>false</Enabled>
|
<CodeAnalyzerSettings>
|
||||||
</CodeAnalyzerSettings>
|
<Enabled>false</Enabled>
|
||||||
</CodeSense>
|
</CodeAnalyzerSettings>
|
||||||
<Configurations>
|
</CodeSense>
|
||||||
<VisualGDBConfiguration>
|
<Configurations>
|
||||||
<Name>Debug</Name>
|
<VisualGDBConfiguration>
|
||||||
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
<Name>Debug</Name>
|
||||||
</VisualGDBConfiguration>
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
<VisualGDBConfiguration>
|
</VisualGDBConfiguration>
|
||||||
<Name>Release</Name>
|
<VisualGDBConfiguration>
|
||||||
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
<Name>Release</Name>
|
||||||
</VisualGDBConfiguration>
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
</Configurations>
|
</VisualGDBConfiguration>
|
||||||
<ProgramArgumentsSuggestions />
|
</Configurations>
|
||||||
<Debug xsi:type="com.visualgdb.debug.embedded">
|
<ProgramArgumentsSuggestions />
|
||||||
<AdditionalStartupCommands />
|
<Debug xsi:type="com.visualgdb.debug.embedded">
|
||||||
<AdditionalGDBSettings>
|
<AdditionalStartupCommands />
|
||||||
<Features>
|
<AdditionalGDBSettings>
|
||||||
<DisableAutoDetection>false</DisableAutoDetection>
|
<Features>
|
||||||
<UseFrameParameter>false</UseFrameParameter>
|
<DisableAutoDetection>false</DisableAutoDetection>
|
||||||
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
|
<UseFrameParameter>false</UseFrameParameter>
|
||||||
<ListLocalsSupported>false</ListLocalsSupported>
|
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
|
||||||
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
|
<ListLocalsSupported>false</ListLocalsSupported>
|
||||||
<ThreadInfoSupported>false</ThreadInfoSupported>
|
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
|
||||||
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
|
<ThreadInfoSupported>false</ThreadInfoSupported>
|
||||||
<SupportTargetCommand>false</SupportTargetCommand>
|
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
|
||||||
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
|
<SupportTargetCommand>false</SupportTargetCommand>
|
||||||
</Features>
|
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
|
||||||
<EnableSmartStepping>false</EnableSmartStepping>
|
</Features>
|
||||||
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
|
<EnableSmartStepping>false</EnableSmartStepping>
|
||||||
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
|
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
|
||||||
<UseAppleExtensions>false</UseAppleExtensions>
|
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
|
||||||
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
|
<UseAppleExtensions>false</UseAppleExtensions>
|
||||||
<MakeLogFile>false</MakeLogFile>
|
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
|
||||||
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
|
<MakeLogFile>false</MakeLogFile>
|
||||||
<UseRelativePathsOnly>false</UseRelativePathsOnly>
|
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
|
||||||
<ExitAction>None</ExitAction>
|
<UseRelativePathsOnly>false</UseRelativePathsOnly>
|
||||||
<DisableDisassembly>false</DisableDisassembly>
|
<ExitAction>None</ExitAction>
|
||||||
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
|
<DisableDisassembly>false</DisableDisassembly>
|
||||||
<StepIntoNewInstanceEntry>app_main</StepIntoNewInstanceEntry>
|
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
|
||||||
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
|
<StepIntoNewInstanceEntry>app_main</StepIntoNewInstanceEntry>
|
||||||
<DisableSignals>false</DisableSignals>
|
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
|
||||||
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
|
<DisableSignals>false</DisableSignals>
|
||||||
<AsyncModeSupportsBreakpoints>true</AsyncModeSupportsBreakpoints>
|
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
|
||||||
<TemporaryBreakConsolidationTimeout>0</TemporaryBreakConsolidationTimeout>
|
<AsyncModeSupportsBreakpoints>true</AsyncModeSupportsBreakpoints>
|
||||||
<EnableNonStopMode>false</EnableNonStopMode>
|
<TemporaryBreakConsolidationTimeout>0</TemporaryBreakConsolidationTimeout>
|
||||||
<MaxBreakpointLimit>0</MaxBreakpointLimit>
|
<EnableNonStopMode>false</EnableNonStopMode>
|
||||||
<EnableVerboseMode>true</EnableVerboseMode>
|
<MaxBreakpointLimit>0</MaxBreakpointLimit>
|
||||||
<EnablePrettyPrinters>false</EnablePrettyPrinters>
|
<EnableVerboseMode>true</EnableVerboseMode>
|
||||||
</AdditionalGDBSettings>
|
<EnablePrettyPrinters>false</EnablePrettyPrinters>
|
||||||
<DebugMethod>
|
</AdditionalGDBSettings>
|
||||||
<ID>openocd</ID>
|
<DebugMethod>
|
||||||
<Configuration xsi:type="com.visualgdb.edp.openocd.settings.esp32">
|
<ID>openocd</ID>
|
||||||
<CommandLine>-f interface/tigard.cfg -c "adapter_khz 15000" -f target/esp32.cfg</CommandLine>
|
<Configuration xsi:type="com.visualgdb.edp.openocd.settings.esp32">
|
||||||
<ExtraParameters>
|
<CommandLine>-f interface/tigard.cfg -c "adapter_khz 15000" -f target/esp32.cfg</CommandLine>
|
||||||
<Frequency xsi:nil="true" />
|
<ExtraParameters>
|
||||||
<BoostedFrequency xsi:nil="true" />
|
<Frequency xsi:nil="true" />
|
||||||
<ConnectUnderReset>false</ConnectUnderReset>
|
<BoostedFrequency xsi:nil="true" />
|
||||||
</ExtraParameters>
|
<ConnectUnderReset>false</ConnectUnderReset>
|
||||||
<LoadProgressGUIThreshold>131072</LoadProgressGUIThreshold>
|
</ExtraParameters>
|
||||||
<ProgramMode>Enabled</ProgramMode>
|
<LoadProgressGUIThreshold>131072</LoadProgressGUIThreshold>
|
||||||
<StartupCommands>
|
<ProgramMode>Enabled</ProgramMode>
|
||||||
<string>set remotetimeout 60</string>
|
<StartupCommands>
|
||||||
<string>target remote :$$SYS:GDB_PORT$$</string>
|
<string>set remotetimeout 60</string>
|
||||||
<string>mon gdb_breakpoint_override hard</string>
|
<string>target remote :$$SYS:GDB_PORT$$</string>
|
||||||
<string>mon reset halt</string>
|
<string>mon gdb_breakpoint_override hard</string>
|
||||||
<string>load</string>
|
<string>mon reset halt</string>
|
||||||
</StartupCommands>
|
<string>load</string>
|
||||||
<ProgramFLASHUsingExternalTool>false</ProgramFLASHUsingExternalTool>
|
</StartupCommands>
|
||||||
<PreferredGDBPort>0</PreferredGDBPort>
|
<ProgramFLASHUsingExternalTool>false</ProgramFLASHUsingExternalTool>
|
||||||
<PreferredTelnetPort>0</PreferredTelnetPort>
|
<PreferredGDBPort>0</PreferredGDBPort>
|
||||||
<AlwaysPassSerialNumber>false</AlwaysPassSerialNumber>
|
<PreferredTelnetPort>0</PreferredTelnetPort>
|
||||||
<SelectedCoreIndex xsi:nil="true" />
|
<AlwaysPassSerialNumber>false</AlwaysPassSerialNumber>
|
||||||
<LiveMemoryTimeout>5000</LiveMemoryTimeout>
|
<SelectedCoreIndex xsi:nil="true" />
|
||||||
<SuggestionLogicRevision>1</SuggestionLogicRevision>
|
<LiveMemoryTimeout>5000</LiveMemoryTimeout>
|
||||||
<CheckFLASHSize>true</CheckFLASHSize>
|
<SuggestionLogicRevision>1</SuggestionLogicRevision>
|
||||||
<FLASHSettings>
|
<CheckFLASHSize>true</CheckFLASHSize>
|
||||||
<Size>size2MB</Size>
|
<FLASHSettings>
|
||||||
<Frequency>freq40M</Frequency>
|
<Size>size2MB</Size>
|
||||||
<Mode>DIO</Mode>
|
<Frequency>freq40M</Frequency>
|
||||||
</FLASHSettings>
|
<Mode>DIO</Mode>
|
||||||
<PatchBootloader>true</PatchBootloader>
|
</FLASHSettings>
|
||||||
</Configuration>
|
<PatchBootloader>true</PatchBootloader>
|
||||||
</DebugMethod>
|
</Configuration>
|
||||||
<AutoDetectRTOS>true</AutoDetectRTOS>
|
</DebugMethod>
|
||||||
<SemihostingSupport>Disabled</SemihostingSupport>
|
<AutoDetectRTOS>true</AutoDetectRTOS>
|
||||||
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
<SemihostingSupport>Disabled</SemihostingSupport>
|
||||||
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
||||||
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
||||||
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
|
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
||||||
<StopAtEntryPoint>false</StopAtEntryPoint>
|
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
|
||||||
<EnableVirtualHalts>false</EnableVirtualHalts>
|
<StopAtEntryPoint>false</StopAtEntryPoint>
|
||||||
<DynamicAnalysisSettings />
|
<EnableVirtualHalts>false</EnableVirtualHalts>
|
||||||
<EndOfStackSymbol>_estack</EndOfStackSymbol>
|
<DynamicAnalysisSettings />
|
||||||
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
|
<EndOfStackSymbol>_estack</EndOfStackSymbol>
|
||||||
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
|
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
|
||||||
<UnusedStackFillPattern xsi:nil="true" />
|
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
|
||||||
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
|
<UnusedStackFillPattern xsi:nil="true" />
|
||||||
</Debug>
|
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
|
||||||
|
</Debug>
|
||||||
</VisualGDBProjectSettings2>
|
</VisualGDBProjectSettings2>
|
@ -0,0 +1,229 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
#
|
||||||
|
# This file is part of wolfSSL.
|
||||||
|
#
|
||||||
|
# wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
#
|
||||||
|
# cmake for wolfssl
|
||||||
|
#
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
|
||||||
|
set(CMAKE_CURRENT_SOURCE_DIR ".")
|
||||||
|
|
||||||
|
# We are currently in [root]/IDE/Espressif/ESP-IDF/examples/wolfssl_test/components/wolfssl
|
||||||
|
# The root of wolfSSL is 7 directories up from here:
|
||||||
|
get_filename_component(WOLFSSL_ROOT "../../../../../../../" ABSOLUTE)
|
||||||
|
|
||||||
|
# Espressif may take several passes through this makefile. Check to see if we found IDF
|
||||||
|
string(COMPARE EQUAL "${PROJECT_SOURCE_DIR}" "" WOLFSSL_FOUND_IDF)
|
||||||
|
|
||||||
|
if($WOLFSSL_FOUND_IDF)
|
||||||
|
message(STATUS "IDF_PATH = $ENV{IDF_PATH}")
|
||||||
|
message(STATUS "WOLFSSL_ROOT = ${WOLFSSL_ROOT}")
|
||||||
|
message(STATUS "PROJECT_SOURCE_DIR = ${PROJECT_SOURCE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# get a list of all wolfcrypt assembly files; we'll exclude them as they don't target Xtensa
|
||||||
|
FILE(GLOB EXCLUDE_ASM *.S)
|
||||||
|
file(GLOB_RECURSE EXCLUDE_ASM ${CMAKE_SOURCE_DIR} "${WOLFSSL_ROOT}/wolfcrypt/src/*.S")
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
message(STATUS "EXCLUDE_ASM = ${EXCLUDE_ASM}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(INCLUDE_PATH ${WOLFSSL_ROOT})
|
||||||
|
|
||||||
|
set(COMPONENT_SRCDIRS "${WOLFSSL_ROOT}/src/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/port/Espressif/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/port/atmel/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/benchmark/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/test/"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(COMPONENT_REQUIRES lwip)
|
||||||
|
|
||||||
|
|
||||||
|
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl and/or wolfssh components
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "**************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Error: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "To proceed: ")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Remove either the local project component: ${CMAKE_HOME_DIRECTORY}/components/wolfssl/ ")
|
||||||
|
message(STATUS "or the Espressif shared component installed at: $ENV{IDF_PATH}/components/wolfssl/ ")
|
||||||
|
message(STATUS "")
|
||||||
|
message(FATAL_ERROR "Please use wolfSSL in either local project or Espressif components, but not both.")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "**************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
# Optional: if you change the above FATAL_ERROR to STATUS you can warn at runtime with this macro definition:
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
|
||||||
|
else()
|
||||||
|
if( EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in ESP-IDF components and is assumed to be already configured in user_settings.h via setup.
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using components/wolfssl in IDF_PATH = $ENV{IDF_PATH}")
|
||||||
|
message(STATUS "")
|
||||||
|
else()
|
||||||
|
#
|
||||||
|
# wolfSSL is not an ESP-IDF component. We need to now determine if it is local and if so if it is part of the wolfSSL repo
|
||||||
|
# or if wolfSSL is simply installed as a local component.
|
||||||
|
#
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in local project.
|
||||||
|
#
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/include/" )
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using installed project ./components/wolfssl in CMAKE_HOME_DIRECTORY = $ENV{CMAKE_HOME_DIRECTORY}")
|
||||||
|
message(STATUS "")
|
||||||
|
#
|
||||||
|
# Note we already checked above and confirmed there's not another wolfSSL installed in the ESP-IDF components.
|
||||||
|
#
|
||||||
|
# We won't do anything else here, as it will be assumed the original install completed successfully.
|
||||||
|
#
|
||||||
|
else()
|
||||||
|
#
|
||||||
|
# This is the developer repo mode. wolfSSL will be assume to be not installed to ESP-IDF nor local project
|
||||||
|
# In this configuration, we are likely running a wolfSSL example found directly in the repo.
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using developer repo ./components/wolfssl in CMAKE_HOME_DIRECTORY = $ENV{CMAKE_HOME_DIRECTORY}")
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
message(STATUS "************************************************************************************************")
|
||||||
|
# When in developer mode, we are typically running wolfSSL examples such as benchmark or test directories.
|
||||||
|
# However, the as-cloned or distributed wolfSSL does not have the ./include/ directory, so we'll add it as needed.
|
||||||
|
#
|
||||||
|
# first check if there's a [root]/include/user_settings.h
|
||||||
|
if( EXISTS "${WOLFSSL_ROOT}/include/user_settings.h" )
|
||||||
|
# we won't overwrite an existing user settings file, just note that we already have one:
|
||||||
|
message(STATUS "Found wolfSSL user_settings.h in ${WOLFSSL_ROOT}/include/user_settings.h")
|
||||||
|
else()
|
||||||
|
message(STATUS "Installing wolfSSL user_settings.h to ${WOLFSSL_ROOT}/include/user_settings.h")
|
||||||
|
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/user_settings.h" DESTINATION "${WOLFSSL_ROOT}/include/")
|
||||||
|
endif() # user_settings.h
|
||||||
|
|
||||||
|
# next check if there's a [root]/include/config.h
|
||||||
|
if( EXISTS "${WOLFSSL_ROOT}/include/config.h" )
|
||||||
|
message(STATUS "Found wolfSSL config.h in ${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
else()
|
||||||
|
message(STATUS "Installing wolfSSL config.h to ${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/dummy_config_h" DESTINATION "${WOLFSSL_ROOT}/include/")
|
||||||
|
file(RENAME "${WOLFSSL_ROOT}/include/dummy_config_h" "${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
endif() # config.h
|
||||||
|
message(STATUS "************************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
else()
|
||||||
|
# we did not find a ./components/wolfssl/include/ directory from this pass of cmake.
|
||||||
|
if($WOLFSSL_FOUND_IDF)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: wolfSSL not found.")
|
||||||
|
message(STATUS "")
|
||||||
|
else()
|
||||||
|
# probably needs to be re-parsed by Espressif
|
||||||
|
message(STATUS "wolfSSL found IDF. Project Source:${PROJECT_SOURCE_DIR}")
|
||||||
|
endif() # else we have not found ESP-IDF yet
|
||||||
|
endif() # else not a local wolfSSL component
|
||||||
|
|
||||||
|
endif() #else not an ESP-IDF component
|
||||||
|
endif() # else not local copy and EDP-IDF wolfSSL
|
||||||
|
|
||||||
|
|
||||||
|
# RTOS_IDF_PATH is typically:
|
||||||
|
# "/Users/{username}/Desktop/esp-idf/components/freertos/include/freertos"
|
||||||
|
# depending on the environment, we may need to swap backslashes with forward slashes
|
||||||
|
string(REPLACE "\\" "/" RTOS_IDF_PATH "$ENV{IDF_PATH}/components/freertos/include/freertos")
|
||||||
|
|
||||||
|
# ESP-IDF after version 4.4x has a different RTOS directory structure
|
||||||
|
string(REPLACE "\\" "/" RTOS_IDF_PATH5 "$ENV{IDF_PATH}/components/freertos/FreeRTOS-Kernel/include/freertos")
|
||||||
|
|
||||||
|
if(IS_DIRECTORY ${IDF_PATH}/components/freertos/FreeRTOS-Kernel/)
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS
|
||||||
|
"."
|
||||||
|
"${WOLFSSL_ROOT}/include"
|
||||||
|
"${RTOS_IDF_PATH5}"
|
||||||
|
"${WOLFSSL_ROOT}"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS
|
||||||
|
"."
|
||||||
|
"${WOLFSSL_ROOT}/include"
|
||||||
|
"${RTOS_IDF_PATH}"
|
||||||
|
"${WOLFSSL_ROOT}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(IS_DIRECTORY ${IDF_PATH}/components/cryptoauthlib)
|
||||||
|
list(APPEND COMPONENT_ADD_INCLUDEDIRS "../cryptoauthlib/lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(COMPONENT_SRCEXCLUDE
|
||||||
|
"${WOLFSSL_ROOT}/src/bio.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/conf.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/misc.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/pk.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/ssl_misc.c" # included by ssl.c
|
||||||
|
"${WOLFSSL_ROOT}/src/x509.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/x509_str.c"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/evp.c"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/misc.c"
|
||||||
|
"${EXCLUDE_ASM}"
|
||||||
|
)
|
||||||
|
|
||||||
|
register_component()
|
||||||
|
|
||||||
|
# some optional diagnostics
|
||||||
|
if (0)
|
||||||
|
get_cmake_property(_variableNames VARIABLES)
|
||||||
|
list (SORT _variableNames)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "ALL VARIABLES BEGIN")
|
||||||
|
message(STATUS "")
|
||||||
|
foreach (_variableName ${_variableNames})
|
||||||
|
message(STATUS "${_variableName}=${${_variableName}}")
|
||||||
|
endforeach()
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "ALL VARIABLES END")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl components
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "********************************************************************")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "********************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
# end multiple component check
|
||||||
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
#
|
||||||
|
# This file is part of wolfSSL.
|
||||||
|
#
|
||||||
|
# wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Component Makefile
|
||||||
|
#
|
||||||
|
|
||||||
|
COMPONENT_ADD_INCLUDEDIRS := . ./include
|
||||||
|
|
||||||
|
COMPONENT_ADD_INCLUDEDIRS += "$ENV{IDF_PATH}/components/freertos/include/freertos"
|
||||||
|
# COMPONENT_ADD_INCLUDEDIRS += "$ENV{IDF_PATH}/soc/esp32s3/include/soc"
|
||||||
|
|
||||||
|
COMPONENT_SRCDIRS := src wolfcrypt/src
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/src/port/Espressif
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/src/port/atmel
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/benchmark
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/test
|
||||||
|
|
||||||
|
CFLAGS +=-DWOLFSSL_USER_SETTINGS
|
||||||
|
|
||||||
|
COMPONENT_OBJEXCLUDE := wolfcrypt/src/aes_asm.o
|
||||||
|
COMPONENT_OBJEXCLUDE += wolfcrypt/src/evp.o
|
||||||
|
COMPONENT_OBJEXCLUDE += wolfcrypt/src/misc.o
|
||||||
|
COMPONENT_OBJEXCLUDE += src/bio.o
|
@ -7,4 +7,69 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
|
|||||||
set(COMPONENT_SRCS main.c)
|
set(COMPONENT_SRCS main.c)
|
||||||
set(COMPONENT_ADD_INCLUDEDIRS ".")
|
set(COMPONENT_ADD_INCLUDEDIRS ".")
|
||||||
|
|
||||||
|
set (git_cmd "git")
|
||||||
|
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
endif()
|
||||||
|
|
||||||
register_component()
|
register_component()
|
||||||
|
|
||||||
|
#
|
||||||
|
# LIBWOLFSSL_SAVE_INFO(VAR_OUPUT THIS_VAR VAR_RESULT)
|
||||||
|
#
|
||||||
|
# Save the THIS_VAR as a string in a macro called VAR_OUPUT
|
||||||
|
#
|
||||||
|
# VAR_OUPUT: the name of the macro to define
|
||||||
|
# THIS_VAR: the OUTPUT_VARIABLE result from a execute_process()
|
||||||
|
# VAR_RESULT: the RESULT_VARIABLE from a execute_process(); "0" if successful.
|
||||||
|
#
|
||||||
|
function ( LIBWOLFSSL_SAVE_INFO VAR_OUPUT THIS_VAR VAR_RESULT )
|
||||||
|
# is the RESULT_VARIABLE output value 0? If so, IS_VALID_VALUE is true.
|
||||||
|
string(COMPARE EQUAL "${VAR_RESULT}" "0" IS_VALID_VALUE)
|
||||||
|
|
||||||
|
# if we had a successful operation, save the THIS_VAR in VAR_OUPUT
|
||||||
|
if(${IS_VALID_VALUE})
|
||||||
|
# strip newline chars in THIS_VAR parameter and save in VAR_VALUE
|
||||||
|
string(REPLACE "\n" "" VAR_VALUE ${THIS_VAR})
|
||||||
|
|
||||||
|
# we'll could percolate the value to the parent for possible later use
|
||||||
|
# set(${VAR_OUPUT} ${VAR_VALUE} PARENT_SCOPE)
|
||||||
|
|
||||||
|
# but we're only using it here in this function
|
||||||
|
set(${VAR_OUPUT} ${VAR_VALUE})
|
||||||
|
|
||||||
|
# we'll print what we found to the console
|
||||||
|
message(STATUS "Found ${VAR_OUPUT}=${VAR_VALUE}")
|
||||||
|
|
||||||
|
# the interesting part is defining the VAR_OUPUT name a value to use in the app
|
||||||
|
add_definitions(-D${VAR_OUPUT}=\"${VAR_VALUE}\")
|
||||||
|
else()
|
||||||
|
# if we get here, check the execute_process command and parameters.
|
||||||
|
message(STATUS "LIBWOLFSSL_SAVE_INFO encountered a non-zero VAR_RESULT")
|
||||||
|
set(${VAR_OUPUT} "Unknown")
|
||||||
|
endif()
|
||||||
|
endfunction() # LIBWOLFSSL_SAVE_INFO
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_SHORT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "--short" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_SHORT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH_DATE
|
||||||
|
execute_process(COMMAND ${git_cmd} "show" "--no-patch" "--no-notes" "--pretty=\'\%cd\'" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH_DATE "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
@ -23,12 +23,13 @@
|
|||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
/* wolfSSL */
|
/* wolfSSL */
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
#include <user_settings.h>
|
#include <user_settings.h>
|
||||||
|
#include <wolfssl/version.h>
|
||||||
#ifndef WOLFSSL_ESPIDF
|
#ifndef WOLFSSL_ESPIDF
|
||||||
#warning "problem with wolfSSL user_settings. Check components/wolfssl/include"
|
#warning "problem with wolfSSL user_settings. Check components/wolfssl/include"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <wolfssl/wolfcrypt/settings.h>
|
|
||||||
#include <wolfssl/wolfcrypt/types.h>
|
#include <wolfssl/wolfcrypt/types.h>
|
||||||
#include <wolfcrypt/benchmark/benchmark.h>
|
#include <wolfcrypt/benchmark/benchmark.h>
|
||||||
|
|
||||||
@ -182,6 +183,51 @@ int construct_argv()
|
|||||||
/* entry point */
|
/* entry point */
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
{
|
{
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "---------------------- BEGIN MAIN ----------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "CONFIG_IDF_TARGET = %s", CONFIG_IDF_TARGET);
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_STRING = %s", LIBWOLFSSL_VERSION_STRING);
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_MULTI_INSTALL_WARNING)
|
||||||
|
ESP_LOGI(TAG, "");
|
||||||
|
ESP_LOGI(TAG, "WARNING: Multiple wolfSSL installs found.");
|
||||||
|
ESP_LOGI(TAG, "Check ESP-IDF and local project [components] directory.");
|
||||||
|
ESP_LOGI(TAG, "");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH = %s", LIBWOLFSSL_VERSION_GIT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_SHORT_HASH )
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_SHORT_HASH = %s", LIBWOLFSSL_VERSION_GIT_SHORT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH_DATE)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH_DATE = %s", LIBWOLFSSL_VERSION_GIT_HASH_DATE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* some interesting settings are target specific (ESP32, -C3, -S3, etc */
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
/* not available for C3 at this time */
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
|
ESP_LOGI(TAG, "CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ = %u MHz",
|
||||||
|
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
|
||||||
|
);
|
||||||
|
ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
|
||||||
|
#else
|
||||||
|
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);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* all platforms: stack high water mark check */
|
||||||
|
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
|
||||||
ESP_LOGI(TAG, "app_main CONFIG_BENCH_ARGV = %s", WOLFSSL_BENCH_ARGV);
|
ESP_LOGI(TAG, "app_main CONFIG_BENCH_ARGV = %s", WOLFSSL_BENCH_ARGV);
|
||||||
|
|
||||||
/* when using atecc608a on esp32-wroom-32se */
|
/* when using atecc608a on esp32-wroom-32se */
|
||||||
@ -209,6 +255,7 @@ void app_main(void)
|
|||||||
/* wolfCrypt_Cleanup should always be called at completion,
|
/* wolfCrypt_Cleanup should always be called at completion,
|
||||||
** and is called in wolf_benchmark_task().
|
** and is called in wolf_benchmark_task().
|
||||||
*/
|
*/
|
||||||
|
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
|
||||||
|
|
||||||
/* after the test, we'll just wait */
|
/* after the test, we'll just wait */
|
||||||
while (1) {
|
while (1) {
|
||||||
|
@ -18,11 +18,12 @@
|
|||||||
<ToolchainID>
|
<ToolchainID>
|
||||||
<ID>com.visualgdb.xtensa-esp32-elf</ID>
|
<ID>com.visualgdb.xtensa-esp32-elf</ID>
|
||||||
<Version>
|
<Version>
|
||||||
<GCC>8.4.0</GCC>
|
<GCC>11.2.0</GCC>
|
||||||
<GDB>8.1.0</GDB>
|
<GDB>9.2.90</GDB>
|
||||||
<Revision>9</Revision>
|
<Revision>2</Revision>
|
||||||
</Version>
|
</Version>
|
||||||
</ToolchainID>
|
</ToolchainID>
|
||||||
|
<RelativeSourceDirectory>..</RelativeSourceDirectory>
|
||||||
<ConfigurationType>DEBUG</ConfigurationType>
|
<ConfigurationType>DEBUG</ConfigurationType>
|
||||||
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
||||||
<MakeCommandTemplate>
|
<MakeCommandTemplate>
|
||||||
@ -57,6 +58,7 @@
|
|||||||
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
|
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
|
||||||
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
|
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
|
||||||
</ProjectItemSettings>
|
</ProjectItemSettings>
|
||||||
|
<TargetSpecificSettings />
|
||||||
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
|
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
|
||||||
<ProjectGUID>e903e9cc-1a23-4b00-8914-7e45ec21e351</ProjectGUID>
|
<ProjectGUID>e903e9cc-1a23-4b00-8914-7e45ec21e351</ProjectGUID>
|
||||||
<VirtualFolders />
|
<VirtualFolders />
|
||||||
@ -65,8 +67,8 @@
|
|||||||
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
||||||
<ESPIDFExtension>
|
<ESPIDFExtension>
|
||||||
<IDFCheckout>
|
<IDFCheckout>
|
||||||
<Version>v4.4.2</Version>
|
<Version>release/v5.0</Version>
|
||||||
<Subdirectory>esp-idf/v4.4.2</Subdirectory>
|
<Subdirectory>esp-idf/v5.0</Subdirectory>
|
||||||
<Type>ESPIDF</Type>
|
<Type>ESPIDF</Type>
|
||||||
</IDFCheckout>
|
</IDFCheckout>
|
||||||
<COMPort>COM20</COMPort>
|
<COMPort>COM20</COMPort>
|
||||||
@ -155,6 +157,7 @@
|
|||||||
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
||||||
</CustomShortcuts>
|
</CustomShortcuts>
|
||||||
<UserDefinedVariables />
|
<UserDefinedVariables />
|
||||||
|
<ImportedPropertySheets />
|
||||||
<CodeSense>
|
<CodeSense>
|
||||||
<Enabled>Unknown</Enabled>
|
<Enabled>Unknown</Enabled>
|
||||||
<ExtraSettings>
|
<ExtraSettings>
|
||||||
@ -177,6 +180,7 @@
|
|||||||
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
</VisualGDBConfiguration>
|
</VisualGDBConfiguration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
|
<ProgramArgumentsSuggestions />
|
||||||
<Debug xsi:type="com.visualgdb.debug.embedded">
|
<Debug xsi:type="com.visualgdb.debug.embedded">
|
||||||
<AdditionalStartupCommands />
|
<AdditionalStartupCommands />
|
||||||
<AdditionalGDBSettings>
|
<AdditionalGDBSettings>
|
@ -0,0 +1,229 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
#
|
||||||
|
# This file is part of wolfSSL.
|
||||||
|
#
|
||||||
|
# wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
#
|
||||||
|
# cmake for wolfssl
|
||||||
|
#
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
|
||||||
|
set(CMAKE_CURRENT_SOURCE_DIR ".")
|
||||||
|
|
||||||
|
# We are currently in [root]/IDE/Espressif/ESP-IDF/examples/wolfssl_test/components/wolfssl
|
||||||
|
# The root of wolfSSL is 7 directories up from here:
|
||||||
|
get_filename_component(WOLFSSL_ROOT "../../../../../../../" ABSOLUTE)
|
||||||
|
|
||||||
|
# Espressif may take several passes through this makefile. Check to see if we found IDF
|
||||||
|
string(COMPARE EQUAL "${PROJECT_SOURCE_DIR}" "" WOLFSSL_FOUND_IDF)
|
||||||
|
|
||||||
|
if($WOLFSSL_FOUND_IDF)
|
||||||
|
message(STATUS "IDF_PATH = $ENV{IDF_PATH}")
|
||||||
|
message(STATUS "WOLFSSL_ROOT = ${WOLFSSL_ROOT}")
|
||||||
|
message(STATUS "PROJECT_SOURCE_DIR = ${PROJECT_SOURCE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# get a list of all wolfcrypt assembly files; we'll exclude them as they don't target Xtensa
|
||||||
|
FILE(GLOB EXCLUDE_ASM *.S)
|
||||||
|
file(GLOB_RECURSE EXCLUDE_ASM ${CMAKE_SOURCE_DIR} "${WOLFSSL_ROOT}/wolfcrypt/src/*.S")
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
message(STATUS "EXCLUDE_ASM = ${EXCLUDE_ASM}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(INCLUDE_PATH ${WOLFSSL_ROOT})
|
||||||
|
|
||||||
|
set(COMPONENT_SRCDIRS "${WOLFSSL_ROOT}/src/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/port/Espressif/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/port/atmel/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/benchmark/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/test/"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(COMPONENT_REQUIRES lwip)
|
||||||
|
|
||||||
|
|
||||||
|
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl and/or wolfssh components
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "**************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Error: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "To proceed: ")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Remove either the local project component: ${CMAKE_HOME_DIRECTORY}/components/wolfssl/ ")
|
||||||
|
message(STATUS "or the Espressif shared component installed at: $ENV{IDF_PATH}/components/wolfssl/ ")
|
||||||
|
message(STATUS "")
|
||||||
|
message(FATAL_ERROR "Please use wolfSSL in either local project or Espressif components, but not both.")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "**************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
# Optional: if you change the above FATAL_ERROR to STATUS you can warn at runtime with this macro definition:
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
|
||||||
|
else()
|
||||||
|
if( EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in ESP-IDF components and is assumed to be already configured in user_settings.h via setup.
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using components/wolfssl in IDF_PATH = $ENV{IDF_PATH}")
|
||||||
|
message(STATUS "")
|
||||||
|
else()
|
||||||
|
#
|
||||||
|
# wolfSSL is not an ESP-IDF component. We need to now determine if it is local and if so if it is part of the wolfSSL repo
|
||||||
|
# or if wolfSSL is simply installed as a local component.
|
||||||
|
#
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in local project.
|
||||||
|
#
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/include/" )
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using installed project ./components/wolfssl in CMAKE_HOME_DIRECTORY = $ENV{CMAKE_HOME_DIRECTORY}")
|
||||||
|
message(STATUS "")
|
||||||
|
#
|
||||||
|
# Note we already checked above and confirmed there's not another wolfSSL installed in the ESP-IDF components.
|
||||||
|
#
|
||||||
|
# We won't do anything else here, as it will be assumed the original install completed successfully.
|
||||||
|
#
|
||||||
|
else()
|
||||||
|
#
|
||||||
|
# This is the developer repo mode. wolfSSL will be assume to be not installed to ESP-IDF nor local project
|
||||||
|
# In this configuration, we are likely running a wolfSSL example found directly in the repo.
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using developer repo ./components/wolfssl in CMAKE_HOME_DIRECTORY = $ENV{CMAKE_HOME_DIRECTORY}")
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
message(STATUS "************************************************************************************************")
|
||||||
|
# When in developer mode, we are typically running wolfSSL examples such as benchmark or test directories.
|
||||||
|
# However, the as-cloned or distributed wolfSSL does not have the ./include/ directory, so we'll add it as needed.
|
||||||
|
#
|
||||||
|
# first check if there's a [root]/include/user_settings.h
|
||||||
|
if( EXISTS "${WOLFSSL_ROOT}/include/user_settings.h" )
|
||||||
|
# we won't overwrite an existing user settings file, just note that we already have one:
|
||||||
|
message(STATUS "Found wolfSSL user_settings.h in ${WOLFSSL_ROOT}/include/user_settings.h")
|
||||||
|
else()
|
||||||
|
message(STATUS "Installing wolfSSL user_settings.h to ${WOLFSSL_ROOT}/include/user_settings.h")
|
||||||
|
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/user_settings.h" DESTINATION "${WOLFSSL_ROOT}/include/")
|
||||||
|
endif() # user_settings.h
|
||||||
|
|
||||||
|
# next check if there's a [root]/include/config.h
|
||||||
|
if( EXISTS "${WOLFSSL_ROOT}/include/config.h" )
|
||||||
|
message(STATUS "Found wolfSSL config.h in ${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
else()
|
||||||
|
message(STATUS "Installing wolfSSL config.h to ${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/dummy_config_h" DESTINATION "${WOLFSSL_ROOT}/include/")
|
||||||
|
file(RENAME "${WOLFSSL_ROOT}/include/dummy_config_h" "${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
endif() # config.h
|
||||||
|
message(STATUS "************************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
else()
|
||||||
|
# we did not find a ./components/wolfssl/include/ directory from this pass of cmake.
|
||||||
|
if($WOLFSSL_FOUND_IDF)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: wolfSSL not found.")
|
||||||
|
message(STATUS "")
|
||||||
|
else()
|
||||||
|
# probably needs to be re-parsed by Espressif
|
||||||
|
message(STATUS "wolfSSL found IDF. Project Source:${PROJECT_SOURCE_DIR}")
|
||||||
|
endif() # else we have not found ESP-IDF yet
|
||||||
|
endif() # else not a local wolfSSL component
|
||||||
|
|
||||||
|
endif() #else not an ESP-IDF component
|
||||||
|
endif() # else not local copy and EDP-IDF wolfSSL
|
||||||
|
|
||||||
|
|
||||||
|
# RTOS_IDF_PATH is typically:
|
||||||
|
# "/Users/{username}/Desktop/esp-idf/components/freertos/include/freertos"
|
||||||
|
# depending on the environment, we may need to swap backslashes with forward slashes
|
||||||
|
string(REPLACE "\\" "/" RTOS_IDF_PATH "$ENV{IDF_PATH}/components/freertos/include/freertos")
|
||||||
|
|
||||||
|
# ESP-IDF after version 4.4x has a different RTOS directory structure
|
||||||
|
string(REPLACE "\\" "/" RTOS_IDF_PATH5 "$ENV{IDF_PATH}/components/freertos/FreeRTOS-Kernel/include/freertos")
|
||||||
|
|
||||||
|
if(IS_DIRECTORY ${IDF_PATH}/components/freertos/FreeRTOS-Kernel/)
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS
|
||||||
|
"."
|
||||||
|
"${WOLFSSL_ROOT}/include"
|
||||||
|
"${RTOS_IDF_PATH5}"
|
||||||
|
"${WOLFSSL_ROOT}"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS
|
||||||
|
"."
|
||||||
|
"${WOLFSSL_ROOT}/include"
|
||||||
|
"${RTOS_IDF_PATH}"
|
||||||
|
"${WOLFSSL_ROOT}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(IS_DIRECTORY ${IDF_PATH}/components/cryptoauthlib)
|
||||||
|
list(APPEND COMPONENT_ADD_INCLUDEDIRS "../cryptoauthlib/lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(COMPONENT_SRCEXCLUDE
|
||||||
|
"${WOLFSSL_ROOT}/src/bio.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/conf.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/misc.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/pk.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/ssl_misc.c" # included by ssl.c
|
||||||
|
"${WOLFSSL_ROOT}/src/x509.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/x509_str.c"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/evp.c"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/misc.c"
|
||||||
|
"${EXCLUDE_ASM}"
|
||||||
|
)
|
||||||
|
|
||||||
|
register_component()
|
||||||
|
|
||||||
|
# some optional diagnostics
|
||||||
|
if (0)
|
||||||
|
get_cmake_property(_variableNames VARIABLES)
|
||||||
|
list (SORT _variableNames)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "ALL VARIABLES BEGIN")
|
||||||
|
message(STATUS "")
|
||||||
|
foreach (_variableName ${_variableNames})
|
||||||
|
message(STATUS "${_variableName}=${${_variableName}}")
|
||||||
|
endforeach()
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "ALL VARIABLES END")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl components
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "********************************************************************")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "********************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
# end multiple component check
|
||||||
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
#
|
||||||
|
# This file is part of wolfSSL.
|
||||||
|
#
|
||||||
|
# wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Component Makefile
|
||||||
|
#
|
||||||
|
|
||||||
|
COMPONENT_ADD_INCLUDEDIRS := . ./include
|
||||||
|
|
||||||
|
COMPONENT_ADD_INCLUDEDIRS += "$ENV{IDF_PATH}/components/freertos/include/freertos"
|
||||||
|
# COMPONENT_ADD_INCLUDEDIRS += "$ENV{IDF_PATH}/soc/esp32s3/include/soc"
|
||||||
|
|
||||||
|
COMPONENT_SRCDIRS := src wolfcrypt/src
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/src/port/Espressif
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/src/port/atmel
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/benchmark
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/test
|
||||||
|
|
||||||
|
CFLAGS +=-DWOLFSSL_USER_SETTINGS
|
||||||
|
|
||||||
|
COMPONENT_OBJEXCLUDE := wolfcrypt/src/aes_asm.o
|
||||||
|
COMPONENT_OBJEXCLUDE += wolfcrypt/src/evp.o
|
||||||
|
COMPONENT_OBJEXCLUDE += wolfcrypt/src/misc.o
|
||||||
|
COMPONENT_OBJEXCLUDE += src/bio.o
|
@ -7,4 +7,69 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
|
|||||||
set(COMPONENT_SRCS "client-tls.c" "wifi_connect.c")
|
set(COMPONENT_SRCS "client-tls.c" "wifi_connect.c")
|
||||||
set(COMPONENT_ADD_INCLUDEDIRS "." "./include")
|
set(COMPONENT_ADD_INCLUDEDIRS "." "./include")
|
||||||
|
|
||||||
|
set (git_cmd "git")
|
||||||
|
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
endif()
|
||||||
|
|
||||||
register_component()
|
register_component()
|
||||||
|
|
||||||
|
#
|
||||||
|
# LIBWOLFSSL_SAVE_INFO(VAR_OUPUT THIS_VAR VAR_RESULT)
|
||||||
|
#
|
||||||
|
# Save the THIS_VAR as a string in a macro called VAR_OUPUT
|
||||||
|
#
|
||||||
|
# VAR_OUPUT: the name of the macro to define
|
||||||
|
# THIS_VAR: the OUTPUT_VARIABLE result from a execute_process()
|
||||||
|
# VAR_RESULT: the RESULT_VARIABLE from a execute_process(); "0" if successful.
|
||||||
|
#
|
||||||
|
function ( LIBWOLFSSL_SAVE_INFO VAR_OUPUT THIS_VAR VAR_RESULT )
|
||||||
|
# is the RESULT_VARIABLE output value 0? If so, IS_VALID_VALUE is true.
|
||||||
|
string(COMPARE EQUAL "${VAR_RESULT}" "0" IS_VALID_VALUE)
|
||||||
|
|
||||||
|
# if we had a successful operation, save the THIS_VAR in VAR_OUPUT
|
||||||
|
if(${IS_VALID_VALUE})
|
||||||
|
# strip newline chars in THIS_VAR parameter and save in VAR_VALUE
|
||||||
|
string(REPLACE "\n" "" VAR_VALUE ${THIS_VAR})
|
||||||
|
|
||||||
|
# we'll could percolate the value to the parent for possible later use
|
||||||
|
# set(${VAR_OUPUT} ${VAR_VALUE} PARENT_SCOPE)
|
||||||
|
|
||||||
|
# but we're only using it here in this function
|
||||||
|
set(${VAR_OUPUT} ${VAR_VALUE})
|
||||||
|
|
||||||
|
# we'll print what we found to the console
|
||||||
|
message(STATUS "Found ${VAR_OUPUT}=${VAR_VALUE}")
|
||||||
|
|
||||||
|
# the interesting part is defining the VAR_OUPUT name a value to use in the app
|
||||||
|
add_definitions(-D${VAR_OUPUT}=\"${VAR_VALUE}\")
|
||||||
|
else()
|
||||||
|
# if we get here, check the execute_process command and parameters.
|
||||||
|
message(STATUS "LIBWOLFSSL_SAVE_INFO encountered a non-zero VAR_RESULT")
|
||||||
|
set(${VAR_OUPUT} "Unknown")
|
||||||
|
endif()
|
||||||
|
endfunction() # LIBWOLFSSL_SAVE_INFO
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_SHORT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "--short" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_SHORT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH_DATE
|
||||||
|
execute_process(COMMAND ${git_cmd} "show" "--no-patch" "--no-notes" "--pretty=\'\%cd\'" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH_DATE "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
@ -25,9 +25,9 @@
|
|||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
#include "esp_wifi.h"
|
#include "esp_wifi.h"
|
||||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||||
#include "esp_event.h"
|
#include "esp_event.h"
|
||||||
#else
|
#else
|
||||||
#include "esp_event_loop.h"
|
#include "esp_event_loop.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_PORT 11111
|
#define DEFAULT_PORT 11111
|
||||||
|
@ -27,11 +27,20 @@
|
|||||||
#include "lwip/netdb.h"
|
#include "lwip/netdb.h"
|
||||||
#include "lwip/apps/sntp.h"
|
#include "lwip/apps/sntp.h"
|
||||||
#include "nvs_flash.h"
|
#include "nvs_flash.h"
|
||||||
|
|
||||||
|
/* wolfSSL */
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <user_settings.h>
|
||||||
|
#include <wolfssl/version.h>
|
||||||
|
#ifndef WOLFSSL_ESPIDF
|
||||||
|
#warning "problem with wolfSSL user_settings. Check components/wolfssl/include"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||||
#include "protocol_examples_common.h"
|
#include "protocol_examples_common.h"
|
||||||
#else
|
#else
|
||||||
const static int CONNECTED_BIT = BIT0;
|
const static int CONNECTED_BIT = BIT0;
|
||||||
static EventGroupHandle_t wifi_event_group;
|
static EventGroupHandle_t wifi_event_group;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* proto-type */
|
/* proto-type */
|
||||||
@ -129,6 +138,53 @@ static esp_err_t wifi_event_handler(void *ctx, system_event_t *event)
|
|||||||
void app_main(void)
|
void app_main(void)
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG, "Start app_main...");
|
ESP_LOGI(TAG, "Start app_main...");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "---------------------- BEGIN MAIN ----------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "CONFIG_IDF_TARGET = %s", CONFIG_IDF_TARGET);
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_STRING = %s", LIBWOLFSSL_VERSION_STRING);
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_MULTI_INSTALL_WARNING)
|
||||||
|
ESP_LOGI(TAG, "");
|
||||||
|
ESP_LOGI(TAG, "WARNING: Multiple wolfSSL installs found.");
|
||||||
|
ESP_LOGI(TAG, "Check ESP-IDF and local project [components] directory.");
|
||||||
|
ESP_LOGI(TAG, "");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH = %s", LIBWOLFSSL_VERSION_GIT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_SHORT_HASH )
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_SHORT_HASH = %s", LIBWOLFSSL_VERSION_GIT_SHORT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH_DATE)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH_DATE = %s", LIBWOLFSSL_VERSION_GIT_HASH_DATE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* some interesting settings are target specific (ESP32, -C3, -S3, etc */
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
/* not available for C3 at this time */
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
|
ESP_LOGI(TAG, "CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ = %u MHz",
|
||||||
|
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
|
||||||
|
);
|
||||||
|
ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
|
||||||
|
#else
|
||||||
|
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);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* all platforms: stack high water mark check */
|
||||||
|
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
|
||||||
|
|
||||||
|
|
||||||
ESP_ERROR_CHECK(nvs_flash_init());
|
ESP_ERROR_CHECK(nvs_flash_init());
|
||||||
|
|
||||||
ESP_LOGI(TAG, "Initialize wifi");
|
ESP_LOGI(TAG, "Initialize wifi");
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
<Revision>9</Revision>
|
<Revision>9</Revision>
|
||||||
</Version>
|
</Version>
|
||||||
</ToolchainID>
|
</ToolchainID>
|
||||||
<RelativeSourceDirectory />
|
<RelativeSourceDirectory>..</RelativeSourceDirectory>
|
||||||
<ConfigurationType>DEBUG</ConfigurationType>
|
<ConfigurationType>DEBUG</ConfigurationType>
|
||||||
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
||||||
<MakeCommandTemplate>
|
<MakeCommandTemplate>
|
||||||
@ -67,8 +67,8 @@
|
|||||||
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
||||||
<ESPIDFExtension>
|
<ESPIDFExtension>
|
||||||
<IDFCheckout>
|
<IDFCheckout>
|
||||||
<Version>v4.4.2</Version>
|
<Version>v4.4.1</Version>
|
||||||
<Subdirectory>esp-idf/v4.4.2</Subdirectory>
|
<Subdirectory>esp-idf/v4.4.1</Subdirectory>
|
||||||
<Type>ESPIDF</Type>
|
<Type>ESPIDF</Type>
|
||||||
</IDFCheckout>
|
</IDFCheckout>
|
||||||
<COMPort>COM20</COMPort>
|
<COMPort>COM20</COMPort>
|
@ -0,0 +1,229 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
#
|
||||||
|
# This file is part of wolfSSL.
|
||||||
|
#
|
||||||
|
# wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
#
|
||||||
|
# cmake for wolfssl
|
||||||
|
#
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
|
||||||
|
set(CMAKE_CURRENT_SOURCE_DIR ".")
|
||||||
|
|
||||||
|
# We are currently in [root]/IDE/Espressif/ESP-IDF/examples/wolfssl_test/components/wolfssl
|
||||||
|
# The root of wolfSSL is 7 directories up from here:
|
||||||
|
get_filename_component(WOLFSSL_ROOT "../../../../../../../" ABSOLUTE)
|
||||||
|
|
||||||
|
# Espressif may take several passes through this makefile. Check to see if we found IDF
|
||||||
|
string(COMPARE EQUAL "${PROJECT_SOURCE_DIR}" "" WOLFSSL_FOUND_IDF)
|
||||||
|
|
||||||
|
if($WOLFSSL_FOUND_IDF)
|
||||||
|
message(STATUS "IDF_PATH = $ENV{IDF_PATH}")
|
||||||
|
message(STATUS "WOLFSSL_ROOT = ${WOLFSSL_ROOT}")
|
||||||
|
message(STATUS "PROJECT_SOURCE_DIR = ${PROJECT_SOURCE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# get a list of all wolfcrypt assembly files; we'll exclude them as they don't target Xtensa
|
||||||
|
FILE(GLOB EXCLUDE_ASM *.S)
|
||||||
|
file(GLOB_RECURSE EXCLUDE_ASM ${CMAKE_SOURCE_DIR} "${WOLFSSL_ROOT}/wolfcrypt/src/*.S")
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
message(STATUS "EXCLUDE_ASM = ${EXCLUDE_ASM}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(INCLUDE_PATH ${WOLFSSL_ROOT})
|
||||||
|
|
||||||
|
set(COMPONENT_SRCDIRS "${WOLFSSL_ROOT}/src/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/port/Espressif/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/port/atmel/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/benchmark/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/test/"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(COMPONENT_REQUIRES lwip)
|
||||||
|
|
||||||
|
|
||||||
|
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl and/or wolfssh components
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "**************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Error: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "To proceed: ")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Remove either the local project component: ${CMAKE_HOME_DIRECTORY}/components/wolfssl/ ")
|
||||||
|
message(STATUS "or the Espressif shared component installed at: $ENV{IDF_PATH}/components/wolfssl/ ")
|
||||||
|
message(STATUS "")
|
||||||
|
message(FATAL_ERROR "Please use wolfSSL in either local project or Espressif components, but not both.")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "**************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
# Optional: if you change the above FATAL_ERROR to STATUS you can warn at runtime with this macro definition:
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
|
||||||
|
else()
|
||||||
|
if( EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in ESP-IDF components and is assumed to be already configured in user_settings.h via setup.
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using components/wolfssl in IDF_PATH = $ENV{IDF_PATH}")
|
||||||
|
message(STATUS "")
|
||||||
|
else()
|
||||||
|
#
|
||||||
|
# wolfSSL is not an ESP-IDF component. We need to now determine if it is local and if so if it is part of the wolfSSL repo
|
||||||
|
# or if wolfSSL is simply installed as a local component.
|
||||||
|
#
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in local project.
|
||||||
|
#
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/include/" )
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using installed project ./components/wolfssl in CMAKE_HOME_DIRECTORY = $ENV{CMAKE_HOME_DIRECTORY}")
|
||||||
|
message(STATUS "")
|
||||||
|
#
|
||||||
|
# Note we already checked above and confirmed there's not another wolfSSL installed in the ESP-IDF components.
|
||||||
|
#
|
||||||
|
# We won't do anything else here, as it will be assumed the original install completed successfully.
|
||||||
|
#
|
||||||
|
else()
|
||||||
|
#
|
||||||
|
# This is the developer repo mode. wolfSSL will be assume to be not installed to ESP-IDF nor local project
|
||||||
|
# In this configuration, we are likely running a wolfSSL example found directly in the repo.
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using developer repo ./components/wolfssl in CMAKE_HOME_DIRECTORY = $ENV{CMAKE_HOME_DIRECTORY}")
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
message(STATUS "************************************************************************************************")
|
||||||
|
# When in developer mode, we are typically running wolfSSL examples such as benchmark or test directories.
|
||||||
|
# However, the as-cloned or distributed wolfSSL does not have the ./include/ directory, so we'll add it as needed.
|
||||||
|
#
|
||||||
|
# first check if there's a [root]/include/user_settings.h
|
||||||
|
if( EXISTS "${WOLFSSL_ROOT}/include/user_settings.h" )
|
||||||
|
# we won't overwrite an existing user settings file, just note that we already have one:
|
||||||
|
message(STATUS "Found wolfSSL user_settings.h in ${WOLFSSL_ROOT}/include/user_settings.h")
|
||||||
|
else()
|
||||||
|
message(STATUS "Installing wolfSSL user_settings.h to ${WOLFSSL_ROOT}/include/user_settings.h")
|
||||||
|
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/user_settings.h" DESTINATION "${WOLFSSL_ROOT}/include/")
|
||||||
|
endif() # user_settings.h
|
||||||
|
|
||||||
|
# next check if there's a [root]/include/config.h
|
||||||
|
if( EXISTS "${WOLFSSL_ROOT}/include/config.h" )
|
||||||
|
message(STATUS "Found wolfSSL config.h in ${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
else()
|
||||||
|
message(STATUS "Installing wolfSSL config.h to ${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/dummy_config_h" DESTINATION "${WOLFSSL_ROOT}/include/")
|
||||||
|
file(RENAME "${WOLFSSL_ROOT}/include/dummy_config_h" "${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
endif() # config.h
|
||||||
|
message(STATUS "************************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
else()
|
||||||
|
# we did not find a ./components/wolfssl/include/ directory from this pass of cmake.
|
||||||
|
if($WOLFSSL_FOUND_IDF)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: wolfSSL not found.")
|
||||||
|
message(STATUS "")
|
||||||
|
else()
|
||||||
|
# probably needs to be re-parsed by Espressif
|
||||||
|
message(STATUS "wolfSSL found IDF. Project Source:${PROJECT_SOURCE_DIR}")
|
||||||
|
endif() # else we have not found ESP-IDF yet
|
||||||
|
endif() # else not a local wolfSSL component
|
||||||
|
|
||||||
|
endif() #else not an ESP-IDF component
|
||||||
|
endif() # else not local copy and EDP-IDF wolfSSL
|
||||||
|
|
||||||
|
|
||||||
|
# RTOS_IDF_PATH is typically:
|
||||||
|
# "/Users/{username}/Desktop/esp-idf/components/freertos/include/freertos"
|
||||||
|
# depending on the environment, we may need to swap backslashes with forward slashes
|
||||||
|
string(REPLACE "\\" "/" RTOS_IDF_PATH "$ENV{IDF_PATH}/components/freertos/include/freertos")
|
||||||
|
|
||||||
|
# ESP-IDF after version 4.4x has a different RTOS directory structure
|
||||||
|
string(REPLACE "\\" "/" RTOS_IDF_PATH5 "$ENV{IDF_PATH}/components/freertos/FreeRTOS-Kernel/include/freertos")
|
||||||
|
|
||||||
|
if(IS_DIRECTORY ${IDF_PATH}/components/freertos/FreeRTOS-Kernel/)
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS
|
||||||
|
"."
|
||||||
|
"${WOLFSSL_ROOT}/include"
|
||||||
|
"${RTOS_IDF_PATH5}"
|
||||||
|
"${WOLFSSL_ROOT}"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS
|
||||||
|
"."
|
||||||
|
"${WOLFSSL_ROOT}/include"
|
||||||
|
"${RTOS_IDF_PATH}"
|
||||||
|
"${WOLFSSL_ROOT}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(IS_DIRECTORY ${IDF_PATH}/components/cryptoauthlib)
|
||||||
|
list(APPEND COMPONENT_ADD_INCLUDEDIRS "../cryptoauthlib/lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(COMPONENT_SRCEXCLUDE
|
||||||
|
"${WOLFSSL_ROOT}/src/bio.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/conf.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/misc.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/pk.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/ssl_misc.c" # included by ssl.c
|
||||||
|
"${WOLFSSL_ROOT}/src/x509.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/x509_str.c"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/evp.c"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/misc.c"
|
||||||
|
"${EXCLUDE_ASM}"
|
||||||
|
)
|
||||||
|
|
||||||
|
register_component()
|
||||||
|
|
||||||
|
# some optional diagnostics
|
||||||
|
if (0)
|
||||||
|
get_cmake_property(_variableNames VARIABLES)
|
||||||
|
list (SORT _variableNames)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "ALL VARIABLES BEGIN")
|
||||||
|
message(STATUS "")
|
||||||
|
foreach (_variableName ${_variableNames})
|
||||||
|
message(STATUS "${_variableName}=${${_variableName}}")
|
||||||
|
endforeach()
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "ALL VARIABLES END")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl components
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "********************************************************************")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "********************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
# end multiple component check
|
||||||
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
#
|
||||||
|
# This file is part of wolfSSL.
|
||||||
|
#
|
||||||
|
# wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Component Makefile
|
||||||
|
#
|
||||||
|
|
||||||
|
COMPONENT_ADD_INCLUDEDIRS := . ./include
|
||||||
|
|
||||||
|
COMPONENT_ADD_INCLUDEDIRS += "$ENV{IDF_PATH}/components/freertos/include/freertos"
|
||||||
|
# COMPONENT_ADD_INCLUDEDIRS += "$ENV{IDF_PATH}/soc/esp32s3/include/soc"
|
||||||
|
|
||||||
|
COMPONENT_SRCDIRS := src wolfcrypt/src
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/src/port/Espressif
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/src/port/atmel
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/benchmark
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/test
|
||||||
|
|
||||||
|
CFLAGS +=-DWOLFSSL_USER_SETTINGS
|
||||||
|
|
||||||
|
COMPONENT_OBJEXCLUDE := wolfcrypt/src/aes_asm.o
|
||||||
|
COMPONENT_OBJEXCLUDE += wolfcrypt/src/evp.o
|
||||||
|
COMPONENT_OBJEXCLUDE += wolfcrypt/src/misc.o
|
||||||
|
COMPONENT_OBJEXCLUDE += src/bio.o
|
@ -7,4 +7,69 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
|
|||||||
set(COMPONENT_SRCS "server-tls.c" "wifi_connect.c")
|
set(COMPONENT_SRCS "server-tls.c" "wifi_connect.c")
|
||||||
set(COMPONENT_ADD_INCLUDEDIRS "." "./include")
|
set(COMPONENT_ADD_INCLUDEDIRS "." "./include")
|
||||||
|
|
||||||
|
set (git_cmd "git")
|
||||||
|
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
register_component()
|
register_component()
|
||||||
|
|
||||||
|
#
|
||||||
|
# LIBWOLFSSL_SAVE_INFO(VAR_OUPUT THIS_VAR VAR_RESULT)
|
||||||
|
#
|
||||||
|
# Save the THIS_VAR as a string in a macro called VAR_OUPUT
|
||||||
|
#
|
||||||
|
# VAR_OUPUT: the name of the macro to define
|
||||||
|
# THIS_VAR: the OUTPUT_VARIABLE result from a execute_process()
|
||||||
|
# VAR_RESULT: the RESULT_VARIABLE from a execute_process(); "0" if successful.
|
||||||
|
#
|
||||||
|
function ( LIBWOLFSSL_SAVE_INFO VAR_OUPUT THIS_VAR VAR_RESULT )
|
||||||
|
# is the RESULT_VARIABLE output value 0? If so, IS_VALID_VALUE is true.
|
||||||
|
string(COMPARE EQUAL "${VAR_RESULT}" "0" IS_VALID_VALUE)
|
||||||
|
|
||||||
|
# if we had a successful operation, save the THIS_VAR in VAR_OUPUT
|
||||||
|
if(${IS_VALID_VALUE})
|
||||||
|
# strip newline chars in THIS_VAR parameter and save in VAR_VALUE
|
||||||
|
string(REPLACE "\n" "" VAR_VALUE ${THIS_VAR})
|
||||||
|
|
||||||
|
# we'll could percolate the value to the parent for possible later use
|
||||||
|
# set(${VAR_OUPUT} ${VAR_VALUE} PARENT_SCOPE)
|
||||||
|
|
||||||
|
# but we're only using it here in this function
|
||||||
|
set(${VAR_OUPUT} ${VAR_VALUE})
|
||||||
|
|
||||||
|
# we'll print what we found to the console
|
||||||
|
message(STATUS "Found ${VAR_OUPUT}=${VAR_VALUE}")
|
||||||
|
|
||||||
|
# the interesting part is defining the VAR_OUPUT name a value to use in the app
|
||||||
|
add_definitions(-D${VAR_OUPUT}=\"${VAR_VALUE}\")
|
||||||
|
else()
|
||||||
|
# if we get here, check the execute_process command and parameters.
|
||||||
|
message(STATUS "LIBWOLFSSL_SAVE_INFO encountered a non-zero VAR_RESULT")
|
||||||
|
set(${VAR_OUPUT} "Unknown")
|
||||||
|
endif()
|
||||||
|
endfunction() # LIBWOLFSSL_SAVE_INFO
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_SHORT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "--short" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_SHORT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH_DATE
|
||||||
|
execute_process(COMMAND ${git_cmd} "show" "--no-patch" "--no-notes" "--pretty=\'\%cd\'" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH_DATE "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "")
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* wifi_connect.c
|
/* wifi_connect.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006-2023 wolfSSL Inc.
|
* Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
*
|
*
|
||||||
@ -27,11 +27,20 @@
|
|||||||
#include "lwip/netdb.h"
|
#include "lwip/netdb.h"
|
||||||
#include "lwip/apps/sntp.h"
|
#include "lwip/apps/sntp.h"
|
||||||
#include "nvs_flash.h"
|
#include "nvs_flash.h"
|
||||||
|
|
||||||
|
/* wolfSSL */
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <user_settings.h>
|
||||||
|
#include <wolfssl/version.h>
|
||||||
|
#ifndef WOLFSSL_ESPIDF
|
||||||
|
#warning "problem with wolfSSL user_settings. Check components/wolfssl/include"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||||
#include "protocol_examples_common.h"
|
#include "protocol_examples_common.h"
|
||||||
#else
|
#else
|
||||||
const static int CONNECTED_BIT = BIT0;
|
const static int CONNECTED_BIT = BIT0;
|
||||||
static EventGroupHandle_t wifi_event_group;
|
static EventGroupHandle_t wifi_event_group;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* prefix for logging */
|
/* prefix for logging */
|
||||||
@ -56,7 +65,7 @@ static void set_time()
|
|||||||
utctime.tv_usec = 0;
|
utctime.tv_usec = 0;
|
||||||
tz.tz_minuteswest = 0;
|
tz.tz_minuteswest = 0;
|
||||||
tz.tz_dsttime = 0;
|
tz.tz_dsttime = 0;
|
||||||
|
|
||||||
settimeofday(&utctime, &tz);
|
settimeofday(&utctime, &tz);
|
||||||
|
|
||||||
time(&now);
|
time(&now);
|
||||||
@ -128,7 +137,52 @@ static esp_err_t wifi_event_handler(void *ctx, system_event_t *event)
|
|||||||
/* entry point */
|
/* entry point */
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG, "Start app_main...");
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "---------------------- BEGIN MAIN ----------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "CONFIG_IDF_TARGET = %s", CONFIG_IDF_TARGET);
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_STRING = %s", LIBWOLFSSL_VERSION_STRING);
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_MULTI_INSTALL_WARNING)
|
||||||
|
ESP_LOGI(TAG, "");
|
||||||
|
ESP_LOGI(TAG, "WARNING: Multiple wolfSSL installs found.");
|
||||||
|
ESP_LOGI(TAG, "Check ESP-IDF and local project [components] directory.");
|
||||||
|
ESP_LOGI(TAG, "");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH = %s", LIBWOLFSSL_VERSION_GIT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_SHORT_HASH )
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_SHORT_HASH = %s", LIBWOLFSSL_VERSION_GIT_SHORT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH_DATE)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH_DATE = %s", LIBWOLFSSL_VERSION_GIT_HASH_DATE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* some interesting settings are target specific (ESP32, -C3, -S3, etc */
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
/* not available for C3 at this time */
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
|
ESP_LOGI(TAG, "CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ = %u MHz",
|
||||||
|
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
|
||||||
|
);
|
||||||
|
ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
|
||||||
|
#else
|
||||||
|
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);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* all platforms: stack high water mark check */
|
||||||
|
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
|
||||||
|
|
||||||
ESP_ERROR_CHECK(nvs_flash_init());
|
ESP_ERROR_CHECK(nvs_flash_init());
|
||||||
|
|
||||||
ESP_LOGI(TAG, "Initialize wifi");
|
ESP_LOGI(TAG, "Initialize wifi");
|
||||||
@ -161,7 +215,7 @@ void app_main(void)
|
|||||||
};
|
};
|
||||||
/* WiFi station mode */
|
/* WiFi station mode */
|
||||||
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );
|
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );
|
||||||
/* Wifi Set the configuration of the ESP32 STA or AP */
|
/* Wifi Set the configuration of the ESP32 STA or AP */
|
||||||
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) );
|
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) );
|
||||||
/* Start Wifi */
|
/* Start Wifi */
|
||||||
ESP_ERROR_CHECK(esp_wifi_start() );
|
ESP_ERROR_CHECK(esp_wifi_start() );
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
# wolfSSL Crypt Test Example
|
# wolfSSL Crypt Test Example
|
||||||
|
|
||||||
The Example contains of wolfSSL benchmark program.
|
The Example contains of wolfSSL test program.
|
||||||
|
|
||||||
1. `idf.py menuconfig` to configure the program.
|
1. `idf.py menuconfig` to configure the program.
|
||||||
1-1. Example Configuration ->
|
1-1. Example Configuration ->
|
||||||
|
|
||||||
BENCH_ARG : argument that you want to use. Default is "-lng 0"
|
TEST_ARG : argument that you want to use. Default is "-lng 0"
|
||||||
The list of argument can be find in help.
|
The list of argument can be find in help.
|
||||||
|
|
||||||
When you want to run the benchmark program
|
When you want to run the test program
|
||||||
|
|
||||||
1. `idf.py -p <PORT> flash` to compile and load the firmware
|
1. `idf.py -p <PORT> flash` to compile and load the firmware
|
||||||
2. `idf.py monitor` to see the message
|
2. `idf.py monitor` to see the message
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.33027.164
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "VisualGDB_wolfssl_test-WIP", "VisualGDB_wolfssl_test-WIP.vgdbproj", "{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}"
|
||||||
|
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
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.Build.0 = Debug|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.ActiveCfg = Release|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.Build.0 = Release|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {C84ED821-3F33-4EBD-94E4-FE860F402B2F}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
@ -0,0 +1,269 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<VisualGDBProjectSettings2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<Project xsi:type="com.visualgdb.project.external.esp-idf">
|
||||||
|
<CustomSourceDirectories>
|
||||||
|
<Directories />
|
||||||
|
<PathStyle>Unknown</PathStyle>
|
||||||
|
</CustomSourceDirectories>
|
||||||
|
<AutoProgramSPIFFSPartition>true</AutoProgramSPIFFSPartition>
|
||||||
|
<ProjectModeSettings>
|
||||||
|
<ProjectGUID>35e5525f-318a-466e-a8c7-36548547d801</ProjectGUID>
|
||||||
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
|
<HeaderScanMode>SourceDirs</HeaderScanMode>
|
||||||
|
</ProjectModeSettings>
|
||||||
|
</Project>
|
||||||
|
<Build xsi:type="com.visualgdb.build.cmake">
|
||||||
|
<BuildLogMode xsi:nil="true" />
|
||||||
|
<ToolchainID>
|
||||||
|
<ID>com.visualgdb.xtensa-esp32-elf</ID>
|
||||||
|
<Version>
|
||||||
|
<GCC>8.4.0</GCC>
|
||||||
|
<GDB>8.1.0</GDB>
|
||||||
|
<Revision>9</Revision>
|
||||||
|
</Version>
|
||||||
|
</ToolchainID>
|
||||||
|
<RelativeSourceDirectory>..</RelativeSourceDirectory>
|
||||||
|
<ConfigurationType>DEBUG</ConfigurationType>
|
||||||
|
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
||||||
|
<MakeCommandTemplate>
|
||||||
|
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
||||||
|
<Command>$(ToolchainNinja)</Command>
|
||||||
|
<WorkingDirectory>$(BuildDir)</WorkingDirectory>
|
||||||
|
<BackgroundMode xsi:nil="true" />
|
||||||
|
</MakeCommandTemplate>
|
||||||
|
<CMakeCommand>
|
||||||
|
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
||||||
|
<Command>$(SYSPROGS_CMAKE_PATH)</Command>
|
||||||
|
<BackgroundMode xsi:nil="true" />
|
||||||
|
</CMakeCommand>
|
||||||
|
<UpdateSourcesInCMakeFile>true</UpdateSourcesInCMakeFile>
|
||||||
|
<ExportCompileCommands>false</ExportCompileCommands>
|
||||||
|
<DisableToolchainFile>false</DisableToolchainFile>
|
||||||
|
<CMakeMakefileType>Ninja</CMakeMakefileType>
|
||||||
|
<DeployAsRoot>false</DeployAsRoot>
|
||||||
|
<CMakeCleanMode>RemoveBuildDirectory</CMakeCleanMode>
|
||||||
|
<UseCCache>false</UseCCache>
|
||||||
|
<ProjectModeSettings>
|
||||||
|
<ProjectItemSettings>
|
||||||
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
|
<GroupTargetsByPaths>true</GroupTargetsByPaths>
|
||||||
|
<FollowCMakeSourceGroups>false</FollowCMakeSourceGroups>
|
||||||
|
<AutoRefreshProject>true</AutoRefreshProject>
|
||||||
|
<AlwaysConsiderOutdated>false</AlwaysConsiderOutdated>
|
||||||
|
<SortTargetsByName>true</SortTargetsByName>
|
||||||
|
<RedundantTargetMode>HideOuterProjectTargets</RedundantTargetMode>
|
||||||
|
<SortSourcesByName>true</SortSourcesByName>
|
||||||
|
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
|
||||||
|
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
|
||||||
|
</ProjectItemSettings>
|
||||||
|
<TargetSpecificSettings />
|
||||||
|
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
|
||||||
|
<ProjectGUID>eadcc9ab-72b3-4b51-a838-593e5d80ddf7</ProjectGUID>
|
||||||
|
<VirtualFolders />
|
||||||
|
<ConfigurationNameCase>Upper</ConfigurationNameCase>
|
||||||
|
<DefaultHeaderDiscoveryMode>HeaderDirectoryAndSubdirectories</DefaultHeaderDiscoveryMode>
|
||||||
|
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
||||||
|
<ESPIDFExtension>
|
||||||
|
<IDFCheckout>
|
||||||
|
<Version>v4.4.1</Version>
|
||||||
|
<Subdirectory>esp-idf/v4.4.1</Subdirectory>
|
||||||
|
<Type>ESPIDF</Type>
|
||||||
|
</IDFCheckout>
|
||||||
|
<COMPort>COM20</COMPort>
|
||||||
|
<SuppressTestPrerequisiteChecks>false</SuppressTestPrerequisiteChecks>
|
||||||
|
<UseCCache>false</UseCCache>
|
||||||
|
<DeviceID>ESP32</DeviceID>
|
||||||
|
</ESPIDFExtension>
|
||||||
|
</ProjectModeSettings>
|
||||||
|
</Build>
|
||||||
|
<CustomBuild>
|
||||||
|
<PreSyncActions />
|
||||||
|
<PreBuildActions />
|
||||||
|
<PostBuildActions />
|
||||||
|
<PreCleanActions />
|
||||||
|
<PostCleanActions />
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomDebug>
|
||||||
|
<PreDebugActions />
|
||||||
|
<PostDebugActions />
|
||||||
|
<DebugStopActions />
|
||||||
|
<BreakMode>Default</BreakMode>
|
||||||
|
</CustomDebug>
|
||||||
|
<DeviceTerminalSettings>
|
||||||
|
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
|
||||||
|
<ComPortName>COM20</ComPortName>
|
||||||
|
<AdvancedSettings>
|
||||||
|
<BaudRate>115200</BaudRate>
|
||||||
|
<DataBits>8</DataBits>
|
||||||
|
<Parity>None</Parity>
|
||||||
|
<StopBits>One</StopBits>
|
||||||
|
<FlowControl>None</FlowControl>
|
||||||
|
</AdvancedSettings>
|
||||||
|
</Connection>
|
||||||
|
<LastConnectionTime>0</LastConnectionTime>
|
||||||
|
<EchoTypedCharacters>false</EchoTypedCharacters>
|
||||||
|
<ClearContentsWhenReconnecting>true</ClearContentsWhenReconnecting>
|
||||||
|
<ReconnectAutomatically>false</ReconnectAutomatically>
|
||||||
|
<DisplayMode>ASCII</DisplayMode>
|
||||||
|
<Colors>
|
||||||
|
<Background>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>0</Red>
|
||||||
|
<Green>0</Green>
|
||||||
|
<Blue>0</Blue>
|
||||||
|
</Background>
|
||||||
|
<Disconnected>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>169</Red>
|
||||||
|
<Green>169</Green>
|
||||||
|
<Blue>169</Blue>
|
||||||
|
</Disconnected>
|
||||||
|
<Text>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>211</Red>
|
||||||
|
<Green>211</Green>
|
||||||
|
<Blue>211</Blue>
|
||||||
|
</Text>
|
||||||
|
<Echo>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>144</Red>
|
||||||
|
<Green>238</Green>
|
||||||
|
<Blue>144</Blue>
|
||||||
|
</Echo>
|
||||||
|
<Inactive>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>169</Red>
|
||||||
|
<Green>169</Green>
|
||||||
|
<Blue>169</Blue>
|
||||||
|
</Inactive>
|
||||||
|
</Colors>
|
||||||
|
<HexSettings>
|
||||||
|
<MaximumBytesPerLine>16</MaximumBytesPerLine>
|
||||||
|
<ShowTextView>true</ShowTextView>
|
||||||
|
<BreaksAroundEcho>true</BreaksAroundEcho>
|
||||||
|
<AutoSend>true</AutoSend>
|
||||||
|
<SendAsHex>true</SendAsHex>
|
||||||
|
<TimeoutForAutoBreak>0</TimeoutForAutoBreak>
|
||||||
|
</HexSettings>
|
||||||
|
<LineEnding>LF</LineEnding>
|
||||||
|
<TreatLFAsCRLF>false</TreatLFAsCRLF>
|
||||||
|
<KeepOpenAfterExit>false</KeepOpenAfterExit>
|
||||||
|
<ShowAfterProgramming>false</ShowAfterProgramming>
|
||||||
|
</DeviceTerminalSettings>
|
||||||
|
<CustomShortcuts>
|
||||||
|
<Shortcuts />
|
||||||
|
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
||||||
|
</CustomShortcuts>
|
||||||
|
<UserDefinedVariables />
|
||||||
|
<ImportedPropertySheets />
|
||||||
|
<CodeSense>
|
||||||
|
<Enabled>Unknown</Enabled>
|
||||||
|
<ExtraSettings>
|
||||||
|
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
|
||||||
|
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
|
||||||
|
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
|
||||||
|
<FormattingEngine xsi:nil="true" />
|
||||||
|
</ExtraSettings>
|
||||||
|
<CodeAnalyzerSettings>
|
||||||
|
<Enabled>false</Enabled>
|
||||||
|
</CodeAnalyzerSettings>
|
||||||
|
</CodeSense>
|
||||||
|
<Configurations>
|
||||||
|
<VisualGDBConfiguration>
|
||||||
|
<Name>Debug</Name>
|
||||||
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
|
</VisualGDBConfiguration>
|
||||||
|
<VisualGDBConfiguration>
|
||||||
|
<Name>Release</Name>
|
||||||
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
|
</VisualGDBConfiguration>
|
||||||
|
</Configurations>
|
||||||
|
<ProgramArgumentsSuggestions />
|
||||||
|
<Debug xsi:type="com.visualgdb.debug.embedded">
|
||||||
|
<AdditionalStartupCommands />
|
||||||
|
<AdditionalGDBSettings>
|
||||||
|
<Features>
|
||||||
|
<DisableAutoDetection>false</DisableAutoDetection>
|
||||||
|
<UseFrameParameter>false</UseFrameParameter>
|
||||||
|
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
|
||||||
|
<ListLocalsSupported>false</ListLocalsSupported>
|
||||||
|
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
|
||||||
|
<ThreadInfoSupported>false</ThreadInfoSupported>
|
||||||
|
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
|
||||||
|
<SupportTargetCommand>false</SupportTargetCommand>
|
||||||
|
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
|
||||||
|
</Features>
|
||||||
|
<EnableSmartStepping>false</EnableSmartStepping>
|
||||||
|
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
|
||||||
|
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
|
||||||
|
<UseAppleExtensions>false</UseAppleExtensions>
|
||||||
|
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
|
||||||
|
<MakeLogFile>false</MakeLogFile>
|
||||||
|
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
|
||||||
|
<UseRelativePathsOnly>false</UseRelativePathsOnly>
|
||||||
|
<ExitAction>None</ExitAction>
|
||||||
|
<DisableDisassembly>false</DisableDisassembly>
|
||||||
|
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
|
||||||
|
<StepIntoNewInstanceEntry>app_main</StepIntoNewInstanceEntry>
|
||||||
|
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
|
||||||
|
<DisableSignals>false</DisableSignals>
|
||||||
|
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
|
||||||
|
<AsyncModeSupportsBreakpoints>true</AsyncModeSupportsBreakpoints>
|
||||||
|
<TemporaryBreakConsolidationTimeout>0</TemporaryBreakConsolidationTimeout>
|
||||||
|
<EnableNonStopMode>false</EnableNonStopMode>
|
||||||
|
<MaxBreakpointLimit>0</MaxBreakpointLimit>
|
||||||
|
<EnableVerboseMode>true</EnableVerboseMode>
|
||||||
|
<EnablePrettyPrinters>false</EnablePrettyPrinters>
|
||||||
|
</AdditionalGDBSettings>
|
||||||
|
<DebugMethod>
|
||||||
|
<ID>openocd</ID>
|
||||||
|
<Configuration xsi:type="com.visualgdb.edp.openocd.settings.esp32">
|
||||||
|
<CommandLine>-f interface/tigard.cfg -c "adapter_khz 13000" -f target/esp32.cfg</CommandLine>
|
||||||
|
<ExtraParameters>
|
||||||
|
<Frequency xsi:nil="true" />
|
||||||
|
<BoostedFrequency xsi:nil="true" />
|
||||||
|
<ConnectUnderReset>false</ConnectUnderReset>
|
||||||
|
</ExtraParameters>
|
||||||
|
<LoadProgressGUIThreshold>131072</LoadProgressGUIThreshold>
|
||||||
|
<ProgramMode>Enabled</ProgramMode>
|
||||||
|
<StartupCommands>
|
||||||
|
<string>set remotetimeout 60</string>
|
||||||
|
<string>target remote :$$SYS:GDB_PORT$$</string>
|
||||||
|
<string>mon gdb_breakpoint_override hard</string>
|
||||||
|
<string>mon reset halt</string>
|
||||||
|
<string>load</string>
|
||||||
|
</StartupCommands>
|
||||||
|
<ProgramFLASHUsingExternalTool>false</ProgramFLASHUsingExternalTool>
|
||||||
|
<PreferredGDBPort>0</PreferredGDBPort>
|
||||||
|
<PreferredTelnetPort>0</PreferredTelnetPort>
|
||||||
|
<AlwaysPassSerialNumber>false</AlwaysPassSerialNumber>
|
||||||
|
<SelectedCoreIndex xsi:nil="true" />
|
||||||
|
<LiveMemoryTimeout>5000</LiveMemoryTimeout>
|
||||||
|
<SuggestionLogicRevision>1</SuggestionLogicRevision>
|
||||||
|
<CheckFLASHSize>true</CheckFLASHSize>
|
||||||
|
<FLASHSettings>
|
||||||
|
<Size>size2MB</Size>
|
||||||
|
<Frequency>freq40M</Frequency>
|
||||||
|
<Mode>DIO</Mode>
|
||||||
|
</FLASHSettings>
|
||||||
|
<PatchBootloader>true</PatchBootloader>
|
||||||
|
</Configuration>
|
||||||
|
</DebugMethod>
|
||||||
|
<AutoDetectRTOS>true</AutoDetectRTOS>
|
||||||
|
<SemihostingSupport>Auto</SemihostingSupport>
|
||||||
|
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
||||||
|
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
||||||
|
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
||||||
|
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
|
||||||
|
<StopAtEntryPoint>false</StopAtEntryPoint>
|
||||||
|
<EnableVirtualHalts>false</EnableVirtualHalts>
|
||||||
|
<DynamicAnalysisSettings />
|
||||||
|
<EndOfStackSymbol>_estack</EndOfStackSymbol>
|
||||||
|
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
|
||||||
|
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
|
||||||
|
<UnusedStackFillPattern xsi:nil="true" />
|
||||||
|
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
|
||||||
|
</Debug>
|
||||||
|
</VisualGDBProjectSettings2>
|
@ -1,42 +1,44 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 16
|
# Visual Studio Version 16
|
||||||
VisualStudioVersion = 16.0.32802.440
|
VisualStudioVersion = 16.0.32802.440
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "VisualGDB_wolfssl_test", "VisualGDB_wolfssl_test.vgdbproj", "{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}"
|
Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "VisualGDB_wolfssl_test", "VisualGDB_wolfssl_test.vgdbproj", "{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{35EEC1E7-13AB-4C74-BFCE-22142A10E1C1}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{35EEC1E7-13AB-4C74-BFCE-22142A10E1C1}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
README.md = README.md
|
..\..\..\compileAllExamples.sh = ..\..\..\compileAllExamples.sh
|
||||||
sdkconfig = sdkconfig
|
README.md = README.md
|
||||||
sdkconfig.defaults = sdkconfig.defaults
|
sdkconfig = sdkconfig
|
||||||
build\config\sdkconfig.h = build\config\sdkconfig.h
|
sdkconfig.defaults = sdkconfig.defaults
|
||||||
..\..\..\..\..\wolfcrypt\test\test.c = ..\..\..\..\..\wolfcrypt\test\test.c
|
build\config\sdkconfig.h = build\config\sdkconfig.h
|
||||||
..\..\..\..\..\wolfcrypt\test\test.h = ..\..\..\..\..\wolfcrypt\test\test.h
|
..\..\..\..\..\wolfcrypt\test\test.c = ..\..\..\..\..\wolfcrypt\test\test.c
|
||||||
..\..\..\..\..\..\..\SysGCC\esp32\esp-idf\v4.4.1\components\wolfssl\include\user_settings.h = ..\..\..\..\..\..\..\SysGCC\esp32\esp-idf\v4.4.1\components\wolfssl\include\user_settings.h
|
..\..\..\..\..\wolfcrypt\test\test.h = ..\..\..\..\..\wolfcrypt\test\test.h
|
||||||
EndProjectSection
|
..\..\..\..\..\include\user_settings.h = ..\..\..\..\..\include\user_settings.h
|
||||||
EndProject
|
..\..\..\..\..\..\include\user_settings.h = ..\..\..\..\..\..\include\user_settings.h
|
||||||
Global
|
EndProjectSection
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
EndProject
|
||||||
Debug|VisualGDB = Debug|VisualGDB
|
Global
|
||||||
Release|VisualGDB = Release|VisualGDB
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB
|
Debug|VisualGDB = Debug|VisualGDB
|
||||||
Tests (Release)|VisualGDB = Tests (Release)|VisualGDB
|
Release|VisualGDB = Release|VisualGDB
|
||||||
EndGlobalSection
|
Tests (Debug)|VisualGDB = Tests (Debug)|VisualGDB
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
Tests (Release)|VisualGDB = Tests (Release)|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB
|
EndGlobalSection
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.Build.0 = Debug|VisualGDB
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.ActiveCfg = Release|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.Build.0 = Release|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.Build.0 = Debug|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.ActiveCfg = Release|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.Build.0 = Release|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB
|
||||||
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB
|
||||||
EndGlobalSection
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB
|
||||||
HideSolutionNode = FALSE
|
EndGlobalSection
|
||||||
EndGlobalSection
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
HideSolutionNode = FALSE
|
||||||
SolutionGuid = {A0AC9105-F2CF-44E7-8032-3CD9E77EC9F6}
|
EndGlobalSection
|
||||||
EndGlobalSection
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
EndGlobal
|
SolutionGuid = {A0AC9105-F2CF-44E7-8032-3CD9E77EC9F6}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
@ -1,269 +1,269 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<VisualGDBProjectSettings2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
<VisualGDBProjectSettings2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
<Project xsi:type="com.visualgdb.project.external.esp-idf">
|
<Project xsi:type="com.visualgdb.project.external.esp-idf">
|
||||||
<CustomSourceDirectories>
|
<CustomSourceDirectories>
|
||||||
<Directories />
|
<Directories />
|
||||||
<PathStyle>Unknown</PathStyle>
|
<PathStyle>Unknown</PathStyle>
|
||||||
</CustomSourceDirectories>
|
</CustomSourceDirectories>
|
||||||
<AutoProgramSPIFFSPartition>true</AutoProgramSPIFFSPartition>
|
<AutoProgramSPIFFSPartition>true</AutoProgramSPIFFSPartition>
|
||||||
<ProjectModeSettings>
|
<ProjectModeSettings>
|
||||||
<ProjectGUID>35e5525f-318a-466e-a8c7-36548547d801</ProjectGUID>
|
<ProjectGUID>35e5525f-318a-466e-a8c7-36548547d801</ProjectGUID>
|
||||||
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
<HeaderScanMode>SourceDirs</HeaderScanMode>
|
<HeaderScanMode>SourceDirs</HeaderScanMode>
|
||||||
</ProjectModeSettings>
|
</ProjectModeSettings>
|
||||||
</Project>
|
</Project>
|
||||||
<Build xsi:type="com.visualgdb.build.cmake">
|
<Build xsi:type="com.visualgdb.build.cmake">
|
||||||
<BuildLogMode xsi:nil="true" />
|
<BuildLogMode xsi:nil="true" />
|
||||||
<ToolchainID>
|
<ToolchainID>
|
||||||
<ID>com.visualgdb.xtensa-esp32-elf</ID>
|
<ID>com.visualgdb.xtensa-esp32-elf</ID>
|
||||||
<Version>
|
<Version>
|
||||||
<GCC>8.4.0</GCC>
|
<GCC>11.2.0</GCC>
|
||||||
<GDB>8.1.0</GDB>
|
<GDB>9.2.90</GDB>
|
||||||
<Revision>9</Revision>
|
<Revision>2</Revision>
|
||||||
</Version>
|
</Version>
|
||||||
</ToolchainID>
|
</ToolchainID>
|
||||||
<RelativeSourceDirectory />
|
<RelativeSourceDirectory>..</RelativeSourceDirectory>
|
||||||
<ConfigurationType>DEBUG</ConfigurationType>
|
<ConfigurationType>DEBUG</ConfigurationType>
|
||||||
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
||||||
<MakeCommandTemplate>
|
<MakeCommandTemplate>
|
||||||
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
||||||
<Command>$(ToolchainNinja)</Command>
|
<Command>$(ToolchainNinja)</Command>
|
||||||
<WorkingDirectory>$(BuildDir)</WorkingDirectory>
|
<WorkingDirectory>$(BuildDir)</WorkingDirectory>
|
||||||
<BackgroundMode xsi:nil="true" />
|
<BackgroundMode xsi:nil="true" />
|
||||||
</MakeCommandTemplate>
|
</MakeCommandTemplate>
|
||||||
<CMakeCommand>
|
<CMakeCommand>
|
||||||
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
||||||
<Command>$(SYSPROGS_CMAKE_PATH)</Command>
|
<Command>$(SYSPROGS_CMAKE_PATH)</Command>
|
||||||
<BackgroundMode xsi:nil="true" />
|
<BackgroundMode xsi:nil="true" />
|
||||||
</CMakeCommand>
|
</CMakeCommand>
|
||||||
<UpdateSourcesInCMakeFile>true</UpdateSourcesInCMakeFile>
|
<UpdateSourcesInCMakeFile>true</UpdateSourcesInCMakeFile>
|
||||||
<ExportCompileCommands>false</ExportCompileCommands>
|
<ExportCompileCommands>false</ExportCompileCommands>
|
||||||
<DisableToolchainFile>false</DisableToolchainFile>
|
<DisableToolchainFile>false</DisableToolchainFile>
|
||||||
<CMakeMakefileType>Ninja</CMakeMakefileType>
|
<CMakeMakefileType>Ninja</CMakeMakefileType>
|
||||||
<DeployAsRoot>false</DeployAsRoot>
|
<DeployAsRoot>false</DeployAsRoot>
|
||||||
<CMakeCleanMode>RemoveBuildDirectory</CMakeCleanMode>
|
<CMakeCleanMode>RemoveBuildDirectory</CMakeCleanMode>
|
||||||
<UseCCache>false</UseCCache>
|
<UseCCache>false</UseCCache>
|
||||||
<ProjectModeSettings>
|
<ProjectModeSettings>
|
||||||
<ProjectItemSettings>
|
<ProjectItemSettings>
|
||||||
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
<GroupTargetsByPaths>true</GroupTargetsByPaths>
|
<GroupTargetsByPaths>true</GroupTargetsByPaths>
|
||||||
<FollowCMakeSourceGroups>false</FollowCMakeSourceGroups>
|
<FollowCMakeSourceGroups>false</FollowCMakeSourceGroups>
|
||||||
<AutoRefreshProject>true</AutoRefreshProject>
|
<AutoRefreshProject>true</AutoRefreshProject>
|
||||||
<AlwaysConsiderOutdated>false</AlwaysConsiderOutdated>
|
<AlwaysConsiderOutdated>false</AlwaysConsiderOutdated>
|
||||||
<SortTargetsByName>true</SortTargetsByName>
|
<SortTargetsByName>true</SortTargetsByName>
|
||||||
<RedundantTargetMode>HideOuterProjectTargets</RedundantTargetMode>
|
<RedundantTargetMode>HideOuterProjectTargets</RedundantTargetMode>
|
||||||
<SortSourcesByName>true</SortSourcesByName>
|
<SortSourcesByName>true</SortSourcesByName>
|
||||||
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
|
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
|
||||||
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
|
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
|
||||||
</ProjectItemSettings>
|
</ProjectItemSettings>
|
||||||
<TargetSpecificSettings />
|
<TargetSpecificSettings />
|
||||||
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
|
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
|
||||||
<ProjectGUID>eadcc9ab-72b3-4b51-a838-593e5d80ddf7</ProjectGUID>
|
<ProjectGUID>eadcc9ab-72b3-4b51-a838-593e5d80ddf7</ProjectGUID>
|
||||||
<VirtualFolders />
|
<VirtualFolders />
|
||||||
<ConfigurationNameCase>Upper</ConfigurationNameCase>
|
<ConfigurationNameCase>Upper</ConfigurationNameCase>
|
||||||
<DefaultHeaderDiscoveryMode>HeaderDirectoryAndSubdirectories</DefaultHeaderDiscoveryMode>
|
<DefaultHeaderDiscoveryMode>HeaderDirectoryAndSubdirectories</DefaultHeaderDiscoveryMode>
|
||||||
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
||||||
<ESPIDFExtension>
|
<ESPIDFExtension>
|
||||||
<IDFCheckout>
|
<IDFCheckout>
|
||||||
<Version>v4.4.2</Version>
|
<Version>release/v5.0</Version>
|
||||||
<Subdirectory>esp-idf/v4.4.2</Subdirectory>
|
<Subdirectory>esp-idf/v5.0</Subdirectory>
|
||||||
<Type>ESPIDF</Type>
|
<Type>ESPIDF</Type>
|
||||||
</IDFCheckout>
|
</IDFCheckout>
|
||||||
<COMPort>COM20</COMPort>
|
<COMPort>COM20</COMPort>
|
||||||
<SuppressTestPrerequisiteChecks>false</SuppressTestPrerequisiteChecks>
|
<SuppressTestPrerequisiteChecks>false</SuppressTestPrerequisiteChecks>
|
||||||
<UseCCache>false</UseCCache>
|
<UseCCache>false</UseCCache>
|
||||||
<DeviceID>ESP32</DeviceID>
|
<DeviceID>ESP32</DeviceID>
|
||||||
</ESPIDFExtension>
|
</ESPIDFExtension>
|
||||||
</ProjectModeSettings>
|
</ProjectModeSettings>
|
||||||
</Build>
|
</Build>
|
||||||
<CustomBuild>
|
<CustomBuild>
|
||||||
<PreSyncActions />
|
<PreSyncActions />
|
||||||
<PreBuildActions />
|
<PreBuildActions />
|
||||||
<PostBuildActions />
|
<PostBuildActions />
|
||||||
<PreCleanActions />
|
<PreCleanActions />
|
||||||
<PostCleanActions />
|
<PostCleanActions />
|
||||||
</CustomBuild>
|
</CustomBuild>
|
||||||
<CustomDebug>
|
<CustomDebug>
|
||||||
<PreDebugActions />
|
<PreDebugActions />
|
||||||
<PostDebugActions />
|
<PostDebugActions />
|
||||||
<DebugStopActions />
|
<DebugStopActions />
|
||||||
<BreakMode>Default</BreakMode>
|
<BreakMode>Default</BreakMode>
|
||||||
</CustomDebug>
|
</CustomDebug>
|
||||||
<DeviceTerminalSettings>
|
<DeviceTerminalSettings>
|
||||||
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
|
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
|
||||||
<ComPortName>COM20</ComPortName>
|
<ComPortName>COM20</ComPortName>
|
||||||
<AdvancedSettings>
|
<AdvancedSettings>
|
||||||
<BaudRate>115200</BaudRate>
|
<BaudRate>115200</BaudRate>
|
||||||
<DataBits>8</DataBits>
|
<DataBits>8</DataBits>
|
||||||
<Parity>None</Parity>
|
<Parity>None</Parity>
|
||||||
<StopBits>One</StopBits>
|
<StopBits>One</StopBits>
|
||||||
<FlowControl>None</FlowControl>
|
<FlowControl>None</FlowControl>
|
||||||
</AdvancedSettings>
|
</AdvancedSettings>
|
||||||
</Connection>
|
</Connection>
|
||||||
<LastConnectionTime>0</LastConnectionTime>
|
<LastConnectionTime>0</LastConnectionTime>
|
||||||
<EchoTypedCharacters>false</EchoTypedCharacters>
|
<EchoTypedCharacters>false</EchoTypedCharacters>
|
||||||
<ClearContentsWhenReconnecting>false</ClearContentsWhenReconnecting>
|
<ClearContentsWhenReconnecting>false</ClearContentsWhenReconnecting>
|
||||||
<ReconnectAutomatically>false</ReconnectAutomatically>
|
<ReconnectAutomatically>false</ReconnectAutomatically>
|
||||||
<DisplayMode>ASCII</DisplayMode>
|
<DisplayMode>ASCII</DisplayMode>
|
||||||
<Colors>
|
<Colors>
|
||||||
<Background>
|
<Background>
|
||||||
<Alpha>255</Alpha>
|
<Alpha>255</Alpha>
|
||||||
<Red>0</Red>
|
<Red>0</Red>
|
||||||
<Green>0</Green>
|
<Green>0</Green>
|
||||||
<Blue>0</Blue>
|
<Blue>0</Blue>
|
||||||
</Background>
|
</Background>
|
||||||
<Disconnected>
|
<Disconnected>
|
||||||
<Alpha>255</Alpha>
|
<Alpha>255</Alpha>
|
||||||
<Red>169</Red>
|
<Red>169</Red>
|
||||||
<Green>169</Green>
|
<Green>169</Green>
|
||||||
<Blue>169</Blue>
|
<Blue>169</Blue>
|
||||||
</Disconnected>
|
</Disconnected>
|
||||||
<Text>
|
<Text>
|
||||||
<Alpha>255</Alpha>
|
<Alpha>255</Alpha>
|
||||||
<Red>211</Red>
|
<Red>211</Red>
|
||||||
<Green>211</Green>
|
<Green>211</Green>
|
||||||
<Blue>211</Blue>
|
<Blue>211</Blue>
|
||||||
</Text>
|
</Text>
|
||||||
<Echo>
|
<Echo>
|
||||||
<Alpha>255</Alpha>
|
<Alpha>255</Alpha>
|
||||||
<Red>144</Red>
|
<Red>144</Red>
|
||||||
<Green>238</Green>
|
<Green>238</Green>
|
||||||
<Blue>144</Blue>
|
<Blue>144</Blue>
|
||||||
</Echo>
|
</Echo>
|
||||||
<Inactive>
|
<Inactive>
|
||||||
<Alpha>255</Alpha>
|
<Alpha>255</Alpha>
|
||||||
<Red>169</Red>
|
<Red>169</Red>
|
||||||
<Green>169</Green>
|
<Green>169</Green>
|
||||||
<Blue>169</Blue>
|
<Blue>169</Blue>
|
||||||
</Inactive>
|
</Inactive>
|
||||||
</Colors>
|
</Colors>
|
||||||
<HexSettings>
|
<HexSettings>
|
||||||
<MaximumBytesPerLine>16</MaximumBytesPerLine>
|
<MaximumBytesPerLine>16</MaximumBytesPerLine>
|
||||||
<ShowTextView>true</ShowTextView>
|
<ShowTextView>true</ShowTextView>
|
||||||
<BreaksAroundEcho>true</BreaksAroundEcho>
|
<BreaksAroundEcho>true</BreaksAroundEcho>
|
||||||
<AutoSend>true</AutoSend>
|
<AutoSend>true</AutoSend>
|
||||||
<SendAsHex>true</SendAsHex>
|
<SendAsHex>true</SendAsHex>
|
||||||
<TimeoutForAutoBreak>0</TimeoutForAutoBreak>
|
<TimeoutForAutoBreak>0</TimeoutForAutoBreak>
|
||||||
</HexSettings>
|
</HexSettings>
|
||||||
<LineEnding>LF</LineEnding>
|
<LineEnding>LF</LineEnding>
|
||||||
<TreatLFAsCRLF>false</TreatLFAsCRLF>
|
<TreatLFAsCRLF>false</TreatLFAsCRLF>
|
||||||
<KeepOpenAfterExit>false</KeepOpenAfterExit>
|
<KeepOpenAfterExit>false</KeepOpenAfterExit>
|
||||||
<ShowAfterProgramming>false</ShowAfterProgramming>
|
<ShowAfterProgramming>false</ShowAfterProgramming>
|
||||||
</DeviceTerminalSettings>
|
</DeviceTerminalSettings>
|
||||||
<CustomShortcuts>
|
<CustomShortcuts>
|
||||||
<Shortcuts />
|
<Shortcuts />
|
||||||
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
||||||
</CustomShortcuts>
|
</CustomShortcuts>
|
||||||
<UserDefinedVariables />
|
<UserDefinedVariables />
|
||||||
<ImportedPropertySheets />
|
<ImportedPropertySheets />
|
||||||
<CodeSense>
|
<CodeSense>
|
||||||
<Enabled>Unknown</Enabled>
|
<Enabled>Unknown</Enabled>
|
||||||
<ExtraSettings>
|
<ExtraSettings>
|
||||||
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
|
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
|
||||||
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
|
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
|
||||||
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
|
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
|
||||||
<FormattingEngine xsi:nil="true" />
|
<FormattingEngine xsi:nil="true" />
|
||||||
</ExtraSettings>
|
</ExtraSettings>
|
||||||
<CodeAnalyzerSettings>
|
<CodeAnalyzerSettings>
|
||||||
<Enabled>false</Enabled>
|
<Enabled>false</Enabled>
|
||||||
</CodeAnalyzerSettings>
|
</CodeAnalyzerSettings>
|
||||||
</CodeSense>
|
</CodeSense>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<VisualGDBConfiguration>
|
<VisualGDBConfiguration>
|
||||||
<Name>Debug</Name>
|
<Name>Debug</Name>
|
||||||
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
</VisualGDBConfiguration>
|
</VisualGDBConfiguration>
|
||||||
<VisualGDBConfiguration>
|
<VisualGDBConfiguration>
|
||||||
<Name>Release</Name>
|
<Name>Release</Name>
|
||||||
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
</VisualGDBConfiguration>
|
</VisualGDBConfiguration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<ProgramArgumentsSuggestions />
|
<ProgramArgumentsSuggestions />
|
||||||
<Debug xsi:type="com.visualgdb.debug.embedded">
|
<Debug xsi:type="com.visualgdb.debug.embedded">
|
||||||
<AdditionalStartupCommands />
|
<AdditionalStartupCommands />
|
||||||
<AdditionalGDBSettings>
|
<AdditionalGDBSettings>
|
||||||
<Features>
|
<Features>
|
||||||
<DisableAutoDetection>false</DisableAutoDetection>
|
<DisableAutoDetection>false</DisableAutoDetection>
|
||||||
<UseFrameParameter>false</UseFrameParameter>
|
<UseFrameParameter>false</UseFrameParameter>
|
||||||
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
|
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
|
||||||
<ListLocalsSupported>false</ListLocalsSupported>
|
<ListLocalsSupported>false</ListLocalsSupported>
|
||||||
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
|
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
|
||||||
<ThreadInfoSupported>false</ThreadInfoSupported>
|
<ThreadInfoSupported>false</ThreadInfoSupported>
|
||||||
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
|
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
|
||||||
<SupportTargetCommand>false</SupportTargetCommand>
|
<SupportTargetCommand>false</SupportTargetCommand>
|
||||||
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
|
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
|
||||||
</Features>
|
</Features>
|
||||||
<EnableSmartStepping>false</EnableSmartStepping>
|
<EnableSmartStepping>false</EnableSmartStepping>
|
||||||
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
|
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
|
||||||
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
|
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
|
||||||
<UseAppleExtensions>false</UseAppleExtensions>
|
<UseAppleExtensions>false</UseAppleExtensions>
|
||||||
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
|
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
|
||||||
<MakeLogFile>false</MakeLogFile>
|
<MakeLogFile>false</MakeLogFile>
|
||||||
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
|
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
|
||||||
<UseRelativePathsOnly>false</UseRelativePathsOnly>
|
<UseRelativePathsOnly>false</UseRelativePathsOnly>
|
||||||
<ExitAction>None</ExitAction>
|
<ExitAction>None</ExitAction>
|
||||||
<DisableDisassembly>false</DisableDisassembly>
|
<DisableDisassembly>false</DisableDisassembly>
|
||||||
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
|
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
|
||||||
<StepIntoNewInstanceEntry>app_main</StepIntoNewInstanceEntry>
|
<StepIntoNewInstanceEntry>app_main</StepIntoNewInstanceEntry>
|
||||||
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
|
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
|
||||||
<DisableSignals>false</DisableSignals>
|
<DisableSignals>false</DisableSignals>
|
||||||
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
|
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
|
||||||
<AsyncModeSupportsBreakpoints>true</AsyncModeSupportsBreakpoints>
|
<AsyncModeSupportsBreakpoints>true</AsyncModeSupportsBreakpoints>
|
||||||
<TemporaryBreakConsolidationTimeout>0</TemporaryBreakConsolidationTimeout>
|
<TemporaryBreakConsolidationTimeout>0</TemporaryBreakConsolidationTimeout>
|
||||||
<EnableNonStopMode>false</EnableNonStopMode>
|
<EnableNonStopMode>false</EnableNonStopMode>
|
||||||
<MaxBreakpointLimit>0</MaxBreakpointLimit>
|
<MaxBreakpointLimit>0</MaxBreakpointLimit>
|
||||||
<EnableVerboseMode>true</EnableVerboseMode>
|
<EnableVerboseMode>true</EnableVerboseMode>
|
||||||
<EnablePrettyPrinters>false</EnablePrettyPrinters>
|
<EnablePrettyPrinters>false</EnablePrettyPrinters>
|
||||||
</AdditionalGDBSettings>
|
</AdditionalGDBSettings>
|
||||||
<DebugMethod>
|
<DebugMethod>
|
||||||
<ID>openocd</ID>
|
<ID>openocd</ID>
|
||||||
<Configuration xsi:type="com.visualgdb.edp.openocd.settings.esp32">
|
<Configuration xsi:type="com.visualgdb.edp.openocd.settings.esp32">
|
||||||
<CommandLine>-f interface/tigard.cfg -c "adapter_khz 3000" -f target/esp32.cfg</CommandLine>
|
<CommandLine>-f interface/tigard.cfg -c "adapter_khz 3000" -f target/esp32.cfg</CommandLine>
|
||||||
<ExtraParameters>
|
<ExtraParameters>
|
||||||
<Frequency xsi:nil="true" />
|
<Frequency xsi:nil="true" />
|
||||||
<BoostedFrequency xsi:nil="true" />
|
<BoostedFrequency xsi:nil="true" />
|
||||||
<ConnectUnderReset>false</ConnectUnderReset>
|
<ConnectUnderReset>false</ConnectUnderReset>
|
||||||
</ExtraParameters>
|
</ExtraParameters>
|
||||||
<LoadProgressGUIThreshold>131072</LoadProgressGUIThreshold>
|
<LoadProgressGUIThreshold>131072</LoadProgressGUIThreshold>
|
||||||
<ProgramMode>Enabled</ProgramMode>
|
<ProgramMode>Enabled</ProgramMode>
|
||||||
<StartupCommands>
|
<StartupCommands>
|
||||||
<string>set remotetimeout 60</string>
|
<string>set remotetimeout 60</string>
|
||||||
<string>target remote :$$SYS:GDB_PORT$$</string>
|
<string>target remote :$$SYS:GDB_PORT$$</string>
|
||||||
<string>mon gdb_breakpoint_override hard</string>
|
<string>mon gdb_breakpoint_override hard</string>
|
||||||
<string>mon reset halt</string>
|
<string>mon reset halt</string>
|
||||||
<string>load</string>
|
<string>load</string>
|
||||||
</StartupCommands>
|
</StartupCommands>
|
||||||
<ProgramFLASHUsingExternalTool>false</ProgramFLASHUsingExternalTool>
|
<ProgramFLASHUsingExternalTool>false</ProgramFLASHUsingExternalTool>
|
||||||
<PreferredGDBPort>0</PreferredGDBPort>
|
<PreferredGDBPort>0</PreferredGDBPort>
|
||||||
<PreferredTelnetPort>0</PreferredTelnetPort>
|
<PreferredTelnetPort>0</PreferredTelnetPort>
|
||||||
<AlwaysPassSerialNumber>false</AlwaysPassSerialNumber>
|
<AlwaysPassSerialNumber>false</AlwaysPassSerialNumber>
|
||||||
<SelectedCoreIndex xsi:nil="true" />
|
<SelectedCoreIndex xsi:nil="true" />
|
||||||
<LiveMemoryTimeout>5000</LiveMemoryTimeout>
|
<LiveMemoryTimeout>5000</LiveMemoryTimeout>
|
||||||
<SuggestionLogicRevision>1</SuggestionLogicRevision>
|
<SuggestionLogicRevision>1</SuggestionLogicRevision>
|
||||||
<CheckFLASHSize>true</CheckFLASHSize>
|
<CheckFLASHSize>true</CheckFLASHSize>
|
||||||
<FLASHSettings>
|
<FLASHSettings>
|
||||||
<Size>size2MB</Size>
|
<Size>size2MB</Size>
|
||||||
<Frequency>freq40M</Frequency>
|
<Frequency>freq40M</Frequency>
|
||||||
<Mode>DIO</Mode>
|
<Mode>DIO</Mode>
|
||||||
</FLASHSettings>
|
</FLASHSettings>
|
||||||
<PatchBootloader>true</PatchBootloader>
|
<PatchBootloader>true</PatchBootloader>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</DebugMethod>
|
</DebugMethod>
|
||||||
<AutoDetectRTOS>true</AutoDetectRTOS>
|
<AutoDetectRTOS>true</AutoDetectRTOS>
|
||||||
<SemihostingSupport>Auto</SemihostingSupport>
|
<SemihostingSupport>Auto</SemihostingSupport>
|
||||||
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
||||||
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
||||||
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
||||||
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
|
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
|
||||||
<StopAtEntryPoint>false</StopAtEntryPoint>
|
<StopAtEntryPoint>false</StopAtEntryPoint>
|
||||||
<EnableVirtualHalts>false</EnableVirtualHalts>
|
<EnableVirtualHalts>false</EnableVirtualHalts>
|
||||||
<DynamicAnalysisSettings />
|
<DynamicAnalysisSettings />
|
||||||
<EndOfStackSymbol>_estack</EndOfStackSymbol>
|
<EndOfStackSymbol>_estack</EndOfStackSymbol>
|
||||||
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
|
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
|
||||||
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
|
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
|
||||||
<UnusedStackFillPattern xsi:nil="true" />
|
<UnusedStackFillPattern xsi:nil="true" />
|
||||||
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
|
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
|
||||||
</Debug>
|
</Debug>
|
||||||
</VisualGDBProjectSettings2>
|
</VisualGDBProjectSettings2>
|
@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.33027.164
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "VisualGDB_wolfssl_test_IDF_v5_ESP32S3", "VisualGDB_wolfssl_test_IDF_v5_ESP32S3.vgdbproj", "{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}"
|
||||||
|
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
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.Build.0 = Debug|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.ActiveCfg = Release|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.Build.0 = Release|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {7F8E1DC0-55AD-4DF8-B65A-CD65B60E17F9}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
@ -23,7 +23,7 @@
|
|||||||
<Revision>2</Revision>
|
<Revision>2</Revision>
|
||||||
</Version>
|
</Version>
|
||||||
</ToolchainID>
|
</ToolchainID>
|
||||||
<RelativeSourceDirectory />
|
<RelativeSourceDirectory>..</RelativeSourceDirectory>
|
||||||
<ConfigurationType>DEBUG</ConfigurationType>
|
<ConfigurationType>DEBUG</ConfigurationType>
|
||||||
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
||||||
<MakeCommandTemplate>
|
<MakeCommandTemplate>
|
@ -0,0 +1,229 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
#
|
||||||
|
# This file is part of wolfSSL.
|
||||||
|
#
|
||||||
|
# wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
#
|
||||||
|
# cmake for wolfssl
|
||||||
|
#
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
|
||||||
|
set(CMAKE_CURRENT_SOURCE_DIR ".")
|
||||||
|
|
||||||
|
# We are currently in [root]/IDE/Espressif/ESP-IDF/examples/wolfssl_test/components/wolfssl
|
||||||
|
# The root of wolfSSL is 7 directories up from here:
|
||||||
|
get_filename_component(WOLFSSL_ROOT "../../../../../../../" ABSOLUTE)
|
||||||
|
|
||||||
|
# Espressif may take several passes through this makefile. Check to see if we found IDF
|
||||||
|
string(COMPARE EQUAL "${PROJECT_SOURCE_DIR}" "" WOLFSSL_FOUND_IDF)
|
||||||
|
|
||||||
|
if($WOLFSSL_FOUND_IDF)
|
||||||
|
message(STATUS "IDF_PATH = $ENV{IDF_PATH}")
|
||||||
|
message(STATUS "WOLFSSL_ROOT = ${WOLFSSL_ROOT}")
|
||||||
|
message(STATUS "PROJECT_SOURCE_DIR = ${PROJECT_SOURCE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# get a list of all wolfcrypt assembly files; we'll exclude them as they don't target Xtensa
|
||||||
|
FILE(GLOB EXCLUDE_ASM *.S)
|
||||||
|
file(GLOB_RECURSE EXCLUDE_ASM ${CMAKE_SOURCE_DIR} "${WOLFSSL_ROOT}/wolfcrypt/src/*.S")
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
message(STATUS "EXCLUDE_ASM = ${EXCLUDE_ASM}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(INCLUDE_PATH ${WOLFSSL_ROOT})
|
||||||
|
|
||||||
|
set(COMPONENT_SRCDIRS "${WOLFSSL_ROOT}/src/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/port/Espressif/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/port/atmel/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/benchmark/"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/test/"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(COMPONENT_REQUIRES lwip)
|
||||||
|
|
||||||
|
|
||||||
|
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl and/or wolfssh components
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "**************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Error: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "To proceed: ")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Remove either the local project component: ${CMAKE_HOME_DIRECTORY}/components/wolfssl/ ")
|
||||||
|
message(STATUS "or the Espressif shared component installed at: $ENV{IDF_PATH}/components/wolfssl/ ")
|
||||||
|
message(STATUS "")
|
||||||
|
message(FATAL_ERROR "Please use wolfSSL in either local project or Espressif components, but not both.")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "**************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
# Optional: if you change the above FATAL_ERROR to STATUS you can warn at runtime with this macro definition:
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
|
||||||
|
else()
|
||||||
|
if( EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in ESP-IDF components and is assumed to be already configured in user_settings.h via setup.
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using components/wolfssl in IDF_PATH = $ENV{IDF_PATH}")
|
||||||
|
message(STATUS "")
|
||||||
|
else()
|
||||||
|
#
|
||||||
|
# wolfSSL is not an ESP-IDF component. We need to now determine if it is local and if so if it is part of the wolfSSL repo
|
||||||
|
# or if wolfSSL is simply installed as a local component.
|
||||||
|
#
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in local project.
|
||||||
|
#
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/include/" )
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using installed project ./components/wolfssl in CMAKE_HOME_DIRECTORY = $ENV{CMAKE_HOME_DIRECTORY}")
|
||||||
|
message(STATUS "")
|
||||||
|
#
|
||||||
|
# Note we already checked above and confirmed there's not another wolfSSL installed in the ESP-IDF components.
|
||||||
|
#
|
||||||
|
# We won't do anything else here, as it will be assumed the original install completed successfully.
|
||||||
|
#
|
||||||
|
else()
|
||||||
|
#
|
||||||
|
# This is the developer repo mode. wolfSSL will be assume to be not installed to ESP-IDF nor local project
|
||||||
|
# In this configuration, we are likely running a wolfSSL example found directly in the repo.
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Using developer repo ./components/wolfssl in CMAKE_HOME_DIRECTORY = $ENV{CMAKE_HOME_DIRECTORY}")
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
message(STATUS "************************************************************************************************")
|
||||||
|
# When in developer mode, we are typically running wolfSSL examples such as benchmark or test directories.
|
||||||
|
# However, the as-cloned or distributed wolfSSL does not have the ./include/ directory, so we'll add it as needed.
|
||||||
|
#
|
||||||
|
# first check if there's a [root]/include/user_settings.h
|
||||||
|
if( EXISTS "${WOLFSSL_ROOT}/include/user_settings.h" )
|
||||||
|
# we won't overwrite an existing user settings file, just note that we already have one:
|
||||||
|
message(STATUS "Found wolfSSL user_settings.h in ${WOLFSSL_ROOT}/include/user_settings.h")
|
||||||
|
else()
|
||||||
|
message(STATUS "Installing wolfSSL user_settings.h to ${WOLFSSL_ROOT}/include/user_settings.h")
|
||||||
|
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/user_settings.h" DESTINATION "${WOLFSSL_ROOT}/include/")
|
||||||
|
endif() # user_settings.h
|
||||||
|
|
||||||
|
# next check if there's a [root]/include/config.h
|
||||||
|
if( EXISTS "${WOLFSSL_ROOT}/include/config.h" )
|
||||||
|
message(STATUS "Found wolfSSL config.h in ${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
else()
|
||||||
|
message(STATUS "Installing wolfSSL config.h to ${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/dummy_config_h" DESTINATION "${WOLFSSL_ROOT}/include/")
|
||||||
|
file(RENAME "${WOLFSSL_ROOT}/include/dummy_config_h" "${WOLFSSL_ROOT}/include/config.h")
|
||||||
|
endif() # config.h
|
||||||
|
message(STATUS "************************************************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
else()
|
||||||
|
# we did not find a ./components/wolfssl/include/ directory from this pass of cmake.
|
||||||
|
if($WOLFSSL_FOUND_IDF)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: wolfSSL not found.")
|
||||||
|
message(STATUS "")
|
||||||
|
else()
|
||||||
|
# probably needs to be re-parsed by Espressif
|
||||||
|
message(STATUS "wolfSSL found IDF. Project Source:${PROJECT_SOURCE_DIR}")
|
||||||
|
endif() # else we have not found ESP-IDF yet
|
||||||
|
endif() # else not a local wolfSSL component
|
||||||
|
|
||||||
|
endif() #else not an ESP-IDF component
|
||||||
|
endif() # else not local copy and EDP-IDF wolfSSL
|
||||||
|
|
||||||
|
|
||||||
|
# RTOS_IDF_PATH is typically:
|
||||||
|
# "/Users/{username}/Desktop/esp-idf/components/freertos/include/freertos"
|
||||||
|
# depending on the environment, we may need to swap backslashes with forward slashes
|
||||||
|
string(REPLACE "\\" "/" RTOS_IDF_PATH "$ENV{IDF_PATH}/components/freertos/include/freertos")
|
||||||
|
|
||||||
|
# ESP-IDF after version 4.4x has a different RTOS directory structure
|
||||||
|
string(REPLACE "\\" "/" RTOS_IDF_PATH5 "$ENV{IDF_PATH}/components/freertos/FreeRTOS-Kernel/include/freertos")
|
||||||
|
|
||||||
|
if(IS_DIRECTORY ${IDF_PATH}/components/freertos/FreeRTOS-Kernel/)
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS
|
||||||
|
"."
|
||||||
|
"${WOLFSSL_ROOT}/include"
|
||||||
|
"${RTOS_IDF_PATH5}"
|
||||||
|
"${WOLFSSL_ROOT}"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS
|
||||||
|
"."
|
||||||
|
"${WOLFSSL_ROOT}/include"
|
||||||
|
"${RTOS_IDF_PATH}"
|
||||||
|
"${WOLFSSL_ROOT}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(IS_DIRECTORY ${IDF_PATH}/components/cryptoauthlib)
|
||||||
|
list(APPEND COMPONENT_ADD_INCLUDEDIRS "../cryptoauthlib/lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(COMPONENT_SRCEXCLUDE
|
||||||
|
"${WOLFSSL_ROOT}/src/bio.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/conf.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/misc.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/pk.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/ssl_misc.c" # included by ssl.c
|
||||||
|
"${WOLFSSL_ROOT}/src/x509.c"
|
||||||
|
"${WOLFSSL_ROOT}/src/x509_str.c"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/evp.c"
|
||||||
|
"${WOLFSSL_ROOT}/wolfcrypt/src/misc.c"
|
||||||
|
"${EXCLUDE_ASM}"
|
||||||
|
)
|
||||||
|
|
||||||
|
register_component()
|
||||||
|
|
||||||
|
# some optional diagnostics
|
||||||
|
if (0)
|
||||||
|
get_cmake_property(_variableNames VARIABLES)
|
||||||
|
list (SORT _variableNames)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "ALL VARIABLES BEGIN")
|
||||||
|
message(STATUS "")
|
||||||
|
foreach (_variableName ${_variableNames})
|
||||||
|
message(STATUS "${_variableName}=${${_variableName}}")
|
||||||
|
endforeach()
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "ALL VARIABLES END")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl components
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "********************************************************************")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "********************************************************************")
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
# end multiple component check
|
||||||
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
#
|
||||||
|
# This file is part of wolfSSL.
|
||||||
|
#
|
||||||
|
# wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Component Makefile
|
||||||
|
#
|
||||||
|
|
||||||
|
COMPONENT_ADD_INCLUDEDIRS := . ./include
|
||||||
|
|
||||||
|
COMPONENT_ADD_INCLUDEDIRS += "$ENV{IDF_PATH}/components/freertos/include/freertos"
|
||||||
|
# COMPONENT_ADD_INCLUDEDIRS += "$ENV{IDF_PATH}/soc/esp32s3/include/soc"
|
||||||
|
|
||||||
|
COMPONENT_SRCDIRS := src wolfcrypt/src
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/src/port/Espressif
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/src/port/atmel
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/benchmark
|
||||||
|
COMPONENT_SRCDIRS += wolfcrypt/test
|
||||||
|
|
||||||
|
CFLAGS +=-DWOLFSSL_USER_SETTINGS
|
||||||
|
|
||||||
|
COMPONENT_OBJEXCLUDE := wolfcrypt/src/aes_asm.o
|
||||||
|
COMPONENT_OBJEXCLUDE += wolfcrypt/src/evp.o
|
||||||
|
COMPONENT_OBJEXCLUDE += wolfcrypt/src/misc.o
|
||||||
|
COMPONENT_OBJEXCLUDE += src/bio.o
|
@ -11,4 +11,69 @@ set(COMPONENT_SRCS "main.c")
|
|||||||
|
|
||||||
set(COMPONENT_ADD_INCLUDEDIRS ".")
|
set(COMPONENT_ADD_INCLUDEDIRS ".")
|
||||||
|
|
||||||
|
set (git_cmd "git")
|
||||||
|
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
endif()
|
||||||
|
|
||||||
register_component()
|
register_component()
|
||||||
|
|
||||||
|
#
|
||||||
|
# LIBWOLFSSL_SAVE_INFO(VAR_OUPUT THIS_VAR VAR_RESULT)
|
||||||
|
#
|
||||||
|
# Save the THIS_VAR as a string in a macro called VAR_OUPUT
|
||||||
|
#
|
||||||
|
# VAR_OUPUT: the name of the macro to define
|
||||||
|
# THIS_VAR: the OUTPUT_VARIABLE result from a execute_process()
|
||||||
|
# VAR_RESULT: the RESULT_VARIABLE from a execute_process(); "0" if successful.
|
||||||
|
#
|
||||||
|
function ( LIBWOLFSSL_SAVE_INFO VAR_OUPUT THIS_VAR VAR_RESULT )
|
||||||
|
# is the RESULT_VARIABLE output value 0? If so, IS_VALID_VALUE is true.
|
||||||
|
string(COMPARE EQUAL "${VAR_RESULT}" "0" IS_VALID_VALUE)
|
||||||
|
|
||||||
|
# if we had a successful operation, save the THIS_VAR in VAR_OUPUT
|
||||||
|
if(${IS_VALID_VALUE})
|
||||||
|
# strip newline chars in THIS_VAR parameter and save in VAR_VALUE
|
||||||
|
string(REPLACE "\n" "" VAR_VALUE ${THIS_VAR})
|
||||||
|
|
||||||
|
# we'll could percolate the value to the parent for possible later use
|
||||||
|
# set(${VAR_OUPUT} ${VAR_VALUE} PARENT_SCOPE)
|
||||||
|
|
||||||
|
# but we're only using it here in this function
|
||||||
|
set(${VAR_OUPUT} ${VAR_VALUE})
|
||||||
|
|
||||||
|
# we'll print what we found to the console
|
||||||
|
message(STATUS "Found ${VAR_OUPUT}=${VAR_VALUE}")
|
||||||
|
|
||||||
|
# the interesting part is defining the VAR_OUPUT name a value to use in the app
|
||||||
|
add_definitions(-D${VAR_OUPUT}=\"${VAR_VALUE}\")
|
||||||
|
else()
|
||||||
|
# if we get here, check the execute_process command and parameters.
|
||||||
|
message(STATUS "LIBWOLFSSL_SAVE_INFO encountered a non-zero VAR_RESULT")
|
||||||
|
set(${VAR_OUPUT} "Unknown")
|
||||||
|
endif()
|
||||||
|
endfunction() # LIBWOLFSSL_SAVE_INFO
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_SHORT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "--short" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_SHORT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH_DATE
|
||||||
|
execute_process(COMMAND ${git_cmd} "show" "--no-patch" "--no-notes" "--pretty=\'\%cd\'" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH_DATE "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "")
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ void app_main(void)
|
|||||||
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
|
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
|
||||||
);
|
);
|
||||||
ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
|
ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
|
||||||
#else
|
#else
|
||||||
ESP_LOGI(TAG, "CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ = %u MHz",
|
ESP_LOGI(TAG, "CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ = %u MHz",
|
||||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ
|
||||||
);
|
);
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
# The following lines of boilerplate have to be in your project's
|
||||||
|
# CMakeLists in this exact order for cmake to work correctly
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
|
|
||||||
|
set(COMPONENTS
|
||||||
|
main
|
||||||
|
wolfssl
|
||||||
|
) # set components
|
||||||
|
|
||||||
|
project(wolfssl_test)
|
@ -0,0 +1,29 @@
|
|||||||
|
menu "Example Configuration"
|
||||||
|
|
||||||
|
config BENCH_ARGV
|
||||||
|
string "Arguments for benchmark test"
|
||||||
|
default "-lng 0"
|
||||||
|
help
|
||||||
|
-? <num> Help, print this usage
|
||||||
|
0: English, 1: Japanese
|
||||||
|
-csv Print terminal output in csv format
|
||||||
|
-base10 Display bytes as power of 10 (eg 1 kB = 1000 Bytes)
|
||||||
|
-no_aad No additional authentication data passed.
|
||||||
|
-dgst_full Full digest operation performed.
|
||||||
|
-rsa_sign Measure RSA sign/verify instead of encrypt/decrypt.
|
||||||
|
-<alg> Algorithm to benchmark. Available algorithms include:
|
||||||
|
cipher aes-cbc aes-gcm chacha20 chacha20-poly1305
|
||||||
|
digest md5 poly1305 sha sha2 sha224 sha256 sha384 sha512 sha3
|
||||||
|
sha3-224 sha3-256 sha3-384 sha3-512
|
||||||
|
mac hmac hmac-md5 hmac-sha hmac-sha224 hmac-sha256 hmac-sha384
|
||||||
|
hmac-sha512
|
||||||
|
asym rsa rsa-sz dh ecc-kg ecc
|
||||||
|
other rng
|
||||||
|
-lng <num> Display benchmark result by specified language.
|
||||||
|
0: English, 1: Japanese
|
||||||
|
<num> Size of block in bytes
|
||||||
|
|
||||||
|
e.g -lng 1
|
||||||
|
e.g sha
|
||||||
|
|
||||||
|
endmenu
|
146
IDE/Espressif/ESP-IDF/examples/wolfssl_test_idf/README.md
Normal file
146
IDE/Espressif/ESP-IDF/examples/wolfssl_test_idf/README.md
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
# wolfSSL Crypt Test Example
|
||||||
|
|
||||||
|
The Example contains of wolfSSL IDF test program.
|
||||||
|
|
||||||
|
This IDF version does NOT contain a local component and exists only to test wolfSSL installed to the ESP-IDF components directory.
|
||||||
|
|
||||||
|
The recommended configuration is to have only the CMakeLists.txt in the local project components\wolfssl directory. See the [wolfssl_test](../wolfssl_test/README.md) example.
|
||||||
|
|
||||||
|
1. `idf.py menuconfig` to configure the program.
|
||||||
|
1-1. Example Configuration ->
|
||||||
|
|
||||||
|
TEST_ARG : argument that you want to use. Default is "-lng 0"
|
||||||
|
The list of argument can be find in help.
|
||||||
|
|
||||||
|
When you want to run the test program
|
||||||
|
|
||||||
|
1. `idf.py -p <PORT> flash` to compile and load the firmware
|
||||||
|
2. `idf.py monitor` to see the message
|
||||||
|
|
||||||
|
See the README.md file in the upper level 'examples' directory for more information about examples.
|
||||||
|
|
||||||
|
Reminder than when building on WSL in `/mnt/c` there will be a noticeable performance degradation at compile time. Using `~/` will be faster at the cost of shared filesystems.
|
||||||
|
|
||||||
|
Example build on WSL, assuming `git clone` from `c:\workspace`:
|
||||||
|
|
||||||
|
```
|
||||||
|
# Optionally install wolfSSL component
|
||||||
|
# cd /mnt/c/workspace/wolfssl/IDE/Espressif/ESP-IDF
|
||||||
|
./setup.sh
|
||||||
|
|
||||||
|
# switch to test example
|
||||||
|
cd /mnt/c/workspace/wolfssl/IDE/Espressif/ESP-IDF/examples/wolfssl_test
|
||||||
|
|
||||||
|
# Pick ESP-IDF install directory, this one for v4.4.2 in VisualGDB
|
||||||
|
. /mnt/c/SysGCC/esp32/esp-idf/v4.4.2/export.sh
|
||||||
|
|
||||||
|
# build and flash, in this example to COM20
|
||||||
|
idf.py build flash -p /dev/ttyS20 -b 921600 monitor
|
||||||
|
```
|
||||||
|
|
||||||
|
## Example Output
|
||||||
|
|
||||||
|
Note the default wolfSSL `user_settings.h` is configured by default to be the most
|
||||||
|
compatible across the widest ranges of targets. Contact wolfSSL at support@wolfssl.com
|
||||||
|
for help in optimizing for your particular application, or see the
|
||||||
|
[docs](https://www.wolfssl.com/documentation/manuals/wolfssl/index.html).
|
||||||
|
|
||||||
|
Compiled and flashed with `idf.py build flash -p /dev/ttyS7 -b 921600 monitor`:
|
||||||
|
|
||||||
|
```
|
||||||
|
ets Jun 8 2016 00:22:57
|
||||||
|
|
||||||
|
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
|
||||||
|
configsip: 0, SPIWP:0xee
|
||||||
|
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
|
||||||
|
mode:DIO, clock div:2
|
||||||
|
load:0x3fff0030,len:6612
|
||||||
|
load:0x40078000,len:14788
|
||||||
|
load:0x40080400,len:3792
|
||||||
|
entry 0x40080694
|
||||||
|
I (26) boot: ESP-IDF v4.4.1-dirty 2nd stage bootloader
|
||||||
|
I (26) boot: compile time 15:25:38
|
||||||
|
I (26) boot: chip revision: 1
|
||||||
|
I (29) boot_comm: chip revision: 1, min. bootloader chip revision: 0
|
||||||
|
I (37) boot.esp32: SPI Speed : 40MHz
|
||||||
|
I (41) boot.esp32: SPI Mode : DIO
|
||||||
|
I (46) boot.esp32: SPI Flash Size : 2MB
|
||||||
|
I (50) boot: Enabling RNG early entropy source...
|
||||||
|
I (56) boot: Partition Table:
|
||||||
|
I (59) boot: ## Label Usage Type ST Offset Length
|
||||||
|
I (67) boot: 0 nvs WiFi data 01 02 00009000 00006000
|
||||||
|
I (74) boot: 1 phy_init RF data 01 01 0000f000 00001000
|
||||||
|
I (81) boot: 2 factory factory app 00 00 00010000 00100000
|
||||||
|
I (89) boot: End of partition table
|
||||||
|
I (93) boot_comm: chip revision: 1, min. application chip revision: 0
|
||||||
|
I (100) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=16ca4h ( 93348) map
|
||||||
|
I (143) esp_image: segment 1: paddr=00026ccc vaddr=3ffb0000 size=024d4h ( 9428) load
|
||||||
|
I (147) esp_image: segment 2: paddr=000291a8 vaddr=40080000 size=06e70h ( 28272) load
|
||||||
|
I (160) esp_image: segment 3: paddr=00030020 vaddr=400d0020 size=412d8h (266968) map
|
||||||
|
I (257) esp_image: segment 4: paddr=00071300 vaddr=40086e70 size=045a8h ( 17832) load
|
||||||
|
I (265) esp_image: segment 5: paddr=000758b0 vaddr=50000000 size=00010h ( 16) load
|
||||||
|
I (270) boot: Loaded app from partition at offset 0x10000
|
||||||
|
I (270) boot: Disabling RNG early entropy source...
|
||||||
|
I (285) cpu_start: Pro cpu up.
|
||||||
|
I (286) cpu_start: Starting app cpu, entry point is 0x40081088
|
||||||
|
I (273) cpu_start: App cpu up.
|
||||||
|
I (300) cpu_start: Pro cpu start user code
|
||||||
|
I (300) cpu_start: cpu freq: 160000000
|
||||||
|
I (300) cpu_start: Application information:
|
||||||
|
I (305) cpu_start: Project name: wolfssl_test
|
||||||
|
I (310) cpu_start: App version: v5.5.3-stable-108-gbd7b442df-di
|
||||||
|
I (317) cpu_start: Compile time: Nov 17 2022 15:24:40
|
||||||
|
I (323) cpu_start: ELF file SHA256: 90957eeb4f0d2246...
|
||||||
|
I (329) cpu_start: ESP-IDF: v4.4.1-dirty
|
||||||
|
I (335) heap_init: Initializing. RAM available for dynamic allocation:
|
||||||
|
I (342) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
|
||||||
|
I (348) heap_init: At 3FFB2DF0 len 0002D210 (180 KiB): DRAM
|
||||||
|
I (354) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
|
||||||
|
I (360) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
|
||||||
|
I (367) heap_init: At 4008B418 len 00014BE8 (82 KiB): IRAM
|
||||||
|
I (374) spi_flash: detected chip: generic
|
||||||
|
I (378) spi_flash: flash io: dio
|
||||||
|
W (382) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
|
||||||
|
I (396) cpu_start: Starting scheduler on PRO CPU.
|
||||||
|
I (0) cpu_start: Starting scheduler on APP CPU.
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
wolfSSL version 5.5.3
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
error test passed!
|
||||||
|
MEMORY test passed!
|
||||||
|
base64 test passed!
|
||||||
|
asn test passed!
|
||||||
|
RANDOM test passed!
|
||||||
|
MD5 test passed!
|
||||||
|
MD4 test passed!
|
||||||
|
SHA test passed!
|
||||||
|
SHA-256 test passed!
|
||||||
|
SHA-512 test passed!
|
||||||
|
Hash test passed!
|
||||||
|
HMAC-MD5 test passed!
|
||||||
|
HMAC-SHA test passed!
|
||||||
|
HMAC-SHA256 test passed!
|
||||||
|
HMAC-SHA512 test passed!
|
||||||
|
HMAC-KDF test passed!
|
||||||
|
TLSv1.3 KDF test passed!
|
||||||
|
GMAC test passed!
|
||||||
|
DES test passed!
|
||||||
|
DES3 test passed!
|
||||||
|
AES test passed!
|
||||||
|
AES192 test passed!
|
||||||
|
AES256 test passed!
|
||||||
|
AES-GCM test passed!
|
||||||
|
RSA test passed!
|
||||||
|
PWDBASED test passed!
|
||||||
|
ECC test passed!
|
||||||
|
ECC buffer test passed!
|
||||||
|
CURVE25519 test passed!
|
||||||
|
ED25519 test passed!
|
||||||
|
logging test passed!
|
||||||
|
time test passed!
|
||||||
|
mutex test passed!
|
||||||
|
Test complete
|
||||||
|
I (136548) wolfcrypt_test: Exiting main with return code: 0
|
||||||
|
|
||||||
|
I (136548) wolfssl_test: wolf_test_task complete success result code = 0
|
||||||
|
```
|
@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.33027.164
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "VisualGDB_wolfssl_test_idf", "VisualGDB_wolfssl_test_idf.vgdbproj", "{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8CDC7138-1315-4362-8D34-6862D4A1CACF}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
..\..\..\compileAllExamples.sh = ..\..\..\compileAllExamples.sh
|
||||||
|
..\..\..\setup.sh = ..\..\..\setup.sh
|
||||||
|
EndProjectSection
|
||||||
|
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
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Debug|VisualGDB.Build.0 = Debug|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.ActiveCfg = Release|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Release|VisualGDB.Build.0 = Release|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.ActiveCfg = Tests (Debug)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Debug)|VisualGDB.Build.0 = Tests (Debug)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.ActiveCfg = Tests (Release)|VisualGDB
|
||||||
|
{EADCC9AB-72B3-4B51-A838-593E5D80DDF7}.Tests (Release)|VisualGDB.Build.0 = Tests (Release)|VisualGDB
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {79CA8274-53BD-4953-A95F-E1C88CF70B24}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
@ -0,0 +1,269 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<VisualGDBProjectSettings2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<Project xsi:type="com.visualgdb.project.external.esp-idf">
|
||||||
|
<CustomSourceDirectories>
|
||||||
|
<Directories />
|
||||||
|
<PathStyle>Unknown</PathStyle>
|
||||||
|
</CustomSourceDirectories>
|
||||||
|
<AutoProgramSPIFFSPartition>true</AutoProgramSPIFFSPartition>
|
||||||
|
<ProjectModeSettings>
|
||||||
|
<ProjectGUID>35e5525f-318a-466e-a8c7-36548547d801</ProjectGUID>
|
||||||
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
|
<HeaderScanMode>SourceDirs</HeaderScanMode>
|
||||||
|
</ProjectModeSettings>
|
||||||
|
</Project>
|
||||||
|
<Build xsi:type="com.visualgdb.build.cmake">
|
||||||
|
<BuildLogMode xsi:nil="true" />
|
||||||
|
<ToolchainID>
|
||||||
|
<ID>com.visualgdb.xtensa-esp32-elf</ID>
|
||||||
|
<Version>
|
||||||
|
<GCC>11.2.0</GCC>
|
||||||
|
<GDB>9.2.90</GDB>
|
||||||
|
<Revision>2</Revision>
|
||||||
|
</Version>
|
||||||
|
</ToolchainID>
|
||||||
|
<RelativeSourceDirectory>..</RelativeSourceDirectory>
|
||||||
|
<ConfigurationType>DEBUG</ConfigurationType>
|
||||||
|
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
|
||||||
|
<MakeCommandTemplate>
|
||||||
|
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
||||||
|
<Command>$(ToolchainNinja)</Command>
|
||||||
|
<WorkingDirectory>$(BuildDir)</WorkingDirectory>
|
||||||
|
<BackgroundMode xsi:nil="true" />
|
||||||
|
</MakeCommandTemplate>
|
||||||
|
<CMakeCommand>
|
||||||
|
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
|
||||||
|
<Command>$(SYSPROGS_CMAKE_PATH)</Command>
|
||||||
|
<BackgroundMode xsi:nil="true" />
|
||||||
|
</CMakeCommand>
|
||||||
|
<UpdateSourcesInCMakeFile>true</UpdateSourcesInCMakeFile>
|
||||||
|
<ExportCompileCommands>false</ExportCompileCommands>
|
||||||
|
<DisableToolchainFile>false</DisableToolchainFile>
|
||||||
|
<CMakeMakefileType>Ninja</CMakeMakefileType>
|
||||||
|
<DeployAsRoot>false</DeployAsRoot>
|
||||||
|
<CMakeCleanMode>RemoveBuildDirectory</CMakeCleanMode>
|
||||||
|
<UseCCache>false</UseCCache>
|
||||||
|
<ProjectModeSettings>
|
||||||
|
<ProjectItemSettings>
|
||||||
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
|
<GroupTargetsByPaths>true</GroupTargetsByPaths>
|
||||||
|
<FollowCMakeSourceGroups>false</FollowCMakeSourceGroups>
|
||||||
|
<AutoRefreshProject>true</AutoRefreshProject>
|
||||||
|
<AlwaysConsiderOutdated>false</AlwaysConsiderOutdated>
|
||||||
|
<SortTargetsByName>true</SortTargetsByName>
|
||||||
|
<RedundantTargetMode>HideOuterProjectTargets</RedundantTargetMode>
|
||||||
|
<SortSourcesByName>true</SortSourcesByName>
|
||||||
|
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
|
||||||
|
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
|
||||||
|
</ProjectItemSettings>
|
||||||
|
<TargetSpecificSettings />
|
||||||
|
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
|
||||||
|
<ProjectGUID>eadcc9ab-72b3-4b51-a838-593e5d80ddf7</ProjectGUID>
|
||||||
|
<VirtualFolders />
|
||||||
|
<ConfigurationNameCase>Upper</ConfigurationNameCase>
|
||||||
|
<DefaultHeaderDiscoveryMode>HeaderDirectoryAndSubdirectories</DefaultHeaderDiscoveryMode>
|
||||||
|
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
|
||||||
|
<ESPIDFExtension>
|
||||||
|
<IDFCheckout>
|
||||||
|
<Version>release/v5.0</Version>
|
||||||
|
<Subdirectory>esp-idf/v5.0</Subdirectory>
|
||||||
|
<Type>ESPIDF</Type>
|
||||||
|
</IDFCheckout>
|
||||||
|
<COMPort>COM20</COMPort>
|
||||||
|
<SuppressTestPrerequisiteChecks>false</SuppressTestPrerequisiteChecks>
|
||||||
|
<UseCCache>false</UseCCache>
|
||||||
|
<DeviceID>ESP32</DeviceID>
|
||||||
|
</ESPIDFExtension>
|
||||||
|
</ProjectModeSettings>
|
||||||
|
</Build>
|
||||||
|
<CustomBuild>
|
||||||
|
<PreSyncActions />
|
||||||
|
<PreBuildActions />
|
||||||
|
<PostBuildActions />
|
||||||
|
<PreCleanActions />
|
||||||
|
<PostCleanActions />
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomDebug>
|
||||||
|
<PreDebugActions />
|
||||||
|
<PostDebugActions />
|
||||||
|
<DebugStopActions />
|
||||||
|
<BreakMode>Default</BreakMode>
|
||||||
|
</CustomDebug>
|
||||||
|
<DeviceTerminalSettings>
|
||||||
|
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
|
||||||
|
<ComPortName>COM20</ComPortName>
|
||||||
|
<AdvancedSettings>
|
||||||
|
<BaudRate>115200</BaudRate>
|
||||||
|
<DataBits>8</DataBits>
|
||||||
|
<Parity>None</Parity>
|
||||||
|
<StopBits>One</StopBits>
|
||||||
|
<FlowControl>None</FlowControl>
|
||||||
|
</AdvancedSettings>
|
||||||
|
</Connection>
|
||||||
|
<LastConnectionTime>0</LastConnectionTime>
|
||||||
|
<EchoTypedCharacters>false</EchoTypedCharacters>
|
||||||
|
<ClearContentsWhenReconnecting>false</ClearContentsWhenReconnecting>
|
||||||
|
<ReconnectAutomatically>false</ReconnectAutomatically>
|
||||||
|
<DisplayMode>ASCII</DisplayMode>
|
||||||
|
<Colors>
|
||||||
|
<Background>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>0</Red>
|
||||||
|
<Green>0</Green>
|
||||||
|
<Blue>0</Blue>
|
||||||
|
</Background>
|
||||||
|
<Disconnected>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>169</Red>
|
||||||
|
<Green>169</Green>
|
||||||
|
<Blue>169</Blue>
|
||||||
|
</Disconnected>
|
||||||
|
<Text>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>211</Red>
|
||||||
|
<Green>211</Green>
|
||||||
|
<Blue>211</Blue>
|
||||||
|
</Text>
|
||||||
|
<Echo>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>144</Red>
|
||||||
|
<Green>238</Green>
|
||||||
|
<Blue>144</Blue>
|
||||||
|
</Echo>
|
||||||
|
<Inactive>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>169</Red>
|
||||||
|
<Green>169</Green>
|
||||||
|
<Blue>169</Blue>
|
||||||
|
</Inactive>
|
||||||
|
</Colors>
|
||||||
|
<HexSettings>
|
||||||
|
<MaximumBytesPerLine>16</MaximumBytesPerLine>
|
||||||
|
<ShowTextView>true</ShowTextView>
|
||||||
|
<BreaksAroundEcho>true</BreaksAroundEcho>
|
||||||
|
<AutoSend>true</AutoSend>
|
||||||
|
<SendAsHex>true</SendAsHex>
|
||||||
|
<TimeoutForAutoBreak>0</TimeoutForAutoBreak>
|
||||||
|
</HexSettings>
|
||||||
|
<LineEnding>LF</LineEnding>
|
||||||
|
<TreatLFAsCRLF>false</TreatLFAsCRLF>
|
||||||
|
<KeepOpenAfterExit>false</KeepOpenAfterExit>
|
||||||
|
<ShowAfterProgramming>false</ShowAfterProgramming>
|
||||||
|
</DeviceTerminalSettings>
|
||||||
|
<CustomShortcuts>
|
||||||
|
<Shortcuts />
|
||||||
|
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
||||||
|
</CustomShortcuts>
|
||||||
|
<UserDefinedVariables />
|
||||||
|
<ImportedPropertySheets />
|
||||||
|
<CodeSense>
|
||||||
|
<Enabled>Unknown</Enabled>
|
||||||
|
<ExtraSettings>
|
||||||
|
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
|
||||||
|
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
|
||||||
|
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
|
||||||
|
<FormattingEngine xsi:nil="true" />
|
||||||
|
</ExtraSettings>
|
||||||
|
<CodeAnalyzerSettings>
|
||||||
|
<Enabled>false</Enabled>
|
||||||
|
</CodeAnalyzerSettings>
|
||||||
|
</CodeSense>
|
||||||
|
<Configurations>
|
||||||
|
<VisualGDBConfiguration>
|
||||||
|
<Name>Debug</Name>
|
||||||
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
|
</VisualGDBConfiguration>
|
||||||
|
<VisualGDBConfiguration>
|
||||||
|
<Name>Release</Name>
|
||||||
|
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
|
||||||
|
</VisualGDBConfiguration>
|
||||||
|
</Configurations>
|
||||||
|
<ProgramArgumentsSuggestions />
|
||||||
|
<Debug xsi:type="com.visualgdb.debug.embedded">
|
||||||
|
<AdditionalStartupCommands />
|
||||||
|
<AdditionalGDBSettings>
|
||||||
|
<Features>
|
||||||
|
<DisableAutoDetection>false</DisableAutoDetection>
|
||||||
|
<UseFrameParameter>false</UseFrameParameter>
|
||||||
|
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
|
||||||
|
<ListLocalsSupported>false</ListLocalsSupported>
|
||||||
|
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
|
||||||
|
<ThreadInfoSupported>false</ThreadInfoSupported>
|
||||||
|
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
|
||||||
|
<SupportTargetCommand>false</SupportTargetCommand>
|
||||||
|
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
|
||||||
|
</Features>
|
||||||
|
<EnableSmartStepping>false</EnableSmartStepping>
|
||||||
|
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
|
||||||
|
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
|
||||||
|
<UseAppleExtensions>false</UseAppleExtensions>
|
||||||
|
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
|
||||||
|
<MakeLogFile>false</MakeLogFile>
|
||||||
|
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
|
||||||
|
<UseRelativePathsOnly>false</UseRelativePathsOnly>
|
||||||
|
<ExitAction>None</ExitAction>
|
||||||
|
<DisableDisassembly>false</DisableDisassembly>
|
||||||
|
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
|
||||||
|
<StepIntoNewInstanceEntry>app_main</StepIntoNewInstanceEntry>
|
||||||
|
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
|
||||||
|
<DisableSignals>false</DisableSignals>
|
||||||
|
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
|
||||||
|
<AsyncModeSupportsBreakpoints>true</AsyncModeSupportsBreakpoints>
|
||||||
|
<TemporaryBreakConsolidationTimeout>0</TemporaryBreakConsolidationTimeout>
|
||||||
|
<EnableNonStopMode>false</EnableNonStopMode>
|
||||||
|
<MaxBreakpointLimit>0</MaxBreakpointLimit>
|
||||||
|
<EnableVerboseMode>true</EnableVerboseMode>
|
||||||
|
<EnablePrettyPrinters>false</EnablePrettyPrinters>
|
||||||
|
</AdditionalGDBSettings>
|
||||||
|
<DebugMethod>
|
||||||
|
<ID>openocd</ID>
|
||||||
|
<Configuration xsi:type="com.visualgdb.edp.openocd.settings.esp32">
|
||||||
|
<CommandLine>-f interface/tigard.cfg -c "adapter_khz 3000" -f target/esp32.cfg</CommandLine>
|
||||||
|
<ExtraParameters>
|
||||||
|
<Frequency xsi:nil="true" />
|
||||||
|
<BoostedFrequency xsi:nil="true" />
|
||||||
|
<ConnectUnderReset>false</ConnectUnderReset>
|
||||||
|
</ExtraParameters>
|
||||||
|
<LoadProgressGUIThreshold>131072</LoadProgressGUIThreshold>
|
||||||
|
<ProgramMode>Enabled</ProgramMode>
|
||||||
|
<StartupCommands>
|
||||||
|
<string>set remotetimeout 60</string>
|
||||||
|
<string>target remote :$$SYS:GDB_PORT$$</string>
|
||||||
|
<string>mon gdb_breakpoint_override hard</string>
|
||||||
|
<string>mon reset halt</string>
|
||||||
|
<string>load</string>
|
||||||
|
</StartupCommands>
|
||||||
|
<ProgramFLASHUsingExternalTool>false</ProgramFLASHUsingExternalTool>
|
||||||
|
<PreferredGDBPort>0</PreferredGDBPort>
|
||||||
|
<PreferredTelnetPort>0</PreferredTelnetPort>
|
||||||
|
<AlwaysPassSerialNumber>false</AlwaysPassSerialNumber>
|
||||||
|
<SelectedCoreIndex xsi:nil="true" />
|
||||||
|
<LiveMemoryTimeout>5000</LiveMemoryTimeout>
|
||||||
|
<SuggestionLogicRevision>1</SuggestionLogicRevision>
|
||||||
|
<CheckFLASHSize>true</CheckFLASHSize>
|
||||||
|
<FLASHSettings>
|
||||||
|
<Size>size2MB</Size>
|
||||||
|
<Frequency>freq40M</Frequency>
|
||||||
|
<Mode>DIO</Mode>
|
||||||
|
</FLASHSettings>
|
||||||
|
<PatchBootloader>true</PatchBootloader>
|
||||||
|
</Configuration>
|
||||||
|
</DebugMethod>
|
||||||
|
<AutoDetectRTOS>true</AutoDetectRTOS>
|
||||||
|
<SemihostingSupport>Auto</SemihostingSupport>
|
||||||
|
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
||||||
|
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
||||||
|
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
||||||
|
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
|
||||||
|
<StopAtEntryPoint>false</StopAtEntryPoint>
|
||||||
|
<EnableVirtualHalts>false</EnableVirtualHalts>
|
||||||
|
<DynamicAnalysisSettings />
|
||||||
|
<EndOfStackSymbol>_estack</EndOfStackSymbol>
|
||||||
|
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
|
||||||
|
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
|
||||||
|
<UnusedStackFillPattern xsi:nil="true" />
|
||||||
|
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
|
||||||
|
</Debug>
|
||||||
|
</VisualGDBProjectSettings2>
|
@ -0,0 +1,8 @@
|
|||||||
|
#
|
||||||
|
# Main component makefile.
|
||||||
|
#
|
||||||
|
# This Makefile can be left empty. By default, it will take the sources in the
|
||||||
|
# src/ directory, compile them and link them into lib(subdirectory_name).a
|
||||||
|
# in the build directory. This behaviour is entirely configurable,
|
||||||
|
# please read the ESP-IDF documents if you need to do this.
|
||||||
|
#
|
@ -0,0 +1,79 @@
|
|||||||
|
|
||||||
|
#
|
||||||
|
# wolfssl crypt test
|
||||||
|
#
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
|
||||||
|
|
||||||
|
set(COMPONENT_SRCS "main.c")
|
||||||
|
|
||||||
|
# when using time helper:
|
||||||
|
# set(COMPONENT_SRCS "main.c" "time_helper.c")
|
||||||
|
|
||||||
|
set(COMPONENT_ADD_INCLUDEDIRS ".")
|
||||||
|
|
||||||
|
set (git_cmd "git")
|
||||||
|
|
||||||
|
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
|
||||||
|
#
|
||||||
|
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
|
||||||
|
#
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
|
||||||
|
message(STATUS "")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
register_component()
|
||||||
|
|
||||||
|
#
|
||||||
|
# LIBWOLFSSL_SAVE_INFO(VAR_OUPUT THIS_VAR VAR_RESULT)
|
||||||
|
#
|
||||||
|
# Save the THIS_VAR as a string in a macro called VAR_OUPUT
|
||||||
|
#
|
||||||
|
# VAR_OUPUT: the name of the macro to define
|
||||||
|
# THIS_VAR: the OUTPUT_VARIABLE result from a execute_process()
|
||||||
|
# VAR_RESULT: the RESULT_VARIABLE from a execute_process(); "0" if successful.
|
||||||
|
#
|
||||||
|
function ( LIBWOLFSSL_SAVE_INFO VAR_OUPUT THIS_VAR VAR_RESULT )
|
||||||
|
# is the RESULT_VARIABLE output value 0? If so, IS_VALID_VALUE is true.
|
||||||
|
string(COMPARE EQUAL "${VAR_RESULT}" "0" IS_VALID_VALUE)
|
||||||
|
|
||||||
|
# if we had a successful operation, save the THIS_VAR in VAR_OUPUT
|
||||||
|
if(${IS_VALID_VALUE})
|
||||||
|
# strip newline chars in THIS_VAR parameter and save in VAR_VALUE
|
||||||
|
string(REPLACE "\n" "" VAR_VALUE ${THIS_VAR})
|
||||||
|
|
||||||
|
# we'll could percolate the value to the parent for possible later use
|
||||||
|
# set(${VAR_OUPUT} ${VAR_VALUE} PARENT_SCOPE)
|
||||||
|
|
||||||
|
# but we're only using it here in this function
|
||||||
|
set(${VAR_OUPUT} ${VAR_VALUE})
|
||||||
|
|
||||||
|
# we'll print what we found to the console
|
||||||
|
message(STATUS "Found ${VAR_OUPUT}=${VAR_VALUE}")
|
||||||
|
|
||||||
|
# the interesting part is defining the VAR_OUPUT name a value to use in the app
|
||||||
|
add_definitions(-D${VAR_OUPUT}=\"${VAR_VALUE}\")
|
||||||
|
else()
|
||||||
|
# if we get here, check the execute_process command and parameters.
|
||||||
|
message(STATUS "LIBWOLFSSL_SAVE_INFO encountered a non-zero VAR_RESULT")
|
||||||
|
set(${VAR_OUPUT} "Unknown")
|
||||||
|
endif()
|
||||||
|
endfunction() # LIBWOLFSSL_SAVE_INFO
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_SHORT_HASH
|
||||||
|
execute_process(COMMAND ${git_cmd} "rev-parse" "--short" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_SHORT_HASH "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
|
||||||
|
# LIBWOLFSSL_VERSION_GIT_HASH_DATE
|
||||||
|
execute_process(COMMAND ${git_cmd} "show" "--no-patch" "--no-notes" "--pretty=\'\%cd\'" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES )
|
||||||
|
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH_DATE "${TMP_OUT}" "${TMP_RES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "")
|
||||||
|
|
@ -0,0 +1,29 @@
|
|||||||
|
menu "Example Configuration"
|
||||||
|
|
||||||
|
config BENCH_ARGV
|
||||||
|
string "Arguments for benchmark test"
|
||||||
|
default "-lng 0"
|
||||||
|
help
|
||||||
|
-? <num> Help, print this usage
|
||||||
|
0: English, 1: Japanese
|
||||||
|
-csv Print terminal output in csv format
|
||||||
|
-base10 Display bytes as power of 10 (eg 1 kB = 1000 Bytes)
|
||||||
|
-no_aad No additional authentication data passed.
|
||||||
|
-dgst_full Full digest operation performed.
|
||||||
|
-rsa_sign Measure RSA sign/verify instead of encrypt/decrypt.
|
||||||
|
-<alg> Algorithm to benchmark. Available algorithms include:
|
||||||
|
cipher aes-cbc aes-gcm chacha20 chacha20-poly1305
|
||||||
|
digest md5 poly1305 sha sha2 sha224 sha256 sha384 sha512 sha3
|
||||||
|
sha3-224 sha3-256 sha3-384 sha3-512
|
||||||
|
mac hmac hmac-md5 hmac-sha hmac-sha224 hmac-sha256 hmac-sha384
|
||||||
|
hmac-sha512
|
||||||
|
asym rsa rsa-sz dh ecc-kg ecc
|
||||||
|
other rng
|
||||||
|
-lng <num> Display benchmark result by specified language.
|
||||||
|
0: English, 1: Japanese
|
||||||
|
<num> Size of block in bytes
|
||||||
|
|
||||||
|
e.g -lng 1
|
||||||
|
e.g sha
|
||||||
|
|
||||||
|
endmenu
|
@ -0,0 +1,3 @@
|
|||||||
|
#
|
||||||
|
# Main Makefile. This is basically the same as a component makefile.
|
||||||
|
#
|
231
IDE/Espressif/ESP-IDF/examples/wolfssl_test_idf/main/main.c
Normal file
231
IDE/Espressif/ESP-IDF/examples/wolfssl_test_idf/main/main.c
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ESP-IDF */
|
||||||
|
#include <esp_log.h>
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
|
/* wolfSSL */
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <user_settings.h>
|
||||||
|
#include <wolfssl/version.h>
|
||||||
|
#ifndef WOLFSSL_ESPIDF
|
||||||
|
#warning "problem with wolfSSL user settings. Check components/wolfssl/include"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <wolfcrypt/test/test.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
** the wolfssl component can be installed in either:
|
||||||
|
**
|
||||||
|
** - the ESP-IDF component directory
|
||||||
|
**
|
||||||
|
** ** OR **
|
||||||
|
**
|
||||||
|
** - the local project component directory
|
||||||
|
**
|
||||||
|
** it is not recommended to install in both.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** although the wolfcrypt/test includes a default time setting,
|
||||||
|
** see the enclosed optional time helper for adding NNTP.
|
||||||
|
** be sure to add "time_helper.c" in main/CMakeLists.txt
|
||||||
|
*/
|
||||||
|
#undef WOLFSSL_USE_TIME_HELPER
|
||||||
|
#if defined(WOLFSSL_USE_TIME_HELPER)
|
||||||
|
#include "time_helper.h" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* see wolfssl/wolfcrypt/test/test.h */
|
||||||
|
extern void wolf_crypt_task();
|
||||||
|
|
||||||
|
|
||||||
|
static const char* const TAG = "wolfssl_test";
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_ESPWROOM32SE) && defined(HAVE_PK_CALLBACKS) \
|
||||||
|
&& defined(WOLFSSL_ATECC508A)
|
||||||
|
|
||||||
|
#include "wolfssl/wolfcrypt/port/atmel/atmel.h"
|
||||||
|
|
||||||
|
/* when you need to use a custom slot allocation, */
|
||||||
|
/* enable the definition CUSTOM_SLOT_ALLOCAION. */
|
||||||
|
#if defined(CUSTOM_SLOT_ALLOCATION)
|
||||||
|
|
||||||
|
static byte mSlotList[ATECC_MAX_SLOT];
|
||||||
|
|
||||||
|
/* initialize slot array */
|
||||||
|
void my_atmel_slotInit()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < ATECC_MAX_SLOT; i++) {
|
||||||
|
mSlotList[i] = ATECC_INVALID_SLOT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* allocate slot depending on slotType */
|
||||||
|
int my_atmel_alloc(int slotType)
|
||||||
|
{
|
||||||
|
int i, slot = ATECC_INVALID_SLOT;
|
||||||
|
|
||||||
|
switch (slotType) {
|
||||||
|
case ATMEL_SLOT_ENCKEY:
|
||||||
|
slot = 4;
|
||||||
|
break;
|
||||||
|
case ATMEL_SLOT_DEVICE:
|
||||||
|
slot = 0;
|
||||||
|
break;
|
||||||
|
case ATMEL_SLOT_ECDHE:
|
||||||
|
slot = 0;
|
||||||
|
break;
|
||||||
|
case ATMEL_SLOT_ECDHE_ENC:
|
||||||
|
slot = 4;
|
||||||
|
break;
|
||||||
|
case ATMEL_SLOT_ANY:
|
||||||
|
for (i = 0; i < ATECC_MAX_SLOT; i++) {
|
||||||
|
if (mSlotList[i] == ATECC_INVALID_SLOT) {
|
||||||
|
slot = i;
|
||||||
|
break;
|
||||||
|
} /* if */
|
||||||
|
} /* for */
|
||||||
|
} /* switch */
|
||||||
|
|
||||||
|
return slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* free slot array */
|
||||||
|
void my_atmel_free(int slotId)
|
||||||
|
{
|
||||||
|
if (slotId >= 0 && slotId < ATECC_MAX_SLOT) {
|
||||||
|
mSlotList[slotId] = ATECC_INVALID_SLOT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CUSTOM_SLOT_ALLOCATION */
|
||||||
|
#endif /* WOLFSSL_ESPWROOM32SE && HAVE_PK_CALLBACK && WOLFSSL_ATECC508A */
|
||||||
|
|
||||||
|
|
||||||
|
/* entry point */
|
||||||
|
void app_main(void)
|
||||||
|
{
|
||||||
|
int rc = 0;
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "---------------------- BEGIN MAIN ----------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
|
||||||
|
|
||||||
|
ESP_LOGI(TAG, "CONFIG_IDF_TARGET = %s", CONFIG_IDF_TARGET);
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_STRING = %s", LIBWOLFSSL_VERSION_STRING);
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH = %s", LIBWOLFSSL_VERSION_GIT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_SHORT_HASH )
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_SHORT_HASH = %s", LIBWOLFSSL_VERSION_GIT_SHORT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH_DATE)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH_DATE = %s", LIBWOLFSSL_VERSION_GIT_HASH_DATE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* some interesting settings are target specific (ESP32, -C3, -S3, etc */
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
/* not available for C3 at this time */
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
|
ESP_LOGI(TAG, "CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ = %u MHz",
|
||||||
|
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
|
||||||
|
);
|
||||||
|
ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
|
||||||
|
#else
|
||||||
|
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);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* all platforms: stack high water mark check */
|
||||||
|
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
|
||||||
|
|
||||||
|
/* check to see if we are using hardware encryption */
|
||||||
|
#if defined(NO_ESP32WROOM32_CRYPT)
|
||||||
|
ESP_LOGI(TAG, "NO_ESP32WROOM32_CRYPT defined! HW acceleration DISABLED.");
|
||||||
|
#else
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-C3"
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
|
||||||
|
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-S2"
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
|
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-S3"
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "ESP32WROOM32_CRYPT is enabled.");
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if defined (WOLFSSL_USE_TIME_HELPER)
|
||||||
|
set_time();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* when using atecc608a on esp32-wroom-32se */
|
||||||
|
#if defined(WOLFSSL_ESPWROOM32SE) && defined(HAVE_PK_CALLBACKS) \
|
||||||
|
&& defined(WOLFSSL_ATECC508A)
|
||||||
|
#if defined(CUSTOM_SLOT_ALLOCATION)
|
||||||
|
my_atmel_slotInit();
|
||||||
|
/* to register the callback, it needs to be initialized. */
|
||||||
|
if ((wolfCrypt_Init()) != 0) {
|
||||||
|
ESP_LOGE(TAG, "wolfCrypt_Init failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
atmel_set_slot_allocator(my_atmel_alloc, my_atmel_free);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NO_CRYPT_TEST
|
||||||
|
ESP_LOGI(TAG, "NO_CRYPT_TEST defined, skipping wolf_test_task");
|
||||||
|
#else
|
||||||
|
/* Although wolfCrypt_Init() may be explicitly called above,
|
||||||
|
** Note it is still always called in wolf_test_task.
|
||||||
|
*/
|
||||||
|
rc = wolf_test_task();
|
||||||
|
/* note wolfCrypt_Cleanup() should always be called when finished.
|
||||||
|
** This is called at the end of wolf_test_task();
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (rc == 0) {
|
||||||
|
ESP_LOGI(TAG, "wolf_test_task complete success result code = %d", rc);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ESP_LOGE(TAG, "wolf_test_task FAIL result code = %d", rc);
|
||||||
|
/* see wolfssl/wolfcrypt/error-crypt.h */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* after the test, we'll just wait */
|
||||||
|
while (1) {
|
||||||
|
/* nothing */
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
@ -0,0 +1,278 @@
|
|||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ESP-IDF */
|
||||||
|
#include <esp_log.h>
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
|
/* wolfSSL */
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <user_settings.h>
|
||||||
|
#include <wolfssl/version.h>
|
||||||
|
#ifndef WOLFSSL_ESPIDF
|
||||||
|
#warning "problem with wolfSSL user settings. Check components/wolfssl/include"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <wolfcrypt/test/test.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
** the wolfssl component can be installed in either:
|
||||||
|
**
|
||||||
|
** - the ESP-IDF component directory
|
||||||
|
**
|
||||||
|
** ** OR **
|
||||||
|
**
|
||||||
|
** - the local project component directory
|
||||||
|
**
|
||||||
|
** it is not recommended to install in both.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** although the wolfcrypt/test includes a default time setting,
|
||||||
|
** see the enclosed optional time helper for adding NNTP.
|
||||||
|
** be sure to add "time_helper.c" in main/CMakeLists.txt
|
||||||
|
*/
|
||||||
|
#undef WOLFSSL_USE_TIME_HELPER
|
||||||
|
#if defined(WOLFSSL_USE_TIME_HELPER)
|
||||||
|
#include "time_helper.h" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* see wolfssl/wolfcrypt/test/test.h */
|
||||||
|
extern void wolf_crypt_task();
|
||||||
|
|
||||||
|
|
||||||
|
static const char* const TAG = "wolfssl_test";
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_ESPWROOM32SE) && defined(HAVE_PK_CALLBACKS) \
|
||||||
|
&& defined(WOLFSSL_ATECC508A)
|
||||||
|
|
||||||
|
#include "wolfssl/wolfcrypt/port/atmel/atmel.h"
|
||||||
|
|
||||||
|
/* when you need to use a custom slot allocation, */
|
||||||
|
/* enable the definition CUSTOM_SLOT_ALLOCAION. */
|
||||||
|
#if defined(CUSTOM_SLOT_ALLOCATION)
|
||||||
|
|
||||||
|
static byte mSlotList[ATECC_MAX_SLOT];
|
||||||
|
|
||||||
|
/* initialize slot array */
|
||||||
|
void my_atmel_slotInit()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < ATECC_MAX_SLOT; i++) {
|
||||||
|
mSlotList[i] = ATECC_INVALID_SLOT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* allocate slot depending on slotType */
|
||||||
|
int my_atmel_alloc(int slotType)
|
||||||
|
{
|
||||||
|
int i, slot = ATECC_INVALID_SLOT;
|
||||||
|
|
||||||
|
switch (slotType) {
|
||||||
|
case ATMEL_SLOT_ENCKEY:
|
||||||
|
slot = 4;
|
||||||
|
break;
|
||||||
|
case ATMEL_SLOT_DEVICE:
|
||||||
|
slot = 0;
|
||||||
|
break;
|
||||||
|
case ATMEL_SLOT_ECDHE:
|
||||||
|
slot = 0;
|
||||||
|
break;
|
||||||
|
case ATMEL_SLOT_ECDHE_ENC:
|
||||||
|
slot = 4;
|
||||||
|
break;
|
||||||
|
case ATMEL_SLOT_ANY:
|
||||||
|
for (i = 0; i < ATECC_MAX_SLOT; i++) {
|
||||||
|
if (mSlotList[i] == ATECC_INVALID_SLOT) {
|
||||||
|
slot = i;
|
||||||
|
break;
|
||||||
|
} /* if */
|
||||||
|
} /* for */
|
||||||
|
} /* switch */
|
||||||
|
|
||||||
|
return slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* free slot array */
|
||||||
|
void my_atmel_free(int slotId)
|
||||||
|
{
|
||||||
|
if (slotId >= 0 && slotId < ATECC_MAX_SLOT) {
|
||||||
|
mSlotList[slotId] = ATECC_INVALID_SLOT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CUSTOM_SLOT_ALLOCATION */
|
||||||
|
#endif /* WOLFSSL_ESPWROOM32SE && HAVE_PK_CALLBACK && WOLFSSL_ATECC508A */
|
||||||
|
|
||||||
|
|
||||||
|
/* entry point */
|
||||||
|
void app_main(void)
|
||||||
|
{
|
||||||
|
int rc = 0;
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "---------------------- BEGIN MAIN ----------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
ESP_LOGI(TAG, "--------------------------------------------------------");
|
||||||
|
|
||||||
|
|
||||||
|
ESP_LOGI(TAG, "CONFIG_IDF_TARGET = %s", CONFIG_IDF_TARGET);
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_STRING = %s", LIBWOLFSSL_VERSION_STRING);
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH = %s", LIBWOLFSSL_VERSION_GIT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_SHORT_HASH )
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_SHORT_HASH = %s", LIBWOLFSSL_VERSION_GIT_SHORT_HASH);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIBWOLFSSL_VERSION_GIT_HASH_DATE)
|
||||||
|
ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH_DATE = %s", LIBWOLFSSL_VERSION_GIT_HASH_DATE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SHA512)
|
||||||
|
ESP_LOGI(TAG, "Found WOLFSSL_SHA512");
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "Missing WOLFSSL_SHA512");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_ECC)
|
||||||
|
ESP_LOGI(TAG, "Found HAVE_ECC");
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "Missing HAVE_ECC");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_CURVE25519)
|
||||||
|
ESP_LOGI(TAG, "Found HAVE_CURVE25519");
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "Missing HAVE_CURVE25519");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CURVE25519_SMALL)
|
||||||
|
ESP_LOGI(TAG, "Found CURVE25519_SMALL");
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "Missing CURVE25519_SMALL");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CURVED25519_SMALL)
|
||||||
|
ESP_LOGI(TAG, "Found CURVED25519_SMALL");
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "Missing CURVED25519_SMALL");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_ED25519)
|
||||||
|
ESP_LOGI(TAG, "Found HAVE_ED25519");
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "Missing HAVE_ED25519");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ED25519_SMALL)
|
||||||
|
ESP_LOGI(TAG, "Found ED25519_SMALL");
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "Missing ED25519_SMALL");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* some interesting settings are target specific (ESP32, -C3, -S3, etc */
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
/* not available for C3 at this time */
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
|
ESP_LOGI(TAG, "CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ = %u MHz",
|
||||||
|
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
|
||||||
|
);
|
||||||
|
ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
|
||||||
|
#else
|
||||||
|
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);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* all platforms: stack high water mark check */
|
||||||
|
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
|
||||||
|
|
||||||
|
/* check to see if we are using hardware encryption */
|
||||||
|
#if defined(NO_ESP32WROOM32_CRYPT)
|
||||||
|
ESP_LOGI(TAG, "NO_ESP32WROOM32_CRYPT defined! HW acceleration DISABLED.");
|
||||||
|
#else
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-C3"
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
|
||||||
|
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-S2"
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
|
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-S3"
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "ESP32WROOM32_CRYPT is enabled.");
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if defined (WOLFSSL_USE_TIME_HELPER)
|
||||||
|
set_time();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* when using atecc608a on esp32-wroom-32se */
|
||||||
|
#if defined(WOLFSSL_ESPWROOM32SE) && defined(HAVE_PK_CALLBACKS) \
|
||||||
|
&& defined(WOLFSSL_ATECC508A)
|
||||||
|
#if defined(CUSTOM_SLOT_ALLOCATION)
|
||||||
|
my_atmel_slotInit();
|
||||||
|
/* to register the callback, it needs to be initialized. */
|
||||||
|
if ((wolfCrypt_Init()) != 0) {
|
||||||
|
ESP_LOGE(TAG, "wolfCrypt_Init failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
atmel_set_slot_allocator(my_atmel_alloc, my_atmel_free);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NO_CRYPT_TEST
|
||||||
|
ESP_LOGI(TAG, "NO_CRYPT_TEST defined, skipping wolf_test_task");
|
||||||
|
#else
|
||||||
|
/* Although wolfCrypt_Init() may be explicitly called above,
|
||||||
|
** Note it is still always called in wolf_test_task.
|
||||||
|
*/
|
||||||
|
rc = wolf_test_task();
|
||||||
|
/* note wolfCrypt_Cleanup() should always be called when finished.
|
||||||
|
** This is called at the end of wolf_test_task();
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (rc == 0) {
|
||||||
|
ESP_LOGI(TAG, "wolf_test_task complete success result code = %d", rc);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ESP_LOGE(TAG, "wolf_test_task FAIL result code = %d", rc);
|
||||||
|
/* see wolfssl/wolfcrypt/error-crypt.h */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* all platforms: stack high water mark check */
|
||||||
|
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
|
||||||
|
|
||||||
|
/* after the test, we'll just wait */
|
||||||
|
while (1) {
|
||||||
|
/* nothing */
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
@ -0,0 +1,119 @@
|
|||||||
|
/* time_helper.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
#include <string.h>
|
||||||
|
#include <lwip/apps/sntp.h>
|
||||||
|
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
#include "esp_log.h"
|
||||||
|
|
||||||
|
#include "time_helper.h"
|
||||||
|
|
||||||
|
const static char* TAG = "Time Helper";
|
||||||
|
|
||||||
|
#define TIME_ZONE "PST-8"
|
||||||
|
/* NELEMS(x) number of elements
|
||||||
|
* To determine the number of elements in the array, we can divide the total size of
|
||||||
|
* the array by the size of the array element
|
||||||
|
* See https://stackoverflow.com/questions/37538/how-do-i-determine-the-size-of-my-array-in-c
|
||||||
|
**/
|
||||||
|
#define NELEMS(x) ( (int)(sizeof(x) / sizeof((x)[0])) )
|
||||||
|
#define NTP_SERVER_LIST ( (char*[]) { \
|
||||||
|
"pool.ntp.org", \
|
||||||
|
"time.nist.gov", \
|
||||||
|
"utcnist.colorado.edu" \
|
||||||
|
} \
|
||||||
|
)
|
||||||
|
/* #define NTP_SERVER_COUNT using NELEMS:
|
||||||
|
*
|
||||||
|
* (int)(sizeof(NTP_SERVER_LIST) / sizeof(NTP_SERVER_LIST[0]))
|
||||||
|
*/
|
||||||
|
#define NTP_SERVER_COUNT NELEMS(NTP_SERVER_LIST)
|
||||||
|
char* ntpServerList[NTP_SERVER_COUNT] = NTP_SERVER_LIST;
|
||||||
|
|
||||||
|
/* our NTP server list is global info */
|
||||||
|
extern char* ntpServerList[NTP_SERVER_COUNT];
|
||||||
|
|
||||||
|
|
||||||
|
int set_time(void)
|
||||||
|
{
|
||||||
|
/* we'll also return a result code of zero */
|
||||||
|
int res = 0;
|
||||||
|
int i = 0; /* counter for time servers */
|
||||||
|
time_t interim_time;
|
||||||
|
|
||||||
|
/* ideally, we'd like to set time from network,
|
||||||
|
* but let's set a default time, just in case */
|
||||||
|
struct tm timeinfo = {
|
||||||
|
.tm_year = 2022 - 1900,
|
||||||
|
.tm_mon = 11,
|
||||||
|
.tm_mday = 15,
|
||||||
|
.tm_hour = 3,
|
||||||
|
.tm_min = 25,
|
||||||
|
.tm_sec = 0
|
||||||
|
};
|
||||||
|
struct timeval now;
|
||||||
|
|
||||||
|
#ifndef NTP_SERVER_COUNT
|
||||||
|
#define NTP_SERVER_COUNT 0
|
||||||
|
char* ntpServerList[NTP_SERVER_COUNT];
|
||||||
|
#endif /* not defined: NTP_SERVER_COUNT */
|
||||||
|
|
||||||
|
#ifndef TIME_ZONE
|
||||||
|
#define TIME_ZONE "PST-8"
|
||||||
|
#endif /* not defined: TIME_ZONE */
|
||||||
|
|
||||||
|
|
||||||
|
/* set interim static time */
|
||||||
|
interim_time = mktime(&timeinfo);
|
||||||
|
now = (struct timeval){ .tv_sec = interim_time };
|
||||||
|
settimeofday(&now, NULL);
|
||||||
|
|
||||||
|
|
||||||
|
/* set timezone */
|
||||||
|
setenv("TZ", TIME_ZONE, 1);
|
||||||
|
tzset();
|
||||||
|
|
||||||
|
if (NTP_SERVER_COUNT) {
|
||||||
|
/* 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);
|
||||||
|
|
||||||
|
ESP_LOGI(TAG, "sntp_setservername:");
|
||||||
|
for (i = 0; i < NTP_SERVER_COUNT; i++) {
|
||||||
|
const char* thisServer = ntpServerList[i];
|
||||||
|
if (strncmp(thisServer, "\x00", 1) == 0) {
|
||||||
|
/* just in case we run out of NTP servers */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ESP_LOGI(TAG, "%s", thisServer);
|
||||||
|
sntp_setservername(i, thisServer);
|
||||||
|
}
|
||||||
|
sntp_init();
|
||||||
|
ESP_LOGI(TAG, "sntp_init done.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ESP_LOGI(TAG, "No sntp time servers found.");
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
#ifndef _TIME_HELPER_H
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2006-2023 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int set_time(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* #ifndef _TIME_HELPER_H */
|
@ -0,0 +1,49 @@
|
|||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
#
|
||||||
|
# Watchdog Timers
|
||||||
|
#
|
||||||
|
# We don't want to have the watchdog timeout during tests
|
||||||
|
#
|
||||||
|
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=n
|
||||||
|
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 is not set
|
||||||
|
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
|
||||||
|
# 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_large.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_OFFSET=0x8000
|
||||||
|
CONFIG_PARTITION_TABLE_MD5=y
|
||||||
|
# end of Partition Table
|
@ -22,49 +22,57 @@ EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main
|
|||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/Makefile
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/Makefile
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/README.md
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/README.md
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/sdkconfig.defaults
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/sdkconfig.defaults
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/VisualGDB_wolfssl_benchmark.vgdbproj
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/VisualGDB/VisualGDB_wolfssl_benchmark.vgdbproj
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/CMakeLists.txt
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/CMakeLists.txt
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/component.mk
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/component.mk
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/Kconfig.projbuild
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/Kconfig.projbuild
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.c
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.c
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.h
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.h
|
||||||
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/components/wolfssl/CMakeLists.txt
|
||||||
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/components/wolfssl/component.mk
|
||||||
|
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/CMakeLists.txt
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/CMakeLists.txt
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/Makefile
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/Makefile
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/README.md
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/README.md
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/sdkconfig.defaults
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/sdkconfig.defaults
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/VisualGDB_wolfssl_client.vgdbproj
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/VisualGDB/VisualGDB_wolfssl_client.vgdbproj
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/client-tls.c
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/client-tls.c
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/CMakeLists.txt
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/CMakeLists.txt
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/component.mk
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/component.mk
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/Kconfig.projbuild
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/Kconfig.projbuild
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/wifi_connect.c
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/wifi_connect.c
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/include/wifi_connect.h
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/include/wifi_connect.h
|
||||||
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/components/wolfssl/CMakeLists.txt
|
||||||
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/components/wolfssl/component.mk
|
||||||
|
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/CMakeLists.txt
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/CMakeLists.txt
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/Makefile
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/Makefile
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/README.md
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/README.md
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/sdkconfig.defaults
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/sdkconfig.defaults
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/VisualGDB_wolfssl_server.vgdbproj
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/VisualGDB/VisualGDB_wolfssl_server.vgdbproj
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/CMakeLists.txt
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/CMakeLists.txt
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/component.mk
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/component.mk
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/server-tls.c
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/server-tls.c
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/wifi_connect.c
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/wifi_connect.c
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/include/wifi_connect.h
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/include/wifi_connect.h
|
||||||
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/components/wolfssl/CMakeLists.txt
|
||||||
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/components/wolfssl/component.mk
|
||||||
|
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/CMakeLists.txt
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/CMakeLists.txt
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/Makefile
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/Makefile
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/README.md
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/README.md
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/sdkconfig.defaults
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/sdkconfig.defaults
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB_wolfssl_test.vgdbproj
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB/VisualGDB_wolfssl_test.vgdbproj
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB_wolfssl_test_IDF_v5_ESP32S3.vgdbproj
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB/VisualGDB_wolfssl_test_IDF_v5_ESP32S3.vgdbproj
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/CMakeLists.txt
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/CMakeLists.txt
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/component.mk
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/component.mk
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/Kconfig.projbuild
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/Kconfig.projbuild
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.c
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.c
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.h
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.h
|
||||||
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/components/wolfssl/CMakeLists.txt
|
||||||
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/components/wolfssl/component.mk
|
||||||
|
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/libs/CMakeLists.txt
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/libs/CMakeLists.txt
|
||||||
EXTRA_DIST+= IDE/Espressif/ESP-IDF/libs/component.mk
|
EXTRA_DIST+= IDE/Espressif/ESP-IDF/libs/component.mk
|
||||||
|
Reference in New Issue
Block a user