diff --git a/platform.txt b/platform.txt index d4183ed04f1..c454b8139a8 100644 --- a/platform.txt +++ b/platform.txt @@ -37,7 +37,7 @@ compiler.c.elf.libs.esp32=-lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmb compiler.c.flags.esp32=-mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -MMD -c compiler.cpp.flags.esp32=-mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fexceptions -fno-rtti -MMD -c compiler.S.flags.esp32=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -x assembler-with-cpp -MMD -c -compiler.c.elf.flags.esp32=-T esp32.rom.redefined.ld -T memory.ld -T sections.ld -T esp32.rom.ld -T esp32.rom.api.ld -T esp32.rom.libgcc.ld -T esp32.rom.newlib-data.ld -T esp32.rom.syscalls.ld -T esp32.peripherals.ld -mlongcalls -Wno-frame-address -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -u ld_include_hli_vectors_bt -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u ld_include_highint_hdl -u start_app -u start_app_other_cores -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy +compiler.c.elf.flags.esp32=-T esp32.rom.redefined.ld -T memory.ld -T sections.ld -T esp32.rom.ld -T esp32.rom.api.ld -T esp32.rom.libgcc.ld -T esp32.rom.newlib-data.ld -T esp32.rom.syscalls.ld -T esp32.peripherals.ld -mlongcalls -Wno-frame-address -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -Wl,--wrap=log_printf -u ld_include_hli_vectors_bt -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u ld_include_highint_hdl -u start_app -u start_app_other_cores -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy compiler.ar.flags.esp32=cr build.extra_flags.esp32=-DARDUINO_USB_CDC_ON_BOOT=0 # @@ -52,7 +52,7 @@ compiler.c.elf.libs.esp32s3=-lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -l compiler.c.flags.esp32s3=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -MMD -c compiler.cpp.flags.esp32s3=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fexceptions -fno-rtti -MMD -c compiler.S.flags.esp32s3=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -x assembler-with-cpp -MMD -c -compiler.c.elf.flags.esp32s3=-T memory.ld -T sections.ld -T esp32s3.rom.ld -T esp32s3.rom.api.ld -T esp32s3.rom.libgcc.ld -T esp32s3.rom.newlib.ld -T esp32s3.rom.version.ld -T esp32s3.rom.newlib-time.ld -T esp32s3.peripherals.ld -mlongcalls -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u ld_include_highint_hdl -u start_app -u start_app_other_cores -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy +compiler.c.elf.flags.esp32s3=-T memory.ld -T sections.ld -T esp32s3.rom.ld -T esp32s3.rom.api.ld -T esp32s3.rom.libgcc.ld -T esp32s3.rom.newlib.ld -T esp32s3.rom.version.ld -T esp32s3.rom.newlib-time.ld -T esp32s3.peripherals.ld -mlongcalls -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -Wl,--wrap=log_printf -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u ld_include_highint_hdl -u start_app -u start_app_other_cores -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy compiler.ar.flags.esp32s3=cr build.extra_flags.esp32s3=-DARDUINO_USB_MODE={build.usb_mode} -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} -DARDUINO_USB_MSC_ON_BOOT={build.msc_on_boot} -DARDUINO_USB_DFU_ON_BOOT={build.dfu_on_boot} # @@ -67,7 +67,7 @@ compiler.c.elf.libs.esp32s2=-lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -l compiler.c.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -MMD -c compiler.cpp.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fexceptions -fno-rtti -MMD -c compiler.S.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -x assembler-with-cpp -MMD -c -compiler.c.elf.flags.esp32s2=-T memory.ld -T sections.ld -T esp32s2.rom.ld -T esp32s2.rom.api.ld -T esp32s2.rom.libgcc.ld -T esp32s2.rom.newlib-funcs.ld -T esp32s2.rom.newlib-data.ld -T esp32s2.rom.spiflash.ld -T esp32s2.rom.newlib-time.ld -T esp32s2.peripherals.ld -mlongcalls -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u ld_include_highint_hdl -u start_app -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy +compiler.c.elf.flags.esp32s2=-T memory.ld -T sections.ld -T esp32s2.rom.ld -T esp32s2.rom.api.ld -T esp32s2.rom.libgcc.ld -T esp32s2.rom.newlib-funcs.ld -T esp32s2.rom.newlib-data.ld -T esp32s2.rom.spiflash.ld -T esp32s2.rom.newlib-time.ld -T esp32s2.peripherals.ld -mlongcalls -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -Wl,--wrap=log_printf -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u ld_include_highint_hdl -u start_app -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy compiler.ar.flags.esp32s2=cr build.extra_flags.esp32s2=-DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} -DARDUINO_USB_MSC_ON_BOOT={build.msc_on_boot} -DARDUINO_USB_DFU_ON_BOOT={build.dfu_on_boot} # @@ -82,7 +82,7 @@ compiler.c.elf.libs.esp32c3=-lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -l compiler.c.flags.esp32c3=-march=rv32imc -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -MMD -c compiler.cpp.flags.esp32c3=-march=rv32imc -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fexceptions -fno-rtti -MMD -c compiler.S.flags.esp32c3=-ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -x assembler-with-cpp -MMD -c -compiler.c.elf.flags.esp32c3=-T memory.ld -T sections.ld -T esp32c3.rom.ld -T esp32c3.rom.api.ld -T esp32c3.rom.libgcc.ld -T esp32c3.rom.newlib.ld -T esp32c3.rom.version.ld -T esp32c3.rom.newlib-time.ld -T esp32c3.rom.eco3.ld -T esp32c3.peripherals.ld -nostartfiles -march=rv32imc --specs=nosys.specs -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u start_app -u __ubsan_include -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy +compiler.c.elf.flags.esp32c3=-T memory.ld -T sections.ld -T esp32c3.rom.ld -T esp32c3.rom.api.ld -T esp32c3.rom.libgcc.ld -T esp32c3.rom.newlib.ld -T esp32c3.rom.version.ld -T esp32c3.rom.newlib-time.ld -T esp32c3.rom.eco3.ld -T esp32c3.peripherals.ld -nostartfiles -march=rv32imc --specs=nosys.specs -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -Wl,--wrap=log_printf -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u start_app -u __ubsan_include -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy compiler.ar.flags.esp32c3=cr build.extra_flags.esp32c3=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} # diff --git a/tools/platformio-build-esp32.py b/tools/platformio-build-esp32.py index a87987a81a3..6d7be1be5c1 100644 --- a/tools/platformio-build-esp32.py +++ b/tools/platformio-build-esp32.py @@ -84,6 +84,7 @@ "-fno-lto", "-Wl,--wrap=esp_log_write", "-Wl,--wrap=esp_log_writev", + "-Wl,--wrap=log_printf", "-Wl,--wrap=longjmp", "-Wl,--undefined=uxTopUsedPriority", "-T", "esp32.rom.redefined.ld", diff --git a/tools/platformio-build-esp32c3.py b/tools/platformio-build-esp32c3.py index 971bbf277f4..fc2c5b77c2a 100644 --- a/tools/platformio-build-esp32c3.py +++ b/tools/platformio-build-esp32c3.py @@ -87,6 +87,7 @@ "-fno-lto", "-Wl,--wrap=esp_log_write", "-Wl,--wrap=esp_log_writev", + "-Wl,--wrap=log_printf", "-Wl,--undefined=uxTopUsedPriority", "-T", "memory.ld", "-T", "sections.ld", diff --git a/tools/platformio-build-esp32s2.py b/tools/platformio-build-esp32s2.py index a750b8878c1..4bb4fe5bab2 100644 --- a/tools/platformio-build-esp32s2.py +++ b/tools/platformio-build-esp32s2.py @@ -82,6 +82,7 @@ "-fno-lto", "-Wl,--wrap=esp_log_write", "-Wl,--wrap=esp_log_writev", + "-Wl,--wrap=log_printf", "-Wl,--wrap=longjmp", "-Wl,--undefined=uxTopUsedPriority", "-T", "memory.ld", diff --git a/tools/platformio-build-esp32s3.py b/tools/platformio-build-esp32s3.py index dd19f1b018a..2241d391509 100644 --- a/tools/platformio-build-esp32s3.py +++ b/tools/platformio-build-esp32s3.py @@ -81,6 +81,7 @@ "-fno-lto", "-Wl,--wrap=esp_log_write", "-Wl,--wrap=esp_log_writev", + "-Wl,--wrap=log_printf", "-Wl,--wrap=longjmp", "-Wl,--undefined=uxTopUsedPriority", "-T", "memory.ld", diff --git a/tools/sdk/esp32/include/esp-dsp/modules/fir/include/dsps_fir.h b/tools/sdk/esp32/include/esp-dsp/modules/fir/include/dsps_fir.h index b9fb44884ec..a7d3d09003e 100644 --- a/tools/sdk/esp32/include/esp-dsp/modules/fir/include/dsps_fir.h +++ b/tools/sdk/esp32/include/esp-dsp/modules/fir/include/dsps_fir.h @@ -1,4 +1,4 @@ -// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD +// Copyright 2018-2022 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,9 +28,9 @@ extern "C" /** * @brief Data struct of f32 fir filter * - * This structure used by filter internally. User should access this structure only in case of + * This structure is used by a filter internally. A user should access this structure only in case of * extensions for the DSP Library. - * All fields of this structure initialized by dsps_fir_init_f32(...) function. + * All fields of this structure are initialized by the dsps_fir_init_f32(...) function. */ typedef struct fir_f32_s { float *coeffs; /*!< Pointer to the coefficient buffer.*/ @@ -41,6 +41,23 @@ typedef struct fir_f32_s { int d_pos; /*!< Actual decimation counter.*/ } fir_f32_t; +/** + * @brief Data struct of s16 fir filter + * + * This structure is used by a filter internally. A user should access this structure only in case of + * extensions for the DSP Library. + * All fields of this structure are initialized by the dsps_fir_init_s16(...) function. + */ +typedef struct fir_s16_s{ + int16_t *coeffs; /*!< Pointer to the coefficient buffer.*/ + int16_t *delay; /*!< Pointer to the delay line buffer.*/ + int16_t coeffs_len; /*!< FIR filter coefficients amount.*/ + int16_t pos; /*!< Position in delay line.*/ + int16_t decim; /*!< Decimation factor.*/ + int16_t d_pos; /*!< Actual decimation counter.*/ + int16_t shift; /*!< shift value of the result.*/ +}fir_s16_t; + /** * @brief initialize structure for 32 bit FIR filter * @@ -76,18 +93,37 @@ esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N); */ esp_err_t dsps_fird_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N, int decim, int start_pos); +/** + * @brief initialize structure for 16 bit Decimation FIR filter + * Function initialize structure for 16 bit signed fixed point FIR filter with decimation + * The implementation use ANSI C and could be compiled and run on any platform + * + * @param fir: pointer to fir filter structure, that must be preallocated + * @param coeffs: array with FIR filter coefficients. Must be length N + * @param delay: array for FIR filter delay line. Must be length N + * @param coeffs_len: FIR filter length. Length of coeffs and delay arrays. + * @param decim: decimation factor. + * @param start_pos: initial value of decimation counter. Must be [0..d) + * @param shift: shift position of the result + * + * @return + * - ESP_OK on success + * - One of the error codes from DSP library + */ +esp_err_t dsps_fird_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift); + /**@{*/ /** - * @brief FIR filter + * @brief 32 bit floating point FIR filter * * Function implements FIR filter - * The extension (_ansi) use ANSI C and could be compiled and run on any platform. + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. * The extension (_ae32) is optimized for ESP32 chip. * * @param fir: pointer to fir filter structure, that must be initialized before * @param[in] input: input array - * @param[out] output: array with result of FIR filter + * @param[out] output: array with the result of FIR filter * @param[in] len: length of input and result arrays * * @return @@ -101,24 +137,43 @@ esp_err_t dsps_fir_f32_aes3(fir_f32_t *fir, const float *input, float *output, i /**@{*/ /** - * @brief Decimation FIR filter + * @brief 32 bit floating point Decimation FIR filter * * Function implements FIR filter with decimation - * The extension (_ansi) use ANSI C and could be compiled and run on any platform. + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. * The extension (_ae32) is optimized for ESP32 chip. * * @param fir: pointer to fir filter structure, that must be initialized before * @param input: input array - * @param output: array with result of FIR filter + * @param output: array with the result of FIR filter * @param len: length of input and result arrays * - * @return: function returns amount of samples stored to the output array + * @return: function returns the number of samples stored in the output array * depends on the previous state value could be [0..len/decimation] */ int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len); int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int len); /**@}*/ +/**@{*/ +/** + * @brief 16 bit signed fixed point Decimation FIR filter + * + * Function implements FIR filter with decimation + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. + * The extension (_ae32) is optimized for ESP32 chip. + * + * @param fir: pointer to fir filter structure, that must be initialized before + * @param input: input array + * @param output: array with the result of the FIR filter + * @param len: length of the result array + * + * @return: function returns the number of samples stored in the output array + * depends on the previous state value could be [0..len/decimation] + */ +int32_t dsps_fird_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len); +int32_t dsps_fird_s16_ae32(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len); +/**@}*/ #ifdef __cplusplus } @@ -139,9 +194,16 @@ int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int le #define dsps_fird_f32 dsps_fird_f32_ansi #endif +#if (dsps_fird_s16_ae32_enabled == 1) +#define dsps_fird_s16 dsps_fird_s16_ae32 +#else +#define dsps_fird_s16 dsps_fird_s16_ansi +#endif + #else // CONFIG_DSP_OPTIMIZED #define dsps_fir_f32 dsps_fir_f32_ansi #define dsps_fird_f32 dsps_fird_f32_ansi +#define dsps_fird_s16 dsps_fird_s16_ansi #endif // CONFIG_DSP_OPTIMIZED #endif // _dsps_fir_H_ \ No newline at end of file diff --git a/tools/sdk/esp32/include/esp-dsp/modules/fir/include/dsps_fir_platform.h b/tools/sdk/esp32/include/esp-dsp/modules/fir/include/dsps_fir_platform.h index fab2656878f..f352fa85fc4 100644 --- a/tools/sdk/esp32/include/esp-dsp/modules/fir/include/dsps_fir_platform.h +++ b/tools/sdk/esp32/include/esp-dsp/modules/fir/include/dsps_fir_platform.h @@ -12,6 +12,8 @@ #define dsps_fir_f32_ae32_enabled 1 #define dsps_fird_f32_ae32_enabled 1 +#define dsps_fird_s16_ae32_enabled 1 +#define dsps_fird_s16_ae32_mul_enabled 1 #endif // #endif // __XTENSA__ diff --git a/tools/sdk/esp32/include/esp_insights/include/esp_insights.h b/tools/sdk/esp32/include/esp_insights/include/esp_insights.h index 7e79c261e1e..e1c05a76ff8 100644 --- a/tools/sdk/esp32/include/esp_insights/include/esp_insights.h +++ b/tools/sdk/esp32/include/esp_insights/include/esp_insights.h @@ -128,7 +128,11 @@ typedef struct { } esp_insights_transport_config_t; /** - * @brief Initialize ESP Insights + * @brief Initialize ESP Insights. + * + * This initializes ESP Insights with the transport (HTTPS/MQTT) as per the sdkconfig. + * To override the transport configuration, please use esp_insights_transport_register() + * and esp_insights_enable(). * * @param[in] config Configuration for ESP Insights. * @@ -137,12 +141,19 @@ typedef struct { esp_err_t esp_insights_init(esp_insights_config_t *config); /** - * @brief Deinitialize ESP Insights + * @brief Deinitialize ESP Insights. + * + * Disconnects the registered transport and disables ESP Insights */ void esp_insights_deinit(void); /** - * @brief Register insights transport + * @brief Register insights transport. + * + * This function should be used only when default transport needs to be overridden. + * + * @note Call esp_insights_enable() + * after registering your own transport to enable Insights. * * @param[in] config Configurations of type \ref esp_insights_transport_config_t * @@ -151,12 +162,15 @@ void esp_insights_deinit(void); esp_err_t esp_insights_transport_register(esp_insights_transport_config_t *config); /** - * @brief Unregister insights transport + * @brief Unregister insights transport. + * + * @note This API does not disable Insights. + * Call esp_insights_disable() to turn off Insights. */ void esp_insights_transport_unregister(void); /** - * @brief Read insights data from buffers and send it to the cloud + * @brief Read insights data from buffers and send it to the cloud. * * Call to this function is asynchronous, it may take some time to send the data. * @@ -164,6 +178,33 @@ void esp_insights_transport_unregister(void); */ esp_err_t esp_insights_send_data(void); +/** + * @brief Enable ESP Insights except transport. + * + * This API is used in conjunction with esp_insights_transport_register() + * to start Insights with custom transport. + * + * @param[in] config Configuration for ESP Insights. + * + * @return ESP_OK on success, appropriate error code otherwise + */ +esp_err_t esp_insights_enable(esp_insights_config_t *config); + +/** + * @brief Disable ESP Insights. + * + * This API does not unregister the transport. + * + * @note Call esp_insights_transport_unregister() to remove the transport. + */ +void esp_insights_disable(void); + +/** + * @brief Returns pointer to the NULL terminated Node ID string. + * + * @return Pointer to a NULL terminated Node ID string. + */ +const char *esp_insights_get_node_id(void); #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32/include/rtc_store/include/rtc_store.h b/tools/sdk/esp32/include/rtc_store/include/rtc_store.h index 5111ea1d87c..e313dac41d1 100644 --- a/tools/sdk/esp32/include/rtc_store/include/rtc_store.h +++ b/tools/sdk/esp32/include/rtc_store/include/rtc_store.h @@ -36,6 +36,33 @@ typedef enum { RTC_STORE_EVENT_NON_CRITICAL_DATA_WRITE_FAIL, /*!< Non critical data write failed */ } rtc_store_event_t; +#define SHA_SIZE (CONFIG_APP_RETRIEVE_LEN_ELF_SHA / 2) + +/** + * @brief header record to identify firmware/boot data a record represent + */ +typedef struct { + uint8_t gen_id; // generated on each hard reset + uint8_t boot_cnt; // updated on each soft reboot + char sha_sum[SHA_SIZE]; // elf shasum + bool valid; // +} rtc_store_meta_header_t; + +/** + * @brief get meta header for idx + * + * @param idx idx of meta from records + * @return rtc_store_meta_header_t* + */ +rtc_store_meta_header_t *rtc_store_get_meta_record_by_index(uint8_t idx); + +/** + * @brief get current meta header + * + * @return rtc_store_meta_header_t* + */ +rtc_store_meta_header_t *rtc_store_get_meta_record_current(); + /** * @brief Non critical data header */ @@ -57,43 +84,33 @@ esp_err_t rtc_store_critical_data_write(void *data, size_t len); /** * @brief Read critical data from the RTC storage * - * @param[out] size Number of bytes read - * - * @return Pointer to the data on success, otherwise NULL + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes to read * - * @note It is mandatory to call \ref rtc_store_critical_data_release_and_unlock() if \ref rtc_store_critical_data_read_and_lock() is successful. - * @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock. + * @return Number of bytes read or -1 on error */ -const void *rtc_store_critical_data_read_and_lock(size_t *size); +int rtc_store_critical_data_read(uint8_t *buf, size_t size); /** - * @brief Release the utilized data read using \ref rtc_store_critical_data_read_and_lock() + * @brief Release the size bytes critical data from RTC storage * - * This API releases the utilized data read using \ref rtc_store_critical_data_read_and_lock(). - * Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc. + * This API can be used to remove data from buffer when data is sent asynchronously. * - * @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed). + * @param[in] size Number of bytes to free. * * @return ESP_OK on success, appropriate error code otherwise. - * - * @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock. */ -esp_err_t rtc_store_critical_data_release_and_unlock(size_t size); +esp_err_t rtc_store_critical_data_release(size_t size); /** - * @brief Release the size bytes critical data from RTC storage + * @brief Read critical data from the RTC storage and release that data * - * This API can be used to remove data from buffer when data is sent asynchronously. + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes to read * - * Consider data is read using \ref rtc_store_critical_data_read_and_lock() and sent to cloud asynchronously. - * Since status of data send is unknown, call \ref rtc_store_critical_data_release_and_unlock() with zero length. - * When acknowledgement for data send is received use this API with appropriate size to remove the data from the buffer. - * - * @param[in] size Number of bytes to free. - * - * @return ESP_OK on success, appropriate error code otherwise. + * @return Number of bytes read or -1 on error */ -esp_err_t rtc_store_critical_data_release(size_t size); +int rtc_store_critical_data_read_and_release(uint8_t *buf, size_t size); /** * @brief Write non critical data to the RTC storage @@ -116,35 +133,31 @@ esp_err_t rtc_store_non_critical_data_write(const char *dg, void *data, size_t l /** * @brief Read non critical data from the RTC storage * - * @param[out] size Number of bytes read - * - * @return Pointer to the data on success, otherwise NULL + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes read * - * @note It is mandatory to call \ref rtc_store_non_critical_data_release_and_unlock() if \ref rtc_store_non_critical_data_read_and_lock() is successful. + * @return Number of bytes read or -1 on error */ -const void *rtc_store_non_critical_data_read_and_lock(size_t *size); +int rtc_store_non_critical_data_read(uint8_t *buf, size_t size); /** - * @brief Release the utilized data read using \ref rtc_store_non_critical_data_read_and_lock() - * - * This API releases the utilized data read using \ref rtc_store_non_critical_data_read_and_lock(). - * Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc. + * @brief Release the size bytes non critical data from RTC storage * - * @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_non_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed). + * @param[in] size Number of bytes to free. * * @return ESP_OK on success, appropriate error code otherwise. - * */ -esp_err_t rtc_store_non_critical_data_release_and_unlock(size_t size); +esp_err_t rtc_store_non_critical_data_release(size_t size); /** - * @brief Release the size bytes non critical data from RTC storage + * @brief Read non_critical data from the RTC storage and release that data * - * @param[in] size Number of bytes to free. + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes read * - * @return ESP_OK on success, appropriate error code otherwise. + * @return Number of bytes read or -1 on error */ -esp_err_t rtc_store_non_critical_data_release(size_t size); +int rtc_store_non_critical_data_read_and_release(uint8_t *buf, size_t size); /** * @brief Initializes the RTC storage diff --git a/tools/sdk/esp32/ld/sections.ld b/tools/sdk/esp32/ld/sections.ld index a723d1b4ba3..a22203c7d9d 100644 --- a/tools/sdk/esp32/ld/sections.ld +++ b/tools/sdk/esp32/ld/sections.ld @@ -603,8 +603,8 @@ SECTIONS _bss_start = ABSOLUTE(.); *(.bss .bss.*) - *(.dynbss .dynsbss .gnu.linkonce.b .gnu.linkonce.b.* .gnu.linkonce.sb .gnu.linkonce.sb.* .gnu.linkonce.sb2 .gnu.linkonce.sb2.* .sbss .sbss.* .sbss2 .sbss2.* .scommon .share.mem) *(.ext_ram.bss .ext_ram.bss.*) + *(.dynbss .dynsbss .gnu.linkonce.b .gnu.linkonce.b.* .gnu.linkonce.sb .gnu.linkonce.sb.* .gnu.linkonce.sb2 .gnu.linkonce.sb2.* .sbss .sbss.* .sbss2 .sbss2.* .scommon .share.mem) *(COMMON) _bt_bss_start = ABSOLUTE(.); *libbt.a:(.bss .bss.* COMMON) @@ -643,8 +643,8 @@ SECTIONS { _flash_rodata_start = ABSOLUTE(.); - *(.rodata_wlog_error .rodata_wlog_error.*) *(EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libc.a:creat.* *libc.a:isatty.* *libc.a:lib_a-abs.* *libc.a:lib_a-asctime.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-atoi.* *libc.a:lib_a-atol.* *libc.a:lib_a-bzero.* *libc.a:lib_a-close.* *libc.a:lib_a-creat.* *libc.a:lib_a-ctime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-div.* *libc.a:lib_a-environ.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fclose.* *libc.a:lib_a-fflush.* *libc.a:lib_a-findfp.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-impure.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-isblank.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-islower.* *libc.a:lib_a-isprint.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isupper.* *libc.a:lib_a-itoa.* *libc.a:lib_a-labs.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-memmove.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-memset.* *libc.a:lib_a-mktime.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-open.* *libc.a:lib_a-quorem.* *libc.a:lib_a-raise.* *libc.a:lib_a-rand.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-read.* *libc.a:lib_a-refill.* *libc.a:lib_a-rshift.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-sccl.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-srand.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strftime.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-strlen.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strncat.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strptime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strtol.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strupr.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-sysread.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-system.* *libc.a:lib_a-systimes.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-time.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-toascii.* *libc.a:lib_a-tolower.* *libc.a:lib_a-toupper.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-tzset.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-utoa.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-wsetup.* *libc.a:lock.* *libesp_hw_support.a:rtc_clk.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.*) .rodata EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libc.a:creat.* *libc.a:isatty.* *libc.a:lib_a-abs.* *libc.a:lib_a-asctime.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-atoi.* *libc.a:lib_a-atol.* *libc.a:lib_a-bzero.* *libc.a:lib_a-close.* *libc.a:lib_a-creat.* *libc.a:lib_a-ctime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-div.* *libc.a:lib_a-environ.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fclose.* *libc.a:lib_a-fflush.* *libc.a:lib_a-findfp.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-impure.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-isblank.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-islower.* *libc.a:lib_a-isprint.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isupper.* *libc.a:lib_a-itoa.* *libc.a:lib_a-labs.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-memmove.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-memset.* *libc.a:lib_a-mktime.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-open.* *libc.a:lib_a-quorem.* *libc.a:lib_a-raise.* *libc.a:lib_a-rand.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-read.* *libc.a:lib_a-refill.* *libc.a:lib_a-rshift.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-sccl.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-srand.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strftime.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-strlen.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strncat.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strptime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strtol.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strupr.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-sysread.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-system.* *libc.a:lib_a-systimes.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-time.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-toascii.* *libc.a:lib_a-tolower.* *libc.a:lib_a-toupper.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-tzset.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-utoa.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-wsetup.* *libc.a:lock.* *libesp_hw_support.a:rtc_clk.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.*) .rodata.* EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libc.a:creat.* *libc.a:isatty.* *libc.a:lib_a-abs.* *libc.a:lib_a-asctime.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-atoi.* *libc.a:lib_a-atol.* *libc.a:lib_a-bzero.* *libc.a:lib_a-close.* *libc.a:lib_a-creat.* *libc.a:lib_a-ctime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-div.* *libc.a:lib_a-environ.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fclose.* *libc.a:lib_a-fflush.* *libc.a:lib_a-findfp.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-impure.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-isblank.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-islower.* *libc.a:lib_a-isprint.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isupper.* *libc.a:lib_a-itoa.* *libc.a:lib_a-labs.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-memmove.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-memset.* *libc.a:lib_a-mktime.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-open.* *libc.a:lib_a-quorem.* *libc.a:lib_a-raise.* *libc.a:lib_a-rand.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-read.* *libc.a:lib_a-refill.* *libc.a:lib_a-rshift.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-sccl.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-srand.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strftime.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-strlen.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strncat.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strptime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strtol.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strupr.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-sysread.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-system.* *libc.a:lib_a-systimes.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-time.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-toascii.* *libc.a:lib_a-tolower.* *libc.a:lib_a-toupper.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-tzset.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-utoa.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-wsetup.* *libc.a:lock.* *libesp_hw_support.a:rtc_clk.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.*) .sdata2 EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libc.a:creat.* *libc.a:isatty.* *libc.a:lib_a-abs.* *libc.a:lib_a-asctime.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-atoi.* *libc.a:lib_a-atol.* *libc.a:lib_a-bzero.* *libc.a:lib_a-close.* *libc.a:lib_a-creat.* *libc.a:lib_a-ctime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-div.* *libc.a:lib_a-environ.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fclose.* *libc.a:lib_a-fflush.* *libc.a:lib_a-findfp.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-impure.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-isblank.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-islower.* *libc.a:lib_a-isprint.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isupper.* *libc.a:lib_a-itoa.* *libc.a:lib_a-labs.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-memmove.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-memset.* *libc.a:lib_a-mktime.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-open.* *libc.a:lib_a-quorem.* *libc.a:lib_a-raise.* *libc.a:lib_a-rand.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-read.* *libc.a:lib_a-refill.* *libc.a:lib_a-rshift.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-sccl.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-srand.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strftime.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-strlen.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strncat.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strptime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strtol.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strupr.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-sysread.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-system.* *libc.a:lib_a-systimes.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-time.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-toascii.* *libc.a:lib_a-tolower.* *libc.a:lib_a-toupper.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-tzset.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-utoa.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-wsetup.* *libc.a:lock.* *libesp_hw_support.a:rtc_clk.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.*) .sdata2.* EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libc.a:creat.* *libc.a:isatty.* *libc.a:lib_a-abs.* *libc.a:lib_a-asctime.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-atoi.* *libc.a:lib_a-atol.* *libc.a:lib_a-bzero.* *libc.a:lib_a-close.* *libc.a:lib_a-creat.* *libc.a:lib_a-ctime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-div.* *libc.a:lib_a-environ.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fclose.* *libc.a:lib_a-fflush.* *libc.a:lib_a-findfp.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-impure.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-isblank.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-islower.* *libc.a:lib_a-isprint.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isupper.* *libc.a:lib_a-itoa.* *libc.a:lib_a-labs.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-memmove.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-memset.* *libc.a:lib_a-mktime.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-open.* *libc.a:lib_a-quorem.* *libc.a:lib_a-raise.* *libc.a:lib_a-rand.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-read.* *libc.a:lib_a-refill.* *libc.a:lib_a-rshift.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-sccl.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-srand.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strftime.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-strlen.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strncat.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strptime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strtol.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strupr.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-sysread.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-system.* *libc.a:lib_a-systimes.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-time.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-toascii.* *libc.a:lib_a-tolower.* *libc.a:lib_a-toupper.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-tzset.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-utoa.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-wsetup.* *libc.a:lock.* *libesp_hw_support.a:rtc_clk.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.*) .srodata EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libc.a:creat.* *libc.a:isatty.* *libc.a:lib_a-abs.* *libc.a:lib_a-asctime.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-atoi.* *libc.a:lib_a-atol.* *libc.a:lib_a-bzero.* *libc.a:lib_a-close.* *libc.a:lib_a-creat.* *libc.a:lib_a-ctime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-div.* *libc.a:lib_a-environ.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fclose.* *libc.a:lib_a-fflush.* *libc.a:lib_a-findfp.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-impure.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-isblank.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-islower.* *libc.a:lib_a-isprint.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isupper.* *libc.a:lib_a-itoa.* *libc.a:lib_a-labs.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-memmove.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-memset.* *libc.a:lib_a-mktime.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-open.* *libc.a:lib_a-quorem.* *libc.a:lib_a-raise.* *libc.a:lib_a-rand.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-read.* *libc.a:lib_a-refill.* *libc.a:lib_a-rshift.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-sccl.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-srand.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strftime.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-strlen.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strncat.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strptime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strtol.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strupr.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-sysread.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-system.* *libc.a:lib_a-systimes.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-time.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-toascii.* *libc.a:lib_a-tolower.* *libc.a:lib_a-toupper.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-tzset.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-utoa.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-wsetup.* *libc.a:lock.* *libesp_hw_support.a:rtc_clk.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.*) .srodata.*) + *(.rodata_wlog_error .rodata_wlog_error.*) *(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */ diff --git a/tools/sdk/esp32/lib/libapp_update.a b/tools/sdk/esp32/lib/libapp_update.a index 76b6e8b7bd5..f8dff43e133 100644 Binary files a/tools/sdk/esp32/lib/libapp_update.a and b/tools/sdk/esp32/lib/libapp_update.a differ diff --git a/tools/sdk/esp32/lib/libesp-dsp.a b/tools/sdk/esp32/lib/libesp-dsp.a index 5b060529788..27fd179c920 100644 Binary files a/tools/sdk/esp32/lib/libesp-dsp.a and b/tools/sdk/esp32/lib/libesp-dsp.a differ diff --git a/tools/sdk/esp32/lib/libesp_diagnostics.a b/tools/sdk/esp32/lib/libesp_diagnostics.a index 1d4f9ac409d..0b6b00485f5 100644 Binary files a/tools/sdk/esp32/lib/libesp_diagnostics.a and b/tools/sdk/esp32/lib/libesp_diagnostics.a differ diff --git a/tools/sdk/esp32/lib/libesp_insights.a b/tools/sdk/esp32/lib/libesp_insights.a index 548085bc9e9..1fc099a7de7 100644 Binary files a/tools/sdk/esp32/lib/libesp_insights.a and b/tools/sdk/esp32/lib/libesp_insights.a differ diff --git a/tools/sdk/esp32/lib/librtc_store.a b/tools/sdk/esp32/lib/librtc_store.a index 0f25262a6c3..213d94dd9d9 100644 Binary files a/tools/sdk/esp32/lib/librtc_store.a and b/tools/sdk/esp32/lib/librtc_store.a differ diff --git a/tools/sdk/esp32/sdkconfig b/tools/sdk/esp32/sdkconfig index 35a6e6124a5..19b4562301b 100644 --- a/tools/sdk/esp32/sdkconfig +++ b/tools/sdk/esp32/sdkconfig @@ -1745,6 +1745,7 @@ CONFIG_DIAG_ENABLE_WIFI_METRICS=y CONFIG_DIAG_ENABLE_VARIABLES=y CONFIG_DIAG_VARIABLES_MAX_COUNT=20 CONFIG_DIAG_ENABLE_NETWORK_VARIABLES=y +# CONFIG_DIAG_MORE_NETWORK_VARS is not set # end of Diagnostics # diff --git a/tools/sdk/esp32c3/dio_qspi/include/sdkconfig.h b/tools/sdk/esp32c3/dio_qspi/include/sdkconfig.h index 9bb523782c7..fe94988ed2e 100644 --- a/tools/sdk/esp32c3/dio_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32c3/dio_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "dio" @@ -342,7 +342,14 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 +#define CONFIG_ESP_COREDUMP_STACK_SIZE 1024 +#define CONFIG_ESP_COREDUMP_SUMMARY_STACKDUMP_SIZE 1024 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -387,7 +394,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 2304 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -620,6 +627,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -692,7 +701,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM +#define CONFIG_ESP32_CORE_DUMP_STACK_SIZE CONFIG_ESP_COREDUMP_STACK_SIZE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32c3/dout_qspi/include/sdkconfig.h b/tools/sdk/esp32c3/dout_qspi/include/sdkconfig.h index 8eacf9d7124..a9eddf84fd4 100644 --- a/tools/sdk/esp32c3/dout_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32c3/dout_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "dout" @@ -342,7 +342,14 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 +#define CONFIG_ESP_COREDUMP_STACK_SIZE 1024 +#define CONFIG_ESP_COREDUMP_SUMMARY_STACKDUMP_SIZE 1024 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -387,7 +394,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 2304 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -620,6 +627,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -692,7 +701,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM +#define CONFIG_ESP32_CORE_DUMP_STACK_SIZE CONFIG_ESP_COREDUMP_STACK_SIZE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32c3/include/esp-dsp/modules/fir/include/dsps_fir.h b/tools/sdk/esp32c3/include/esp-dsp/modules/fir/include/dsps_fir.h index b9fb44884ec..a7d3d09003e 100644 --- a/tools/sdk/esp32c3/include/esp-dsp/modules/fir/include/dsps_fir.h +++ b/tools/sdk/esp32c3/include/esp-dsp/modules/fir/include/dsps_fir.h @@ -1,4 +1,4 @@ -// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD +// Copyright 2018-2022 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,9 +28,9 @@ extern "C" /** * @brief Data struct of f32 fir filter * - * This structure used by filter internally. User should access this structure only in case of + * This structure is used by a filter internally. A user should access this structure only in case of * extensions for the DSP Library. - * All fields of this structure initialized by dsps_fir_init_f32(...) function. + * All fields of this structure are initialized by the dsps_fir_init_f32(...) function. */ typedef struct fir_f32_s { float *coeffs; /*!< Pointer to the coefficient buffer.*/ @@ -41,6 +41,23 @@ typedef struct fir_f32_s { int d_pos; /*!< Actual decimation counter.*/ } fir_f32_t; +/** + * @brief Data struct of s16 fir filter + * + * This structure is used by a filter internally. A user should access this structure only in case of + * extensions for the DSP Library. + * All fields of this structure are initialized by the dsps_fir_init_s16(...) function. + */ +typedef struct fir_s16_s{ + int16_t *coeffs; /*!< Pointer to the coefficient buffer.*/ + int16_t *delay; /*!< Pointer to the delay line buffer.*/ + int16_t coeffs_len; /*!< FIR filter coefficients amount.*/ + int16_t pos; /*!< Position in delay line.*/ + int16_t decim; /*!< Decimation factor.*/ + int16_t d_pos; /*!< Actual decimation counter.*/ + int16_t shift; /*!< shift value of the result.*/ +}fir_s16_t; + /** * @brief initialize structure for 32 bit FIR filter * @@ -76,18 +93,37 @@ esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N); */ esp_err_t dsps_fird_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N, int decim, int start_pos); +/** + * @brief initialize structure for 16 bit Decimation FIR filter + * Function initialize structure for 16 bit signed fixed point FIR filter with decimation + * The implementation use ANSI C and could be compiled and run on any platform + * + * @param fir: pointer to fir filter structure, that must be preallocated + * @param coeffs: array with FIR filter coefficients. Must be length N + * @param delay: array for FIR filter delay line. Must be length N + * @param coeffs_len: FIR filter length. Length of coeffs and delay arrays. + * @param decim: decimation factor. + * @param start_pos: initial value of decimation counter. Must be [0..d) + * @param shift: shift position of the result + * + * @return + * - ESP_OK on success + * - One of the error codes from DSP library + */ +esp_err_t dsps_fird_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift); + /**@{*/ /** - * @brief FIR filter + * @brief 32 bit floating point FIR filter * * Function implements FIR filter - * The extension (_ansi) use ANSI C and could be compiled and run on any platform. + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. * The extension (_ae32) is optimized for ESP32 chip. * * @param fir: pointer to fir filter structure, that must be initialized before * @param[in] input: input array - * @param[out] output: array with result of FIR filter + * @param[out] output: array with the result of FIR filter * @param[in] len: length of input and result arrays * * @return @@ -101,24 +137,43 @@ esp_err_t dsps_fir_f32_aes3(fir_f32_t *fir, const float *input, float *output, i /**@{*/ /** - * @brief Decimation FIR filter + * @brief 32 bit floating point Decimation FIR filter * * Function implements FIR filter with decimation - * The extension (_ansi) use ANSI C and could be compiled and run on any platform. + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. * The extension (_ae32) is optimized for ESP32 chip. * * @param fir: pointer to fir filter structure, that must be initialized before * @param input: input array - * @param output: array with result of FIR filter + * @param output: array with the result of FIR filter * @param len: length of input and result arrays * - * @return: function returns amount of samples stored to the output array + * @return: function returns the number of samples stored in the output array * depends on the previous state value could be [0..len/decimation] */ int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len); int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int len); /**@}*/ +/**@{*/ +/** + * @brief 16 bit signed fixed point Decimation FIR filter + * + * Function implements FIR filter with decimation + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. + * The extension (_ae32) is optimized for ESP32 chip. + * + * @param fir: pointer to fir filter structure, that must be initialized before + * @param input: input array + * @param output: array with the result of the FIR filter + * @param len: length of the result array + * + * @return: function returns the number of samples stored in the output array + * depends on the previous state value could be [0..len/decimation] + */ +int32_t dsps_fird_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len); +int32_t dsps_fird_s16_ae32(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len); +/**@}*/ #ifdef __cplusplus } @@ -139,9 +194,16 @@ int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int le #define dsps_fird_f32 dsps_fird_f32_ansi #endif +#if (dsps_fird_s16_ae32_enabled == 1) +#define dsps_fird_s16 dsps_fird_s16_ae32 +#else +#define dsps_fird_s16 dsps_fird_s16_ansi +#endif + #else // CONFIG_DSP_OPTIMIZED #define dsps_fir_f32 dsps_fir_f32_ansi #define dsps_fird_f32 dsps_fird_f32_ansi +#define dsps_fird_s16 dsps_fird_s16_ansi #endif // CONFIG_DSP_OPTIMIZED #endif // _dsps_fir_H_ \ No newline at end of file diff --git a/tools/sdk/esp32c3/include/esp-dsp/modules/fir/include/dsps_fir_platform.h b/tools/sdk/esp32c3/include/esp-dsp/modules/fir/include/dsps_fir_platform.h index fab2656878f..f352fa85fc4 100644 --- a/tools/sdk/esp32c3/include/esp-dsp/modules/fir/include/dsps_fir_platform.h +++ b/tools/sdk/esp32c3/include/esp-dsp/modules/fir/include/dsps_fir_platform.h @@ -12,6 +12,8 @@ #define dsps_fir_f32_ae32_enabled 1 #define dsps_fird_f32_ae32_enabled 1 +#define dsps_fird_s16_ae32_enabled 1 +#define dsps_fird_s16_ae32_mul_enabled 1 #endif // #endif // __XTENSA__ diff --git a/tools/sdk/esp32c3/include/esp_insights/include/esp_insights.h b/tools/sdk/esp32c3/include/esp_insights/include/esp_insights.h index 7e79c261e1e..e1c05a76ff8 100644 --- a/tools/sdk/esp32c3/include/esp_insights/include/esp_insights.h +++ b/tools/sdk/esp32c3/include/esp_insights/include/esp_insights.h @@ -128,7 +128,11 @@ typedef struct { } esp_insights_transport_config_t; /** - * @brief Initialize ESP Insights + * @brief Initialize ESP Insights. + * + * This initializes ESP Insights with the transport (HTTPS/MQTT) as per the sdkconfig. + * To override the transport configuration, please use esp_insights_transport_register() + * and esp_insights_enable(). * * @param[in] config Configuration for ESP Insights. * @@ -137,12 +141,19 @@ typedef struct { esp_err_t esp_insights_init(esp_insights_config_t *config); /** - * @brief Deinitialize ESP Insights + * @brief Deinitialize ESP Insights. + * + * Disconnects the registered transport and disables ESP Insights */ void esp_insights_deinit(void); /** - * @brief Register insights transport + * @brief Register insights transport. + * + * This function should be used only when default transport needs to be overridden. + * + * @note Call esp_insights_enable() + * after registering your own transport to enable Insights. * * @param[in] config Configurations of type \ref esp_insights_transport_config_t * @@ -151,12 +162,15 @@ void esp_insights_deinit(void); esp_err_t esp_insights_transport_register(esp_insights_transport_config_t *config); /** - * @brief Unregister insights transport + * @brief Unregister insights transport. + * + * @note This API does not disable Insights. + * Call esp_insights_disable() to turn off Insights. */ void esp_insights_transport_unregister(void); /** - * @brief Read insights data from buffers and send it to the cloud + * @brief Read insights data from buffers and send it to the cloud. * * Call to this function is asynchronous, it may take some time to send the data. * @@ -164,6 +178,33 @@ void esp_insights_transport_unregister(void); */ esp_err_t esp_insights_send_data(void); +/** + * @brief Enable ESP Insights except transport. + * + * This API is used in conjunction with esp_insights_transport_register() + * to start Insights with custom transport. + * + * @param[in] config Configuration for ESP Insights. + * + * @return ESP_OK on success, appropriate error code otherwise + */ +esp_err_t esp_insights_enable(esp_insights_config_t *config); + +/** + * @brief Disable ESP Insights. + * + * This API does not unregister the transport. + * + * @note Call esp_insights_transport_unregister() to remove the transport. + */ +void esp_insights_disable(void); + +/** + * @brief Returns pointer to the NULL terminated Node ID string. + * + * @return Pointer to a NULL terminated Node ID string. + */ +const char *esp_insights_get_node_id(void); #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32c3/include/rtc_store/include/rtc_store.h b/tools/sdk/esp32c3/include/rtc_store/include/rtc_store.h index 5111ea1d87c..e313dac41d1 100644 --- a/tools/sdk/esp32c3/include/rtc_store/include/rtc_store.h +++ b/tools/sdk/esp32c3/include/rtc_store/include/rtc_store.h @@ -36,6 +36,33 @@ typedef enum { RTC_STORE_EVENT_NON_CRITICAL_DATA_WRITE_FAIL, /*!< Non critical data write failed */ } rtc_store_event_t; +#define SHA_SIZE (CONFIG_APP_RETRIEVE_LEN_ELF_SHA / 2) + +/** + * @brief header record to identify firmware/boot data a record represent + */ +typedef struct { + uint8_t gen_id; // generated on each hard reset + uint8_t boot_cnt; // updated on each soft reboot + char sha_sum[SHA_SIZE]; // elf shasum + bool valid; // +} rtc_store_meta_header_t; + +/** + * @brief get meta header for idx + * + * @param idx idx of meta from records + * @return rtc_store_meta_header_t* + */ +rtc_store_meta_header_t *rtc_store_get_meta_record_by_index(uint8_t idx); + +/** + * @brief get current meta header + * + * @return rtc_store_meta_header_t* + */ +rtc_store_meta_header_t *rtc_store_get_meta_record_current(); + /** * @brief Non critical data header */ @@ -57,43 +84,33 @@ esp_err_t rtc_store_critical_data_write(void *data, size_t len); /** * @brief Read critical data from the RTC storage * - * @param[out] size Number of bytes read - * - * @return Pointer to the data on success, otherwise NULL + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes to read * - * @note It is mandatory to call \ref rtc_store_critical_data_release_and_unlock() if \ref rtc_store_critical_data_read_and_lock() is successful. - * @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock. + * @return Number of bytes read or -1 on error */ -const void *rtc_store_critical_data_read_and_lock(size_t *size); +int rtc_store_critical_data_read(uint8_t *buf, size_t size); /** - * @brief Release the utilized data read using \ref rtc_store_critical_data_read_and_lock() + * @brief Release the size bytes critical data from RTC storage * - * This API releases the utilized data read using \ref rtc_store_critical_data_read_and_lock(). - * Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc. + * This API can be used to remove data from buffer when data is sent asynchronously. * - * @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed). + * @param[in] size Number of bytes to free. * * @return ESP_OK on success, appropriate error code otherwise. - * - * @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock. */ -esp_err_t rtc_store_critical_data_release_and_unlock(size_t size); +esp_err_t rtc_store_critical_data_release(size_t size); /** - * @brief Release the size bytes critical data from RTC storage + * @brief Read critical data from the RTC storage and release that data * - * This API can be used to remove data from buffer when data is sent asynchronously. + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes to read * - * Consider data is read using \ref rtc_store_critical_data_read_and_lock() and sent to cloud asynchronously. - * Since status of data send is unknown, call \ref rtc_store_critical_data_release_and_unlock() with zero length. - * When acknowledgement for data send is received use this API with appropriate size to remove the data from the buffer. - * - * @param[in] size Number of bytes to free. - * - * @return ESP_OK on success, appropriate error code otherwise. + * @return Number of bytes read or -1 on error */ -esp_err_t rtc_store_critical_data_release(size_t size); +int rtc_store_critical_data_read_and_release(uint8_t *buf, size_t size); /** * @brief Write non critical data to the RTC storage @@ -116,35 +133,31 @@ esp_err_t rtc_store_non_critical_data_write(const char *dg, void *data, size_t l /** * @brief Read non critical data from the RTC storage * - * @param[out] size Number of bytes read - * - * @return Pointer to the data on success, otherwise NULL + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes read * - * @note It is mandatory to call \ref rtc_store_non_critical_data_release_and_unlock() if \ref rtc_store_non_critical_data_read_and_lock() is successful. + * @return Number of bytes read or -1 on error */ -const void *rtc_store_non_critical_data_read_and_lock(size_t *size); +int rtc_store_non_critical_data_read(uint8_t *buf, size_t size); /** - * @brief Release the utilized data read using \ref rtc_store_non_critical_data_read_and_lock() - * - * This API releases the utilized data read using \ref rtc_store_non_critical_data_read_and_lock(). - * Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc. + * @brief Release the size bytes non critical data from RTC storage * - * @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_non_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed). + * @param[in] size Number of bytes to free. * * @return ESP_OK on success, appropriate error code otherwise. - * */ -esp_err_t rtc_store_non_critical_data_release_and_unlock(size_t size); +esp_err_t rtc_store_non_critical_data_release(size_t size); /** - * @brief Release the size bytes non critical data from RTC storage + * @brief Read non_critical data from the RTC storage and release that data * - * @param[in] size Number of bytes to free. + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes read * - * @return ESP_OK on success, appropriate error code otherwise. + * @return Number of bytes read or -1 on error */ -esp_err_t rtc_store_non_critical_data_release(size_t size); +int rtc_store_non_critical_data_read_and_release(uint8_t *buf, size_t size); /** * @brief Initializes the RTC storage diff --git a/tools/sdk/esp32c3/lib/libapp_update.a b/tools/sdk/esp32c3/lib/libapp_update.a index 3f82c6359c9..85a9f62f511 100644 Binary files a/tools/sdk/esp32c3/lib/libapp_update.a and b/tools/sdk/esp32c3/lib/libapp_update.a differ diff --git a/tools/sdk/esp32c3/lib/libesp-dsp.a b/tools/sdk/esp32c3/lib/libesp-dsp.a index 9088ed79314..9b6ec317567 100644 Binary files a/tools/sdk/esp32c3/lib/libesp-dsp.a and b/tools/sdk/esp32c3/lib/libesp-dsp.a differ diff --git a/tools/sdk/esp32c3/lib/libesp_diagnostics.a b/tools/sdk/esp32c3/lib/libesp_diagnostics.a index 84bc81a0bd1..cb940d31cfc 100644 Binary files a/tools/sdk/esp32c3/lib/libesp_diagnostics.a and b/tools/sdk/esp32c3/lib/libesp_diagnostics.a differ diff --git a/tools/sdk/esp32c3/lib/libesp_insights.a b/tools/sdk/esp32c3/lib/libesp_insights.a index f28abbe9587..ecaa27dfce7 100644 Binary files a/tools/sdk/esp32c3/lib/libesp_insights.a and b/tools/sdk/esp32c3/lib/libesp_insights.a differ diff --git a/tools/sdk/esp32c3/lib/libesp_system.a b/tools/sdk/esp32c3/lib/libesp_system.a index f78186dae20..8d97f71f6f8 100644 Binary files a/tools/sdk/esp32c3/lib/libesp_system.a and b/tools/sdk/esp32c3/lib/libesp_system.a differ diff --git a/tools/sdk/esp32c3/lib/libespcoredump.a b/tools/sdk/esp32c3/lib/libespcoredump.a index f6a495511fe..6d6ef464aba 100644 Binary files a/tools/sdk/esp32c3/lib/libespcoredump.a and b/tools/sdk/esp32c3/lib/libespcoredump.a differ diff --git a/tools/sdk/esp32c3/lib/libfreertos.a b/tools/sdk/esp32c3/lib/libfreertos.a index 3755d4a4e0f..ff2fd473c6f 100644 Binary files a/tools/sdk/esp32c3/lib/libfreertos.a and b/tools/sdk/esp32c3/lib/libfreertos.a differ diff --git a/tools/sdk/esp32c3/lib/librtc_store.a b/tools/sdk/esp32c3/lib/librtc_store.a index 94947d7838b..2d45d2e2975 100644 Binary files a/tools/sdk/esp32c3/lib/librtc_store.a and b/tools/sdk/esp32c3/lib/librtc_store.a differ diff --git a/tools/sdk/esp32c3/qio_qspi/include/sdkconfig.h b/tools/sdk/esp32c3/qio_qspi/include/sdkconfig.h index 7bf39e5c1a2..504a9d67518 100644 --- a/tools/sdk/esp32c3/qio_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32c3/qio_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "qio" @@ -342,7 +342,14 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 +#define CONFIG_ESP_COREDUMP_STACK_SIZE 1024 +#define CONFIG_ESP_COREDUMP_SUMMARY_STACKDUMP_SIZE 1024 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -387,7 +394,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 2304 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -620,6 +627,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -692,7 +701,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM +#define CONFIG_ESP32_CORE_DUMP_STACK_SIZE CONFIG_ESP_COREDUMP_STACK_SIZE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32c3/qout_qspi/include/sdkconfig.h b/tools/sdk/esp32c3/qout_qspi/include/sdkconfig.h index 10610944805..38f5819707c 100644 --- a/tools/sdk/esp32c3/qout_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32c3/qout_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "qout" @@ -342,7 +342,14 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 +#define CONFIG_ESP_COREDUMP_STACK_SIZE 1024 +#define CONFIG_ESP_COREDUMP_SUMMARY_STACKDUMP_SIZE 1024 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -387,7 +394,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 2304 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -620,6 +627,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -692,7 +701,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM +#define CONFIG_ESP32_CORE_DUMP_STACK_SIZE CONFIG_ESP_COREDUMP_STACK_SIZE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32c3/sdkconfig b/tools/sdk/esp32c3/sdkconfig index 445e74fc11a..cd76db9f00e 100644 --- a/tools/sdk/esp32c3/sdkconfig +++ b/tools/sdk/esp32c3/sdkconfig @@ -138,7 +138,7 @@ CONFIG_PARTITION_TABLE_SINGLE_APP=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.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_coredump.csv" CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table @@ -1055,9 +1055,17 @@ CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # # Core dump # -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=y # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# CONFIG_ESP_COREDUMP_ENABLE_TO_NONE is not set +# CONFIG_ESP_COREDUMP_DATA_FORMAT_BIN is not set +CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=y +CONFIG_ESP_COREDUMP_CHECKSUM_CRC32=y +CONFIG_ESP_COREDUMP_CHECK_BOOT=y +CONFIG_ESP_COREDUMP_ENABLE=y +CONFIG_ESP_COREDUMP_MAX_TASKS_NUM=64 +CONFIG_ESP_COREDUMP_STACK_SIZE=1024 +CONFIG_ESP_COREDUMP_SUMMARY_STACKDUMP_SIZE=1024 # end of Core dump # @@ -1152,7 +1160,7 @@ CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y # CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set # CONFIG_FREERTOS_ASSERT_DISABLE is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 -CONFIG_FREERTOS_ISR_STACKSIZE=1536 +CONFIG_FREERTOS_ISR_STACKSIZE=2096 # CONFIG_FREERTOS_LEGACY_HOOKS is not set CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y @@ -1779,12 +1787,15 @@ CONFIG_DIAG_ENABLE_WIFI_METRICS=y CONFIG_DIAG_ENABLE_VARIABLES=y CONFIG_DIAG_VARIABLES_MAX_COUNT=20 CONFIG_DIAG_ENABLE_NETWORK_VARIABLES=y +# CONFIG_DIAG_MORE_NETWORK_VARS is not set # end of Diagnostics # # ESP Insights # -# CONFIG_ESP_INSIGHTS_ENABLED is not set +CONFIG_ESP_INSIGHTS_ENABLED=y +# CONFIG_ESP_INSIGHTS_DEBUG_ENABLED is not set +CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE=y # CONFIG_ESP_INSIGHTS_TRANSPORT_MQTT is not set CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS=y CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST="https://client.insights.espressif.com" @@ -2130,9 +2141,15 @@ CONFIG_TASK_WDT_TIMEOUT_S=5 # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set CONFIG_TIMER_TASK_STACK_SIZE=4096 CONFIG_SW_COEXIST_ENABLE=y -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set +CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH=y # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y +# CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE is not set +# CONFIG_ESP32_COREDUMP_DATA_FORMAT_BIN is not set +CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF=y +CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32=y +CONFIG_ESP32_ENABLE_COREDUMP=y +CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM=64 +CONFIG_ESP32_CORE_DUMP_STACK_SIZE=1024 CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150 CONFIG_MB_MASTER_DELAY_MS_CONVERT=200 CONFIG_MB_QUEUE_LENGTH=20 diff --git a/tools/sdk/esp32s2/dio_qspi/include/sdkconfig.h b/tools/sdk/esp32s2/dio_qspi/include/sdkconfig.h index 1f64d8db306..54b4c573737 100644 --- a/tools/sdk/esp32s2/dio_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32s2/dio_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "dio" @@ -252,7 +252,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -299,7 +304,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -534,6 +539,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -591,7 +598,10 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s2/dout_qspi/include/sdkconfig.h b/tools/sdk/esp32s2/dout_qspi/include/sdkconfig.h index 989230b1d31..46137f0c542 100644 --- a/tools/sdk/esp32s2/dout_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32s2/dout_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "dout" @@ -252,7 +252,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -299,7 +304,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -534,6 +539,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -591,7 +598,10 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/common/tusb_fifo.h b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/common/tusb_fifo.h index e64ab4b6df7..e36e3a7f3c3 100644 --- a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/common/tusb_fifo.h +++ b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/common/tusb_fifo.h @@ -42,15 +42,13 @@ extern "C" { // within a certain number (see tu_fifo_overflow()). #include "common/tusb_common.h" +#include "osal/osal.h" + +#define tu_fifo_mutex_t osal_mutex_t // mutex is only needed for RTOS // for OS None, we don't get preempted -#define CFG_FIFO_MUTEX (CFG_TUSB_OS != OPT_OS_NONE) - -#if CFG_FIFO_MUTEX -#include "osal/osal.h" -#define tu_fifo_mutex_t osal_mutex_t -#endif +#define CFG_FIFO_MUTEX OSAL_MUTEX_REQUIRED typedef struct { @@ -65,7 +63,7 @@ typedef struct volatile uint16_t wr_idx ; ///< write pointer volatile uint16_t rd_idx ; ///< read pointer -#if CFG_FIFO_MUTEX +#if OSAL_MUTEX_REQUIRED tu_fifo_mutex_t mutex_wr; tu_fifo_mutex_t mutex_rd; #endif @@ -99,13 +97,18 @@ bool tu_fifo_set_overwritable(tu_fifo_t *f, bool overwritable); bool tu_fifo_clear(tu_fifo_t *f); bool tu_fifo_config(tu_fifo_t *f, void* buffer, uint16_t depth, uint16_t item_size, bool overwritable); -#if CFG_FIFO_MUTEX +#if OSAL_MUTEX_REQUIRED TU_ATTR_ALWAYS_INLINE static inline void tu_fifo_config_mutex(tu_fifo_t *f, tu_fifo_mutex_t write_mutex_hdl, tu_fifo_mutex_t read_mutex_hdl) { f->mutex_wr = write_mutex_hdl; f->mutex_rd = read_mutex_hdl; } + +#else + +#define tu_fifo_config_mutex(_f, _wr_mutex, _rd_mutex) + #endif bool tu_fifo_write (tu_fifo_t* f, void const * p_data); diff --git a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/common/tusb_mcu.h b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/common/tusb_mcu.h index 86c68baf80a..bb4225ad596 100644 --- a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/common/tusb_mcu.h +++ b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/common/tusb_mcu.h @@ -281,6 +281,10 @@ // Default Values //--------------------------------------------------------------------+ +#ifndef TUP_MCU_MULTIPLE_CORE +#define TUP_MCU_MULTIPLE_CORE 0 +#endif + #ifndef TUP_DCD_ENDPOINT_MAX #warning "TUP_DCD_ENDPOINT_MAX is not defined for this MCU, default to 8" #define TUP_DCD_ENDPOINT_MAX 8 diff --git a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/device/usbd.h b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/device/usbd.h index 118e53ce46c..ad19d1045b1 100644 --- a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/device/usbd.h +++ b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/device/usbd.h @@ -293,7 +293,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb /* MIDI Streaming (MS) Interface */\ 9, TUSB_DESC_INTERFACE, (uint8_t)((_itfnum) + 1), 0, 2, TUSB_CLASS_AUDIO, AUDIO_SUBCLASS_MIDI_STREAMING, AUDIO_FUNC_PROTOCOL_CODE_UNDEF, 0,\ /* MS Header */\ - 7, TUSB_DESC_CS_INTERFACE, MIDI_CS_INTERFACE_HEADER, U16_TO_U8S_LE(0x0100), U16_TO_U8S_LE(7 + (_numcables) * TUD_MIDI_DESC_JACK_LEN) + 7, TUSB_DESC_CS_INTERFACE, MIDI_CS_INTERFACE_HEADER, U16_TO_U8S_LE(0x0100), U16_TO_U8S_LE(7 + (_numcables) * TUD_MIDI_DESC_JACK_LEN + 2 * TUD_MIDI_DESC_EP_LEN(_numcables)) #define TUD_MIDI_JACKID_IN_EMB(_cablenum) \ (uint8_t)(((_cablenum) - 1) * 4 + 1) @@ -317,6 +317,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb 9, TUSB_DESC_CS_INTERFACE, MIDI_CS_INTERFACE_OUT_JACK, MIDI_JACK_EMBEDDED, TUD_MIDI_JACKID_OUT_EMB(_cablenum), 1, TUD_MIDI_JACKID_IN_EXT(_cablenum), 1, _stridx,\ /* MS Out Jack (External), connected to In Jack Embedded */\ 9, TUSB_DESC_CS_INTERFACE, MIDI_CS_INTERFACE_OUT_JACK, MIDI_JACK_EXTERNAL, TUD_MIDI_JACKID_OUT_EXT(_cablenum), 1, TUD_MIDI_JACKID_IN_EMB(_cablenum), 1, _stridx + #define TUD_MIDI_DESC_JACK(_cablenum) TUD_MIDI_DESC_JACK_DESC(_cablenum, 0) #define TUD_MIDI_DESC_EP_LEN(_numcables) (9 + 4 + (_numcables)) diff --git a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal.h b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal.h index 9d11866dfd7..9cdab288271 100644 --- a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal.h +++ b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal.h @@ -33,17 +33,24 @@ #include "common/tusb_common.h" -// Return immediately -#define OSAL_TIMEOUT_NOTIMEOUT (0) -// Default timeout -#define OSAL_TIMEOUT_NORMAL (10) -// Wait forever -#define OSAL_TIMEOUT_WAIT_FOREVER (UINT32_MAX) +typedef void (*osal_task_func_t)( void * ); +// Timeout +#define OSAL_TIMEOUT_NOTIMEOUT (0) // Return immediately +#define OSAL_TIMEOUT_NORMAL (10) // Default timeout +#define OSAL_TIMEOUT_WAIT_FOREVER (UINT32_MAX) // Wait forever #define OSAL_TIMEOUT_CONTROL_XFER OSAL_TIMEOUT_WAIT_FOREVER -typedef void (*osal_task_func_t)( void * ); +// Mutex is required when using a preempted RTOS or MCU has multiple cores +#if (CFG_TUSB_OS == OPT_OS_NONE) && !TUP_MCU_MULTIPLE_CORE + #define OSAL_MUTEX_REQUIRED 0 + #define OSAL_MUTEX_DEF(_name) +#else + #define OSAL_MUTEX_REQUIRED 1 + #define OSAL_MUTEX_DEF(_name) osal_mutex_def_t _name +#endif +// OS thin implementation #if CFG_TUSB_OS == OPT_OS_NONE #include "osal_none.h" #elif CFG_TUSB_OS == OPT_OS_FREERTOS diff --git a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal_freertos.h b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal_freertos.h index 327aa997030..9393d1f2679 100644 --- a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal_freertos.h +++ b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal_freertos.h @@ -115,7 +115,7 @@ TU_ATTR_ALWAYS_INLINE static inline bool osal_semaphore_post(osal_semaphore_t se } else { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; BaseType_t res = xSemaphoreGiveFromISR(sem_hdl, &xHigherPriorityTaskWoken); #if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3 @@ -189,7 +189,7 @@ TU_ATTR_ALWAYS_INLINE static inline bool osal_queue_send(osal_queue_t qhdl, void } else { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; BaseType_t res = xQueueSendToBackFromISR(qhdl, data, &xHigherPriorityTaskWoken); #if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3 diff --git a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal_none.h b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal_none.h index 9c80e4548d6..1ad1305575b 100644 --- a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal_none.h +++ b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/osal/osal_none.h @@ -82,6 +82,10 @@ TU_ATTR_ALWAYS_INLINE static inline void osal_semaphore_reset(osal_semaphore_t s typedef osal_semaphore_def_t osal_mutex_def_t; typedef osal_semaphore_t osal_mutex_t; +#if OSAL_MUTEX_REQUIRED +// Note: multiple cores MCUs usually do provide IPC API for mutex +// or we can use std atomic function + TU_ATTR_ALWAYS_INLINE static inline osal_mutex_t osal_mutex_create(osal_mutex_def_t* mdef) { mdef->count = 1; @@ -98,6 +102,14 @@ TU_ATTR_ALWAYS_INLINE static inline bool osal_mutex_unlock(osal_mutex_t mutex_hd return osal_semaphore_post(mutex_hdl, false); } +#else + +#define osal_mutex_create(_mdef) (NULL) +#define osal_mutex_lock(_mutex_hdl, _ms) (true) +#define osal_mutex_unlock(_mutex_hdl) (true) + +#endif + //--------------------------------------------------------------------+ // QUEUE API //--------------------------------------------------------------------+ diff --git a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/tusb_option.h b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/tusb_option.h index f95ae62734e..9ca6c794bda 100644 --- a/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/tusb_option.h +++ b/tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/tusb_option.h @@ -299,9 +299,6 @@ typedef int make_iso_compilers_happy; #define CFG_TUSB_OS_INC_PATH #endif -// mutex is only needed for RTOS TODO also required with multiple core MCUs -#define TUSB_OPT_MUTEX (CFG_TUSB_OS != OPT_OS_NONE) - //-------------------------------------------------------------------- // Device Options (Default) //-------------------------------------------------------------------- diff --git a/tools/sdk/esp32s2/include/esp-dsp/modules/fir/include/dsps_fir.h b/tools/sdk/esp32s2/include/esp-dsp/modules/fir/include/dsps_fir.h index b9fb44884ec..a7d3d09003e 100644 --- a/tools/sdk/esp32s2/include/esp-dsp/modules/fir/include/dsps_fir.h +++ b/tools/sdk/esp32s2/include/esp-dsp/modules/fir/include/dsps_fir.h @@ -1,4 +1,4 @@ -// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD +// Copyright 2018-2022 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,9 +28,9 @@ extern "C" /** * @brief Data struct of f32 fir filter * - * This structure used by filter internally. User should access this structure only in case of + * This structure is used by a filter internally. A user should access this structure only in case of * extensions for the DSP Library. - * All fields of this structure initialized by dsps_fir_init_f32(...) function. + * All fields of this structure are initialized by the dsps_fir_init_f32(...) function. */ typedef struct fir_f32_s { float *coeffs; /*!< Pointer to the coefficient buffer.*/ @@ -41,6 +41,23 @@ typedef struct fir_f32_s { int d_pos; /*!< Actual decimation counter.*/ } fir_f32_t; +/** + * @brief Data struct of s16 fir filter + * + * This structure is used by a filter internally. A user should access this structure only in case of + * extensions for the DSP Library. + * All fields of this structure are initialized by the dsps_fir_init_s16(...) function. + */ +typedef struct fir_s16_s{ + int16_t *coeffs; /*!< Pointer to the coefficient buffer.*/ + int16_t *delay; /*!< Pointer to the delay line buffer.*/ + int16_t coeffs_len; /*!< FIR filter coefficients amount.*/ + int16_t pos; /*!< Position in delay line.*/ + int16_t decim; /*!< Decimation factor.*/ + int16_t d_pos; /*!< Actual decimation counter.*/ + int16_t shift; /*!< shift value of the result.*/ +}fir_s16_t; + /** * @brief initialize structure for 32 bit FIR filter * @@ -76,18 +93,37 @@ esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N); */ esp_err_t dsps_fird_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N, int decim, int start_pos); +/** + * @brief initialize structure for 16 bit Decimation FIR filter + * Function initialize structure for 16 bit signed fixed point FIR filter with decimation + * The implementation use ANSI C and could be compiled and run on any platform + * + * @param fir: pointer to fir filter structure, that must be preallocated + * @param coeffs: array with FIR filter coefficients. Must be length N + * @param delay: array for FIR filter delay line. Must be length N + * @param coeffs_len: FIR filter length. Length of coeffs and delay arrays. + * @param decim: decimation factor. + * @param start_pos: initial value of decimation counter. Must be [0..d) + * @param shift: shift position of the result + * + * @return + * - ESP_OK on success + * - One of the error codes from DSP library + */ +esp_err_t dsps_fird_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift); + /**@{*/ /** - * @brief FIR filter + * @brief 32 bit floating point FIR filter * * Function implements FIR filter - * The extension (_ansi) use ANSI C and could be compiled and run on any platform. + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. * The extension (_ae32) is optimized for ESP32 chip. * * @param fir: pointer to fir filter structure, that must be initialized before * @param[in] input: input array - * @param[out] output: array with result of FIR filter + * @param[out] output: array with the result of FIR filter * @param[in] len: length of input and result arrays * * @return @@ -101,24 +137,43 @@ esp_err_t dsps_fir_f32_aes3(fir_f32_t *fir, const float *input, float *output, i /**@{*/ /** - * @brief Decimation FIR filter + * @brief 32 bit floating point Decimation FIR filter * * Function implements FIR filter with decimation - * The extension (_ansi) use ANSI C and could be compiled and run on any platform. + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. * The extension (_ae32) is optimized for ESP32 chip. * * @param fir: pointer to fir filter structure, that must be initialized before * @param input: input array - * @param output: array with result of FIR filter + * @param output: array with the result of FIR filter * @param len: length of input and result arrays * - * @return: function returns amount of samples stored to the output array + * @return: function returns the number of samples stored in the output array * depends on the previous state value could be [0..len/decimation] */ int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len); int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int len); /**@}*/ +/**@{*/ +/** + * @brief 16 bit signed fixed point Decimation FIR filter + * + * Function implements FIR filter with decimation + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. + * The extension (_ae32) is optimized for ESP32 chip. + * + * @param fir: pointer to fir filter structure, that must be initialized before + * @param input: input array + * @param output: array with the result of the FIR filter + * @param len: length of the result array + * + * @return: function returns the number of samples stored in the output array + * depends on the previous state value could be [0..len/decimation] + */ +int32_t dsps_fird_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len); +int32_t dsps_fird_s16_ae32(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len); +/**@}*/ #ifdef __cplusplus } @@ -139,9 +194,16 @@ int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int le #define dsps_fird_f32 dsps_fird_f32_ansi #endif +#if (dsps_fird_s16_ae32_enabled == 1) +#define dsps_fird_s16 dsps_fird_s16_ae32 +#else +#define dsps_fird_s16 dsps_fird_s16_ansi +#endif + #else // CONFIG_DSP_OPTIMIZED #define dsps_fir_f32 dsps_fir_f32_ansi #define dsps_fird_f32 dsps_fird_f32_ansi +#define dsps_fird_s16 dsps_fird_s16_ansi #endif // CONFIG_DSP_OPTIMIZED #endif // _dsps_fir_H_ \ No newline at end of file diff --git a/tools/sdk/esp32s2/include/esp-dsp/modules/fir/include/dsps_fir_platform.h b/tools/sdk/esp32s2/include/esp-dsp/modules/fir/include/dsps_fir_platform.h index fab2656878f..f352fa85fc4 100644 --- a/tools/sdk/esp32s2/include/esp-dsp/modules/fir/include/dsps_fir_platform.h +++ b/tools/sdk/esp32s2/include/esp-dsp/modules/fir/include/dsps_fir_platform.h @@ -12,6 +12,8 @@ #define dsps_fir_f32_ae32_enabled 1 #define dsps_fird_f32_ae32_enabled 1 +#define dsps_fird_s16_ae32_enabled 1 +#define dsps_fird_s16_ae32_mul_enabled 1 #endif // #endif // __XTENSA__ diff --git a/tools/sdk/esp32s2/include/esp_insights/include/esp_insights.h b/tools/sdk/esp32s2/include/esp_insights/include/esp_insights.h index 7e79c261e1e..e1c05a76ff8 100644 --- a/tools/sdk/esp32s2/include/esp_insights/include/esp_insights.h +++ b/tools/sdk/esp32s2/include/esp_insights/include/esp_insights.h @@ -128,7 +128,11 @@ typedef struct { } esp_insights_transport_config_t; /** - * @brief Initialize ESP Insights + * @brief Initialize ESP Insights. + * + * This initializes ESP Insights with the transport (HTTPS/MQTT) as per the sdkconfig. + * To override the transport configuration, please use esp_insights_transport_register() + * and esp_insights_enable(). * * @param[in] config Configuration for ESP Insights. * @@ -137,12 +141,19 @@ typedef struct { esp_err_t esp_insights_init(esp_insights_config_t *config); /** - * @brief Deinitialize ESP Insights + * @brief Deinitialize ESP Insights. + * + * Disconnects the registered transport and disables ESP Insights */ void esp_insights_deinit(void); /** - * @brief Register insights transport + * @brief Register insights transport. + * + * This function should be used only when default transport needs to be overridden. + * + * @note Call esp_insights_enable() + * after registering your own transport to enable Insights. * * @param[in] config Configurations of type \ref esp_insights_transport_config_t * @@ -151,12 +162,15 @@ void esp_insights_deinit(void); esp_err_t esp_insights_transport_register(esp_insights_transport_config_t *config); /** - * @brief Unregister insights transport + * @brief Unregister insights transport. + * + * @note This API does not disable Insights. + * Call esp_insights_disable() to turn off Insights. */ void esp_insights_transport_unregister(void); /** - * @brief Read insights data from buffers and send it to the cloud + * @brief Read insights data from buffers and send it to the cloud. * * Call to this function is asynchronous, it may take some time to send the data. * @@ -164,6 +178,33 @@ void esp_insights_transport_unregister(void); */ esp_err_t esp_insights_send_data(void); +/** + * @brief Enable ESP Insights except transport. + * + * This API is used in conjunction with esp_insights_transport_register() + * to start Insights with custom transport. + * + * @param[in] config Configuration for ESP Insights. + * + * @return ESP_OK on success, appropriate error code otherwise + */ +esp_err_t esp_insights_enable(esp_insights_config_t *config); + +/** + * @brief Disable ESP Insights. + * + * This API does not unregister the transport. + * + * @note Call esp_insights_transport_unregister() to remove the transport. + */ +void esp_insights_disable(void); + +/** + * @brief Returns pointer to the NULL terminated Node ID string. + * + * @return Pointer to a NULL terminated Node ID string. + */ +const char *esp_insights_get_node_id(void); #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/rtc_store/include/rtc_store.h b/tools/sdk/esp32s2/include/rtc_store/include/rtc_store.h index 5111ea1d87c..e313dac41d1 100644 --- a/tools/sdk/esp32s2/include/rtc_store/include/rtc_store.h +++ b/tools/sdk/esp32s2/include/rtc_store/include/rtc_store.h @@ -36,6 +36,33 @@ typedef enum { RTC_STORE_EVENT_NON_CRITICAL_DATA_WRITE_FAIL, /*!< Non critical data write failed */ } rtc_store_event_t; +#define SHA_SIZE (CONFIG_APP_RETRIEVE_LEN_ELF_SHA / 2) + +/** + * @brief header record to identify firmware/boot data a record represent + */ +typedef struct { + uint8_t gen_id; // generated on each hard reset + uint8_t boot_cnt; // updated on each soft reboot + char sha_sum[SHA_SIZE]; // elf shasum + bool valid; // +} rtc_store_meta_header_t; + +/** + * @brief get meta header for idx + * + * @param idx idx of meta from records + * @return rtc_store_meta_header_t* + */ +rtc_store_meta_header_t *rtc_store_get_meta_record_by_index(uint8_t idx); + +/** + * @brief get current meta header + * + * @return rtc_store_meta_header_t* + */ +rtc_store_meta_header_t *rtc_store_get_meta_record_current(); + /** * @brief Non critical data header */ @@ -57,43 +84,33 @@ esp_err_t rtc_store_critical_data_write(void *data, size_t len); /** * @brief Read critical data from the RTC storage * - * @param[out] size Number of bytes read - * - * @return Pointer to the data on success, otherwise NULL + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes to read * - * @note It is mandatory to call \ref rtc_store_critical_data_release_and_unlock() if \ref rtc_store_critical_data_read_and_lock() is successful. - * @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock. + * @return Number of bytes read or -1 on error */ -const void *rtc_store_critical_data_read_and_lock(size_t *size); +int rtc_store_critical_data_read(uint8_t *buf, size_t size); /** - * @brief Release the utilized data read using \ref rtc_store_critical_data_read_and_lock() + * @brief Release the size bytes critical data from RTC storage * - * This API releases the utilized data read using \ref rtc_store_critical_data_read_and_lock(). - * Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc. + * This API can be used to remove data from buffer when data is sent asynchronously. * - * @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed). + * @param[in] size Number of bytes to free. * * @return ESP_OK on success, appropriate error code otherwise. - * - * @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock. */ -esp_err_t rtc_store_critical_data_release_and_unlock(size_t size); +esp_err_t rtc_store_critical_data_release(size_t size); /** - * @brief Release the size bytes critical data from RTC storage + * @brief Read critical data from the RTC storage and release that data * - * This API can be used to remove data from buffer when data is sent asynchronously. + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes to read * - * Consider data is read using \ref rtc_store_critical_data_read_and_lock() and sent to cloud asynchronously. - * Since status of data send is unknown, call \ref rtc_store_critical_data_release_and_unlock() with zero length. - * When acknowledgement for data send is received use this API with appropriate size to remove the data from the buffer. - * - * @param[in] size Number of bytes to free. - * - * @return ESP_OK on success, appropriate error code otherwise. + * @return Number of bytes read or -1 on error */ -esp_err_t rtc_store_critical_data_release(size_t size); +int rtc_store_critical_data_read_and_release(uint8_t *buf, size_t size); /** * @brief Write non critical data to the RTC storage @@ -116,35 +133,31 @@ esp_err_t rtc_store_non_critical_data_write(const char *dg, void *data, size_t l /** * @brief Read non critical data from the RTC storage * - * @param[out] size Number of bytes read - * - * @return Pointer to the data on success, otherwise NULL + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes read * - * @note It is mandatory to call \ref rtc_store_non_critical_data_release_and_unlock() if \ref rtc_store_non_critical_data_read_and_lock() is successful. + * @return Number of bytes read or -1 on error */ -const void *rtc_store_non_critical_data_read_and_lock(size_t *size); +int rtc_store_non_critical_data_read(uint8_t *buf, size_t size); /** - * @brief Release the utilized data read using \ref rtc_store_non_critical_data_read_and_lock() - * - * This API releases the utilized data read using \ref rtc_store_non_critical_data_read_and_lock(). - * Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc. + * @brief Release the size bytes non critical data from RTC storage * - * @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_non_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed). + * @param[in] size Number of bytes to free. * * @return ESP_OK on success, appropriate error code otherwise. - * */ -esp_err_t rtc_store_non_critical_data_release_and_unlock(size_t size); +esp_err_t rtc_store_non_critical_data_release(size_t size); /** - * @brief Release the size bytes non critical data from RTC storage + * @brief Read non_critical data from the RTC storage and release that data * - * @param[in] size Number of bytes to free. + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes read * - * @return ESP_OK on success, appropriate error code otherwise. + * @return Number of bytes read or -1 on error */ -esp_err_t rtc_store_non_critical_data_release(size_t size); +int rtc_store_non_critical_data_read_and_release(uint8_t *buf, size_t size); /** * @brief Initializes the RTC storage diff --git a/tools/sdk/esp32s2/ld/sections.ld b/tools/sdk/esp32s2/ld/sections.ld index 9a3b2b17306..cd01f961cb2 100644 --- a/tools/sdk/esp32s2/ld/sections.ld +++ b/tools/sdk/esp32s2/ld/sections.ld @@ -372,8 +372,8 @@ SECTIONS *(.ext_ram.bss*) *(.bss .bss.*) - *(.dynbss .dynsbss .gnu.linkonce.b .gnu.linkonce.b.* .gnu.linkonce.sb .gnu.linkonce.sb.* .gnu.linkonce.sb2 .gnu.linkonce.sb2.* .sbss .sbss.* .sbss2 .sbss2.* .scommon .share.mem) *(.ext_ram.bss .ext_ram.bss.*) + *(.dynbss .dynsbss .gnu.linkonce.b .gnu.linkonce.b.* .gnu.linkonce.sb .gnu.linkonce.sb.* .gnu.linkonce.sb2 .gnu.linkonce.sb2.* .sbss .sbss.* .sbss2 .sbss2.* .scommon .share.mem) *(COMMON) _bt_bss_start = ABSOLUTE(.); *libbt.a:(.bss .bss.* COMMON) diff --git a/tools/sdk/esp32s2/lib/libapp_update.a b/tools/sdk/esp32s2/lib/libapp_update.a index bc90eddf757..379574751f0 100644 Binary files a/tools/sdk/esp32s2/lib/libapp_update.a and b/tools/sdk/esp32s2/lib/libapp_update.a differ diff --git a/tools/sdk/esp32s2/lib/libarduino_tinyusb.a b/tools/sdk/esp32s2/lib/libarduino_tinyusb.a index 3419a0d2a7a..bcaac7c4834 100644 Binary files a/tools/sdk/esp32s2/lib/libarduino_tinyusb.a and b/tools/sdk/esp32s2/lib/libarduino_tinyusb.a differ diff --git a/tools/sdk/esp32s2/lib/libesp-dsp.a b/tools/sdk/esp32s2/lib/libesp-dsp.a index 0f711517e4b..e49080ec3c7 100644 Binary files a/tools/sdk/esp32s2/lib/libesp-dsp.a and b/tools/sdk/esp32s2/lib/libesp-dsp.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_diagnostics.a b/tools/sdk/esp32s2/lib/libesp_diagnostics.a index d0f3227d320..5fb9975d2d1 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_diagnostics.a and b/tools/sdk/esp32s2/lib/libesp_diagnostics.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_insights.a b/tools/sdk/esp32s2/lib/libesp_insights.a index eccdbdad6f4..18990409aca 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_insights.a and b/tools/sdk/esp32s2/lib/libesp_insights.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_system.a b/tools/sdk/esp32s2/lib/libesp_system.a index 2bc580b808a..8e5aa59eca6 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_system.a and b/tools/sdk/esp32s2/lib/libesp_system.a differ diff --git a/tools/sdk/esp32s2/lib/libespcoredump.a b/tools/sdk/esp32s2/lib/libespcoredump.a index 89ed4a88ab0..092eab72be7 100644 Binary files a/tools/sdk/esp32s2/lib/libespcoredump.a and b/tools/sdk/esp32s2/lib/libespcoredump.a differ diff --git a/tools/sdk/esp32s2/lib/libfreertos.a b/tools/sdk/esp32s2/lib/libfreertos.a index 789b418f4ce..a47cdb21797 100644 Binary files a/tools/sdk/esp32s2/lib/libfreertos.a and b/tools/sdk/esp32s2/lib/libfreertos.a differ diff --git a/tools/sdk/esp32s2/lib/librtc_store.a b/tools/sdk/esp32s2/lib/librtc_store.a index 62457705e78..e51ff550799 100644 Binary files a/tools/sdk/esp32s2/lib/librtc_store.a and b/tools/sdk/esp32s2/lib/librtc_store.a differ diff --git a/tools/sdk/esp32s2/qio_qspi/include/sdkconfig.h b/tools/sdk/esp32s2/qio_qspi/include/sdkconfig.h index 942d174295a..af0742caa20 100644 --- a/tools/sdk/esp32s2/qio_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32s2/qio_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "qio" @@ -252,7 +252,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -299,7 +304,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -534,6 +539,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -591,7 +598,10 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s2/qout_qspi/include/sdkconfig.h b/tools/sdk/esp32s2/qout_qspi/include/sdkconfig.h index d26acbf44d3..16a4a8435fc 100644 --- a/tools/sdk/esp32s2/qout_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32s2/qout_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "qout" @@ -252,7 +252,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -299,7 +304,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -534,6 +539,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -591,7 +598,10 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s2/sdkconfig b/tools/sdk/esp32s2/sdkconfig index 84daafe6cda..0f995ff37a9 100644 --- a/tools/sdk/esp32s2/sdkconfig +++ b/tools/sdk/esp32s2/sdkconfig @@ -138,7 +138,7 @@ CONFIG_PARTITION_TABLE_SINGLE_APP=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.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_coredump.csv" CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table @@ -776,9 +776,15 @@ CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # # Core dump # -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=y # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# CONFIG_ESP_COREDUMP_ENABLE_TO_NONE is not set +# CONFIG_ESP_COREDUMP_DATA_FORMAT_BIN is not set +CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=y +CONFIG_ESP_COREDUMP_CHECKSUM_CRC32=y +CONFIG_ESP_COREDUMP_CHECK_BOOT=y +CONFIG_ESP_COREDUMP_ENABLE=y +CONFIG_ESP_COREDUMP_MAX_TASKS_NUM=64 # end of Core dump # @@ -874,7 +880,7 @@ CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y # CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set # CONFIG_FREERTOS_ASSERT_DISABLE is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024 -CONFIG_FREERTOS_ISR_STACKSIZE=1536 +CONFIG_FREERTOS_ISR_STACKSIZE=2096 # CONFIG_FREERTOS_LEGACY_HOOKS is not set CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y @@ -1515,12 +1521,15 @@ CONFIG_DIAG_ENABLE_WIFI_METRICS=y CONFIG_DIAG_ENABLE_VARIABLES=y CONFIG_DIAG_VARIABLES_MAX_COUNT=20 CONFIG_DIAG_ENABLE_NETWORK_VARIABLES=y +# CONFIG_DIAG_MORE_NETWORK_VARS is not set # end of Diagnostics # # ESP Insights # -# CONFIG_ESP_INSIGHTS_ENABLED is not set +CONFIG_ESP_INSIGHTS_ENABLED=y +# CONFIG_ESP_INSIGHTS_DEBUG_ENABLED is not set +CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE=y # CONFIG_ESP_INSIGHTS_TRANSPORT_MQTT is not set CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS=y CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST="https://client.insights.espressif.com" @@ -1695,9 +1704,14 @@ CONFIG_TASK_WDT_TIMEOUT_S=5 # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set CONFIG_TIMER_TASK_STACK_SIZE=4096 # CONFIG_EXTERNAL_COEX_ENABLE is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set +CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH=y # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y +# CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE is not set +# CONFIG_ESP32_COREDUMP_DATA_FORMAT_BIN is not set +CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF=y +CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32=y +CONFIG_ESP32_ENABLE_COREDUMP=y +CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM=64 CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150 CONFIG_MB_MASTER_DELAY_MS_CONVERT=200 CONFIG_MB_QUEUE_LENGTH=20 diff --git a/tools/sdk/esp32s3/dio_opi/include/sdkconfig.h b/tools/sdk/esp32s3/dio_opi/include/sdkconfig.h index e2a50f6e339..4ffaa46695c 100644 --- a/tools/sdk/esp32s3/dio_opi/include/sdkconfig.h +++ b/tools/sdk/esp32s3/dio_opi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "dio" @@ -804,7 +804,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -850,7 +855,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -1087,6 +1092,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -1154,8 +1161,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM #define CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s3/dio_opi/libesp_system.a b/tools/sdk/esp32s3/dio_opi/libesp_system.a index fbbf64d4ad4..cbf980f33ad 100644 Binary files a/tools/sdk/esp32s3/dio_opi/libesp_system.a and b/tools/sdk/esp32s3/dio_opi/libesp_system.a differ diff --git a/tools/sdk/esp32s3/dio_opi/libfreertos.a b/tools/sdk/esp32s3/dio_opi/libfreertos.a index 23cb239e1e0..3f93fbb3433 100644 Binary files a/tools/sdk/esp32s3/dio_opi/libfreertos.a and b/tools/sdk/esp32s3/dio_opi/libfreertos.a differ diff --git a/tools/sdk/esp32s3/dio_opi/sections.ld b/tools/sdk/esp32s3/dio_opi/sections.ld index b7d7e210c62..48050f8f87f 100644 --- a/tools/sdk/esp32s3/dio_opi/sections.ld +++ b/tools/sdk/esp32s3/dio_opi/sections.ld @@ -361,8 +361,8 @@ SECTIONS *(.ext_ram.bss*) *(.bss .bss.*) - *(.ext_ram.bss .ext_ram.bss.*) *(.dynbss .dynsbss .gnu.linkonce.b .gnu.linkonce.b.* .gnu.linkonce.sb .gnu.linkonce.sb.* .gnu.linkonce.sb2 .gnu.linkonce.sb2.* .sbss .sbss.* .sbss2 .sbss2.* .scommon .share.mem) + *(.ext_ram.bss .ext_ram.bss.*) *(COMMON) _bt_bss_start = ABSOLUTE(.); *libbt.a:(.bss .bss.* COMMON) diff --git a/tools/sdk/esp32s3/dio_qspi/include/sdkconfig.h b/tools/sdk/esp32s3/dio_qspi/include/sdkconfig.h index 15af4ffa055..0c5907b7050 100644 --- a/tools/sdk/esp32s3/dio_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32s3/dio_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "dio" @@ -802,7 +802,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -848,7 +853,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -1085,6 +1090,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -1152,8 +1159,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM #define CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s3/dio_qspi/libesp_system.a b/tools/sdk/esp32s3/dio_qspi/libesp_system.a index 1bc198de0d0..a059d7f2d31 100644 Binary files a/tools/sdk/esp32s3/dio_qspi/libesp_system.a and b/tools/sdk/esp32s3/dio_qspi/libesp_system.a differ diff --git a/tools/sdk/esp32s3/dio_qspi/libfreertos.a b/tools/sdk/esp32s3/dio_qspi/libfreertos.a index 23cb239e1e0..3f93fbb3433 100644 Binary files a/tools/sdk/esp32s3/dio_qspi/libfreertos.a and b/tools/sdk/esp32s3/dio_qspi/libfreertos.a differ diff --git a/tools/sdk/esp32s3/dio_qspi/sections.ld b/tools/sdk/esp32s3/dio_qspi/sections.ld index 42f620ccb9a..6efac6846cc 100644 --- a/tools/sdk/esp32s3/dio_qspi/sections.ld +++ b/tools/sdk/esp32s3/dio_qspi/sections.ld @@ -476,8 +476,8 @@ SECTIONS { _flash_rodata_start = ABSOLUTE(.); - *(EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .rodata EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .rodata.* EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .sdata2 EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .sdata2.* EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .srodata EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .srodata.*) *(.rodata_wlog_error .rodata_wlog_error.*) + *(EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .rodata EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .rodata.* EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .sdata2 EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .sdata2.* EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .srodata EXCLUDE_FILE(*libgcov.a *libphy.a *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:spiram_psram.* *libesp_system.a:esp_err.* *libesp_system.a:ubsan.* *libgcc.a:_divsf3.* *libhal.a:cpu_hal.* *libhal.a:i2c_hal_iram.* *libhal.a:ledc_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_encrypt_hal_iram.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:spi_flash_hal_iram.* *libhal.a:spi_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libheap.a:heap_tlsf.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libnewlib.a:abort.* *libnewlib.a:assert.* *libnewlib.a:heap.* *libnewlib.a:stdatomic.* *libsoc.a:lldesc.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_boya.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_mxic_opi.* *libspi_flash.a:spi_flash_chip_th.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_timing_tuning.* *libspi_flash.a:spi_timing_config.*) .srodata.*) *(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */ *(.gnu.linkonce.r.*) diff --git a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/common/tusb_fifo.h b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/common/tusb_fifo.h index e64ab4b6df7..e36e3a7f3c3 100644 --- a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/common/tusb_fifo.h +++ b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/common/tusb_fifo.h @@ -42,15 +42,13 @@ extern "C" { // within a certain number (see tu_fifo_overflow()). #include "common/tusb_common.h" +#include "osal/osal.h" + +#define tu_fifo_mutex_t osal_mutex_t // mutex is only needed for RTOS // for OS None, we don't get preempted -#define CFG_FIFO_MUTEX (CFG_TUSB_OS != OPT_OS_NONE) - -#if CFG_FIFO_MUTEX -#include "osal/osal.h" -#define tu_fifo_mutex_t osal_mutex_t -#endif +#define CFG_FIFO_MUTEX OSAL_MUTEX_REQUIRED typedef struct { @@ -65,7 +63,7 @@ typedef struct volatile uint16_t wr_idx ; ///< write pointer volatile uint16_t rd_idx ; ///< read pointer -#if CFG_FIFO_MUTEX +#if OSAL_MUTEX_REQUIRED tu_fifo_mutex_t mutex_wr; tu_fifo_mutex_t mutex_rd; #endif @@ -99,13 +97,18 @@ bool tu_fifo_set_overwritable(tu_fifo_t *f, bool overwritable); bool tu_fifo_clear(tu_fifo_t *f); bool tu_fifo_config(tu_fifo_t *f, void* buffer, uint16_t depth, uint16_t item_size, bool overwritable); -#if CFG_FIFO_MUTEX +#if OSAL_MUTEX_REQUIRED TU_ATTR_ALWAYS_INLINE static inline void tu_fifo_config_mutex(tu_fifo_t *f, tu_fifo_mutex_t write_mutex_hdl, tu_fifo_mutex_t read_mutex_hdl) { f->mutex_wr = write_mutex_hdl; f->mutex_rd = read_mutex_hdl; } + +#else + +#define tu_fifo_config_mutex(_f, _wr_mutex, _rd_mutex) + #endif bool tu_fifo_write (tu_fifo_t* f, void const * p_data); diff --git a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/common/tusb_mcu.h b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/common/tusb_mcu.h index 86c68baf80a..bb4225ad596 100644 --- a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/common/tusb_mcu.h +++ b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/common/tusb_mcu.h @@ -281,6 +281,10 @@ // Default Values //--------------------------------------------------------------------+ +#ifndef TUP_MCU_MULTIPLE_CORE +#define TUP_MCU_MULTIPLE_CORE 0 +#endif + #ifndef TUP_DCD_ENDPOINT_MAX #warning "TUP_DCD_ENDPOINT_MAX is not defined for this MCU, default to 8" #define TUP_DCD_ENDPOINT_MAX 8 diff --git a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/device/usbd.h b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/device/usbd.h index 118e53ce46c..ad19d1045b1 100644 --- a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/device/usbd.h +++ b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/device/usbd.h @@ -293,7 +293,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb /* MIDI Streaming (MS) Interface */\ 9, TUSB_DESC_INTERFACE, (uint8_t)((_itfnum) + 1), 0, 2, TUSB_CLASS_AUDIO, AUDIO_SUBCLASS_MIDI_STREAMING, AUDIO_FUNC_PROTOCOL_CODE_UNDEF, 0,\ /* MS Header */\ - 7, TUSB_DESC_CS_INTERFACE, MIDI_CS_INTERFACE_HEADER, U16_TO_U8S_LE(0x0100), U16_TO_U8S_LE(7 + (_numcables) * TUD_MIDI_DESC_JACK_LEN) + 7, TUSB_DESC_CS_INTERFACE, MIDI_CS_INTERFACE_HEADER, U16_TO_U8S_LE(0x0100), U16_TO_U8S_LE(7 + (_numcables) * TUD_MIDI_DESC_JACK_LEN + 2 * TUD_MIDI_DESC_EP_LEN(_numcables)) #define TUD_MIDI_JACKID_IN_EMB(_cablenum) \ (uint8_t)(((_cablenum) - 1) * 4 + 1) @@ -317,6 +317,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb 9, TUSB_DESC_CS_INTERFACE, MIDI_CS_INTERFACE_OUT_JACK, MIDI_JACK_EMBEDDED, TUD_MIDI_JACKID_OUT_EMB(_cablenum), 1, TUD_MIDI_JACKID_IN_EXT(_cablenum), 1, _stridx,\ /* MS Out Jack (External), connected to In Jack Embedded */\ 9, TUSB_DESC_CS_INTERFACE, MIDI_CS_INTERFACE_OUT_JACK, MIDI_JACK_EXTERNAL, TUD_MIDI_JACKID_OUT_EXT(_cablenum), 1, TUD_MIDI_JACKID_IN_EMB(_cablenum), 1, _stridx + #define TUD_MIDI_DESC_JACK(_cablenum) TUD_MIDI_DESC_JACK_DESC(_cablenum, 0) #define TUD_MIDI_DESC_EP_LEN(_numcables) (9 + 4 + (_numcables)) diff --git a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal.h b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal.h index 9d11866dfd7..9cdab288271 100644 --- a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal.h +++ b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal.h @@ -33,17 +33,24 @@ #include "common/tusb_common.h" -// Return immediately -#define OSAL_TIMEOUT_NOTIMEOUT (0) -// Default timeout -#define OSAL_TIMEOUT_NORMAL (10) -// Wait forever -#define OSAL_TIMEOUT_WAIT_FOREVER (UINT32_MAX) +typedef void (*osal_task_func_t)( void * ); +// Timeout +#define OSAL_TIMEOUT_NOTIMEOUT (0) // Return immediately +#define OSAL_TIMEOUT_NORMAL (10) // Default timeout +#define OSAL_TIMEOUT_WAIT_FOREVER (UINT32_MAX) // Wait forever #define OSAL_TIMEOUT_CONTROL_XFER OSAL_TIMEOUT_WAIT_FOREVER -typedef void (*osal_task_func_t)( void * ); +// Mutex is required when using a preempted RTOS or MCU has multiple cores +#if (CFG_TUSB_OS == OPT_OS_NONE) && !TUP_MCU_MULTIPLE_CORE + #define OSAL_MUTEX_REQUIRED 0 + #define OSAL_MUTEX_DEF(_name) +#else + #define OSAL_MUTEX_REQUIRED 1 + #define OSAL_MUTEX_DEF(_name) osal_mutex_def_t _name +#endif +// OS thin implementation #if CFG_TUSB_OS == OPT_OS_NONE #include "osal_none.h" #elif CFG_TUSB_OS == OPT_OS_FREERTOS diff --git a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal_freertos.h b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal_freertos.h index 327aa997030..9393d1f2679 100644 --- a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal_freertos.h +++ b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal_freertos.h @@ -115,7 +115,7 @@ TU_ATTR_ALWAYS_INLINE static inline bool osal_semaphore_post(osal_semaphore_t se } else { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; BaseType_t res = xSemaphoreGiveFromISR(sem_hdl, &xHigherPriorityTaskWoken); #if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3 @@ -189,7 +189,7 @@ TU_ATTR_ALWAYS_INLINE static inline bool osal_queue_send(osal_queue_t qhdl, void } else { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; BaseType_t res = xQueueSendToBackFromISR(qhdl, data, &xHigherPriorityTaskWoken); #if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3 diff --git a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal_none.h b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal_none.h index 9c80e4548d6..1ad1305575b 100644 --- a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal_none.h +++ b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/osal/osal_none.h @@ -82,6 +82,10 @@ TU_ATTR_ALWAYS_INLINE static inline void osal_semaphore_reset(osal_semaphore_t s typedef osal_semaphore_def_t osal_mutex_def_t; typedef osal_semaphore_t osal_mutex_t; +#if OSAL_MUTEX_REQUIRED +// Note: multiple cores MCUs usually do provide IPC API for mutex +// or we can use std atomic function + TU_ATTR_ALWAYS_INLINE static inline osal_mutex_t osal_mutex_create(osal_mutex_def_t* mdef) { mdef->count = 1; @@ -98,6 +102,14 @@ TU_ATTR_ALWAYS_INLINE static inline bool osal_mutex_unlock(osal_mutex_t mutex_hd return osal_semaphore_post(mutex_hdl, false); } +#else + +#define osal_mutex_create(_mdef) (NULL) +#define osal_mutex_lock(_mutex_hdl, _ms) (true) +#define osal_mutex_unlock(_mutex_hdl) (true) + +#endif + //--------------------------------------------------------------------+ // QUEUE API //--------------------------------------------------------------------+ diff --git a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/tusb_option.h b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/tusb_option.h index f95ae62734e..9ca6c794bda 100644 --- a/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/tusb_option.h +++ b/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src/tusb_option.h @@ -299,9 +299,6 @@ typedef int make_iso_compilers_happy; #define CFG_TUSB_OS_INC_PATH #endif -// mutex is only needed for RTOS TODO also required with multiple core MCUs -#define TUSB_OPT_MUTEX (CFG_TUSB_OS != OPT_OS_NONE) - //-------------------------------------------------------------------- // Device Options (Default) //-------------------------------------------------------------------- diff --git a/tools/sdk/esp32s3/include/esp-dsp/modules/fir/include/dsps_fir.h b/tools/sdk/esp32s3/include/esp-dsp/modules/fir/include/dsps_fir.h index b9fb44884ec..a7d3d09003e 100644 --- a/tools/sdk/esp32s3/include/esp-dsp/modules/fir/include/dsps_fir.h +++ b/tools/sdk/esp32s3/include/esp-dsp/modules/fir/include/dsps_fir.h @@ -1,4 +1,4 @@ -// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD +// Copyright 2018-2022 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,9 +28,9 @@ extern "C" /** * @brief Data struct of f32 fir filter * - * This structure used by filter internally. User should access this structure only in case of + * This structure is used by a filter internally. A user should access this structure only in case of * extensions for the DSP Library. - * All fields of this structure initialized by dsps_fir_init_f32(...) function. + * All fields of this structure are initialized by the dsps_fir_init_f32(...) function. */ typedef struct fir_f32_s { float *coeffs; /*!< Pointer to the coefficient buffer.*/ @@ -41,6 +41,23 @@ typedef struct fir_f32_s { int d_pos; /*!< Actual decimation counter.*/ } fir_f32_t; +/** + * @brief Data struct of s16 fir filter + * + * This structure is used by a filter internally. A user should access this structure only in case of + * extensions for the DSP Library. + * All fields of this structure are initialized by the dsps_fir_init_s16(...) function. + */ +typedef struct fir_s16_s{ + int16_t *coeffs; /*!< Pointer to the coefficient buffer.*/ + int16_t *delay; /*!< Pointer to the delay line buffer.*/ + int16_t coeffs_len; /*!< FIR filter coefficients amount.*/ + int16_t pos; /*!< Position in delay line.*/ + int16_t decim; /*!< Decimation factor.*/ + int16_t d_pos; /*!< Actual decimation counter.*/ + int16_t shift; /*!< shift value of the result.*/ +}fir_s16_t; + /** * @brief initialize structure for 32 bit FIR filter * @@ -76,18 +93,37 @@ esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N); */ esp_err_t dsps_fird_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N, int decim, int start_pos); +/** + * @brief initialize structure for 16 bit Decimation FIR filter + * Function initialize structure for 16 bit signed fixed point FIR filter with decimation + * The implementation use ANSI C and could be compiled and run on any platform + * + * @param fir: pointer to fir filter structure, that must be preallocated + * @param coeffs: array with FIR filter coefficients. Must be length N + * @param delay: array for FIR filter delay line. Must be length N + * @param coeffs_len: FIR filter length. Length of coeffs and delay arrays. + * @param decim: decimation factor. + * @param start_pos: initial value of decimation counter. Must be [0..d) + * @param shift: shift position of the result + * + * @return + * - ESP_OK on success + * - One of the error codes from DSP library + */ +esp_err_t dsps_fird_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift); + /**@{*/ /** - * @brief FIR filter + * @brief 32 bit floating point FIR filter * * Function implements FIR filter - * The extension (_ansi) use ANSI C and could be compiled and run on any platform. + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. * The extension (_ae32) is optimized for ESP32 chip. * * @param fir: pointer to fir filter structure, that must be initialized before * @param[in] input: input array - * @param[out] output: array with result of FIR filter + * @param[out] output: array with the result of FIR filter * @param[in] len: length of input and result arrays * * @return @@ -101,24 +137,43 @@ esp_err_t dsps_fir_f32_aes3(fir_f32_t *fir, const float *input, float *output, i /**@{*/ /** - * @brief Decimation FIR filter + * @brief 32 bit floating point Decimation FIR filter * * Function implements FIR filter with decimation - * The extension (_ansi) use ANSI C and could be compiled and run on any platform. + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. * The extension (_ae32) is optimized for ESP32 chip. * * @param fir: pointer to fir filter structure, that must be initialized before * @param input: input array - * @param output: array with result of FIR filter + * @param output: array with the result of FIR filter * @param len: length of input and result arrays * - * @return: function returns amount of samples stored to the output array + * @return: function returns the number of samples stored in the output array * depends on the previous state value could be [0..len/decimation] */ int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len); int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int len); /**@}*/ +/**@{*/ +/** + * @brief 16 bit signed fixed point Decimation FIR filter + * + * Function implements FIR filter with decimation + * The extension (_ansi) uses ANSI C and could be compiled and run on any platform. + * The extension (_ae32) is optimized for ESP32 chip. + * + * @param fir: pointer to fir filter structure, that must be initialized before + * @param input: input array + * @param output: array with the result of the FIR filter + * @param len: length of the result array + * + * @return: function returns the number of samples stored in the output array + * depends on the previous state value could be [0..len/decimation] + */ +int32_t dsps_fird_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len); +int32_t dsps_fird_s16_ae32(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len); +/**@}*/ #ifdef __cplusplus } @@ -139,9 +194,16 @@ int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int le #define dsps_fird_f32 dsps_fird_f32_ansi #endif +#if (dsps_fird_s16_ae32_enabled == 1) +#define dsps_fird_s16 dsps_fird_s16_ae32 +#else +#define dsps_fird_s16 dsps_fird_s16_ansi +#endif + #else // CONFIG_DSP_OPTIMIZED #define dsps_fir_f32 dsps_fir_f32_ansi #define dsps_fird_f32 dsps_fird_f32_ansi +#define dsps_fird_s16 dsps_fird_s16_ansi #endif // CONFIG_DSP_OPTIMIZED #endif // _dsps_fir_H_ \ No newline at end of file diff --git a/tools/sdk/esp32s3/include/esp-dsp/modules/fir/include/dsps_fir_platform.h b/tools/sdk/esp32s3/include/esp-dsp/modules/fir/include/dsps_fir_platform.h index fab2656878f..f352fa85fc4 100644 --- a/tools/sdk/esp32s3/include/esp-dsp/modules/fir/include/dsps_fir_platform.h +++ b/tools/sdk/esp32s3/include/esp-dsp/modules/fir/include/dsps_fir_platform.h @@ -12,6 +12,8 @@ #define dsps_fir_f32_ae32_enabled 1 #define dsps_fird_f32_ae32_enabled 1 +#define dsps_fird_s16_ae32_enabled 1 +#define dsps_fird_s16_ae32_mul_enabled 1 #endif // #endif // __XTENSA__ diff --git a/tools/sdk/esp32s3/include/esp_insights/include/esp_insights.h b/tools/sdk/esp32s3/include/esp_insights/include/esp_insights.h index 7e79c261e1e..e1c05a76ff8 100644 --- a/tools/sdk/esp32s3/include/esp_insights/include/esp_insights.h +++ b/tools/sdk/esp32s3/include/esp_insights/include/esp_insights.h @@ -128,7 +128,11 @@ typedef struct { } esp_insights_transport_config_t; /** - * @brief Initialize ESP Insights + * @brief Initialize ESP Insights. + * + * This initializes ESP Insights with the transport (HTTPS/MQTT) as per the sdkconfig. + * To override the transport configuration, please use esp_insights_transport_register() + * and esp_insights_enable(). * * @param[in] config Configuration for ESP Insights. * @@ -137,12 +141,19 @@ typedef struct { esp_err_t esp_insights_init(esp_insights_config_t *config); /** - * @brief Deinitialize ESP Insights + * @brief Deinitialize ESP Insights. + * + * Disconnects the registered transport and disables ESP Insights */ void esp_insights_deinit(void); /** - * @brief Register insights transport + * @brief Register insights transport. + * + * This function should be used only when default transport needs to be overridden. + * + * @note Call esp_insights_enable() + * after registering your own transport to enable Insights. * * @param[in] config Configurations of type \ref esp_insights_transport_config_t * @@ -151,12 +162,15 @@ void esp_insights_deinit(void); esp_err_t esp_insights_transport_register(esp_insights_transport_config_t *config); /** - * @brief Unregister insights transport + * @brief Unregister insights transport. + * + * @note This API does not disable Insights. + * Call esp_insights_disable() to turn off Insights. */ void esp_insights_transport_unregister(void); /** - * @brief Read insights data from buffers and send it to the cloud + * @brief Read insights data from buffers and send it to the cloud. * * Call to this function is asynchronous, it may take some time to send the data. * @@ -164,6 +178,33 @@ void esp_insights_transport_unregister(void); */ esp_err_t esp_insights_send_data(void); +/** + * @brief Enable ESP Insights except transport. + * + * This API is used in conjunction with esp_insights_transport_register() + * to start Insights with custom transport. + * + * @param[in] config Configuration for ESP Insights. + * + * @return ESP_OK on success, appropriate error code otherwise + */ +esp_err_t esp_insights_enable(esp_insights_config_t *config); + +/** + * @brief Disable ESP Insights. + * + * This API does not unregister the transport. + * + * @note Call esp_insights_transport_unregister() to remove the transport. + */ +void esp_insights_disable(void); + +/** + * @brief Returns pointer to the NULL terminated Node ID string. + * + * @return Pointer to a NULL terminated Node ID string. + */ +const char *esp_insights_get_node_id(void); #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s3/include/rtc_store/include/rtc_store.h b/tools/sdk/esp32s3/include/rtc_store/include/rtc_store.h index 5111ea1d87c..e313dac41d1 100644 --- a/tools/sdk/esp32s3/include/rtc_store/include/rtc_store.h +++ b/tools/sdk/esp32s3/include/rtc_store/include/rtc_store.h @@ -36,6 +36,33 @@ typedef enum { RTC_STORE_EVENT_NON_CRITICAL_DATA_WRITE_FAIL, /*!< Non critical data write failed */ } rtc_store_event_t; +#define SHA_SIZE (CONFIG_APP_RETRIEVE_LEN_ELF_SHA / 2) + +/** + * @brief header record to identify firmware/boot data a record represent + */ +typedef struct { + uint8_t gen_id; // generated on each hard reset + uint8_t boot_cnt; // updated on each soft reboot + char sha_sum[SHA_SIZE]; // elf shasum + bool valid; // +} rtc_store_meta_header_t; + +/** + * @brief get meta header for idx + * + * @param idx idx of meta from records + * @return rtc_store_meta_header_t* + */ +rtc_store_meta_header_t *rtc_store_get_meta_record_by_index(uint8_t idx); + +/** + * @brief get current meta header + * + * @return rtc_store_meta_header_t* + */ +rtc_store_meta_header_t *rtc_store_get_meta_record_current(); + /** * @brief Non critical data header */ @@ -57,43 +84,33 @@ esp_err_t rtc_store_critical_data_write(void *data, size_t len); /** * @brief Read critical data from the RTC storage * - * @param[out] size Number of bytes read - * - * @return Pointer to the data on success, otherwise NULL + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes to read * - * @note It is mandatory to call \ref rtc_store_critical_data_release_and_unlock() if \ref rtc_store_critical_data_read_and_lock() is successful. - * @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock. + * @return Number of bytes read or -1 on error */ -const void *rtc_store_critical_data_read_and_lock(size_t *size); +int rtc_store_critical_data_read(uint8_t *buf, size_t size); /** - * @brief Release the utilized data read using \ref rtc_store_critical_data_read_and_lock() + * @brief Release the size bytes critical data from RTC storage * - * This API releases the utilized data read using \ref rtc_store_critical_data_read_and_lock(). - * Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc. + * This API can be used to remove data from buffer when data is sent asynchronously. * - * @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed). + * @param[in] size Number of bytes to free. * * @return ESP_OK on success, appropriate error code otherwise. - * - * @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock. */ -esp_err_t rtc_store_critical_data_release_and_unlock(size_t size); +esp_err_t rtc_store_critical_data_release(size_t size); /** - * @brief Release the size bytes critical data from RTC storage + * @brief Read critical data from the RTC storage and release that data * - * This API can be used to remove data from buffer when data is sent asynchronously. + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes to read * - * Consider data is read using \ref rtc_store_critical_data_read_and_lock() and sent to cloud asynchronously. - * Since status of data send is unknown, call \ref rtc_store_critical_data_release_and_unlock() with zero length. - * When acknowledgement for data send is received use this API with appropriate size to remove the data from the buffer. - * - * @param[in] size Number of bytes to free. - * - * @return ESP_OK on success, appropriate error code otherwise. + * @return Number of bytes read or -1 on error */ -esp_err_t rtc_store_critical_data_release(size_t size); +int rtc_store_critical_data_read_and_release(uint8_t *buf, size_t size); /** * @brief Write non critical data to the RTC storage @@ -116,35 +133,31 @@ esp_err_t rtc_store_non_critical_data_write(const char *dg, void *data, size_t l /** * @brief Read non critical data from the RTC storage * - * @param[out] size Number of bytes read - * - * @return Pointer to the data on success, otherwise NULL + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes read * - * @note It is mandatory to call \ref rtc_store_non_critical_data_release_and_unlock() if \ref rtc_store_non_critical_data_read_and_lock() is successful. + * @return Number of bytes read or -1 on error */ -const void *rtc_store_non_critical_data_read_and_lock(size_t *size); +int rtc_store_non_critical_data_read(uint8_t *buf, size_t size); /** - * @brief Release the utilized data read using \ref rtc_store_non_critical_data_read_and_lock() - * - * This API releases the utilized data read using \ref rtc_store_non_critical_data_read_and_lock(). - * Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc. + * @brief Release the size bytes non critical data from RTC storage * - * @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_non_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed). + * @param[in] size Number of bytes to free. * * @return ESP_OK on success, appropriate error code otherwise. - * */ -esp_err_t rtc_store_non_critical_data_release_and_unlock(size_t size); +esp_err_t rtc_store_non_critical_data_release(size_t size); /** - * @brief Release the size bytes non critical data from RTC storage + * @brief Read non_critical data from the RTC storage and release that data * - * @param[in] size Number of bytes to free. + * @param[in] buf Buffer to read data in + * @param[in] size Number of bytes read * - * @return ESP_OK on success, appropriate error code otherwise. + * @return Number of bytes read or -1 on error */ -esp_err_t rtc_store_non_critical_data_release(size_t size); +int rtc_store_non_critical_data_read_and_release(uint8_t *buf, size_t size); /** * @brief Initializes the RTC storage diff --git a/tools/sdk/esp32s3/lib/libapp_update.a b/tools/sdk/esp32s3/lib/libapp_update.a index 44a1e668ca8..490941ae22a 100644 Binary files a/tools/sdk/esp32s3/lib/libapp_update.a and b/tools/sdk/esp32s3/lib/libapp_update.a differ diff --git a/tools/sdk/esp32s3/lib/libarduino_tinyusb.a b/tools/sdk/esp32s3/lib/libarduino_tinyusb.a index e3d71905dea..181925b0339 100644 Binary files a/tools/sdk/esp32s3/lib/libarduino_tinyusb.a and b/tools/sdk/esp32s3/lib/libarduino_tinyusb.a differ diff --git a/tools/sdk/esp32s3/lib/libesp-dsp.a b/tools/sdk/esp32s3/lib/libesp-dsp.a index 000c832fe74..acb75b6b950 100644 Binary files a/tools/sdk/esp32s3/lib/libesp-dsp.a and b/tools/sdk/esp32s3/lib/libesp-dsp.a differ diff --git a/tools/sdk/esp32s3/lib/libesp_diagnostics.a b/tools/sdk/esp32s3/lib/libesp_diagnostics.a index 5ff051880a0..bc25861e4ea 100644 Binary files a/tools/sdk/esp32s3/lib/libesp_diagnostics.a and b/tools/sdk/esp32s3/lib/libesp_diagnostics.a differ diff --git a/tools/sdk/esp32s3/lib/libesp_insights.a b/tools/sdk/esp32s3/lib/libesp_insights.a index fdf921f978b..0f5fa1a820c 100644 Binary files a/tools/sdk/esp32s3/lib/libesp_insights.a and b/tools/sdk/esp32s3/lib/libesp_insights.a differ diff --git a/tools/sdk/esp32s3/lib/libespcoredump.a b/tools/sdk/esp32s3/lib/libespcoredump.a index b268f09455b..917202b4f27 100644 Binary files a/tools/sdk/esp32s3/lib/libespcoredump.a and b/tools/sdk/esp32s3/lib/libespcoredump.a differ diff --git a/tools/sdk/esp32s3/lib/librtc_store.a b/tools/sdk/esp32s3/lib/librtc_store.a index a3c47d52bd5..dd2646b9b7c 100644 Binary files a/tools/sdk/esp32s3/lib/librtc_store.a and b/tools/sdk/esp32s3/lib/librtc_store.a differ diff --git a/tools/sdk/esp32s3/opi_opi/include/sdkconfig.h b/tools/sdk/esp32s3/opi_opi/include/sdkconfig.h index c3e5600c7cf..0c305ab2062 100644 --- a/tools/sdk/esp32s3/opi_opi/include/sdkconfig.h +++ b/tools/sdk/esp32s3/opi_opi/include/sdkconfig.h @@ -49,7 +49,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "opi" @@ -805,7 +805,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -851,7 +856,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -1088,6 +1093,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -1155,8 +1162,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM #define CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s3/opi_opi/libesp_system.a b/tools/sdk/esp32s3/opi_opi/libesp_system.a index 50398c252b6..dd4b2aafd1f 100644 Binary files a/tools/sdk/esp32s3/opi_opi/libesp_system.a and b/tools/sdk/esp32s3/opi_opi/libesp_system.a differ diff --git a/tools/sdk/esp32s3/opi_opi/libfreertos.a b/tools/sdk/esp32s3/opi_opi/libfreertos.a index 23cb239e1e0..3f93fbb3433 100644 Binary files a/tools/sdk/esp32s3/opi_opi/libfreertos.a and b/tools/sdk/esp32s3/opi_opi/libfreertos.a differ diff --git a/tools/sdk/esp32s3/opi_qspi/include/sdkconfig.h b/tools/sdk/esp32s3/opi_qspi/include/sdkconfig.h index 47d8c258085..65f20bf24b9 100644 --- a/tools/sdk/esp32s3/opi_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32s3/opi_qspi/include/sdkconfig.h @@ -49,7 +49,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "opi" @@ -803,7 +803,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -849,7 +854,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -1086,6 +1091,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -1153,8 +1160,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM #define CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s3/opi_qspi/libesp_system.a b/tools/sdk/esp32s3/opi_qspi/libesp_system.a index 3c85fa39ae6..d0bb9c06ce9 100644 Binary files a/tools/sdk/esp32s3/opi_qspi/libesp_system.a and b/tools/sdk/esp32s3/opi_qspi/libesp_system.a differ diff --git a/tools/sdk/esp32s3/opi_qspi/libfreertos.a b/tools/sdk/esp32s3/opi_qspi/libfreertos.a index 23cb239e1e0..3f93fbb3433 100644 Binary files a/tools/sdk/esp32s3/opi_qspi/libfreertos.a and b/tools/sdk/esp32s3/opi_qspi/libfreertos.a differ diff --git a/tools/sdk/esp32s3/qio_opi/include/sdkconfig.h b/tools/sdk/esp32s3/qio_opi/include/sdkconfig.h index 85b0afa220b..d50576947a4 100644 --- a/tools/sdk/esp32s3/qio_opi/include/sdkconfig.h +++ b/tools/sdk/esp32s3/qio_opi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "qio" @@ -804,7 +804,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -850,7 +855,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -1087,6 +1092,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -1154,8 +1161,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM #define CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s3/qio_opi/libesp_system.a b/tools/sdk/esp32s3/qio_opi/libesp_system.a index fbbf64d4ad4..cbf980f33ad 100644 Binary files a/tools/sdk/esp32s3/qio_opi/libesp_system.a and b/tools/sdk/esp32s3/qio_opi/libesp_system.a differ diff --git a/tools/sdk/esp32s3/qio_opi/libfreertos.a b/tools/sdk/esp32s3/qio_opi/libfreertos.a index 23cb239e1e0..3f93fbb3433 100644 Binary files a/tools/sdk/esp32s3/qio_opi/libfreertos.a and b/tools/sdk/esp32s3/qio_opi/libfreertos.a differ diff --git a/tools/sdk/esp32s3/qio_qspi/include/sdkconfig.h b/tools/sdk/esp32s3/qio_qspi/include/sdkconfig.h index 7fbbd88f553..ac5bf3a764e 100644 --- a/tools/sdk/esp32s3/qio_qspi/include/sdkconfig.h +++ b/tools/sdk/esp32s3/qio_qspi/include/sdkconfig.h @@ -48,7 +48,7 @@ #define CONFIG_ESPTOOLPY_MONITOR_BAUD 115200 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" -#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" +#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp_coredump.csv" #define CONFIG_PARTITION_TABLE_OFFSET 0x8000 #define CONFIG_PARTITION_TABLE_MD5 1 #define CONFIG_LIB_BUILDER_FLASHMODE "qio" @@ -802,7 +802,12 @@ #define CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT 1 #define CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT 1 #define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1 -#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1 +#define CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH 1 +#define CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF 1 +#define CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 1 +#define CONFIG_ESP_COREDUMP_CHECK_BOOT 1 +#define CONFIG_ESP_COREDUMP_ENABLE 1 +#define CONFIG_ESP_COREDUMP_MAX_TASKS_NUM 64 #define CONFIG_FATFS_CODEPAGE_850 1 #define CONFIG_FATFS_CODEPAGE 850 #define CONFIG_FATFS_LFN_STACK 1 @@ -848,7 +853,7 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 -#define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_FREERTOS_ISR_STACKSIZE 2096 #define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 16 #define CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION 1 #define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1 @@ -1085,6 +1090,8 @@ #define CONFIG_DIAG_ENABLE_VARIABLES 1 #define CONFIG_DIAG_VARIABLES_MAX_COUNT 20 #define CONFIG_DIAG_ENABLE_NETWORK_VARIABLES 1 +#define CONFIG_ESP_INSIGHTS_ENABLED 1 +#define CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS 1 #define CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST "https://client.insights.espressif.com" #define CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC 60 @@ -1152,8 +1159,11 @@ #define CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE +#define CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32 CONFIG_ESP_COREDUMP_CHECKSUM_CRC32 +#define CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF +#define CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM CONFIG_ESP_COREDUMP_MAX_TASKS_NUM #define CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY -#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE +#define CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH #define CONFIG_ESP32_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT #define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE #define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER diff --git a/tools/sdk/esp32s3/qio_qspi/libesp_system.a b/tools/sdk/esp32s3/qio_qspi/libesp_system.a index 1bc198de0d0..a059d7f2d31 100644 Binary files a/tools/sdk/esp32s3/qio_qspi/libesp_system.a and b/tools/sdk/esp32s3/qio_qspi/libesp_system.a differ diff --git a/tools/sdk/esp32s3/qio_qspi/libfreertos.a b/tools/sdk/esp32s3/qio_qspi/libfreertos.a index 23cb239e1e0..3f93fbb3433 100644 Binary files a/tools/sdk/esp32s3/qio_qspi/libfreertos.a and b/tools/sdk/esp32s3/qio_qspi/libfreertos.a differ diff --git a/tools/sdk/esp32s3/sdkconfig b/tools/sdk/esp32s3/sdkconfig index 3102e59a05d..422f9b1caf9 100644 --- a/tools/sdk/esp32s3/sdkconfig +++ b/tools/sdk/esp32s3/sdkconfig @@ -139,7 +139,7 @@ CONFIG_PARTITION_TABLE_SINGLE_APP=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.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_coredump.csv" CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table @@ -1634,9 +1634,15 @@ CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # # Core dump # -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=y # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# CONFIG_ESP_COREDUMP_ENABLE_TO_NONE is not set +# CONFIG_ESP_COREDUMP_DATA_FORMAT_BIN is not set +CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=y +CONFIG_ESP_COREDUMP_CHECKSUM_CRC32=y +CONFIG_ESP_COREDUMP_CHECK_BOOT=y +CONFIG_ESP_COREDUMP_ENABLE=y +CONFIG_ESP_COREDUMP_MAX_TASKS_NUM=64 # end of Core dump # @@ -1734,7 +1740,7 @@ CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y # CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set # CONFIG_FREERTOS_ASSERT_DISABLE is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024 -CONFIG_FREERTOS_ISR_STACKSIZE=1536 +CONFIG_FREERTOS_ISR_STACKSIZE=2096 # CONFIG_FREERTOS_LEGACY_HOOKS is not set CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y @@ -2384,12 +2390,15 @@ CONFIG_DIAG_ENABLE_WIFI_METRICS=y CONFIG_DIAG_ENABLE_VARIABLES=y CONFIG_DIAG_VARIABLES_MAX_COUNT=20 CONFIG_DIAG_ENABLE_NETWORK_VARIABLES=y +# CONFIG_DIAG_MORE_NETWORK_VARS is not set # end of Diagnostics # # ESP Insights # -# CONFIG_ESP_INSIGHTS_ENABLED is not set +CONFIG_ESP_INSIGHTS_ENABLED=y +# CONFIG_ESP_INSIGHTS_DEBUG_ENABLED is not set +CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE=y # CONFIG_ESP_INSIGHTS_TRANSPORT_MQTT is not set CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS=y CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST="https://client.insights.espressif.com" @@ -2749,9 +2758,14 @@ CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set CONFIG_TIMER_TASK_STACK_SIZE=4096 CONFIG_SW_COEXIST_ENABLE=y -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set +CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH=y # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y +# CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE is not set +# CONFIG_ESP32_COREDUMP_DATA_FORMAT_BIN is not set +CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF=y +CONFIG_ESP32_COREDUMP_CHECKSUM_CRC32=y +CONFIG_ESP32_ENABLE_COREDUMP=y +CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM=64 CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150 CONFIG_MB_MASTER_DELAY_MS_CONVERT=200 CONFIG_MB_QUEUE_LENGTH=20 diff --git a/tools/sdk/versions.txt b/tools/sdk/versions.txt index efcc72475d1..83cca2c4ee4 100644 --- a/tools/sdk/versions.txt +++ b/tools/sdk/versions.txt @@ -1,10 +1,10 @@ esp-idf: v4.4.3 6407ecb3f8 -arduino: master 5b61930b +arduino: master 947ee6fd esp-dl: master f3006d7 -esp-dsp: master 5824900 -esp-insights: main aa8bece +esp-dsp: master 8e5e9f6 +esp-insights: main 94f929d esp-rainmaker: master fe94cc6 -esp-sr: master fd05643 -esp32-camera: master 8bcc835 +esp-sr: master 7154450 +esp32-camera: master 402b811 esp_littlefs: master f2a949f -tinyusb: master f4f85bad5 +tinyusb: master 97984b420