Add ESP32, ESP8266, W600, Emscripten platforms support

extensions
Volodymyr Shymanskyy 5 years ago
parent 02772e7756
commit bc0d6bb953

@ -1,6 +1,7 @@
cmake_minimum_required(VERSION 3.9)
set(OUT_FILE "wasm3")
set(APP_DIR "platforms/app")
if(CLANG OR CLANG_SUFFIX)
set(CMAKE_C_COMPILER "clang${CLANG_SUFFIX}")
@ -18,7 +19,9 @@ endif()
if(EMSCRIPTEN)
set(CMAKE_C_COMPILER "emcc")
set(CMAKE_CXX_COMPILER "em++")
set(OUT_FILE "wasm3.html")
set(APP_DIR "platforms/emscripten")
endif()
if(M EQUAL 32)
@ -48,7 +51,9 @@ set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
file(GLOB M3_SRC "source/*.c" "source/*.cpp")
file(GLOB M3_SRC "source/*.c" "source/*.cpp" "${APP_DIR}/*.cpp")
include_directories("./source/")
if((CMAKE_C_COMPILER_ID MATCHES "GNU") OR
(CMAKE_C_COMPILER_ID MATCHES "MSVC"))
@ -59,10 +64,7 @@ if((CMAKE_C_COMPILER_ID MATCHES "GNU") OR
endif()
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG=1 -ggdb")
if (CMAKE_C_COMPILER_ID MATCHES "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") # TODO: remove
endif()
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG=1 -ggdb -O0")
if(EMSCRIPTEN)
set(CMAKE_C_FLAGS_RELEASE "-O2 -flto -w -Wfatal-errors -Xclang -target-feature -Xclang +tail-call")
@ -74,26 +76,29 @@ elseif(WIN32)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWIN32 /WX- /diagnostics:column")
if (CMAKE_C_COMPILER_ID MATCHES "MSVC")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zi /Zo /Oxs /w /fp:fast /arch:AVX2")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Oxs /Oy /W0 /Zi /Zo /arch:AVX2")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/DEBUG:FULL")
else()
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /O3 /Oy /GS- /Qvec /w -Xclang -Oz /fp:fast") # /Gr
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Oxs /Oy /W0 /GS- /Qvec -Clang -Oz")
endif()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") # /GR- /GX-
else()
if (CMAKE_C_COMPILER_ID MATCHES "GNU")
set(OPT_FLAGS "-O3")
set(OPT_FLAGS "-O3 -Wl,--lto-O3")
else()
set(OPT_FLAGS "-Oz -Wl,--lto-O3") # -Ofast
set(OPT_FLAGS "-Oz") # -Ofast
endif()
set(CMAKE_C_FLAGS_RELEASE "${OPT_FLAGS} -fomit-frame-pointer -march=native -w -Wfatal-errors") #-fno-inline
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") # -fno-rtti -fno-exceptions
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-O0")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-O3")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
add_executable(${OUT_FILE} ${M3_SRC})
target_link_libraries(${OUT_FILE} m)
check_ipo_supported(RESULT result)
if(result)

@ -34,12 +34,17 @@ ninja
## Build on Windows
You may need to install:
Prerequisites:
- [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019)
- [CMake](https://cmake.org/download/)
- [Ninja](https://github.com/ninja-build/ninja/releases)
- [Clang 9](https://releases.llvm.org/download.html#9.0.0)
Recommended tools:
- [Cmder](https://cmder.net/)
- [Python3](https://www.python.org/downloads/)
- [ptime](http://www.pc-tools.net/win32/ptime/)
```bat
REM Prepare environment (if needed):
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
@ -78,21 +83,6 @@ cmake -GNinja ..
ninja
```
## Build using Emscripten
```sh
source /opt/emsdk/emsdk_env.sh --build=Release
mkdir -p build
cd build
cmake -GNinja -DEMSCRIPTEN=1 ..
ninja
```
**Note:** the build uses tail-call WebAssembly extension.
This is currently available in V8:
```sh
chrome --js-flags="--experimental-wasm-return-call --wasm-opt"
```
## Running WebAssembly spec tests
To run spec tests, you need `python3` and `WABT` (The WebAssembly Binary Toolkit).

@ -0,0 +1,22 @@
## Build using Emscripten
```sh
source /opt/emsdk/emsdk_env.sh --build=Release
mkdir -p build
cd build
cmake -GNinja -DEMSCRIPTEN=1 ..
ninja
```
**Note:** the build uses tail-call WebAssembly extension.
You can convert the generated wasm to wat:
```sh
wasm2wat --enable-tail-call wasm3.wasm > wasm3.wat
```
```sh
emrun --no_browser --no_emrun_detect --port 8080 .
chromium-browser --js-flags="--experimental-wasm-return-call --wasm-opt --wasm-no-bounds-checks --wasm-no-stack-checks" http://localhost:8080/wasm3.html
```

@ -0,0 +1,12 @@
unsigned char fib_wasm[] = {
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0b, 0x02, 0x60,
0x01, 0x7f, 0x01, 0x7f, 0x60, 0x01, 0x7e, 0x01, 0x7e, 0x03, 0x03, 0x02,
0x00, 0x01, 0x07, 0x11, 0x02, 0x04, 0x5f, 0x66, 0x69, 0x62, 0x00, 0x00,
0x06, 0x5f, 0x66, 0x69, 0x62, 0x36, 0x34, 0x00, 0x01, 0x0a, 0x3d, 0x02,
0x1d, 0x00, 0x20, 0x00, 0x41, 0x02, 0x49, 0x04, 0x40, 0x20, 0x00, 0x0f,
0x0b, 0x20, 0x00, 0x41, 0x02, 0x6b, 0x10, 0x00, 0x20, 0x00, 0x41, 0x01,
0x6b, 0x10, 0x00, 0x6a, 0x0f, 0x0b, 0x1d, 0x00, 0x20, 0x00, 0x42, 0x02,
0x54, 0x04, 0x40, 0x20, 0x00, 0x0f, 0x0b, 0x20, 0x00, 0x42, 0x02, 0x7d,
0x10, 0x01, 0x20, 0x00, 0x42, 0x01, 0x7d, 0x10, 0x01, 0x7c, 0x0f, 0x0b
};
unsigned int fib_wasm_len = 108;

@ -0,0 +1,72 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "m3.hpp"
#include "fib.wasm.h"
#define FATAL(msg, ...) { printf("Fatal: " msg "\n", __VA_ARGS__); return; }
void run_wasm()
{
M3Result result = c_m3Err_none;
u8* wasm = (u8*)fib_wasm;
u32 fsize = fib_wasm_len-1;
printf("WASM: %d bytes\n", fsize);
IM3Module module;
result = m3_ParseModule (& module, wasm, fsize);
if (result) FATAL("m3_ParseModule: %s", result);
IM3Runtime env = m3_NewRuntime (8192);
result = m3_LoadModule (env, module);
if (result) FATAL("m3_LoadModule: %s", result);
//m3_LinkFunction (module, "_m3TestOut", "v(iFi)", (void *) m3TestOut);
//m3_LinkFunction (module, "_m3StdOut", "v(*)", (void *) m3Output);
//m3_LinkFunction (module, "_m3Export", "v(*i)", (void *) m3Export);
//m3_LinkFunction (module, "_m3Out_f64", "v(F)", (void *) m3Out_f64);
//m3_LinkFunction (module, "_m3Out_i32", "v(i)", (void *) m3Out_i32);
//m3_LinkFunction (module, "_TestReturn", "F(i)", (void *) TestReturn);
//m3_LinkFunction (module, "abortStackOverflow", "v(i)", (void *) m3_abort);
//result = m3_LinkCStd (module);
//if (result) FATAL("m3_LinkCStd: %s", result);
m3_PrintRuntimeInfo (env);
IM3Function f;
result = m3_FindFunction (&f, env, "__post_instantiate");
if (! result)
{
result = m3_Call (f);
if (result) FATAL("__post_instantiate: %s", result);
}
result = m3_FindFunction (&f, env, "_fib");
if (result) FATAL("m3_FindFunction: %s", result);
clock_t start = clock();
const char* i_argv[2] = { "40", NULL };
result = m3_CallWithArgs (f, 1, i_argv);
clock_t end = clock();
uint32_t elapsed_time = (end - start)*1000 / CLOCKS_PER_SEC ;
printf("Elapsed: %d ms\n", elapsed_time);
if (result) FATAL("Call: %s", result);
}
int main (int i_argc, const char * i_argv [])
{
run_wasm();
return 0;
}

@ -0,0 +1,26 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = espidf
monitor_speed = 115200
src_build_flags =
-O3 -w -Wfatal-errors
-fomit-frame-pointer
-flto -fno-fat-lto-objects
#-foptimize-sibling-calls
#-fverbose-asm -save-temps=obj

@ -0,0 +1,12 @@
unsigned char fib_wasm[] = {
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0b, 0x02, 0x60,
0x01, 0x7f, 0x01, 0x7f, 0x60, 0x01, 0x7e, 0x01, 0x7e, 0x03, 0x03, 0x02,
0x00, 0x01, 0x07, 0x11, 0x02, 0x04, 0x5f, 0x66, 0x69, 0x62, 0x00, 0x00,
0x06, 0x5f, 0x66, 0x69, 0x62, 0x36, 0x34, 0x00, 0x01, 0x0a, 0x3d, 0x02,
0x1d, 0x00, 0x20, 0x00, 0x41, 0x02, 0x49, 0x04, 0x40, 0x20, 0x00, 0x0f,
0x0b, 0x20, 0x00, 0x41, 0x02, 0x6b, 0x10, 0x00, 0x20, 0x00, 0x41, 0x01,
0x6b, 0x10, 0x00, 0x6a, 0x0f, 0x0b, 0x1d, 0x00, 0x20, 0x00, 0x42, 0x02,
0x54, 0x04, 0x40, 0x20, 0x00, 0x0f, 0x0b, 0x20, 0x00, 0x42, 0x02, 0x7d,
0x10, 0x01, 0x20, 0x00, 0x42, 0x01, 0x7d, 0x10, 0x01, 0x7c, 0x0f, 0x0b
};
unsigned int fib_wasm_len = 108;

@ -0,0 +1 @@
../../../source

@ -0,0 +1,108 @@
#include <stdio.h>
#include <time.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
#define FATAL(msg, ...) { printf("Fatal: " msg "\n", __VA_ARGS__); return; }
#include "m3/m3.hpp"
#include "fib.wasm.h"
void run_wasm()
{
M3Result result = c_m3Err_none;
u8* wasm = (u8*)fib_wasm;
u32 fsize = fib_wasm_len-1;
printf("WASM: %d bytes\n", fsize);
IM3Module module;
result = m3_ParseModule (& module, wasm, fsize);
if (result) FATAL("m3_ParseModule: %s", result);
IM3Runtime env = m3_NewRuntime (8192);
result = m3_LoadModule (env, module);
if (result) FATAL("m3_LoadModule: %s", result);
//m3_LinkFunction (module, "_m3TestOut", "v(iFi)", (void *) m3TestOut);
//m3_LinkFunction (module, "_m3StdOut", "v(*)", (void *) m3Output);
//m3_LinkFunction (module, "_m3Export", "v(*i)", (void *) m3Export);
//m3_LinkFunction (module, "_m3Out_f64", "v(F)", (void *) m3Out_f64);
//m3_LinkFunction (module, "_m3Out_i32", "v(i)", (void *) m3Out_i32);
//m3_LinkFunction (module, "_TestReturn", "F(i)", (void *) TestReturn);
//m3_LinkFunction (module, "abortStackOverflow", "v(i)", (void *) m3_abort);
//result = m3_LinkCStd (module);
//if (result) FATAL("m3_LinkCStd: %s", result);
m3_PrintRuntimeInfo (env);
IM3Function f;
result = m3_FindFunction (&f, env, "__post_instantiate");
if (! result)
{
result = m3_Call (f);
if (result) FATAL("__post_instantiate: %s", result);
}
result = m3_FindFunction (&f, env, "_fib");
if (result) FATAL("m3_FindFunction: %s", result);
clock_t start = clock();
const char* i_argv[2] = { "32", NULL };
result = m3_CallWithArgs (f, 1, i_argv);
clock_t end = clock();
uint32_t elapsed_time = (end - start)*1000 / CLOCKS_PER_SEC ;
printf("Elapsed: %d ms\n", elapsed_time);
m3_PrintProfilerInfo ();
if (result) FATAL("Call: %s", result);
}
void wasm_task(void*)
{
run_wasm();
for(;;) {
vTaskDelay(0xFFFF);
}
}
extern "C"
void app_main()
{
/* Print chip information */
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is ESP32 chip with %d CPU cores, WiFi%s%s, ",
chip_info.cores,
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
printf("silicon revision %d, ", chip_info.revision);
printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
xTaskCreate(&wasm_task, "wasm_m3", 32768, NULL, 5, NULL);
for (;;) {
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
printf("Restarting now.\n");
fflush(stdout);
esp_restart();
}

@ -0,0 +1,962 @@
#
# Automatically generated file; DO NOT EDIT.
# Espressif IoT Development Framework Configuration
#
CONFIG_IDF_TARGET="esp32"
#
# SDK tool configuration
#
CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
CONFIG_PYTHON="python"
CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y
#
# Application manager
#
CONFIG_APP_COMPILE_TIME_DATE=y
CONFIG_APP_EXCLUDE_PROJECT_VER_VAR=
CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR=
#
# Bootloader config
#
CONFIG_LOG_BOOTLOADER_LEVEL_NONE=
CONFIG_LOG_BOOTLOADER_LEVEL_ERROR=
CONFIG_LOG_BOOTLOADER_LEVEL_WARN=
CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG=
CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE=
CONFIG_LOG_BOOTLOADER_LEVEL=3
CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V=
CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y
CONFIG_BOOTLOADER_FACTORY_RESET=
CONFIG_BOOTLOADER_APP_TEST=
CONFIG_BOOTLOADER_WDT_ENABLE=y
CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE=
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
CONFIG_APP_ROLLBACK_ENABLE=
#
# Security features
#
CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT=
CONFIG_SECURE_BOOT_ENABLED=
CONFIG_FLASH_ENCRYPTION_ENABLED=
#
# Serial flasher config
#
CONFIG_ESPTOOLPY_PORT="COM19"
CONFIG_ESPTOOLPY_BAUD_115200B=y
CONFIG_ESPTOOLPY_BAUD_230400B=
CONFIG_ESPTOOLPY_BAUD_921600B=
CONFIG_ESPTOOLPY_BAUD_2MB=
CONFIG_ESPTOOLPY_BAUD_OTHER=
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
CONFIG_ESPTOOLPY_BAUD=115200
CONFIG_ESPTOOLPY_COMPRESSED=y
CONFIG_FLASHMODE_QIO=
CONFIG_FLASHMODE_QOUT=
CONFIG_FLASHMODE_DIO=y
CONFIG_FLASHMODE_DOUT=
CONFIG_ESPTOOLPY_FLASHMODE="dio"
CONFIG_ESPTOOLPY_FLASHFREQ_80M=
CONFIG_ESPTOOLPY_FLASHFREQ_40M=y
CONFIG_ESPTOOLPY_FLASHFREQ_26M=
CONFIG_ESPTOOLPY_FLASHFREQ_20M=
CONFIG_ESPTOOLPY_FLASHFREQ="40m"
CONFIG_ESPTOOLPY_FLASHSIZE_1MB=
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=
CONFIG_ESPTOOLPY_FLASHSIZE="2MB"
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
CONFIG_ESPTOOLPY_BEFORE_RESET=y
CONFIG_ESPTOOLPY_BEFORE_NORESET=
CONFIG_ESPTOOLPY_BEFORE="default_reset"
CONFIG_ESPTOOLPY_AFTER_RESET=y
CONFIG_ESPTOOLPY_AFTER_NORESET=
CONFIG_ESPTOOLPY_AFTER="hard_reset"
CONFIG_MONITOR_BAUD_9600B=
CONFIG_MONITOR_BAUD_57600B=
CONFIG_MONITOR_BAUD_115200B=y
CONFIG_MONITOR_BAUD_230400B=
CONFIG_MONITOR_BAUD_921600B=
CONFIG_MONITOR_BAUD_2MB=
CONFIG_MONITOR_BAUD_OTHER=
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
CONFIG_MONITOR_BAUD=115200
#
# Partition Table
#
CONFIG_PARTITION_TABLE_SINGLE_APP=y
CONFIG_PARTITION_TABLE_TWO_OTA=
CONFIG_PARTITION_TABLE_CUSTOM=
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_PARTITION_TABLE_MD5=y
#
# Compiler options
#
CONFIG_OPTIMIZATION_LEVEL_DEBUG=y
CONFIG_OPTIMIZATION_LEVEL_RELEASE=
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
CONFIG_OPTIMIZATION_ASSERTIONS_SILENT=
CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED=
CONFIG_CXX_EXCEPTIONS=y
CONFIG_CXX_EXCEPTIONS_EMG_POOL_SIZE=0
CONFIG_STACK_CHECK_NONE=y
CONFIG_STACK_CHECK_NORM=
CONFIG_STACK_CHECK_STRONG=
CONFIG_STACK_CHECK_ALL=
CONFIG_STACK_CHECK=
CONFIG_WARN_WRITE_STRINGS=
CONFIG_DISABLE_GCC8_WARNINGS=
#
# Component config
#
#
# Application Level Tracing
#
CONFIG_ESP32_APPTRACE_DEST_TRAX=
CONFIG_ESP32_APPTRACE_DEST_NONE=y
CONFIG_ESP32_APPTRACE_ENABLE=
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
CONFIG_AWS_IOT_SDK=y
CONFIG_AWS_IOT_MQTT_HOST=""
CONFIG_AWS_IOT_MQTT_PORT=8883
CONFIG_AWS_IOT_MQTT_TX_BUF_LEN=512
CONFIG_AWS_IOT_MQTT_RX_BUF_LEN=512
CONFIG_AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS=5
CONFIG_AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL=1000
CONFIG_AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL=128000
#
# Thing Shadow
#
CONFIG_AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER=
CONFIG_AWS_IOT_SHADOW_MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES=80
CONFIG_AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS=10
CONFIG_AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES=10
CONFIG_AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED=120
CONFIG_AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME=60
CONFIG_AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME=20
#
# Bluetooth
#
CONFIG_BT_ENABLED=y
#
# Bluetooth controller
#
CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY=y
CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY=
CONFIG_BTDM_CONTROLLER_MODE_BTDM=
CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN=3
CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=3
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_0=y
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_1=
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y
CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4=
#
# MODEM SLEEP Options
#
CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=
CONFIG_BLE_SCAN_DUPLICATE=y
CONFIG_SCAN_DUPLICATE_BY_DEVICE_ADDR=y
CONFIG_SCAN_DUPLICATE_BY_ADV_DATA=
CONFIG_SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR=
CONFIG_SCAN_DUPLICATE_TYPE=0
CONFIG_DUPLICATE_SCAN_CACHE_SIZE=50
CONFIG_BLE_MESH_SCAN_DUPLICATE_EN=
CONFIG_BTDM_CONTROLLER_FULL_SCAN_SUPPORTED=
CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED=y
CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_NUM=100
CONFIG_BLE_ADV_REPORT_DISCARD_THRSHOLD=20
CONFIG_BLUEDROID_ENABLED=y
CONFIG_BLUEDROID_PINNED_TO_CORE_0=y
CONFIG_BLUEDROID_PINNED_TO_CORE_1=
CONFIG_BLUEDROID_PINNED_TO_CORE=0
CONFIG_BTC_TASK_STACK_SIZE=3072
CONFIG_BTU_TASK_STACK_SIZE=4096
CONFIG_BLUEDROID_MEM_DEBUG=
CONFIG_CLASSIC_BT_ENABLED=
CONFIG_GATTS_ENABLE=y
CONFIG_GATTS_SEND_SERVICE_CHANGE_MANUAL=
CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO=y
CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE=0
CONFIG_GATTC_ENABLE=y
CONFIG_GATTC_CACHE_NVS_FLASH=
CONFIG_BLE_SMP_ENABLE=y
CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE=
CONFIG_BT_STACK_NO_LOG=
#
# BT DEBUG LOG LEVEL
#
CONFIG_HCI_TRACE_LEVEL_NONE=
CONFIG_HCI_TRACE_LEVEL_ERROR=
CONFIG_HCI_TRACE_LEVEL_WARNING=y
CONFIG_HCI_TRACE_LEVEL_API=
CONFIG_HCI_TRACE_LEVEL_EVENT=
CONFIG_HCI_TRACE_LEVEL_DEBUG=
CONFIG_HCI_TRACE_LEVEL_VERBOSE=
CONFIG_HCI_INITIAL_TRACE_LEVEL=2
CONFIG_BTM_TRACE_LEVEL_NONE=
CONFIG_BTM_TRACE_LEVEL_ERROR=
CONFIG_BTM_TRACE_LEVEL_WARNING=y
CONFIG_BTM_TRACE_LEVEL_API=
CONFIG_BTM_TRACE_LEVEL_EVENT=
CONFIG_BTM_TRACE_LEVEL_DEBUG=
CONFIG_BTM_TRACE_LEVEL_VERBOSE=
CONFIG_BTM_INITIAL_TRACE_LEVEL=2
CONFIG_L2CAP_TRACE_LEVEL_NONE=
CONFIG_L2CAP_TRACE_LEVEL_ERROR=
CONFIG_L2CAP_TRACE_LEVEL_WARNING=y
CONFIG_L2CAP_TRACE_LEVEL_API=
CONFIG_L2CAP_TRACE_LEVEL_EVENT=
CONFIG_L2CAP_TRACE_LEVEL_DEBUG=
CONFIG_L2CAP_TRACE_LEVEL_VERBOSE=
CONFIG_L2CAP_INITIAL_TRACE_LEVEL=2
CONFIG_RFCOMM_TRACE_LEVEL_NONE=
CONFIG_RFCOMM_TRACE_LEVEL_ERROR=
CONFIG_RFCOMM_TRACE_LEVEL_WARNING=y
CONFIG_RFCOMM_TRACE_LEVEL_API=
CONFIG_RFCOMM_TRACE_LEVEL_EVENT=
CONFIG_RFCOMM_TRACE_LEVEL_DEBUG=
CONFIG_RFCOMM_TRACE_LEVEL_VERBOSE=
CONFIG_RFCOMM_INITIAL_TRACE_LEVEL=2
CONFIG_SDP_TRACE_LEVEL_NONE=
CONFIG_SDP_TRACE_LEVEL_ERROR=
CONFIG_SDP_TRACE_LEVEL_WARNING=y
CONFIG_SDP_TRACE_LEVEL_API=
CONFIG_SDP_TRACE_LEVEL_EVENT=
CONFIG_SDP_TRACE_LEVEL_DEBUG=
CONFIG_SDP_TRACE_LEVEL_VERBOSE=
CONFIG_SDP_INITIAL_TRACE_LEVEL=2
CONFIG_GAP_TRACE_LEVEL_NONE=
CONFIG_GAP_TRACE_LEVEL_ERROR=
CONFIG_GAP_TRACE_LEVEL_WARNING=y
CONFIG_GAP_TRACE_LEVEL_API=
CONFIG_GAP_TRACE_LEVEL_EVENT=
CONFIG_GAP_TRACE_LEVEL_DEBUG=
CONFIG_GAP_TRACE_LEVEL_VERBOSE=
CONFIG_GAP_INITIAL_TRACE_LEVEL=2
CONFIG_BNEP_TRACE_LEVEL_NONE=
CONFIG_BNEP_TRACE_LEVEL_ERROR=
CONFIG_BNEP_TRACE_LEVEL_WARNING=y
CONFIG_BNEP_TRACE_LEVEL_API=
CONFIG_BNEP_TRACE_LEVEL_EVENT=
CONFIG_BNEP_TRACE_LEVEL_DEBUG=
CONFIG_BNEP_TRACE_LEVEL_VERBOSE=
CONFIG_BNEP_INITIAL_TRACE_LEVEL=2
CONFIG_PAN_TRACE_LEVEL_NONE=
CONFIG_PAN_TRACE_LEVEL_ERROR=
CONFIG_PAN_TRACE_LEVEL_WARNING=y
CONFIG_PAN_TRACE_LEVEL_API=
CONFIG_PAN_TRACE_LEVEL_EVENT=
CONFIG_PAN_TRACE_LEVEL_DEBUG=
CONFIG_PAN_TRACE_LEVEL_VERBOSE=
CONFIG_PAN_INITIAL_TRACE_LEVEL=2
CONFIG_A2D_TRACE_LEVEL_NONE=
CONFIG_A2D_TRACE_LEVEL_ERROR=
CONFIG_A2D_TRACE_LEVEL_WARNING=y
CONFIG_A2D_TRACE_LEVEL_API=
CONFIG_A2D_TRACE_LEVEL_EVENT=
CONFIG_A2D_TRACE_LEVEL_DEBUG=
CONFIG_A2D_TRACE_LEVEL_VERBOSE=
CONFIG_A2D_INITIAL_TRACE_LEVEL=2
CONFIG_AVDT_TRACE_LEVEL_NONE=
CONFIG_AVDT_TRACE_LEVEL_ERROR=
CONFIG_AVDT_TRACE_LEVEL_WARNING=y
CONFIG_AVDT_TRACE_LEVEL_API=
CONFIG_AVDT_TRACE_LEVEL_EVENT=
CONFIG_AVDT_TRACE_LEVEL_DEBUG=
CONFIG_AVDT_TRACE_LEVEL_VERBOSE=
CONFIG_AVDT_INITIAL_TRACE_LEVEL=2
CONFIG_AVCT_TRACE_LEVEL_NONE=
CONFIG_AVCT_TRACE_LEVEL_ERROR=
CONFIG_AVCT_TRACE_LEVEL_WARNING=y
CONFIG_AVCT_TRACE_LEVEL_API=
CONFIG_AVCT_TRACE_LEVEL_EVENT=
CONFIG_AVCT_TRACE_LEVEL_DEBUG=
CONFIG_AVCT_TRACE_LEVEL_VERBOSE=
CONFIG_AVCT_INITIAL_TRACE_LEVEL=2
CONFIG_AVRC_TRACE_LEVEL_NONE=
CONFIG_AVRC_TRACE_LEVEL_ERROR=
CONFIG_AVRC_TRACE_LEVEL_WARNING=y
CONFIG_AVRC_TRACE_LEVEL_API=
CONFIG_AVRC_TRACE_LEVEL_EVENT=
CONFIG_AVRC_TRACE_LEVEL_DEBUG=
CONFIG_AVRC_TRACE_LEVEL_VERBOSE=
CONFIG_AVRC_INITIAL_TRACE_LEVEL=2
CONFIG_MCA_TRACE_LEVEL_NONE=
CONFIG_MCA_TRACE_LEVEL_ERROR=
CONFIG_MCA_TRACE_LEVEL_WARNING=y
CONFIG_MCA_TRACE_LEVEL_API=
CONFIG_MCA_TRACE_LEVEL_EVENT=
CONFIG_MCA_TRACE_LEVEL_DEBUG=
CONFIG_MCA_TRACE_LEVEL_VERBOSE=
CONFIG_MCA_INITIAL_TRACE_LEVEL=2
CONFIG_HID_TRACE_LEVEL_NONE=
CONFIG_HID_TRACE_LEVEL_ERROR=
CONFIG_HID_TRACE_LEVEL_WARNING=y
CONFIG_HID_TRACE_LEVEL_API=
CONFIG_HID_TRACE_LEVEL_EVENT=
CONFIG_HID_TRACE_LEVEL_DEBUG=
CONFIG_HID_TRACE_LEVEL_VERBOSE=
CONFIG_HID_INITIAL_TRACE_LEVEL=2
CONFIG_APPL_TRACE_LEVEL_NONE=
CONFIG_APPL_TRACE_LEVEL_ERROR=
CONFIG_APPL_TRACE_LEVEL_WARNING=y
CONFIG_APPL_TRACE_LEVEL_API=
CONFIG_APPL_TRACE_LEVEL_EVENT=
CONFIG_APPL_TRACE_LEVEL_DEBUG=
CONFIG_APPL_TRACE_LEVEL_VERBOSE=
CONFIG_APPL_INITIAL_TRACE_LEVEL=2
CONFIG_GATT_TRACE_LEVEL_NONE=
CONFIG_GATT_TRACE_LEVEL_ERROR=
CONFIG_GATT_TRACE_LEVEL_WARNING=y
CONFIG_GATT_TRACE_LEVEL_API=
CONFIG_GATT_TRACE_LEVEL_EVENT=
CONFIG_GATT_TRACE_LEVEL_DEBUG=
CONFIG_GATT_TRACE_LEVEL_VERBOSE=
CONFIG_GATT_INITIAL_TRACE_LEVEL=2
CONFIG_SMP_TRACE_LEVEL_NONE=
CONFIG_SMP_TRACE_LEVEL_ERROR=
CONFIG_SMP_TRACE_LEVEL_WARNING=y
CONFIG_SMP_TRACE_LEVEL_API=
CONFIG_SMP_TRACE_LEVEL_EVENT=
CONFIG_SMP_TRACE_LEVEL_DEBUG=
CONFIG_SMP_TRACE_LEVEL_VERBOSE=
CONFIG_SMP_INITIAL_TRACE_LEVEL=2
CONFIG_BTIF_TRACE_LEVEL_NONE=
CONFIG_BTIF_TRACE_LEVEL_ERROR=
CONFIG_BTIF_TRACE_LEVEL_WARNING=y
CONFIG_BTIF_TRACE_LEVEL_API=
CONFIG_BTIF_TRACE_LEVEL_EVENT=
CONFIG_BTIF_TRACE_LEVEL_DEBUG=
CONFIG_BTIF_TRACE_LEVEL_VERBOSE=
CONFIG_BTIF_INITIAL_TRACE_LEVEL=2
CONFIG_BTC_TRACE_LEVEL_NONE=
CONFIG_BTC_TRACE_LEVEL_ERROR=
CONFIG_BTC_TRACE_LEVEL_WARNING=y
CONFIG_BTC_TRACE_LEVEL_API=
CONFIG_BTC_TRACE_LEVEL_EVENT=
CONFIG_BTC_TRACE_LEVEL_DEBUG=
CONFIG_BTC_TRACE_LEVEL_VERBOSE=
CONFIG_BTC_INITIAL_TRACE_LEVEL=2
CONFIG_OSI_TRACE_LEVEL_NONE=
CONFIG_OSI_TRACE_LEVEL_ERROR=
CONFIG_OSI_TRACE_LEVEL_WARNING=y
CONFIG_OSI_TRACE_LEVEL_API=
CONFIG_OSI_TRACE_LEVEL_EVENT=
CONFIG_OSI_TRACE_LEVEL_DEBUG=
CONFIG_OSI_TRACE_LEVEL_VERBOSE=
CONFIG_OSI_INITIAL_TRACE_LEVEL=2
CONFIG_BLUFI_TRACE_LEVEL_NONE=
CONFIG_BLUFI_TRACE_LEVEL_ERROR=
CONFIG_BLUFI_TRACE_LEVEL_WARNING=y
CONFIG_BLUFI_TRACE_LEVEL_API=
CONFIG_BLUFI_TRACE_LEVEL_EVENT=
CONFIG_BLUFI_TRACE_LEVEL_DEBUG=
CONFIG_BLUFI_TRACE_LEVEL_VERBOSE=
CONFIG_BLUFI_INITIAL_TRACE_LEVEL=2
CONFIG_BT_ACL_CONNECTIONS=4
CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=
CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=
CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK=
CONFIG_SMP_ENABLE=y
CONFIG_BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY=
CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30
CONFIG_BT_RESERVE_DRAM=0xdb5c
#
# Driver configurations
#
#
# ADC configuration
#
CONFIG_ADC_FORCE_XPD_FSM=
CONFIG_ADC2_DISABLE_DAC=y
#
# SPI configuration
#
CONFIG_SPI_MASTER_IN_IRAM=
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
CONFIG_SPI_SLAVE_IN_IRAM=
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
#
# eFuse Bit Manager
#
CONFIG_EFUSE_CUSTOM_TABLE=
CONFIG_EFUSE_VIRTUAL=
CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE=
CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y
CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT=
CONFIG_EFUSE_MAX_BLK_LEN=192
#
# ESP32-specific
#
CONFIG_IDF_TARGET_ESP32=y
CONFIG_ESP32_REV_MIN_0=
CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=
CONFIG_ESP32_REV_MIN_3=
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP32_DPORT_WORKAROUND=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160
CONFIG_SPIRAM_SUPPORT=
CONFIG_MEMMAP_TRACEMEM=
CONFIG_MEMMAP_TRACEMEM_TWOBANKS=
CONFIG_ESP32_TRAX=
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
CONFIG_TWO_UNIVERSAL_MAC_ADDRESS=
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
CONFIG_MAIN_TASK_STACK_SIZE=3584
CONFIG_IPC_TASK_STACK_SIZE=1024
CONFIG_TIMER_TASK_STACK_SIZE=3584
CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF=
CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR=
CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF=
CONFIG_NEWLIB_STDIN_LINE_ENDING_LF=
CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
CONFIG_NEWLIB_NANO_FORMAT=
CONFIG_CONSOLE_UART_DEFAULT=y
CONFIG_CONSOLE_UART_CUSTOM=
CONFIG_CONSOLE_UART_NONE=
CONFIG_CONSOLE_UART_NUM=0
CONFIG_CONSOLE_UART_BAUDRATE=115200
CONFIG_ULP_COPROC_ENABLED=
CONFIG_ULP_COPROC_RESERVE_MEM=0
CONFIG_ESP32_PANIC_PRINT_HALT=
CONFIG_ESP32_PANIC_PRINT_REBOOT=y
CONFIG_ESP32_PANIC_SILENT_REBOOT=
CONFIG_ESP32_PANIC_GDBSTUB=
CONFIG_ESP32_DEBUG_OCDAWARE=y
CONFIG_ESP32_DEBUG_STUBS_ENABLE=y
CONFIG_INT_WDT=y
CONFIG_INT_WDT_TIMEOUT_MS=300
CONFIG_INT_WDT_CHECK_CPU1=y
CONFIG_TASK_WDT=y
CONFIG_TASK_WDT_PANIC=
CONFIG_TASK_WDT_TIMEOUT_S=5
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
CONFIG_BROWNOUT_DET=y
CONFIG_BROWNOUT_DET_LVL_SEL_0=y
CONFIG_BROWNOUT_DET_LVL_SEL_1=
CONFIG_BROWNOUT_DET_LVL_SEL_2=
CONFIG_BROWNOUT_DET_LVL_SEL_3=
CONFIG_BROWNOUT_DET_LVL_SEL_4=
CONFIG_BROWNOUT_DET_LVL_SEL_5=
CONFIG_BROWNOUT_DET_LVL_SEL_6=
CONFIG_BROWNOUT_DET_LVL_SEL_7=
CONFIG_BROWNOUT_DET_LVL=0
CONFIG_REDUCE_PHY_TX_POWER=y
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y
CONFIG_ESP32_TIME_SYSCALL_USE_RTC=
CONFIG_ESP32_TIME_SYSCALL_USE_FRC1=
CONFIG_ESP32_TIME_SYSCALL_USE_NONE=
CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL=
CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC=
CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256=
CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000
CONFIG_ESP32_XTAL_FREQ_40=y
CONFIG_ESP32_XTAL_FREQ_26=
CONFIG_ESP32_XTAL_FREQ_AUTO=
CONFIG_ESP32_XTAL_FREQ=40
CONFIG_DISABLE_BASIC_ROM_CONSOLE=
CONFIG_ESP_TIMER_PROFILING=
CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS=
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
#
# Wi-Fi
#
CONFIG_SW_COEXIST_ENABLE=y
CONFIG_SW_COEXIST_PREFERENCE_WIFI=
CONFIG_SW_COEXIST_PREFERENCE_BT=
CONFIG_SW_COEXIST_PREFERENCE_BALANCE=y
CONFIG_SW_COEXIST_PREFERENCE_VALUE=2
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
CONFIG_ESP32_WIFI_CSI_ENABLED=
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
CONFIG_ESP32_WIFI_TX_BA_WIN=6
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
CONFIG_ESP32_WIFI_RX_BA_WIN=6
CONFIG_ESP32_WIFI_NVS_ENABLED=y
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1=
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE=
CONFIG_ESP32_WIFI_IRAM_OPT=y
#
# PHY
#
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION=
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
CONFIG_ESP32_PHY_MAX_TX_POWER=20
#
# Power Management
#
CONFIG_PM_ENABLE=
#
# ADC-Calibration
#
CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y
CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y
CONFIG_ADC_CAL_LUT_ENABLE=y
#
# Event Loop Library
#
CONFIG_EVENT_LOOP_PROFILING=
#
# ESP HTTP client
#
CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
#
# HTTP Server
#
CONFIG_HTTPD_MAX_REQ_HDR_LEN=512
CONFIG_HTTPD_MAX_URI_LEN=512
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
CONFIG_HTTPD_PURGE_BUF_LEN=32
CONFIG_HTTPD_LOG_PURGE_DATA=
#
# ESP HTTPS OTA
#
CONFIG_OTA_ALLOW_HTTP=
#
# Core dump
#
CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH=
CONFIG_ESP32_ENABLE_COREDUMP_TO_UART=
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
CONFIG_ESP32_ENABLE_COREDUMP=
#
# Ethernet
#
CONFIG_DMA_RX_BUF_NUM=10
CONFIG_DMA_TX_BUF_NUM=10
CONFIG_EMAC_L2_TO_L3_RX_BUF_MODE=
CONFIG_EMAC_CHECK_LINK_PERIOD_MS=2000
CONFIG_EMAC_TASK_PRIORITY=20
CONFIG_EMAC_TASK_STACK_SIZE=3072
#
# FAT Filesystem support
#
CONFIG_FATFS_CODEPAGE_DYNAMIC=
CONFIG_FATFS_CODEPAGE_437=y
CONFIG_FATFS_CODEPAGE_720=
CONFIG_FATFS_CODEPAGE_737=
CONFIG_FATFS_CODEPAGE_771=
CONFIG_FATFS_CODEPAGE_775=
CONFIG_FATFS_CODEPAGE_850=
CONFIG_FATFS_CODEPAGE_852=
CONFIG_FATFS_CODEPAGE_855=
CONFIG_FATFS_CODEPAGE_857=
CONFIG_FATFS_CODEPAGE_860=
CONFIG_FATFS_CODEPAGE_861=
CONFIG_FATFS_CODEPAGE_862=
CONFIG_FATFS_CODEPAGE_863=
CONFIG_FATFS_CODEPAGE_864=
CONFIG_FATFS_CODEPAGE_865=
CONFIG_FATFS_CODEPAGE_866=
CONFIG_FATFS_CODEPAGE_869=
CONFIG_FATFS_CODEPAGE_932=
CONFIG_FATFS_CODEPAGE_936=
CONFIG_FATFS_CODEPAGE_949=
CONFIG_FATFS_CODEPAGE_950=
CONFIG_FATFS_CODEPAGE=437
CONFIG_FATFS_LFN_NONE=y
CONFIG_FATFS_LFN_HEAP=
CONFIG_FATFS_LFN_STACK=
CONFIG_FATFS_FS_LOCK=0
CONFIG_FATFS_TIMEOUT_MS=10000
CONFIG_FATFS_PER_FILE_CACHE=y
#
# Modbus configuration
#
CONFIG_MB_QUEUE_LENGTH=20
CONFIG_MB_SERIAL_TASK_STACK_SIZE=2048
CONFIG_MB_SERIAL_BUF_SIZE=256
CONFIG_MB_SERIAL_TASK_PRIO=10
CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT=
CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20
CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
CONFIG_MB_CONTROLLER_STACK_SIZE=4096
CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
CONFIG_MB_TIMER_PORT_ENABLED=y
CONFIG_MB_TIMER_GROUP=0
CONFIG_MB_TIMER_INDEX=0
#
# FreeRTOS
#
CONFIG_FREERTOS_UNICORE=
CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
CONFIG_FREERTOS_CORETIMER_0=y
CONFIG_FREERTOS_CORETIMER_1=
CONFIG_FREERTOS_HZ=100
CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE=
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL=
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y
CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE=
CONFIG_FREERTOS_ASSERT_DISABLE=
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
CONFIG_FREERTOS_ISR_STACKSIZE=1536
CONFIG_FREERTOS_LEGACY_HOOKS=
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
CONFIG_SUPPORT_STATIC_ALLOCATION=
CONFIG_TIMER_TASK_PRIORITY=1
CONFIG_TIMER_TASK_STACK_DEPTH=2048
CONFIG_TIMER_QUEUE_LENGTH=10
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
CONFIG_FREERTOS_USE_TRACE_FACILITY=
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=
CONFIG_FREERTOS_DEBUG_INTERNALS=
CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE=
#
# Heap memory debugging
#
CONFIG_HEAP_POISONING_DISABLED=y
CONFIG_HEAP_POISONING_LIGHT=
CONFIG_HEAP_POISONING_COMPREHENSIVE=
CONFIG_HEAP_TRACING=
#
# libsodium
#
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
#
# Log output
#
CONFIG_LOG_DEFAULT_LEVEL_NONE=
CONFIG_LOG_DEFAULT_LEVEL_ERROR=
CONFIG_LOG_DEFAULT_LEVEL_WARN=
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
CONFIG_LOG_DEFAULT_LEVEL_DEBUG=
CONFIG_LOG_DEFAULT_LEVEL_VERBOSE=
CONFIG_LOG_DEFAULT_LEVEL=3
CONFIG_LOG_COLORS=y
#
# LWIP
#
CONFIG_L2_TO_L3_COPY=
CONFIG_LWIP_IRAM_OPTIMIZATION=
CONFIG_LWIP_MAX_SOCKETS=10
CONFIG_USE_ONLY_LWIP_SELECT=
CONFIG_LWIP_SO_REUSE=y
CONFIG_LWIP_SO_REUSE_RXTOALL=y
CONFIG_LWIP_SO_RCVBUF=
CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
CONFIG_LWIP_IP_FRAG=
CONFIG_LWIP_IP_REASSEMBLY=
CONFIG_LWIP_STATS=
CONFIG_LWIP_ETHARP_TRUST_IP_MAC=
CONFIG_ESP_GRATUITOUS_ARP=y
CONFIG_GARP_TMR_INTERVAL=60
CONFIG_TCPIP_RECVMBOX_SIZE=32
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
CONFIG_LWIP_DHCP_RESTORE_LAST_IP=
#
# DHCP server
#
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
CONFIG_LWIP_AUTOIP=
CONFIG_LWIP_NETIF_LOOPBACK=y
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
#
# TCP
#
CONFIG_LWIP_MAX_ACTIVE_TCP=16
CONFIG_LWIP_MAX_LISTENING_TCP=16
CONFIG_TCP_MAXRTX=12
CONFIG_TCP_SYNMAXRTX=6
CONFIG_TCP_MSS=1436
CONFIG_TCP_MSL=60000
CONFIG_TCP_SND_BUF_DEFAULT=5744
CONFIG_TCP_WND_DEFAULT=5744
CONFIG_TCP_RECVMBOX_SIZE=6
CONFIG_TCP_QUEUE_OOSEQ=y
CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES=
CONFIG_TCP_OVERSIZE_MSS=y
CONFIG_TCP_OVERSIZE_QUARTER_MSS=
CONFIG_TCP_OVERSIZE_DISABLE=
#
# UDP
#
CONFIG_LWIP_MAX_UDP_PCBS=16
CONFIG_UDP_RECVMBOX_SIZE=6
CONFIG_TCPIP_TASK_STACK_SIZE=2048
CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
CONFIG_TCPIP_TASK_AFFINITY_CPU0=
CONFIG_TCPIP_TASK_AFFINITY_CPU1=
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
CONFIG_PPP_SUPPORT=
#
# ICMP
#
CONFIG_LWIP_MULTICAST_PING=
CONFIG_LWIP_BROADCAST_PING=
#
# LWIP RAW API
#
CONFIG_LWIP_MAX_RAW_PCBS=16
#
# mbedTLS
#
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC=
CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC=
CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=16384
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=
CONFIG_MBEDTLS_DEBUG=
CONFIG_MBEDTLS_HARDWARE_AES=y
CONFIG_MBEDTLS_HARDWARE_MPI=
CONFIG_MBEDTLS_HARDWARE_SHA=
CONFIG_MBEDTLS_HAVE_TIME=y
CONFIG_MBEDTLS_HAVE_TIME_DATE=
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
CONFIG_MBEDTLS_TLS_SERVER_ONLY=
CONFIG_MBEDTLS_TLS_CLIENT_ONLY=
CONFIG_MBEDTLS_TLS_DISABLED=
CONFIG_MBEDTLS_TLS_SERVER=y
CONFIG_MBEDTLS_TLS_CLIENT=y
CONFIG_MBEDTLS_TLS_ENABLED=y
#
# TLS Key Exchange Methods
#
CONFIG_MBEDTLS_PSK_MODES=
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y
CONFIG_MBEDTLS_SSL_RENEGOTIATION=y
CONFIG_MBEDTLS_SSL_PROTO_SSL3=
CONFIG_MBEDTLS_SSL_PROTO_TLS1=y
CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y
CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
CONFIG_MBEDTLS_SSL_PROTO_DTLS=
CONFIG_MBEDTLS_SSL_ALPN=y
CONFIG_MBEDTLS_SSL_SESSION_TICKETS=y
#
# Symmetric Ciphers
#
CONFIG_MBEDTLS_AES_C=y
CONFIG_MBEDTLS_CAMELLIA_C=
CONFIG_MBEDTLS_DES_C=
CONFIG_MBEDTLS_RC4_DISABLED=y
CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT=
CONFIG_MBEDTLS_RC4_ENABLED=
CONFIG_MBEDTLS_BLOWFISH_C=
CONFIG_MBEDTLS_XTEA_C=
CONFIG_MBEDTLS_CCM_C=y
CONFIG_MBEDTLS_GCM_C=y
CONFIG_MBEDTLS_RIPEMD160_C=
#
# Certificates
#
CONFIG_MBEDTLS_PEM_PARSE_C=y
CONFIG_MBEDTLS_PEM_WRITE_C=y
CONFIG_MBEDTLS_X509_CRL_PARSE_C=y
CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
CONFIG_MBEDTLS_ECP_C=y
CONFIG_MBEDTLS_ECDH_C=y
CONFIG_MBEDTLS_ECDSA_C=y
CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
#
# mDNS
#
CONFIG_MDNS_MAX_SERVICES=10
#
# ESP-MQTT Configurations
#
CONFIG_MQTT_PROTOCOL_311=y
CONFIG_MQTT_TRANSPORT_SSL=y
CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
CONFIG_MQTT_USE_CUSTOM_CONFIG=
CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED=
CONFIG_MQTT_CUSTOM_OUTBOX=
#
# NVS
#
#
# OpenSSL
#
CONFIG_OPENSSL_DEBUG=
CONFIG_OPENSSL_ASSERT_DO_NOTHING=y
CONFIG_OPENSSL_ASSERT_EXIT=
#
# PThreads
#
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
CONFIG_PTHREAD_STACK_MIN=768
CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y
CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0=
CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1=
CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
#
# SPI Flash driver
#
CONFIG_SPI_FLASH_VERIFY_WRITE=
CONFIG_SPI_FLASH_ENABLE_COUNTERS=
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS=
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED=
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
#
# SPIFFS Configuration
#
CONFIG_SPIFFS_MAX_PARTITIONS=3
#
# SPIFFS Cache Configuration
#
CONFIG_SPIFFS_CACHE=y
CONFIG_SPIFFS_CACHE_WR=y
CONFIG_SPIFFS_CACHE_STATS=
CONFIG_SPIFFS_PAGE_CHECK=y
CONFIG_SPIFFS_GC_MAX_RUNS=10
CONFIG_SPIFFS_GC_STATS=
CONFIG_SPIFFS_PAGE_SIZE=256
CONFIG_SPIFFS_OBJ_NAME_LEN=32
CONFIG_SPIFFS_USE_MAGIC=y
CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
CONFIG_SPIFFS_META_LENGTH=4
CONFIG_SPIFFS_USE_MTIME=y
#
# Debug Configuration
#
CONFIG_SPIFFS_DBG=
CONFIG_SPIFFS_API_DBG=
CONFIG_SPIFFS_GC_DBG=
CONFIG_SPIFFS_CACHE_DBG=
CONFIG_SPIFFS_CHECK_DBG=
CONFIG_SPIFFS_TEST_VISUALISATION=
#
# TCP/IP Adapter
#
CONFIG_IP_LOST_TIMER_INTERVAL=120
CONFIG_TCPIP_LWIP=y
#
# Unity unit testing library
#
CONFIG_UNITY_ENABLE_FLOAT=y
CONFIG_UNITY_ENABLE_DOUBLE=y
CONFIG_UNITY_ENABLE_COLOR=
CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
CONFIG_UNITY_ENABLE_FIXTURE=
#
# Virtual file system
#
CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
CONFIG_SUPPORT_TERMIOS=y
#
# Wear Levelling
#
CONFIG_WL_SECTOR_SIZE_512=
CONFIG_WL_SECTOR_SIZE_4096=y
CONFIG_WL_SECTOR_SIZE=4096
#
# Wi-Fi Provisioning Manager
#
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16

@ -0,0 +1,371 @@
/*
*
* Automatically generated file; DO NOT EDIT.
* Espressif IoT Development Framework Configuration
*
*/
#define CONFIG_ENABLE_ARDUINO_DEPENDS 1
#define CONFIG_AUTOSTART_ARDUINO 1
#define CONFIG_ARDUINO_RUNNING_CORE 1
#define CONFIG_ARDUINO_UDP_RUN_CORE1 1
#define CONFIG_ARDUINO_EVENT_RUN_CORE1 1
#define CONFIG_ARDUINO_EVENT_RUNNING_CORE 1
#define CONFIG_ARDUINO_UDP_RUNNING_CORE 1
#define CONFIG_GATTC_ENABLE 1
#define CONFIG_ESP32_PHY_MAX_TX_POWER 20
#define CONFIG_TRACEMEM_RESERVE_DRAM 0x0
#define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16
#define CONFIG_MQTT_TRANSPORT_SSL 1
#define CONFIG_BLE_SMP_ENABLE 1
#define CONFIG_FATFS_LFN_NONE 1
#define CONFIG_SDP_INITIAL_TRACE_LEVEL 2
#define CONFIG_MB_SERIAL_TASK_PRIO 10
#define CONFIG_MQTT_PROTOCOL_311 1
#define CONFIG_TCP_RECVMBOX_SIZE 6
#define CONFIG_FATFS_CODEPAGE_437 1
#define CONFIG_BLE_SCAN_DUPLICATE 1
#define CONFIG_AVDT_TRACE_LEVEL_WARNING 1
#define CONFIG_AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS 10
#define CONFIG_TCP_WND_DEFAULT 5744
#define CONFIG_PARTITION_TABLE_OFFSET 0x8000
#define CONFIG_SW_COEXIST_ENABLE 1
#define CONFIG_SPIFFS_USE_MAGIC_LENGTH 1
#define CONFIG_AVCT_INITIAL_TRACE_LEVEL 2
#define CONFIG_IPC_TASK_STACK_SIZE 1024
#define CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES 16
#define CONFIG_FATFS_PER_FILE_CACHE 1
#define CONFIG_ESPTOOLPY_FLASHFREQ "40m"
#define CONFIG_AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME 20
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA 1
#define CONFIG_UDP_RECVMBOX_SIZE 6
#define CONFIG_SPI_FLASH_YIELD_DURING_ERASE 1
#define CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE 0
#define CONFIG_MBEDTLS_AES_C 1
#define CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED 1
#define CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN 752
#define CONFIG_MBEDTLS_GCM_C 1
#define CONFIG_ESPTOOLPY_FLASHSIZE "2MB"
#define CONFIG_HEAP_POISONING_DISABLED 1
#define CONFIG_SPIFFS_CACHE_WR 1
#define CONFIG_BROWNOUT_DET_LVL_SEL_0 1
#define CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER 1
#define CONFIG_SPIFFS_CACHE 1
#define CONFIG_INT_WDT 1
#define CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN 3
#define CONFIG_MBEDTLS_SSL_PROTO_TLS1 1
#define CONFIG_ESP_GRATUITOUS_ARP 1
#define CONFIG_AWS_IOT_SHADOW_MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES 80
#define CONFIG_MBEDTLS_ECDSA_C 1
#define CONFIG_ESPTOOLPY_FLASHFREQ_40M 1
#define CONFIG_LOG_BOOTLOADER_LEVEL_INFO 1
#define CONFIG_ESPTOOLPY_FLASHSIZE_2MB 1
#define CONFIG_HTTPD_MAX_REQ_HDR_LEN 512
#define CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE 0
#define CONFIG_AWS_IOT_MQTT_PORT 8883
#define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1
#define CONFIG_MBEDTLS_ECDH_C 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE 1
#define CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM 10
#define CONFIG_AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL 128000
#define CONFIG_MBEDTLS_SSL_ALPN 1
#define CONFIG_BTM_TRACE_LEVEL_WARNING 1
#define CONFIG_MBEDTLS_PEM_WRITE_C 1
#define CONFIG_RFCOMM_TRACE_LEVEL_WARNING 1
#define CONFIG_LOG_DEFAULT_LEVEL_INFO 1
#define CONFIG_BT_RESERVE_DRAM 0xdb5c
#define CONFIG_APP_COMPILE_TIME_DATE 1
#define CONFIG_FATFS_FS_LOCK 0
#define CONFIG_IP_LOST_TIMER_INTERVAL 120
#define CONFIG_SPIFFS_META_LENGTH 4
#define CONFIG_ESP32_PANIC_PRINT_REBOOT 1
#define CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE 20
#define CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED 1
#define CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED 1
#define CONFIG_AWS_IOT_MQTT_RX_BUF_LEN 512
#define CONFIG_MB_SERIAL_BUF_SIZE 256
#define CONFIG_CONSOLE_UART_BAUDRATE 115200
#define CONFIG_LWIP_MAX_SOCKETS 10
#define CONFIG_LWIP_NETIF_LOOPBACK 1
#define CONFIG_MCA_TRACE_LEVEL_WARNING 1
#define CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT "pthread"
#define CONFIG_EMAC_TASK_PRIORITY 20
#define CONFIG_TIMER_TASK_STACK_DEPTH 2048
#define CONFIG_TCP_MSS 1436
#define CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED 1
#define CONFIG_BTIF_INITIAL_TRACE_LEVEL 2
#define CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF 3
#define CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4 1
#define CONFIG_FATFS_CODEPAGE 437
#define CONFIG_APPL_TRACE_LEVEL_WARNING 1
#define CONFIG_BTC_INITIAL_TRACE_LEVEL 2
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_160 1
#define CONFIG_ULP_COPROC_RESERVE_MEM 0
#define CONFIG_LWIP_MAX_UDP_PCBS 16
#define CONFIG_ESPTOOLPY_BAUD 115200
#define CONFIG_INT_WDT_CHECK_CPU1 1
#define CONFIG_AVRC_INITIAL_TRACE_LEVEL 2
#define CONFIG_ADC_CAL_LUT_ENABLE 1
#define CONFIG_AWS_IOT_MQTT_TX_BUF_LEN 512
#define CONFIG_FLASHMODE_DIO 1
#define CONFIG_ESPTOOLPY_AFTER_RESET 1
#define CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED 1
#define CONFIG_LWIP_DHCPS_MAX_STATION_NUM 8
#define CONFIG_TOOLPREFIX "xtensa-esp32-elf-"
#define CONFIG_MBEDTLS_ECP_C 1
#define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1536
#define CONFIG_MBEDTLS_RC4_DISABLED 1
#define CONFIG_GAP_TRACE_LEVEL_WARNING 1
#define CONFIG_CONSOLE_UART_NUM 0
#define CONFIG_AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED 120
#define CONFIG_ESP32_APPTRACE_LOCK_ENABLE 1
#define CONFIG_PTHREAD_STACK_MIN 768
#define CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC 1
#define CONFIG_ESPTOOLPY_BAUD_115200B 1
#define CONFIG_TCP_OVERSIZE_MSS 1
#define CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS 1
#define CONFIG_CONSOLE_UART_DEFAULT 1
#define CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN 16384
#define CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS 4
#define CONFIG_GATT_TRACE_LEVEL_WARNING 1
#define CONFIG_ESPTOOLPY_FLASHSIZE_DETECT 1
#define CONFIG_TIMER_TASK_STACK_SIZE 3584
#define CONFIG_BTIF_TRACE_LEVEL_WARNING 1
#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE 1
#define CONFIG_HCI_INITIAL_TRACE_LEVEL 2
#define CONFIG_AVDT_INITIAL_TRACE_LEVEL 2
#define CONFIG_MBEDTLS_X509_CRL_PARSE_C 1
#define CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER 1
#define CONFIG_HTTPD_PURGE_BUF_LEN 32
#define CONFIG_SCAN_DUPLICATE_BY_DEVICE_ADDR 1
#define CONFIG_AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME 60
#define CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER 1
#define CONFIG_MB_SERIAL_TASK_STACK_SIZE 2048
#define CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO 1
#define CONFIG_LWIP_DHCPS_LEASE_UNIT 60
#define CONFIG_EFUSE_MAX_BLK_LEN 192
#define CONFIG_SPIFFS_USE_MAGIC 1
#define CONFIG_TCPIP_TASK_STACK_SIZE 2048
#define CONFIG_BLUFI_TRACE_LEVEL_WARNING 1
#define CONFIG_BLUEDROID_PINNED_TO_CORE_0 1
#define CONFIG_TASK_WDT 1
#define CONFIG_RFCOMM_INITIAL_TRACE_LEVEL 2
#define CONFIG_MAIN_TASK_STACK_SIZE 3584
#define CONFIG_SPIFFS_PAGE_CHECK 1
#define CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0 1
#define CONFIG_LWIP_MAX_ACTIVE_TCP 16
#define CONFIG_TASK_WDT_TIMEOUT_S 5
#define CONFIG_INT_WDT_TIMEOUT_MS 300
#define CONFIG_ESPTOOLPY_FLASHMODE "dio"
#define CONFIG_BTC_TASK_STACK_SIZE 3072
#define CONFIG_BLUEDROID_ENABLED 1
#define CONFIG_NEWLIB_STDIN_LINE_ENDING_CR 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA 1
#define CONFIG_ESPTOOLPY_BEFORE "default_reset"
#define CONFIG_ADC2_DISABLE_DAC 1
#define CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_NUM 100
#define CONFIG_ESP32_REV_MIN_1 1
#define CONFIG_LOG_DEFAULT_LEVEL 3
#define CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION 1
#define CONFIG_TIMER_QUEUE_LENGTH 10
#define CONFIG_ESP32_REV_MIN 1
#define CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT 1
#define CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE 0
#define CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY 1
#define CONFIG_MAKE_WARN_UNDEFINED_VARIABLES 1
#define CONFIG_FATFS_TIMEOUT_MS 10000
#define CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM 32
#define CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS 1
#define CONFIG_PAN_INITIAL_TRACE_LEVEL 2
#define CONFIG_MBEDTLS_CCM_C 1
#define CONFIG_SPI_MASTER_ISR_IN_IRAM 1
#define CONFIG_MCA_INITIAL_TRACE_LEVEL 2
#define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER 20
#define CONFIG_A2D_INITIAL_TRACE_LEVEL 2
#define CONFIG_ESP32_RTC_CLK_CAL_CYCLES 1024
#define CONFIG_ESP32_WIFI_TX_BA_WIN 6
#define CONFIG_ESP32_WIFI_NVS_ENABLED 1
#define CONFIG_MDNS_MAX_SERVICES 10
#define CONFIG_IDF_TARGET_ESP32 1
#define CONFIG_EMAC_CHECK_LINK_PERIOD_MS 2000
#define CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED 1
#define CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS 20
#define CONFIG_LIBSODIUM_USE_MBEDTLS_SHA 1
#define CONFIG_AWS_IOT_SDK 1
#define CONFIG_DMA_RX_BUF_NUM 10
#define CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED 1
#define CONFIG_TCP_SYNMAXRTX 6
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA 1
#define CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF 0
#define CONFIG_PYTHON "python"
#define CONFIG_MBEDTLS_ECP_NIST_OPTIM 1
#define CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1 1
#define CONFIG_ESPTOOLPY_COMPRESSED 1
#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv"
#define CONFIG_MB_CONTROLLER_STACK_SIZE 4096
#define CONFIG_TCP_SND_BUF_DEFAULT 5744
#define CONFIG_GARP_TMR_INTERVAL 60
#define CONFIG_LWIP_DHCP_MAX_NTP_SERVERS 1
#define CONFIG_BNEP_INITIAL_TRACE_LEVEL 2
#define CONFIG_HCI_TRACE_LEVEL_WARNING 1
#define CONFIG_TCP_MSL 60000
#define CONFIG_MBEDTLS_SSL_PROTO_TLS1_1 1
#define CONFIG_LWIP_SO_REUSE_RXTOALL 1
#define CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT 20
#define CONFIG_ESP32_WIFI_MGMT_SBUF_NUM 32
#define CONFIG_PARTITION_TABLE_SINGLE_APP 1
#define CONFIG_UNITY_ENABLE_FLOAT 1
#define CONFIG_ESP32_WIFI_RX_BA_WIN 6
#define CONFIG_MBEDTLS_X509_CSR_PARSE_C 1
#define CONFIG_SPIFFS_USE_MTIME 1
#define CONFIG_BTC_TRACE_LEVEL_WARNING 1
#define CONFIG_EMAC_TASK_STACK_SIZE 3072
#define CONFIG_SMP_TRACE_LEVEL_WARNING 1
#define CONFIG_MB_QUEUE_LENGTH 20
#define CONFIG_SW_COEXIST_PREFERENCE_VALUE 2
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA 1
#define CONFIG_LWIP_DHCP_DOES_ARP_CHECK 1
#define CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER 1
#define CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE 2304
#define CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V 1
#define CONFIG_A2D_TRACE_LEVEL_WARNING 1
#define CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY 2000
#define CONFIG_AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS 5
#define CONFIG_BROWNOUT_DET_LVL 0
#define CONFIG_MBEDTLS_PEM_PARSE_C 1
#define CONFIG_SPIFFS_GC_MAX_RUNS 10
#define CONFIG_ESP32_APPTRACE_DEST_NONE 1
#define CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC 1
#define CONFIG_MBEDTLS_SSL_PROTO_TLS1_2 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA 1
#define CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM 32
#define CONFIG_HTTPD_MAX_URI_LEN 512
#define CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED 1
#define CONFIG_AVCT_TRACE_LEVEL_WARNING 1
#define CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED 1
#define CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1 1
#define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 160
#define CONFIG_MBEDTLS_HARDWARE_AES 1
#define CONFIG_FREERTOS_HZ 100
#define CONFIG_LOG_COLORS 1
#define CONFIG_OSI_TRACE_LEVEL_WARNING 1
#define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE 1
#define CONFIG_STACK_CHECK_NONE 1
#define CONFIG_ADC_CAL_EFUSE_TP_ENABLE 1
#define CONFIG_BNEP_TRACE_LEVEL_WARNING 1
#define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1
#define CONFIG_BROWNOUT_DET 1
#define CONFIG_AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES 10
#define CONFIG_ESP32_XTAL_FREQ 40
#define CONFIG_OSI_INITIAL_TRACE_LEVEL 2
#define CONFIG_MONITOR_BAUD_115200B 1
#define CONFIG_LOG_BOOTLOADER_LEVEL 3
#define CONFIG_MBEDTLS_TLS_ENABLED 1
#define CONFIG_LWIP_MAX_RAW_PCBS 16
#define CONFIG_BTU_TASK_STACK_SIZE 4096
#define CONFIG_SMP_ENABLE 1
#define CONFIG_HID_TRACE_LEVEL_WARNING 1
#define CONFIG_AVRC_TRACE_LEVEL_WARNING 1
#define CONFIG_MBEDTLS_SSL_SESSION_TICKETS 1
#define CONFIG_SPIFFS_MAX_PARTITIONS 3
#define CONFIG_ESP_ERR_TO_NAME_LOOKUP 1
#define CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_0 1
#define CONFIG_MBEDTLS_SSL_RENEGOTIATION 1
#define CONFIG_HID_INITIAL_TRACE_LEVEL 2
#define CONFIG_ESPTOOLPY_BEFORE_RESET 1
#define CONFIG_MB_EVENT_QUEUE_TIMEOUT 20
#define CONFIG_ESPTOOLPY_BAUD_OTHER_VAL 115200
#define CONFIG_SPIFFS_OBJ_NAME_LEN 32
#define CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT 5
#define CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF 0
#define CONFIG_PARTITION_TABLE_MD5 1
#define CONFIG_TCPIP_RECVMBOX_SIZE 32
#define CONFIG_TCP_MAXRTX 12
#define CONFIG_BTM_INITIAL_TRACE_LEVEL 2
#define CONFIG_ESPTOOLPY_AFTER "hard_reset"
#define CONFIG_TCPIP_TASK_AFFINITY 0x7FFFFFFF
#define CONFIG_LWIP_SO_REUSE 1
#define CONFIG_ESP32_XTAL_FREQ_40 1
#define CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY 1
#define CONFIG_DMA_TX_BUF_NUM 10
#define CONFIG_LWIP_MAX_LISTENING_TCP 16
#define CONFIG_FREERTOS_INTERRUPT_BACKTRACE 1
#define CONFIG_WL_SECTOR_SIZE 4096
#define CONFIG_ESP32_DEBUG_OCDAWARE 1
#define CONFIG_MQTT_TRANSPORT_WEBSOCKET 1
#define CONFIG_TIMER_TASK_PRIORITY 1
#define CONFIG_MBEDTLS_TLS_CLIENT 1
#define CONFIG_AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL 1000
#define CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI 1
#define CONFIG_BT_ENABLED 1
#define CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY 1
#define CONFIG_SDP_TRACE_LEVEL_WARNING 1
#define CONFIG_SW_COEXIST_PREFERENCE_BALANCE 1
#define CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED 1
#define CONFIG_MONITOR_BAUD 115200
#define CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT -1
#define CONFIG_ESP32_DEBUG_STUBS_ENABLE 1
#define CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT 30
#define CONFIG_TCPIP_LWIP 1
#define CONFIG_REDUCE_PHY_TX_POWER 1
#define CONFIG_BOOTLOADER_WDT_TIME_MS 9000
#define CONFIG_PAN_TRACE_LEVEL_WARNING 1
#define CONFIG_FREERTOS_CORETIMER_0 1
#define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv"
#define CONFIG_MBEDTLS_HAVE_TIME 1
#define CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY 1
#define CONFIG_TCP_QUEUE_OOSEQ 1
#define CONFIG_GATTS_ENABLE 1
#define CONFIG_ADC_CAL_EFUSE_VREF_ENABLE 1
#define CONFIG_MBEDTLS_TLS_SERVER 1
#define CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT 1
#define CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED 1
#define CONFIG_FREERTOS_ISR_STACKSIZE 1536
#define CONFIG_SUPPORT_TERMIOS 1
#define CONFIG_OPENSSL_ASSERT_DO_NOTHING 1
#define CONFIG_IDF_TARGET "esp32"
#define CONFIG_WL_SECTOR_SIZE_4096 1
#define CONFIG_OPTIMIZATION_LEVEL_DEBUG 1
#define CONFIG_GATT_INITIAL_TRACE_LEVEL 2
#define CONFIG_FREERTOS_NO_AFFINITY 0x7FFFFFFF
#define CONFIG_AWS_IOT_MQTT_HOST ""
#define CONFIG_L2CAP_TRACE_LEVEL_WARNING 1
#define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 1
#define CONFIG_HTTPD_ERR_RESP_NO_DELAY 1
#define CONFIG_MB_TIMER_INDEX 0
#define CONFIG_SCAN_DUPLICATE_TYPE 0
#define CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED 1
#define CONFIG_APPL_INITIAL_TRACE_LEVEL 2
#define CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED 1
#define CONFIG_SPI_FLASH_ERASE_YIELD_TICKS 1
#define CONFIG_SMP_INITIAL_TRACE_LEVEL 2
#define CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA 1
#define CONFIG_SPI_SLAVE_ISR_IN_IRAM 1
#define CONFIG_L2CAP_INITIAL_TRACE_LEVEL 2
#define CONFIG_SYSTEM_EVENT_QUEUE_SIZE 32
#define CONFIG_BT_ACL_CONNECTIONS 4
#define CONFIG_ESP32_WIFI_TX_BUFFER_TYPE 1
#define CONFIG_BOOTLOADER_WDT_ENABLE 1
#define CONFIG_GAP_INITIAL_TRACE_LEVEL 2
#define CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED 1
#define CONFIG_LWIP_LOOPBACK_MAX_PBUFS 8
#define CONFIG_MB_TIMER_GROUP 0
#define CONFIG_SPI_FLASH_ROM_DRIVER_PATCH 1
#define CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE 1
#define CONFIG_SPIFFS_PAGE_SIZE 256
#define CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED 1
#define CONFIG_ESP32_DPORT_WORKAROUND 1
#define CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0 1
#define CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT 3072
#define CONFIG_MB_TIMER_PORT_ENABLED 1
#define CONFIG_DUPLICATE_SCAN_CACHE_SIZE 50
#define CONFIG_MONITOR_BAUD_OTHER_VAL 115200
#define CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF 1
#define CONFIG_ESPTOOLPY_PORT "COM19"
#define CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS 1
#define CONFIG_UNITY_ENABLE_DOUBLE 1
#define CONFIG_BLE_ADV_REPORT_DISCARD_THRSHOLD 20
#define CONFIG_BLUEDROID_PINNED_TO_CORE 0
#define CONFIG_ESP32_WIFI_IRAM_OPT 1
#define CONFIG_BLUFI_INITIAL_TRACE_LEVEL 2

@ -0,0 +1,29 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp8266]
platform = espressif8266
board = nodemcuv2
framework = arduino
upload_speed = 460800
monitor_speed = 115200
board_build.f_cpu = 160000000L
#board_build.f_flash = 80000000L
src_build_flags =
-O3 -w -Wfatal-errors
-fomit-frame-pointer
# -fPIC
#-flto -fno-fat-lto-objects
#-foptimize-sibling-calls
#-fverbose-asm -save-temps=obj

@ -0,0 +1,12 @@
unsigned char fib_wasm[] = {
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0b, 0x02, 0x60,
0x01, 0x7f, 0x01, 0x7f, 0x60, 0x01, 0x7e, 0x01, 0x7e, 0x03, 0x03, 0x02,
0x00, 0x01, 0x07, 0x11, 0x02, 0x04, 0x5f, 0x66, 0x69, 0x62, 0x00, 0x00,
0x06, 0x5f, 0x66, 0x69, 0x62, 0x36, 0x34, 0x00, 0x01, 0x0a, 0x3d, 0x02,
0x1d, 0x00, 0x20, 0x00, 0x41, 0x02, 0x49, 0x04, 0x40, 0x20, 0x00, 0x0f,
0x0b, 0x20, 0x00, 0x41, 0x02, 0x6b, 0x10, 0x00, 0x20, 0x00, 0x41, 0x01,
0x6b, 0x10, 0x00, 0x6a, 0x0f, 0x0b, 0x1d, 0x00, 0x20, 0x00, 0x42, 0x02,
0x54, 0x04, 0x40, 0x20, 0x00, 0x0f, 0x0b, 0x20, 0x00, 0x42, 0x02, 0x7d,
0x10, 0x01, 0x20, 0x00, 0x42, 0x01, 0x7d, 0x10, 0x01, 0x7c, 0x0f, 0x0b
};
unsigned int fib_wasm_len = 108;

@ -0,0 +1 @@
../../../source

@ -0,0 +1,128 @@
#include <stdio.h>
#include "Arduino.h"
#include <ESP8266WiFi.h>
#define FATAL(msg, ...) { printf("Fatal: " msg "\n", __VA_ARGS__); return; }
#include "m3/m3.hpp"
#include "fib.wasm.h"
/*
extern "C" {
size_t stack_start;
size_t stack_min;
#define STACK_INIT() { \
char stack; \
stack_min = stack_start = (size_t)&stack; \
}
void stackCheck() {
char stack;
size_t addr = (size_t)&stack;
stack_min = min(stack_min, addr);
}
void stackPrintMax() {
printf("Max stack size: %d\n", stack_start - stack_min);
}
#ifdef TRACK_STACK
void c_delay() {
static int ctnr = 0;
if ((ctnr++ % 512) == 0) {
//ESP.wdtFeed();
//
stackPrintMax();
}
}
#endif
void c_delay() {
}
}
*/
void run_wasm()
{
printf("Free heap: %d\n", ESP.getFreeHeap());
M3Result result = c_m3Err_none;
u8* wasm = (u8*)fib_wasm;
u32 fsize = fib_wasm_len-1;
printf("WASM: %d bytes\n", fsize);
IM3Module module;
result = m3_ParseModule (& module, wasm, fsize);
if (result) FATAL("m3_ParseModule: %s", result);
IM3Runtime env = m3_NewRuntime (8192);
result = m3_LoadModule (env, module);
if (result) FATAL("m3_LoadModule: %s", result);
//m3_LinkFunction (module, "_m3TestOut", "v(iFi)", (void *) m3TestOut);
//m3_LinkFunction (module, "_m3StdOut", "v(*)", (void *) m3Output);
//m3_LinkFunction (module, "_m3Export", "v(*i)", (void *) m3Export);
//m3_LinkFunction (module, "_m3Out_f64", "v(F)", (void *) m3Out_f64);
//m3_LinkFunction (module, "_m3Out_i32", "v(i)", (void *) m3Out_i32);
//m3_LinkFunction (module, "_TestReturn", "F(i)", (void *) TestReturn);
//m3_LinkFunction (module, "abortStackOverflow", "v(i)", (void *) m3_abort);
//result = m3_LinkCStd (module);
//if (result) FATAL("m3_LinkCStd: %s", result);
m3_PrintRuntimeInfo (env);
IM3Function f;
result = m3_FindFunction (&f, env, "__post_instantiate");
if (! result)
{
result = m3_Call (f);
if (result) FATAL("__post_instantiate: %s", result);
}
result = m3_FindFunction (&f, env, "_fib");
if (result) FATAL("m3_FindFunction: %s", result);
u32 start = millis();
const char* i_argv[2] = { "24", NULL };
result = m3_CallWithArgs (f, 1, i_argv);
u32 end = millis();
printf("Elapsed: %d ms\n", end - start);
printf("Free heap: %d\n", ESP.getFreeHeap());
if (result) FATAL("Call: %s", result);
}
void setup()
{
Serial.begin(115200);
delay(10);
WiFi.mode(WIFI_OFF);
run_wasm();
}
void loop()
{
delay(100);
}

@ -0,0 +1 @@
.output

@ -0,0 +1,113 @@
#############################################################
# Required variables for each makefile
# Discard this section from all parent makefiles
# Expected variables (with automatic defaults):
# CSRCS (all "C" files in the dir)
# SUBDIRS (all subdirs with a Makefile)
# GEN_LIBS - list of libs to be generated ()
# GEN_IMAGES - list of object file images to be generated ()
# GEN_BINS - list of binaries to be generated ()
# COMPONENTS_xxx - a list of libs/objs in the form
# subdir/lib to be extracted and rolled up into
# a generated lib/image xxx.a ()
#
TOP_DIR:= $(WM_SDK)
sinclude $(TOP_DIR)/tools/tool_chain.def
USE_LIB=1
CSRCS = $(wildcard *.c) $(wildcard m3/*.c)
#EXTRA_CCFLAGS += -u
ifndef PDIR
GEN_IMAGES= $(TARGET).out
GEN_BINS = $(TARGET).bin
SUBDIRS = \
$(TOP_DIR)/platform/boot/$(COMPILE)
ifeq ($(USE_LIB), 0)
SUBDIRS += \
$(TOP_DIR)/platform/common \
$(TOP_DIR)/platform/drivers \
$(TOP_DIR)/platform/sys \
$(TOP_DIR)/src/network \
$(TOP_DIR)/src/os \
$(TOP_DIR)/src/app
endif
endif
COMPONENTS_$(TARGET) = \
$(TOP_DIR)/platform/boot/$(COMPILE)/startup.o \
$(TOP_DIR)/platform/boot/$(COMPILE)/misc.o \
$(TOP_DIR)/platform/boot/$(COMPILE)/retarget.o
ifeq ($(USE_LIB), 0)
COMPONENTS_$(TARGET) += \
$(TOP_DIR)/platform/common/libcommon$(LIB_EXT) \
$(TOP_DIR)/platform/drivers/libdrivers$(LIB_EXT) \
$(TOP_DIR)/platform/sys/libsys$(LIB_EXT) \
$(TOP_DIR)/src/network/libnetwork$(LIB_EXT) \
$(TOP_DIR)/src/os/libos$(LIB_EXT) \
$(TOP_DIR)/src/app/libapp$(LIB_EXT)
endif
LINKLIB = \
$(TOP_DIR)/lib/libwlan$(LIB_EXT) \
$(TOP_DIR)/lib/libairkiss_log$(LIB_EXT)
LINKLIB += -lm
ifeq ($(USE_LIB), 1)
LINKLIB += \
$(TOP_DIR)/lib/libcommon$(LIB_EXT) \
$(TOP_DIR)/lib/libdrivers$(LIB_EXT) \
$(TOP_DIR)/lib/libsys$(LIB_EXT) \
$(TOP_DIR)/lib/libnetwork$(LIB_EXT) \
$(TOP_DIR)/lib/libos$(LIB_EXT) \
$(TOP_DIR)/lib/libapp$(LIB_EXT)
endif
ifeq ($(COMPILE), gcc)
LINKFLAGS_$(TARGET) = \
$(LINKLIB) \
-T$(LD_FILE) \
-Wl,-warn-common
else
LINKFLAGS_$(TARGET) = \
--library_type=microlib \
$(LINKLIB) \
--strict --scatter $(LD_FILE)
endif
#############################################################
# Configuration i.e. compile options etc.
# Target specific stuff (defines etc.) goes in here!
# Generally values applying to a tree are captured in the
# makefile at its root level - these are then overridden
# for a subtree within the makefile rooted therein
#
DEFINES = -w -DWM_W600 -O3 -fomit-frame-pointer
#############################################################
# Recursion Magic - Don't touch this!!
#
# Each subtree potentially has an include directory
# corresponding to the common APIs applicable to modules
# rooted at that subtree. Accordingly, the INCLUDE PATH
# of a module can only contain the include directories up
# its parent path, and not its siblings
#
# Required for each makefile to inherit from the parent
#
INCLUDES := $(INCLUDES) -I$(PDIR)include
INCLUDES += -I ./
sinclude $(TOP_DIR)/tools/rules.mk
.PHONY: FORCE
FORCE:

@ -0,0 +1,25 @@
## Build for Winner Micro W600
You will need:
- [W600 SDK from ThingsTurn](https://github.com/w600/sdk)
- [gcc-arm-none-eabi-4_9-2015q3](https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update)
- [w600tool](https://github.com/vshymanskyy/w600tool)
```sh
export PATH=/opt/gcc-arm-none-eabi-4_9-2015q3/bin:$PATH
export WM_SDK=/opt/WM_W600
./build.sh
```
To upload:
```sh
w600tool.py --upload .output/wasm3_gz.img
```
or
```sh
w600tool.py --upload ./bin/wasm3/wasm3.fls
```

@ -0,0 +1,10 @@
#!/bin/sh
rm -rf .output
mkdir -p .output/wasm3/obj/m3/
make COMPILE=gcc TARGET=wasm3 FLASH_SIZE=1M VERBOSE=YES
cp $WM_SDK/bin/wasm3/* ./.output/
rm test.bin

@ -0,0 +1,12 @@
unsigned char fib_wasm[] = {
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0b, 0x02, 0x60,
0x01, 0x7f, 0x01, 0x7f, 0x60, 0x01, 0x7e, 0x01, 0x7e, 0x03, 0x03, 0x02,
0x00, 0x01, 0x07, 0x11, 0x02, 0x04, 0x5f, 0x66, 0x69, 0x62, 0x00, 0x00,
0x06, 0x5f, 0x66, 0x69, 0x62, 0x36, 0x34, 0x00, 0x01, 0x0a, 0x3d, 0x02,
0x1d, 0x00, 0x20, 0x00, 0x41, 0x02, 0x49, 0x04, 0x40, 0x20, 0x00, 0x0f,
0x0b, 0x20, 0x00, 0x41, 0x02, 0x6b, 0x10, 0x00, 0x20, 0x00, 0x41, 0x01,
0x6b, 0x10, 0x00, 0x6a, 0x0f, 0x0b, 0x1d, 0x00, 0x20, 0x00, 0x42, 0x02,
0x54, 0x04, 0x40, 0x20, 0x00, 0x0f, 0x0b, 0x20, 0x00, 0x42, 0x02, 0x7d,
0x10, 0x01, 0x20, 0x00, 0x42, 0x01, 0x7d, 0x10, 0x01, 0x7c, 0x0f, 0x0b
};
unsigned int fib_wasm_len = 108;

@ -0,0 +1 @@
../../source

@ -0,0 +1,90 @@
#include "wm_include.h"
#include "m3/m3.h"
#include "fib.wasm.h"
#define FATAL(msg, ...) { printf("Fatal: " msg "\n", __VA_ARGS__); return; }
unsigned int millis(void)
{
return tls_os_get_time()*2;
}
void run_wasm()
{
M3Result result = c_m3Err_none;
u8* wasm = (u8*)fib_wasm;
u32 fsize = fib_wasm_len-1;
IM3Module module;
result = m3_ParseModule (& module, wasm, fsize);
if (result) FATAL("m3_ParseModule: %s", result);
IM3Runtime env = m3_NewRuntime (8192);
result = m3_LoadModule (env, module);
if (result) FATAL("m3_LoadModule: %s", result);
IM3Function f;
result = m3_FindFunction (&f, env, "__post_instantiate");
if (! result)
{
result = m3_Call (f);
if (result) FATAL("__post_instantiate: %s", result);
}
result = m3_FindFunction (&f, env, "_fib");
if (result) FATAL("m3_FindFunction: %s", result);
u32 start = millis();
const char* i_argv[2] = { "32", NULL };
result = m3_CallWithArgs (f, 1, i_argv);
u32 end = millis();
unsigned elapsed_time = (end - start);
printf("Elapsed: %d ms\n", elapsed_time);
if (result) FATAL("Call: %s", result);
}
#define USER_TASK_STK_SIZE 32768
#define USER_TASK_PRIO 32
static u8 user_task_stk[USER_TASK_STK_SIZE];
void wasm3_task(void *data)
{
run_wasm();
for (int i=0; i<USER_TASK_STK_SIZE; i++) {
if (user_task_stk[i] != 0xA5) {
printf("Stack used: %d\n", USER_TASK_STK_SIZE-i);
break;
}
}
}
void UserMain(void)
{
/* paint the stack */
for (int i=0; i<USER_TASK_STK_SIZE; i++) {
user_task_stk[i] = 0xA5;
}
printf("\nwasm3 on W600, build %s %s\n", __DATE__, __TIME__);
/* create task */
tls_os_task_create(NULL,
"wasm3",
wasm3_task,
(void*) 0,
(void*) &user_task_stk,
USER_TASK_STK_SIZE,
USER_TASK_PRIO,
0);
}
Loading…
Cancel
Save