B001-V3 works with it now

This commit is contained in:
Thaddeus Hughes
2025-12-16 12:10:10 -06:00
parent ac030005c3
commit 062221dfd3
70 changed files with 3872 additions and 3786 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build/

View File

@@ -1 +1 @@
14ab08b034b673e117efa123c47785cb C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin
48564bd21f9eadc785deb337f57c02cc C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -35,7 +35,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Detecting C compiler ABI info compiled with the following output:
Change Dir: C:/data/stockcropper-sw-playground/SC-F001/build/CMakeFiles/CMakeTmp
Run Build Command(s):C:/Espressif/tools/ninja/1.11.1/ninja.exe cmTC_d7693 && [1/2] Building C object CMakeFiles/cmTC_d7693.dir/CMakeCCompilerABI.c.obj
Run Build Command(s):C:/Espressif/tools/ninja/1.11.1/ninja.exe cmTC_5177b && [1/2] Building C object CMakeFiles/cmTC_5177b.dir/CMakeCCompilerABI.c.obj
Using built-in specs.
COLLECT_GCC=C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20240530\xtensa-esp-elf\bin\xtensa-esp-elf-gcc.exe
@@ -43,8 +43,8 @@ Configured with: /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-
Target: xtensa-esp-elf
Configured with: /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-host_w64-mingw32 --target=xtensa-esp-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf/xtensa-esp-elf --with-sysroot=/builds/idf/crosstool-NG/builds/xtensa-esp-elf/xtensa-esp-elf --with-native-system-header-dir=/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-13.2.0_20240530' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-mpfr=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-mpc=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-isl=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes --with-gnu-ld
Thread model: posix
Thread model: posix
Supported LTO compression algorithms: zlib zstd
@@ -61,12 +61,12 @@ ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"
ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"
@@ -77,9 +77,9 @@ Supported LTO compression algorithms: zlib zstd
#include <...> search starts here:
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include
End of search list.
@@ -100,7 +100,7 @@ Parsed C implicit link information from above output:
[2/2] Linking C executable cmTC_5177b
Using built-in specs.
COLLECT_GCC=C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20240530\xtensa-esp-elf\bin\xtensa-esp-elf-gcc.exe
COLLECT_LTO_WRAPPER=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/lto-wrapper.exe
@@ -108,8 +108,8 @@ Parsed C implicit link information from above output:
Target: xtensa-esp-elf
Configured with: /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-host_w64-mingw32 --target=xtensa-esp-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf/xtensa-esp-elf --with-sysroot=/builds/idf/crosstool-NG/builds/xtensa-esp-elf/xtensa-esp-elf --with-native-system-header-dir=/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-13.2.0_20240530' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-mpfr=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-mpc=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-isl=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes --with-gnu-ld
Thread model: posix
Thread model: posix
Supported LTO compression algorithms: zlib zstd
@@ -126,8 +126,8 @@ Parsed C implicit link information from above output:
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'cmTC_5177b' '-dumpdir' 'cmTC_5177b.'
Parsed C implicit include dir info from above output: rv=done
@@ -138,8 +138,8 @@ Parsed C implicit link information from above output:
add: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include]
end of search list found
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include-fixed]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include-fixed]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include]
implicit include dirs: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include-fixed;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include]
@@ -158,13 +158,13 @@ Parsed C implicit link information from above output:
ignore line: [COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_5177b.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_5177b.dir/']
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/cc1.exe -quiet -v -imultilib esp32 -iprefix C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/ -isysroot C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf C:/Espressif/tools/cmake/3.24.0/share/cmake-3.24/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_5177b.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mdynconfig=xtensa_esp32.so -mlongcalls -Wno-frame-address -version -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o C:\Users\Thad\AppData\Local\Temp\ccYjPCzW.s]
ignore line: [GNU C17 (crosstool-NG esp-13.2.0_20240530) version 13.2.0 (xtensa-esp-elf)]
ignore line: [ compiled by GNU C version 6.3.0 20170516 GMP version 6.2.1 MPFR version 4.2.1 MPC version 1.2.1 isl version isl-0.26-GMP]
ignore line: []
ignore line: [ compiled by GNU C version 6.3.0 20170516 GMP version 6.2.1 MPFR version 4.2.1 MPC version 1.2.1 isl version isl-0.26-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"]
ignore line: [ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
@@ -173,7 +173,7 @@ Parsed C implicit link information from above output:
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include]
ignore line: [End of search list.]
ignore line: [Compiler executable checksum: d64ad5301bd1e6c0b5847b69f54c709a]
ignore line: [COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_d7693.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_d7693.dir/']
ignore line: [COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_5177b.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_5177b.dir/']
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/as.exe --traditional-format --longcalls --dynconfig=xtensa_esp32.so -o CMakeFiles/cmTC_5177b.dir/CMakeCCompilerABI.c.obj C:\Users\Thad\AppData\Local\Temp\ccYjPCzW.s]
ignore line: [COMPILER_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/]
@@ -184,7 +184,7 @@ Parsed C implicit link information from above output:
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
]
ignore line: [COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_5177b.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_5177b.dir/CMakeCCompilerABI.c.'
]
@@ -213,7 +213,7 @@ Parsed C implicit link information from above output:
arg [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/collect2.exe] ==> ignore
arg [-plugin] ==> ignore
arg [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/liblto_plugin.dll] ==> ignore
arg [-plugin-opt=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/lto-wrapper.exe] ==> ignore
arg [-plugin-opt=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/lto-wrapper.exe] ==> ignore
arg [-plugin-opt=-fresolution=C:\Users\Thad\AppData\Local\Temp\cca2joP3.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
@@ -221,8 +221,8 @@ Configured with: /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [--sysroot=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf] ==> ignore
arg [--dynconfig=xtensa_esp32.so] ==> ignore
arg [-o] ==> ignore
arg [--dynconfig=xtensa_esp32.so] ==> ignore
arg [-o] ==> ignore
arg [cmTC_5177b] ==> ignore
arg [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/crt0.o] ==> obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/crt0.o]
arg [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o] ==> obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o]
@@ -245,12 +245,12 @@ ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/crt0.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib/esp32/crt0.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtbegin.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtbegin.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib/esp32]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib/esp32]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib/esp32]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib]
@@ -261,9 +261,9 @@ Supported LTO compression algorithms: zlib zstd
Detecting CXX compiler ABI info compiled with the following output:
Change Dir: C:/data/stockcropper-sw-playground/SC-F001/build/CMakeFiles/CMakeTmp
Run Build Command(s):C:/Espressif/tools/ninja/1.11.1/ninja.exe cmTC_59200 && [1/2] Building CXX object CMakeFiles/cmTC_59200.dir/CMakeCXXCompilerABI.cpp.obj
Change Dir: C:/data/stockcropper-sw-playground/SC-F001/build/CMakeFiles/CMakeTmp
Run Build Command(s):C:/Espressif/tools/ninja/1.11.1/ninja.exe cmTC_16d73 && [1/2] Building CXX object CMakeFiles/cmTC_16d73.dir/CMakeCXXCompilerABI.cpp.obj
Using built-in specs.
COLLECT_GCC=C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20240530\xtensa-esp-elf\bin\xtensa-esp-elf-g++.exe
@@ -290,7 +290,7 @@ Parsed CXX implicit link information from above output:
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32"
@@ -298,8 +298,8 @@ Parsed CXX implicit link information from above output:
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"
ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"
ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"
@@ -322,8 +322,8 @@ Parsed CXX implicit link information from above output:
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include
End of search list.
End of search list.
Compiler executable checksum: fef331317bf98486f9f2a23f1937f65a
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_16d73.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_16d73.dir/'
@@ -334,8 +334,8 @@ Parsed CXX implicit link information from above output:
LIBRARY_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_59200.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_59200.dir/CMakeCXXCompilerABI.cpp.'
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_16d73.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_16d73.dir/CMakeCXXCompilerABI.cpp.'
[2/2] Linking CXX executable cmTC_16d73
Using built-in specs.
@@ -354,13 +354,13 @@ Parsed CXX implicit link information from above output:
gcc version 13.2.0 (crosstool-NG esp-13.2.0_20240530)
COMPILER_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/
LIBRARY_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
LIBRARY_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'cmTC_16d73' '-dumpdir' 'cmTC_16d73.'
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/collect2.exe -plugin C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/liblto_plugin.dll -plugin-opt=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/lto-wrapper.exe -plugin-opt=-fresolution=C:\Users\Thad\AppData\Local\Temp\ccb4q5ej.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lnosys -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc --sysroot=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf --dynconfig=xtensa_esp32.so -o cmTC_16d73 C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/crt0.o C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtbegin.o -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32 -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32 -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32 -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0 -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib CMakeFiles/cmTC_16d73.dir/CMakeCXXCompilerABI.cpp.obj -lstdc++ -lm -lgcc -lc -lnosys -lc -lgcc C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'cmTC_16d73' '-dumpdir' 'cmTC_16d73.'
@@ -369,7 +369,7 @@ Parsed CXX implicit link information from above output:
Parsed CXX implicit include dir info from above output: rv=done
found start of include info
found start of include info
found start of implicit include info
add: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0]
add: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32]
@@ -380,7 +380,7 @@ Parsed CXX implicit link information from above output:
end of search list found
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/backward] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0/backward]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/backward] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0/backward]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include-fixed]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include]
@@ -411,14 +411,14 @@ Parsed CXX implicit link information from above output:
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"]
ignore line: [ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/backward]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/backward]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed]
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include]
ignore line: [End of search list.]
@@ -445,8 +445,8 @@ int main(void)
ignore line: [Thread model: posix]
ignore line: [Supported LTO compression algorithms: zlib zstd]
ignore line: [gcc version 13.2.0 (crosstool-NG esp-13.2.0_20240530) ]
ignore line: [COMPILER_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/]
ignore line: [COMPILER_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/]
ignore line: [LIBRARY_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/]

View File

@@ -1 +1 @@
12092de236068d70eba4ca1551024ef76f736935
856cc0528d63d828831c50083bde98242cf10ff8

Binary file not shown.

View File

@@ -1 +1 @@
98272fd366dee314d04e20fe25d193d5 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin
5642735a7b506645c068eaf135bc677e C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin

Binary file not shown.

View File

@@ -1,168 +1,184 @@
# ninja log v5
944 1346 7873441422389671 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_sha.c.obj f56b8fe4ba85aa1d
185 375 7873441412961890 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/i2c_periph.c.obj c32934bbd5093be
17 77 7873441409799974 project_elf_src_esp32.c 2cf9fac49935fc83
48 185 7873441410942143 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/dport_access.c.obj 2676f63eb79f0b46
17 77 7873441409799974 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/project_elf_src_esp32.c 2cf9fac49935fc83
36 161 7873441410747576 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/interrupts.c.obj 940343198eaa9eca
26 212 7873441411301188 esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/xt_trax.c.obj 1260aafecb7d261e
842 1490 7873441423552485 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/bootloader_flash_config_esp32.c.obj 595b6122b41f595
1149 1463 7873441423482670 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_panic.c.obj 37c183ebd2bf19a3
361 670 7873441415714077 esp-idf/hal/CMakeFiles/__idf_hal.dir/esp32/efuse_hal.c.obj 985736f88d532fac
23 174 7873441410857273 esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/eri.c.obj 8461276514edb7
52 224 7873441411386108 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/adc_periph.c.obj 90466609b931b46f
32 179 7873441410952118 esp-idf/soc/CMakeFiles/__idf_soc.dir/dport_access_common.c.obj 30887cd509cd34f1
733 1170 7873441420829959 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/flash_qio_mode.c.obj 6a87a7aaaa5c9397
931 1266 7873441421639585 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console_loader.c.obj 53ba4bc24edce802
29 190 7873441411001986 esp-idf/soc/CMakeFiles/__idf_soc.dir/lldesc.c.obj a83f4a1bb9519946
191 355 7873441412722530 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/timer_periph.c.obj 1b796c82229f138e
629 968 7873441418869900 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_encrypt.c.obj 69e4911e66e8b1e1
77 196 7873441411071801 CMakeFiles/bootloader.elf.dir/project_elf_src_esp32.c.obj d06c65e4499b318d
44 207 7873441411251316 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/uart_periph.c.obj a6ecf472eff7d0a5
40 218 7873441411291212 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/gpio_periph.c.obj 16feacaa725f2d44
233 393 7873441413141428 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/twai_periph.c.obj 565e741fb072a877
57 233 7873441411535712 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/emac_periph.c.obj eec25e951488efe7
61 260 7873441411755132 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/spi_periph.c.obj a43546c03d14d8c9
213 411 7873441413141428 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/mpi_periph.c.obj c6da35c1ef3b1c93
974 1590 7873441425029521 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_esp32.c.obj a753974f7028d997
66 268 7873441411844992 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/ledc_periph.c.obj f72c8d64a51cac61
174 274 7873441411914694 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdm_periph.c.obj a3a6f38ee0a15de0
72 280 7873441411984507 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/pcnt_periph.c.obj d5bcb1ded8eb14fd
635 913 7873441418330116 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/secure_boot.c.obj d7b946e9ddcaaaa6
162 333 7873441412543012 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rmt_periph.c.obj 64e53ea8e0b40bfd
375 879 7873441417889849 esp-idf/hal/CMakeFiles/__idf_hal.dir/mmu_hal.c.obj bfaecd347bfd8091
607 907 7873441418149999 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random.c.obj a44035712760ff09
224 344 7873441412642745 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/touch_sensor_periph.c.obj 424c51dbd9b93360
1203 1645 7873441425388790 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_utility.c.obj a6bca0321b7e70e4
179 361 7873441412762422 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/i2s_periph.c.obj c3a77e3c89664813
197 367 7873441412882105 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/lcd_periph.c.obj 7202f44715519c0c
219 381 7873441413041682 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdmmc_periph.c.obj dfbaaf04a9b3da55
261 399 7873441413141428 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/dac_periph.c.obj f9445db9f5c78bfc
208 405 7873441413111490 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/mcpwm_periph.c.obj d6b1a5d4bda9e94c
275 510 7873441414299476 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdio_slave_periph.c.obj 51adc6440bda249a
405 931 7873441418289946 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common.c.obj aa64bbbf1cb2f093
269 548 7873441414299476 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_io_periph.c.obj 7b66323524f58af
334 607 7873441415159640 esp-idf/hal/CMakeFiles/__idf_hal.dir/hal_utils.c.obj eaf6c4044472990b
280 1580 7873441424799726 esp-idf/micro-ecc/CMakeFiles/__idf_micro-ecc.dir/uECC_verify_antifault.c.obj 6e10536b863b1dfc
355 613 7873441415169612 esp-idf/hal/CMakeFiles/__idf_hal.dir/efuse_hal.c.obj 4e68f03f72af8bdd
613 944 7873441418589904 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_efuse.c.obj 79c4db3a81be76f3
344 629 7873441415349635 esp-idf/hal/CMakeFiles/__idf_hal.dir/mpu_hal.c.obj dfa98eb6b41c460f
400 635 7873441415349635 esp-idf/esp_bootloader_format/CMakeFiles/__idf_esp_bootloader_format.dir/esp_bootloader_desc.c.obj 42ee3ab3d23dddac
381 685 7873441415953452 esp-idf/hal/CMakeFiles/__idf_hal.dir/esp32/cache_hal_esp32.c.obj c6852ed4e3dd4926
549 857 7873441417699818 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_mem.c.obj e167161e718bfd06
685 1372 7873441422774562 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/bootloader_flash.c.obj 9556aa95d1b42c73
394 732 7873441416501971 esp-idf/spi_flash/CMakeFiles/__idf_spi_flash.dir/spi_flash_wrap.c.obj a56c29f6b2433766
412 924 7873441418289946 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common_loader.c.obj c3aaa98ca17fa5bf
367 842 7873441417499851 esp-idf/hal/CMakeFiles/__idf_hal.dir/wdt_hal_iram.c.obj b4656afb7bdbc3ab
1730 2050 7873441429677510 esp-idf/esp_common/CMakeFiles/__idf_esp_common.dir/src/esp_err_to_name.c.obj 18bfa5642ee17859
510 890 7873441418069944 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_init.c.obj 88dd7d86f948f0fb
1194 1558 7873441424659874 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_fields.c.obj 4184657e83b1c1e3
670 974 7873441418789877 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random_esp32.c.obj dfcbc8c9777bb817
880 1148 7873441420540410 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_partitions.c.obj d07150b020048e4a
968 1193 7873441420989799 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_soc.c.obj 204d0e7e6afa22f1
914 1203 7873441421149645 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_loader.c.obj 29c140ddea5e0efb
907 1551 7873441424230662 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_init.c.obj cda173ddc8055ca8
924 1317 7873441422059620 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console.c.obj e8fffb8b944123e3
1170 1452 7873441423392912 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_table.c.obj b2b85bbd77f14f50
1317 1667 7873441425693051 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_fields.c.obj dd486a9a5c0ccfe1
857 1673 7873441425762874 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_utility.c.obj 607415334a050620
890 1705 7873441426101961 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp_image_format.c.obj aabb12e7fa50b55d
1266 1729 7873441426211665 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_api.c.obj eed41071d1ec3908
1452 1756 7873441426680426 esp-idf/esp_system/CMakeFiles/__idf_esp_system.dir/esp_err.c.obj 39e29710a585620c
1552 1778 7873441426959672 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/esp_memory_utils.c.obj 31b54e4a0d6340db
1558 1800 7873441427099297 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/cpu_region_protect.c.obj 5d749249c519482d
1491 1826 7873441427318705 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/esp_cpu_intr.c.obj 2ba9643618fa47c8
1372 1854 7873441427518169 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/efuse_controller/keys/without_key_purposes/three_key_blocks/esp_efuse_api_key.c.obj 7d277d056cf52417
1468 1860 7873441427637847 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/cpu.c.obj c5ec6cb1105157aa
1580 2285 7873441432129489 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_clk.c.obj 1492b79f13cb0618
1756 1962 7873441428690138 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_crc.c.obj ee238d835dde1588
1346 1969 7873441428710092 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_utility.c.obj fc666fc9825f171f
1778 1997 7873441428889604 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_sys.c.obj 4914cec6ad936ece
1861 2029 7873441429218727 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_longjmp.S.obj bc07a36c94d0eea7
1645 2035 7873441429138939 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_init.c.obj e93e8a3a666e15b3
1855 2047 7873441429597715 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_efuse.c.obj 9cdf31c1d3f669ea
1705 2049 7873441429468060 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/chip_info.c.obj 505884877ac3eadd
1590 2095 7873441430196104 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_clk_init.c.obj 5b81897826ad041d
1674 2106 7873441430335737 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_time.c.obj c7369feb3b7a70bd
1668 2116 7873441430415517 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_sleep.c.obj 29111b206e057d4d
1800 2118 7873441430455421 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_uart.c.obj 466d12663a8352f7
1997 2201 7873441431292780 esp-idf/log/CMakeFiles/__idf_log.dir/log_noos.c.obj 8fb94486b39576ed
2029 2226 7873441431542434 esp-idf/main/CMakeFiles/__idf_main.dir/bootloader_start.c.obj 2853669936012ab8
1963 2236 7873441431650321 esp-idf/log/CMakeFiles/__idf_log.dir/log.c.obj 3e44402b3ab886a7
2639 2719 7873441436505656 esp-idf/efuse/libefuse.a 673a7e52c20411ab
1969 2240 7873441431690212 esp-idf/log/CMakeFiles/__idf_log.dir/log_buffers.c.obj ddb4ea083d898e37
1826 2300 7873441432283494 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_spiflash.c.obj ae8faa5ab25a64bb
2240 2326 7873441432582622 esp-idf/log/liblog.a 54a7321690f52554
2326 2409 7873441433409823 esp-idf/esp_rom/libesp_rom.a cbd442a4b2432dff
2409 2480 7873441434128590 esp-idf/esp_common/libesp_common.a c139bd398534f508
2480 2572 7873441435045200 esp-idf/esp_hw_support/libesp_hw_support.a 39417f15abad6013
2572 2639 7873441435722386 esp-idf/esp_system/libesp_system.a 9609acad804f9d3e
2719 2842 7873441437747676 esp-idf/bootloader_support/libbootloader_support.a fd2aff79eef2ab3b
2842 2905 7873441438376040 esp-idf/esp_bootloader_format/libesp_bootloader_format.a 793eb38b0bc11f23
2905 2973 7873441439054646 esp-idf/spi_flash/libspi_flash.a 112266f7ee46b2b
2973 3052 7873441439847667 esp-idf/hal/libhal.a e471119594952b21
3052 3142 7873441440714061 esp-idf/micro-ecc/libmicro-ecc.a f8829877a503bd7
3142 3300 7873441442302332 esp-idf/soc/libsoc.a 3da7b86c7cc26e2c
3300 3419 7873441443489147 esp-idf/xtensa/libxtensa.a f126410bb396c921
3420 3585 7873441445129882 esp-idf/main/libmain.a 16c8538c7177ce7d
3585 3901 7873441448231587 bootloader.elf bf14169be4ce43f1
3901 4311 7873441452414091 .bin_timestamp ecc491824686447
3901 4311 7873441452414091 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/.bin_timestamp ecc491824686447
38 186 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size f0ae4a5d0bfd090f
38 186 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size f0ae4a5d0bfd090f
40 790 7873442260384951 .bin_timestamp b43211f9a6960a7a
40 790 7873442260384951 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/.bin_timestamp b43211f9a6960a7a
790 1021 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
790 1021 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 158 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 158 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 119 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 119 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
23 120 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
23 120 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
27 130 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
27 130 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 123 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 123 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
22 123 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
22 123 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 100 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 100 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 97 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 97 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
29 147 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
29 147 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
21 124 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
21 124 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
31 163 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
31 163 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 96 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 96 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
23 147 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
23 147 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
22 123 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
22 123 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
26 145 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
26 145 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
67 278 7873638684399362 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/dport_access.c.obj 2676f63eb79f0b46
1584 2213 7873638703172272 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_sha.c.obj f56b8fe4ba85aa1d
18 103 7873638682459231 project_elf_src_esp32.c 2cf9fac49935fc83
266 489 7873638686349447 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/i2c_periph.c.obj c32934bbd5093be
18 103 7873638682459231 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/project_elf_src_esp32.c 2cf9fac49935fc83
73 298 7873638684529011 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/adc_periph.c.obj 90466609b931b46f
28 234 7873638683860563 esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/eri.c.obj 8461276514edb7
1781 2461 7873638705661836 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_panic.c.obj 37c183ebd2bf19a3
1195 2281 7873638703960166 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/bootloader_flash_config_esp32.c.obj 595b6122b41f595
489 1144 7873638692389178 esp-idf/hal/CMakeFiles/__idf_hal.dir/esp32/efuse_hal.c.obj 985736f88d532fac
33 283 7873638684399362 esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/xt_trax.c.obj 1260aafecb7d261e
47 250 7873638683990215 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/interrupts.c.obj 940343198eaa9eca
1534 2111 7873638702353908 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console_loader.c.obj 53ba4bc24edce802
42 256 7873638684199848 esp-idf/soc/CMakeFiles/__idf_soc.dir/dport_access_common.c.obj 30887cd509cd34f1
1102 2028 7873638700844770 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/flash_qio_mode.c.obj 6a87a7aaaa5c9397
904 1763 7873638698180938 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_encrypt.c.obj 69e4911e66e8b1e1
37 265 7873638684289649 esp-idf/soc/CMakeFiles/__idf_soc.dir/lldesc.c.obj a83f4a1bb9519946
272 482 7873638686419264 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/timer_periph.c.obj 1b796c82229f138e
104 272 7873638684389373 CMakeFiles/bootloader.elf.dir/project_elf_src_esp32.c.obj d06c65e4499b318d
60 291 7873638684479135 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/uart_periph.c.obj a6ecf472eff7d0a5
318 542 7873638686897990 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/twai_periph.c.obj 565e741fb072a877
53 311 7873638684628741 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/gpio_periph.c.obj 16feacaa725f2d44
97 318 7873638684658660 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/pcnt_periph.c.obj d5bcb1ded8eb14fd
953 1533 7873638696779516 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/secure_boot.c.obj d7b946e9ddcaaaa6
91 348 7873638684863222 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/ledc_periph.c.obj f72c8d64a51cac61
80 355 7873638684878615 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/emac_periph.c.obj eec25e951488efe7
1764 2655 7873638708073057 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_esp32.c.obj a753974f7028d997
291 573 7873638687177231 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/mpi_periph.c.obj c6da35c1ef3b1c93
86 362 7873638684958051 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/spi_periph.c.obj a43546c03d14d8c9
869 1453 7873638695512513 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random.c.obj a44035712760ff09
510 1287 7873638693837007 esp-idf/hal/CMakeFiles/__idf_hal.dir/mmu_hal.c.obj bfaecd347bfd8091
235 423 7873638685751062 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rmt_periph.c.obj 64e53ea8e0b40bfd
250 456 7873638686120061 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdm_periph.c.obj a3a6f38ee0a15de0
311 465 7873638686279628 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/touch_sensor_periph.c.obj 424c51dbd9b93360
257 496 7873638686518988 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/i2s_periph.c.obj c3a77e3c89664813
278 523 7873638686738427 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/lcd_periph.c.obj 7202f44715519c0c
284 510 7873638686618722 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/mcpwm_periph.c.obj d6b1a5d4bda9e94c
349 530 7873638686828175 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/dac_periph.c.obj f9445db9f5c78bfc
298 555 7873638687057549 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdmmc_periph.c.obj dfbaaf04a9b3da55
556 1497 7873638696220630 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common.c.obj aa64bbbf1cb2f093
362 638 7873638687661062 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdio_slave_periph.c.obj 51adc6440bda249a
355 673 7873638688030078 esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_io_periph.c.obj 7b66323524f58af
423 2249 7873638703621208 esp-idf/micro-ecc/CMakeFiles/__idf_micro-ecc.dir/uECC_verify_antifault.c.obj 6e10536b863b1dfc
456 869 7873638689565973 esp-idf/hal/CMakeFiles/__idf_hal.dir/hal_utils.c.obj eaf6c4044472990b
465 895 7873638690019926 esp-idf/hal/CMakeFiles/__idf_hal.dir/mpu_hal.c.obj dfa98eb6b41c460f
895 1608 7873638697208379 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_efuse.c.obj 79c4db3a81be76f3
482 904 7873638690259280 esp-idf/hal/CMakeFiles/__idf_hal.dir/efuse_hal.c.obj 4e68f03f72af8bdd
543 952 7873638690708342 esp-idf/esp_bootloader_format/CMakeFiles/__idf_esp_bootloader_format.dir/esp_bootloader_desc.c.obj 42ee3ab3d23dddac
673 1265 7873638692898591 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_mem.c.obj e167161e718bfd06
1068 2179 7873638702673063 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/bootloader_flash.c.obj 9556aa95d1b42c73
524 969 7873638690758192 esp-idf/hal/CMakeFiles/__idf_hal.dir/esp32/cache_hal_esp32.c.obj c6852ed4e3dd4926
530 1068 7873638691660927 esp-idf/spi_flash/CMakeFiles/__idf_spi_flash.dir/spi_flash_wrap.c.obj a56c29f6b2433766
573 1467 7873638695801735 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common_loader.c.obj c3aaa98ca17fa5bf
497 1101 7873638692194623 esp-idf/hal/CMakeFiles/__idf_hal.dir/wdt_hal_iram.c.obj b4656afb7bdbc3ab
2029 2496 7873638706133110 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_fields.c.obj 4184657e83b1c1e3
2752 3385 7873638715049723 esp-idf/esp_common/CMakeFiles/__idf_esp_common.dir/src/esp_err_to_name.c.obj 18bfa5642ee17859
638 1446 7873638695492565 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_init.c.obj 88dd7d86f948f0fb
970 1584 7873638696979016 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random_esp32.c.obj dfcbc8c9777bb817
1288 1781 7873638698859431 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_partitions.c.obj d07150b020048e4a
1608 2019 7873638700874682 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_soc.c.obj 204d0e7e6afa22f1
1453 2348 7873638704530284 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_init.c.obj cda173ddc8055ca8
1468 2041 7873638701264044 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_loader.c.obj 29c140ddea5e0efb
1498 2170 7873638702573320 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console.c.obj e8fffb8b944123e3
2019 2502 7873638706153056 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_table.c.obj b2b85bbd77f14f50
1265 2614 7873638707025833 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_utility.c.obj 607415334a050620
2170 2676 7873638708222633 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_fields.c.obj dd486a9a5c0ccfe1
2041 2711 7873638708282492 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_utility.c.obj a6bca0321b7e70e4
1446 2717 7873638708485805 esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp_image_format.c.obj aabb12e7fa50b55d
2111 2751 7873638708980216 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_api.c.obj eed41071d1ec3908
2214 2785 7873638709192754 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/efuse_controller/keys/without_key_purposes/three_key_blocks/esp_efuse_api_key.c.obj 7d277d056cf52417
2250 2792 7873638709033188 esp-idf/esp_system/CMakeFiles/__idf_esp_system.dir/esp_err.c.obj 39e29710a585620c
2348 2889 7873638709974792 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/esp_cpu_intr.c.obj 2ba9643618fa47c8
2496 2900 7873638710219313 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/cpu_region_protect.c.obj 5d749249c519482d
2180 2927 7873638710259179 esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_utility.c.obj fc666fc9825f171f
2461 2939 7873638710338970 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/esp_memory_utils.c.obj 31b54e4a0d6340db
2503 3548 7873638717079430 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_clk.c.obj 1492b79f13cb0618
2281 2955 7873638710920483 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/cpu.c.obj c5ec6cb1105157aa
2785 3036 7873638711636759 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_crc.c.obj ee238d835dde1588
2792 3101 7873638712095600 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_sys.c.obj 4914cec6ad936ece
2717 3231 7873638713333875 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/chip_info.c.obj 505884877ac3eadd
2939 3268 7873638713822593 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_longjmp.S.obj bc07a36c94d0eea7
2928 3307 7873638714543349 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_efuse.c.obj 9cdf31c1d3f669ea
2614 3325 7873638714762761 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_clk_init.c.obj 5b81897826ad041d
2655 3338 7873638714767990 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_init.c.obj e93e8a3a666e15b3
2889 3405 7873638715494053 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_uart.c.obj 466d12663a8352f7
4108 4237 7873638724148982 esp-idf/efuse/libefuse.a 673a7e52c20411ab
2955 3422 7873638715593647 esp-idf/log/CMakeFiles/__idf_log.dir/log.c.obj 3e44402b3ab886a7
2677 3440 7873638716018431 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_sleep.c.obj 29111b206e057d4d
3101 3459 7873638716264047 esp-idf/log/CMakeFiles/__idf_log.dir/log_noos.c.obj 8fb94486b39576ed
2711 3469 7873638716379057 esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_time.c.obj c7369feb3b7a70bd
3036 3502 7873638716598991 esp-idf/log/CMakeFiles/__idf_log.dir/log_buffers.c.obj ddb4ea083d898e37
3231 3547 7873638717059197 esp-idf/main/CMakeFiles/__idf_main.dir/bootloader_start.c.obj 2853669936012ab8
3502 3654 7873638718298778 esp-idf/log/liblog.a 54a7321690f52554
2900 3669 7873638718428429 esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_spiflash.c.obj ae8faa5ab25a64bb
3669 3778 7873638719517072 esp-idf/esp_rom/libesp_rom.a cbd442a4b2432dff
3778 3886 7873638720603016 esp-idf/esp_common/libesp_common.a c139bd398534f508
3886 4008 7873638721849668 esp-idf/esp_hw_support/libesp_hw_support.a 39417f15abad6013
4008 4108 7873638722852435 esp-idf/esp_system/libesp_system.a 9609acad804f9d3e
4237 4398 7873638725752616 esp-idf/bootloader_support/libbootloader_support.a fd2aff79eef2ab3b
4399 4473 7873638726510570 esp-idf/esp_bootloader_format/libesp_bootloader_format.a 793eb38b0bc11f23
4473 4559 7873638727353485 esp-idf/spi_flash/libspi_flash.a 112266f7ee46b2b
4559 4659 7873638728367058 esp-idf/hal/libhal.a e471119594952b21
4659 4740 7873638729180588 esp-idf/micro-ecc/libmicro-ecc.a f8829877a503bd7
4740 4939 7873638731167807 esp-idf/soc/libsoc.a 3da7b86c7cc26e2c
4939 5056 7873638732327617 esp-idf/xtensa/libxtensa.a f126410bb396c921
5056 5187 7873638733614180 esp-idf/main/libmain.a 16c8538c7177ce7d
5187 5470 7873638736386751 bootloader.elf bf14169be4ce43f1
69 768 7873652322570253 .bin_timestamp b43211f9a6960a7a
69 768 7873652322570253 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/.bin_timestamp b43211f9a6960a7a
28 139 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 139 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 101 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 101 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 96 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 96 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
25 161 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
25 161 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
21 132 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
21 132 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 96 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 96 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 95 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 95 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 99 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 99 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 96 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 96 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 96 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 96 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 101 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 101 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
23 116 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
23 116 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 109 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 109 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 98 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 98 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 93 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 93 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 91 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 91 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 97 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 97 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
22 118 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
22 118 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 102 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 102 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 115 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 115 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
16 96 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
16 96 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 90 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 90 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 93 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
19 93 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
16 97 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
16 97 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 89 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 89 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 96 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 96 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 90 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 90 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 90 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 90 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
27 138 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
27 138 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 136 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
28 136 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 96 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 96 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
20 105 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
20 105 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
16 95 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
16 95 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
23 132 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
23 132 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 97 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 97 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
20 106 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
20 106 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
24 127 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
24 127 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 98 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 98 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 101 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 101 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
25 131 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
25 131 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 104 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 104 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
25 139 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
25 139 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 93 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 93 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 116 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
18 116 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
20 101 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
20 101 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 98 0 esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5
17 98 0 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size fa7563ce0397dee5

View File

@@ -35,7 +35,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Detecting C compiler ABI info compiled with the following output:
Change Dir: C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/CMakeFiles/CMakeTmp
Run Build Command(s):C:/Espressif/tools/ninja/1.11.1/ninja.exe cmTC_a1526 && [1/2] Building C object CMakeFiles/cmTC_a1526.dir/CMakeCCompilerABI.c.obj
Run Build Command(s):C:/Espressif/tools/ninja/1.11.1/ninja.exe cmTC_c8a63 && [1/2] Building C object CMakeFiles/cmTC_c8a63.dir/CMakeCCompilerABI.c.obj
Using built-in specs.
COLLECT_GCC=C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20240530\xtensa-esp-elf\bin\xtensa-esp-elf-gcc.exe
@@ -43,8 +43,8 @@ Configured with: /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-
Target: xtensa-esp-elf
Configured with: /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-host_w64-mingw32 --target=xtensa-esp-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf/xtensa-esp-elf --with-sysroot=/builds/idf/crosstool-NG/builds/xtensa-esp-elf/xtensa-esp-elf --with-native-system-header-dir=/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-13.2.0_20240530' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-mpfr=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-mpc=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-isl=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes --with-gnu-ld
Thread model: posix
Thread model: posix
Supported LTO compression algorithms: zlib zstd
@@ -61,12 +61,12 @@ ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"
ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"
@@ -77,9 +77,9 @@ Supported LTO compression algorithms: zlib zstd
#include <...> search starts here:
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include
End of search list.
@@ -100,7 +100,7 @@ Parsed C implicit link information from above output:
[2/2] Linking C executable cmTC_c8a63
Using built-in specs.
COLLECT_GCC=C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20240530\xtensa-esp-elf\bin\xtensa-esp-elf-gcc.exe
COLLECT_LTO_WRAPPER=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/lto-wrapper.exe
@@ -108,8 +108,8 @@ Parsed C implicit link information from above output:
Target: xtensa-esp-elf
Configured with: /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-host_w64-mingw32 --target=xtensa-esp-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp-elf/xtensa-esp-elf --with-sysroot=/builds/idf/crosstool-NG/builds/xtensa-esp-elf/xtensa-esp-elf --with-native-system-header-dir=/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-13.2.0_20240530' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-mpfr=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-mpc=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --with-isl=/builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp-elf/buildtools/complibs-host --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes --with-gnu-ld
Thread model: posix
Thread model: posix
Supported LTO compression algorithms: zlib zstd
@@ -126,8 +126,8 @@ Parsed C implicit link information from above output:
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'cmTC_c8a63' '-dumpdir' 'cmTC_c8a63.'
Parsed C implicit include dir info from above output: rv=done
@@ -138,8 +138,8 @@ Parsed C implicit link information from above output:
add: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include]
end of search list found
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include-fixed]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include-fixed]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include]
implicit include dirs: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include-fixed;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include]
@@ -158,13 +158,13 @@ Parsed C implicit link information from above output:
ignore line: [COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_c8a63.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_c8a63.dir/']
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/cc1.exe -quiet -v -imultilib esp32 -iprefix C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/ -isysroot C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf C:/Espressif/tools/cmake/3.24.0/share/cmake-3.24/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_c8a63.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mdynconfig=xtensa_esp32.so -mlongcalls -Wno-frame-address -version -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o C:\Users\Thad\AppData\Local\Temp\cc8e0oEw.s]
ignore line: [GNU C17 (crosstool-NG esp-13.2.0_20240530) version 13.2.0 (xtensa-esp-elf)]
ignore line: [ compiled by GNU C version 6.3.0 20170516 GMP version 6.2.1 MPFR version 4.2.1 MPC version 1.2.1 isl version isl-0.26-GMP]
ignore line: []
ignore line: [ compiled by GNU C version 6.3.0 20170516 GMP version 6.2.1 MPFR version 4.2.1 MPC version 1.2.1 isl version isl-0.26-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"]
ignore line: [ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"]
ignore line: [ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
@@ -173,7 +173,7 @@ Parsed C implicit link information from above output:
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include]
ignore line: [End of search list.]
ignore line: [Compiler executable checksum: d64ad5301bd1e6c0b5847b69f54c709a]
ignore line: [COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_a1526.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_a1526.dir/']
ignore line: [COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_c8a63.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_c8a63.dir/']
ignore line: [ C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/as.exe --traditional-format --longcalls --dynconfig=xtensa_esp32.so -o CMakeFiles/cmTC_c8a63.dir/CMakeCCompilerABI.c.obj C:\Users\Thad\AppData\Local\Temp\cc8e0oEw.s]
ignore line: [COMPILER_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/]
@@ -184,7 +184,7 @@ Parsed C implicit link information from above output:
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/]
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
ignore line: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
]
ignore line: [COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_c8a63.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_c8a63.dir/CMakeCCompilerABI.c.'
]
@@ -213,7 +213,7 @@ Parsed C implicit link information from above output:
arg [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/collect2.exe] ==> ignore
arg [-plugin] ==> ignore
arg [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/liblto_plugin.dll] ==> ignore
arg [-plugin-opt=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/lto-wrapper.exe] ==> ignore
arg [-plugin-opt=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/lto-wrapper.exe] ==> ignore
arg [-plugin-opt=-fresolution=C:\Users\Thad\AppData\Local\Temp\ccgXqvhA.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
@@ -221,8 +221,8 @@ Configured with: /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [--sysroot=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf] ==> ignore
arg [--dynconfig=xtensa_esp32.so] ==> ignore
arg [-o] ==> ignore
arg [--dynconfig=xtensa_esp32.so] ==> ignore
arg [-o] ==> ignore
arg [cmTC_c8a63] ==> ignore
arg [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/crt0.o] ==> obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/crt0.o]
arg [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o] ==> obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o]
@@ -245,12 +245,12 @@ ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/crt0.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib/esp32/crt0.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtbegin.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtbegin.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o]
collapse obj [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/esp32]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib/esp32]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib/esp32]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib/esp32]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib]
collapse library dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/lib]
@@ -261,9 +261,9 @@ Supported LTO compression algorithms: zlib zstd
Detecting CXX compiler ABI info compiled with the following output:
Change Dir: C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/CMakeFiles/CMakeTmp
Run Build Command(s):C:/Espressif/tools/ninja/1.11.1/ninja.exe cmTC_0ed68 && [1/2] Building CXX object CMakeFiles/cmTC_0ed68.dir/CMakeCXXCompilerABI.cpp.obj
Change Dir: C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/CMakeFiles/CMakeTmp
Run Build Command(s):C:/Espressif/tools/ninja/1.11.1/ninja.exe cmTC_43ed4 && [1/2] Building CXX object CMakeFiles/cmTC_43ed4.dir/CMakeCXXCompilerABI.cpp.obj
Using built-in specs.
COLLECT_GCC=C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20240530\xtensa-esp-elf\bin\xtensa-esp-elf-g++.exe
@@ -290,7 +290,7 @@ Parsed CXX implicit link information from above output:
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32"
@@ -298,8 +298,8 @@ Parsed CXX implicit link information from above output:
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include"
ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"
ignoring nonexistent directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/builds/idf/crosstool-NG/builds/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/../../../../include"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed"
ignoring duplicate directory "C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/../../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include"
@@ -322,8 +322,8 @@ Parsed CXX implicit link information from above output:
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include
End of search list.
End of search list.
Compiler executable checksum: fef331317bf98486f9f2a23f1937f65a
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_43ed4.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_43ed4.dir/'
@@ -334,8 +334,8 @@ Parsed CXX implicit link information from above output:
LIBRARY_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_0ed68.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_0ed68.dir/CMakeCXXCompilerABI.cpp.'
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'CMakeFiles/cmTC_43ed4.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_43ed4.dir/CMakeCXXCompilerABI.cpp.'
[2/2] Linking CXX executable cmTC_43ed4
Using built-in specs.
@@ -354,13 +354,13 @@ Parsed CXX implicit link information from above output:
gcc version 13.2.0 (crosstool-NG esp-13.2.0_20240530)
COMPILER_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/
LIBRARY_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
LIBRARY_PATH=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/;C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'cmTC_43ed4' '-dumpdir' 'cmTC_43ed4.'
C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/collect2.exe -plugin C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/liblto_plugin.dll -plugin-opt=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../libexec/gcc/xtensa-esp-elf/13.2.0/lto-wrapper.exe -plugin-opt=-fresolution=C:\Users\Thad\AppData\Local\Temp\ccScp4QS.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lnosys -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc --sysroot=C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf --dynconfig=xtensa_esp32.so -o cmTC_43ed4 C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32/crt0.o C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crti.o C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtbegin.o -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32 -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib/esp32 -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib/esp32 -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0 -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/lib -LC:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../xtensa-esp-elf/lib CMakeFiles/cmTC_43ed4.dir/CMakeCXXCompilerABI.cpp.obj -lstdc++ -lm -lgcc -lc -lnosys -lc -lgcc C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtend.o C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/esp32/crtn.o
COLLECT_GCC_OPTIONS='-mdynconfig=xtensa_esp32.so' '-mlongcalls' '-Wno-frame-address' '-fno-builtin-memcpy' '-fno-builtin-memset' '-fno-builtin-bzero' '-fno-builtin-stpcpy' '-fno-builtin-strncpy' '-v' '-o' 'cmTC_43ed4' '-dumpdir' 'cmTC_43ed4.'
@@ -369,7 +369,7 @@ Parsed CXX implicit link information from above output:
Parsed CXX implicit include dir info from above output: rv=done
found start of include info
found start of include info
found start of implicit include info
add: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0]
add: [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32]
@@ -380,7 +380,7 @@ Parsed CXX implicit link information from above output:
end of search list found
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0/xtensa-esp-elf/esp32]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/backward] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0/backward]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include/c++/13.2.0/backward] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0/backward]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/include-fixed] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/lib/gcc/xtensa-esp-elf/13.2.0/include-fixed]
collapse include dir [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/include] ==> [C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/xtensa-esp-elf/include]

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x32410 bytes. Smallest app partition is 0x200000 bytes. 0x1cdbf0 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 382.7 kbit/s)...
Hash of data verified.
Compressed 205840 bytes to 110455...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf44... (28 %)
Writing at 0x00022fb9... (42 %)
Writing at 0x00028ca4... (57 %)
Writing at 0x0002f8aa... (71 %)
Writing at 0x0003793d... (85 %)
Writing at 0x0003d940... (100 %)
Wrote 205840 bytes (110455 compressed) at 0x00010000 in 2.7 seconds (effective 609.4 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 142...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (142 compressed) at 0x00008000 in 0.0 seconds (effective 904.1 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 2047.9 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x323c0 bytes. Smallest app partition is 0x200000 bytes. 0x1cdc40 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 384.9 kbit/s)...
Hash of data verified.
Compressed 205760 bytes to 110401...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf63... (28 %)
Writing at 0x00022fb5... (42 %)
Writing at 0x00028c9d... (57 %)
Writing at 0x0002f8cd... (71 %)
Writing at 0x00037940... (85 %)
Writing at 0x0003d961... (100 %)
Wrote 205760 bytes (110401 compressed) at 0x00010000 in 2.7 seconds (effective 609.9 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 143...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (143 compressed) at 0x00008000 in 0.0 seconds (effective 1009.8 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 1787.7 kbit/s)...
Hash of data verified.

File diff suppressed because it is too large Load Diff

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x31f70 bytes. Smallest app partition is 0x200000 bytes. 0x1ce090 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting.....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00041fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 384.8 kbit/s)...
Hash of data verified.
Compressed 204656 bytes to 109847...
Writing at 0x00010000... (14 %)
Writing at 0x0001cee4... (28 %)
Writing at 0x00022e70... (42 %)
Writing at 0x00028ba3... (57 %)
Writing at 0x0002f799... (71 %)
Writing at 0x000377cd... (85 %)
Writing at 0x0003d8ea... (100 %)
Wrote 204656 bytes (109847 compressed) at 0x00010000 in 2.7 seconds (effective 611.0 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 143...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (143 compressed) at 0x00008000 in 0.0 seconds (effective 827.0 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 2049.4 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x31f20 bytes. Smallest app partition is 0x200000 bytes. 0x1ce0e0 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00041fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 384.6 kbit/s)...
Hash of data verified.
Compressed 204576 bytes to 109820...
Writing at 0x00010000... (14 %)
Writing at 0x0001cea0... (28 %)
Writing at 0x00022e3d... (42 %)
Writing at 0x00028b77... (57 %)
Writing at 0x0002f767... (71 %)
Writing at 0x000377a7... (85 %)
Writing at 0x0003d8c0... (100 %)
Wrote 204576 bytes (109820 compressed) at 0x00010000 in 2.7 seconds (effective 609.8 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 143...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (143 compressed) at 0x00008000 in 0.0 seconds (effective 880.1 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 1932.6 kbit/s)...
Hash of data verified.

View File

@@ -1,12 +1,12 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x323c0 bytes. Smallest app partition is 0x200000 bytes. 0x1cdc40 bytes (90%) free.
app-template.bin binary size 0x40070 bytes. Smallest app partition is 0x200000 bytes. 0x1bff90 bytes (87%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
@@ -18,31 +18,33 @@ Changing baud rate to 460800
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00010000 to 0x00050fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 381.0 kbit/s)...
Hash of data verified.
Compressed 205760 bytes to 110401...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf63... (28 %)
Writing at 0x00022fb5... (42 %)
Writing at 0x00028c9d... (57 %)
Compressed 26752 bytes to 16361...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16361 compressed) at 0x00001000 in 0.6 seconds (effective 377.8 kbit/s)...
Hash of data verified.
Compressed 262256 bytes to 141430...
Writing at 0x00010000... (11 %)
Writing at 0x0001cc68... (22 %)
Writing at 0x00024690... (33 %)
Writing at 0x0002a4f3... (44 %)
Writing at 0x00030448... (55 %)
Writing at 0x00037859... (66 %)
Writing at 0x00040015... (77 %)
Writing at 0x00045c87... (88 %)
Writing at 0x0004c04a... (100 %)
Wrote 205760 bytes (110401 compressed) at 0x00010000 in 2.7 seconds (effective 611.6 kbit/s)...
Wrote 262256 bytes (141430 compressed) at 0x00010000 in 3.4 seconds (effective 615.6 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 143...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (143 compressed) at 0x00008000 in 0.0 seconds (effective 948.0 kbit/s)...
Wrote 3072 bytes (143 compressed) at 0x00008000 in 0.0 seconds (effective 922.0 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x32420 bytes. Smallest app partition is 0x200000 bytes. 0x1cdbe0 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 380.9 kbit/s)...
Hash of data verified.
Compressed 205856 bytes to 110468...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf4c... (28 %)
Writing at 0x00022fb8... (42 %)
Writing at 0x00028c9c... (57 %)
Writing at 0x0002f89f... (71 %)
Writing at 0x00037937... (85 %)
Writing at 0x0003d948... (100 %)
Wrote 205856 bytes (110468 compressed) at 0x00010000 in 2.7 seconds (effective 609.6 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 142...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (142 compressed) at 0x00008000 in 0.0 seconds (effective 965.9 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 1833.9 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x32420 bytes. Smallest app partition is 0x200000 bytes. 0x1cdbe0 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting.....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 379.9 kbit/s)...
Hash of data verified.
Compressed 205856 bytes to 110465...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf47... (28 %)
Writing at 0x00022fb3... (42 %)
Writing at 0x00028c9b... (57 %)
Writing at 0x0002f89e... (71 %)
Writing at 0x00037933... (85 %)
Writing at 0x0003d943... (100 %)
Wrote 205856 bytes (110465 compressed) at 0x00010000 in 2.7 seconds (effective 610.3 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 142...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (142 compressed) at 0x00008000 in 0.0 seconds (effective 1005.0 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 2053.4 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x32340 bytes. Smallest app partition is 0x200000 bytes. 0x1cdcc0 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting..........
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 383.0 kbit/s)...
Hash of data verified.
Compressed 205632 bytes to 110329...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf4c... (28 %)
Writing at 0x00022f85... (42 %)
Writing at 0x00028c6d... (57 %)
Writing at 0x0002f876... (71 %)
Writing at 0x0003792f... (85 %)
Writing at 0x0003d986... (100 %)
Wrote 205632 bytes (110329 compressed) at 0x00010000 in 2.7 seconds (effective 611.2 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 143...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (143 compressed) at 0x00008000 in 0.0 seconds (effective 892.1 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 1991.2 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x323c0 bytes. Smallest app partition is 0x200000 bytes. 0x1cdc40 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 382.7 kbit/s)...
Hash of data verified.
Compressed 205760 bytes to 110373...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf6b... (28 %)
Writing at 0x00022fc4... (42 %)
Writing at 0x00028d12... (57 %)
Writing at 0x0002f8f4... (71 %)
Writing at 0x0003795e... (85 %)
Writing at 0x0003d9bc... (100 %)
Wrote 205760 bytes (110373 compressed) at 0x00010000 in 2.7 seconds (effective 610.0 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 143...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (143 compressed) at 0x00008000 in 0.0 seconds (effective 939.9 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 2020.0 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x32400 bytes. Smallest app partition is 0x200000 bytes. 0x1cdc00 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting.....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 382.6 kbit/s)...
Hash of data verified.
Compressed 205824 bytes to 110448...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf36... (28 %)
Writing at 0x00022fae... (42 %)
Writing at 0x00028ca0... (57 %)
Writing at 0x0002f8a8... (71 %)
Writing at 0x00037939... (85 %)
Writing at 0x0003d93f... (100 %)
Wrote 205824 bytes (110448 compressed) at 0x00010000 in 2.7 seconds (effective 608.5 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 142...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (142 compressed) at 0x00008000 in 0.0 seconds (effective 912.7 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 2083.1 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x323d0 bytes. Smallest app partition is 0x200000 bytes. 0x1cdc30 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting......
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 384.5 kbit/s)...
Hash of data verified.
Compressed 205776 bytes to 110402...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf68... (28 %)
Writing at 0x00022fb6... (42 %)
Writing at 0x00028c94... (57 %)
Writing at 0x0002f8cc... (71 %)
Writing at 0x0003794a... (85 %)
Writing at 0x0003d967... (100 %)
Wrote 205776 bytes (110402 compressed) at 0x00010000 in 2.7 seconds (effective 610.8 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 142...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (142 compressed) at 0x00008000 in 0.0 seconds (effective 916.4 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 2111.0 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x32400 bytes. Smallest app partition is 0x200000 bytes. 0x1cdc00 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 383.4 kbit/s)...
Hash of data verified.
Compressed 205824 bytes to 110451...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf3b... (28 %)
Writing at 0x00022fad... (42 %)
Writing at 0x00028ca0... (57 %)
Writing at 0x0002f8a4... (71 %)
Writing at 0x00037936... (85 %)
Writing at 0x0003d93c... (100 %)
Wrote 205824 bytes (110451 compressed) at 0x00010000 in 2.7 seconds (effective 610.5 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 142...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (142 compressed) at 0x00008000 in 0.0 seconds (effective 944.3 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 1798.0 kbit/s)...
Hash of data verified.

View File

@@ -1,50 +0,0 @@
[1/5] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/data/stockcropper-sw-playground/SC-F001/build/partition_table/partition-table.bin C:/data/stockcropper-sw-playground/SC-F001/build/app-template.bin"
app-template.bin binary size 0x32350 bytes. Smallest app partition is 0x200000 bytes. 0x1cdcb0 bytes (90%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\data\stockcropper-sw-playground\SC-F001\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf5.3_py3.11_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v5.3.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/data/stockcropper-sw-playground/SC-F001/build/bootloader/bootloader.bin"
Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.3.1\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.3.1 -D SERIAL_TOOL=C:/Espressif/python_env/idf5.3_py3.11_env/Scripts/python.exe;;C:/Espressif/frameworks/esp-idf-v5.3.1/components/esptool_py/esptool/esptool.py;--chip;esp32 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args -D WORKING_DIRECTORY=C:/data/stockcropper-sw-playground/SC-F001/build -P C:/Espressif/fraesptool.py --chip esp32 -p COM3 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 bootloader/bootloader.bin 0x10000 app-template.bin 0x8000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin
esptool.py v4.8.1
Serial port COM3
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 94:54:c5:38:c4:38
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00042fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000d000 to 0x0000efff...
SHA digest in image updated
Compressed 26752 bytes to 16359...
Writing at 0x00001000... (100 %)
Wrote 26752 bytes (16359 compressed) at 0x00001000 in 0.6 seconds (effective 383.4 kbit/s)...
Hash of data verified.
Compressed 205648 bytes to 110327...
Writing at 0x00010000... (14 %)
Writing at 0x0001cf4d... (28 %)
Writing at 0x00022f87... (42 %)
Writing at 0x00028c81... (57 %)
Writing at 0x0002f889... (71 %)
Writing at 0x00037936... (85 %)
Writing at 0x0003d98f... (100 %)
Wrote 205648 bytes (110327 compressed) at 0x00010000 in 2.7 seconds (effective 608.8 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 143...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (143 compressed) at 0x00008000 in 0.0 seconds (effective 957.1 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Writing at 0x0000d000... (100 %)
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 2039.1 kbit/s)...
Hash of data verified.

View File

@@ -1,7 +1,7 @@
{
"version": "1.1",
"project_name": "app-template",
"project_version": "12092de-dirty",
"project_version": "856cc05-dirty",
"project_path": "C:/data/stockcropper-sw-playground/SC-F001",
"idf_path": "C:/Espressif/frameworks/esp-idf-v5.3.1",
"build_dir": "C:/data/stockcropper-sw-playground/SC-F001/build",
@@ -1240,7 +1240,7 @@
"managed_reqs": [],
"managed_priv_reqs": [ "esp-idf-lib__tca95x5", "joltwallet__littlefs" ],
"file": "C:/data/stockcropper-sw-playground/SC-F001/build/esp-idf/main/libmain.a",
"sources": [ "C:/data/stockcropper-sw-playground/SC-F001/main/main.c", "C:/data/stockcropper-sw-playground/SC-F001/main/i2c.c", "C:/data/stockcropper-sw-playground/SC-F001/main/rtc.c", "C:/data/stockcropper-sw-playground/SC-F001/main/storage.c", "C:/data/stockcropper-sw-playground/SC-F001/main/uart_comms.c" ],
"sources": [ "C:/data/stockcropper-sw-playground/SC-F001/main/main.c", "C:/data/stockcropper-sw-playground/SC-F001/main/i2c.c", "C:/data/stockcropper-sw-playground/SC-F001/main/rtc.c", "C:/data/stockcropper-sw-playground/SC-F001/main/storage.c", "C:/data/stockcropper-sw-playground/SC-F001/main/uart_comms.c", "C:/data/stockcropper-sw-playground/SC-F001/main/control_fsm.c", "C:/data/stockcropper-sw-playground/SC-F001/main/power_mgmt.c", "C:/data/stockcropper-sw-playground/SC-F001/main/rf.c", "C:/data/stockcropper-sw-playground/SC-F001/main/sensors.c", "C:/data/stockcropper-sw-playground/SC-F001/main/solar.c" ],
"include_dirs": []
},
"mbedtls": {

View File

@@ -2,7 +2,7 @@
# for more information about component CMakeLists.txt files.
idf_component_register(
SRCS main.c i2c.c rtc.c storage.c uart_comms.c # list the source files of this component
SRCS main.c i2c.c rtc.c storage.c uart_comms.c control_fsm.c power_mgmt.c rf.c rtc.c sensors.c solar.c # list the source files of this component
INCLUDE_DIRS # optional, add here public include directories
PRIV_INCLUDE_DIRS # optional, add here private include directories
REQUIRES # optional, list the public requirements (component names)

View File

@@ -14,22 +14,27 @@
#include "storage.h"
#include "rtc.h"
#include "sensors.h"
#include "esp_log.h"
#define TRANSITION_DELAY_US 1000000
#define TAG "FSM"
static QueueHandle_t fsm_cmd_queue = NULL;
uint8_t relay_pins[N_RELAYS] = {
GPIO_NUM_13, // A1
GPIO_NUM_14, // B1
GPIO_NUM_15, // A2
GPIO_NUM_16, // B2
GPIO_NUM_17, // A3
GPIO_NUM_18 // B3
};
// map from relay number to bridge
bridge_t bridge_map[] = {
BRIDGE_AUX,
BRIDGE_AUX,
BRIDGE_AUX,
BRIDGE_AUX,
BRIDGE_JACK,
BRIDGE_JACK,
BRIDGE_DRIVE,
BRIDGE_DRIVE };
bool relay_states[N_RELAYS] = {false};
int64_t override_times[N_RELAYS] = {-1};
bool relay_states[8] = {false};
int64_t override_times[8] = {-1};
bool enabled = false;
void setRelay(int8_t relay, bool state) {
@@ -37,36 +42,24 @@ void setRelay(int8_t relay, bool state) {
}
void driveRelays() {
for (uint8_t i=0; i<N_RELAYS; i++) {
if (efuse_is_tripped(i/2))
gpio_set_level(relay_pins[i], 0);
else
gpio_set_level(relay_pins[i], relay_states[i]);
uint8_t state = 0x00;
for (uint8_t i=0; i<8; i++) {
// if we command and efuse permits it set the relay
if (relay_states[i] && !efuse_is_tripped(bridge_map[i])) {
state |= 0x01<<i;
set_autozero(bridge_map[i]);
}
}
i2c_set_relays(state);
}
int8_t bridge_polarities[3] = {
+1,
-1,
-1
};
void setBridge(bridge_t bridge, int8_t dir) {
dir *= bridge_polarities[bridge];
setRelay(bridge*2+0, dir<0);
setRelay(bridge*2+1, dir>0);
}
int8_t get_bridge_state(bridge_t bridge) {
if (relay_states[bridge*2 + 0]) return +1;
if (relay_states[bridge*2 + 1]) return -1;
return 0;
}
volatile fsm_state_t current_state = STATE_IDLE;
volatile int64_t current_time = 0;
volatile bool start_running_request = false;
fsm_state_t fsm_get_state() {
return current_state;
}
@@ -79,18 +72,16 @@ static inline void set_timer(uint64_t us) {
}
static inline bool timer_done() { return current_time >= timer_end; }
void pulseOverride(bridge_t bridge, int8_t dir, int64_t pulse) {
if (dir < 0)
override_times[bridge*2 + (bridge_polarities[bridge]>0?0:1)] = esp_timer_get_time() + pulse;
if (dir > 0)
override_times[bridge*2 + (bridge_polarities[bridge]>0?1:0)] = esp_timer_get_time() + pulse;
void pulseOverride(relay_t relay) {
if (current_state == STATE_IDLE)
override_times[relay] = current_time + get_param(PARAM_RF_PULSE_LENGTH).u64;
}
void fsm_begin_auto_move() {
/*void fsm_begin_auto_move() {
if (current_state == STATE_IDLE)
current_state = STATE_MOVE_START_DELAY;
set_timer(TRANSITION_DELAY_US);
}
}*/
void fsm_request(fsm_cmd_t cmd)
{
@@ -122,9 +113,10 @@ int8_t fsm_get_current_progress(int8_t denominator) {
return x;
}
#define JACK_TIME (uint64_t)get_param_i8("jack_dist")*get_param_u32("jack_mspi")*1000
#define DRIVE_TIME (uint64_t)get_param_i8("drive_dist")*get_param_u32("drive_mspf")*1000
#define DRIVE_DIST ((int32_t)(get_param_i8("drive_dist")))*((int32_t)get_param_u32("drive_tpdf"))/10
#define JACK_TIME get_param(PARAM_JACK_MSPI ).u32 * 1000 * get_param(PARAM_JACK_DIST ).u8
#define DRIVE_TIME get_param(PARAM_DRIVE_MSPF).u32 * 1000 * get_param(PARAM_DRIVE_DIST).u8
#define DRIVE_DIST get_param(PARAM_DRIVE_TPDF).u32 / 10 * get_param(PARAM_DRIVE_DIST).u8
void control_task(void *param) {
esp_task_wdt_add(NULL);
@@ -134,14 +126,6 @@ void control_task(void *param) {
enabled = true;
for (size_t i = 0; i < N_RELAYS; ++i) {
gpio_reset_pin( relay_pins[i]);
gpio_set_direction(relay_pins[i], GPIO_MODE_OUTPUT);
gpio_set_level( relay_pins[i], 0); // Force low
gpio_hold_dis( relay_pins[i]); // CRITICAL: Allow control after wake
}
while (enabled) {
vTaskDelayUntil(&xLastWakeTime, xFrequency);
current_time = esp_timer_get_time();
@@ -149,13 +133,15 @@ void control_task(void *param) {
fsm_cmd_t cmd;
while (xQueueReceive(fsm_cmd_queue, &cmd, 0) == pdTRUE) {
switch (cmd) {
case FSM_CMD_STOP:
if (current_state != STATE_IDLE &&
current_state != STATE_UNDO_JACK_START &&
current_state != STATE_UNDO_JACK) {
current_state = STATE_IDLE;
case FSM_CMD_START:
if (current_state == STATE_IDLE) {
current_state = STATE_MOVE_START_DELAY;
set_timer(TRANSITION_DELAY_US);
}
break;
case FSM_CMD_STOP:
current_state = STATE_IDLE;
break;
case FSM_CMD_UNDO:
if (current_state != STATE_IDLE &&
current_state != STATE_UNDO_JACK_START &&
@@ -245,12 +231,12 @@ void control_task(void *param) {
default: break;
}
/*
int64_t elapsed_t = (current_time-timer_start);
int64_t total_t = (timer_end-timer_start);
int32_t ticks = get_sensor_counter(SENSOR_DRIVE);
ESP_LOGI("FSM", "[%d] %lld / %lld ms, %ld ticks", current_state, (long long) elapsed_t, (long long) total_t, (long) ticks);
*/
//ESP_LOGI("FSM", "[%d] %lld / %lld ms, %ld ticks", current_state, (long long) elapsed_t, (long long) total_t, (long) ticks);
// Output control
switch (current_state) {
case STATE_IDLE:
@@ -261,42 +247,69 @@ void control_task(void *param) {
if (active) reset_shutdown_timer();
// prohibit movement past jack limit switch
if (i == BRIDGE_JACK*2+(bridge_polarities[BRIDGE_JACK]>0?0:1) && get_sensor(SENSOR_JACK))
setRelay(i, false);
else
//if (i == BRIDGE_JACK*2+(bridge_polarities[BRIDGE_JACK]>0?0:1) && get_sensor(SENSOR_JACK))
// setRelay(i, false);
//else
setRelay(i, active);
//if (active) ESP_LOGI("FSM", "RUN CHANNEL %d (%lld %c %lld)", i, (long long) override_times[i], active ? '>':'<', (long long) current_time);
}
break;
case STATE_JACK_UP:
setBridge(BRIDGE_DRIVE, 0);
setBridge(BRIDGE_JACK, +1);
setBridge(BRIDGE_AUX, +1);
// jack up and fluff
setRelay(RELAY_A1, false);
setRelay(RELAY_B1, false);
setRelay(RELAY_A2, true);
setRelay(RELAY_B2, false);
setRelay(RELAY_A3, true);
reset_shutdown_timer();
break;
case STATE_DRIVE:
setBridge(BRIDGE_DRIVE, +1);
setBridge(BRIDGE_JACK, 0);
setBridge(BRIDGE_AUX, +1);
// drive and fluff
setRelay(RELAY_A1, true);
setRelay(RELAY_B1, false);
setRelay(RELAY_A2, false);
setRelay(RELAY_B2, false);
setRelay(RELAY_A3, true);
reset_shutdown_timer();
break;
case STATE_UNDO_JACK:
case STATE_JACK_DOWN:
setBridge(BRIDGE_DRIVE, 0);
setBridge(BRIDGE_JACK, -1);
setBridge(BRIDGE_AUX, +1);
// jack down and fluffer
setRelay(RELAY_A1, false);
setRelay(RELAY_B1, false);
setRelay(RELAY_A2, false);
setRelay(RELAY_B2, true);
setRelay(RELAY_A3, true);
reset_shutdown_timer();
break;
case STATE_UNDO_JACK_START:
case STATE_DRIVE_START_DELAY:
case STATE_DRIVE_END_DELAY:
setBridge(BRIDGE_DRIVE, 0);
setBridge(BRIDGE_JACK, 0);
setBridge(BRIDGE_AUX, +1);
// only fluffer
setRelay(RELAY_A1, false);
setRelay(RELAY_B1, false);
setRelay(RELAY_A2, false);
setRelay(RELAY_B2, false);
setRelay(RELAY_A3, true);
reset_shutdown_timer();
break;
default: break;
default:
// invalid state; turn all relays off
setRelay(RELAY_A1, false);
setRelay(RELAY_B1, false);
setRelay(RELAY_A2, false);
setRelay(RELAY_B2, false);
setRelay(RELAY_A3, false);
break;
}
driveRelays();
@@ -304,20 +317,20 @@ void control_task(void *param) {
esp_task_wdt_reset();
}
for (size_t i = 0; i < N_RELAYS; ++i) {
gpio_set_level(relay_pins[i], 0);
gpio_hold_en(relay_pins[i]);
}
if (fsm_cmd_queue != NULL) {
vQueueDelete(fsm_cmd_queue);
fsm_cmd_queue = NULL;
}
}
void start_fsm() {
esp_err_t fsm_init() {
if (fsm_cmd_queue == NULL) {
fsm_cmd_queue = xQueueCreate(8, sizeof(fsm_cmd_t));
}
xTaskCreate(control_task, "FSM", 4096, NULL, 5, NULL);
return ESP_OK;
}
esp_err_t fsm_stop() { return ESP_OK; }

View File

@@ -7,7 +7,7 @@
#include "freertos/queue.h"
typedef enum { FSM_CMD_STOP, FSM_CMD_UNDO, FSM_CMD_SHUTDOWN} fsm_cmd_t;
typedef enum { FSM_CMD_START, FSM_CMD_STOP, FSM_CMD_UNDO, FSM_CMD_SHUTDOWN} fsm_cmd_t;
typedef enum {
STATE_IDLE = 0,
@@ -22,21 +22,33 @@ typedef enum {
} fsm_state_t;
typedef enum {
BRIDGE_AUX = 0,
RELAY_NONE = 0,
RELAY_C3,
RELAY_B3,
RELAY_A3,
RELAY_B2,
RELAY_A2,
RELAY_B1,
RELAY_A1
} relay_t;
typedef enum {
BRIDGE_AUX = 2,
BRIDGE_JACK = 1,
BRIDGE_DRIVE = 2,
BRIDGE_DRIVE = 0,
} bridge_t;
#define N_RELAYS 6
#define N_RELAYS 8
#define N_BRIDGES 3
void pulseOverride(bridge_t bridge, int8_t dir, int64_t pulse);
void pulseOverride(relay_t relay/*, int64_t pulse*/);
void start_fsm();
esp_err_t fsm_init();
esp_err_t fsm_stop();
void fsm_request(fsm_cmd_t cmd);
void fsm_begin_auto_move();
//void fsm_begin_auto_move();
int8_t fsm_get_current_progress(int8_t remainder);

View File

@@ -12,6 +12,11 @@
// Debounce & Repeat Settings
#define DEBOUNCE_MS 50
#define REPEAT_MS 200
#define REPEAT_START_MS 700
static uint8_t lcd_col = 0;
static uint8_t lcd_row = 0;

View File

@@ -24,7 +24,7 @@
#define TCA_REG_CONFIG1 0x07
// Debounce & Repeat Settings
#define DEBOUNCE_MS 50
#define DEBOUNCE_MS 50
#define REPEAT_MS 200
#define REPEAT_START_MS 700
@@ -45,7 +45,7 @@ static esp_err_t tca_read_word(uint8_t reg, uint16_t *value) {
return ret;
}
esp_err_t i2cdev_init(void) {
esp_err_t i2c_init(void) {
if (i2c_initted) return ESP_OK;
i2c_config_t conf = {
@@ -75,6 +75,13 @@ esp_err_t i2c_set_led1(uint8_t state) {
return tca_write_word_8(TCA_REG_OUTPUT0, state<<5);
}
esp_err_t i2c_stop() {
if (!i2c_initted) return ESP_OK;
i2c_set_relays(0);
i2c_set_led1(0);
return ESP_OK;
}
#define N_BTNS 2
static bool debounced_state[N_BTNS] = {false};
static bool last_known_state[N_BTNS] = {false};

View File

@@ -6,7 +6,8 @@
#include "esp_err.h"
// Public Functions
esp_err_t i2cdev_init(void);
esp_err_t i2c_init(void);
esp_err_t i2c_stop(void);
esp_err_t i2c_set_relays(uint8_t states);
esp_err_t i2c_set_led1(uint8_t state);

View File

@@ -1,3 +1,5 @@
#include "esp_task_wdt.h"
#include "i2c.h"
#include "storage.h"
#include "uart_comms.h"
#include "esp_err.h"
@@ -7,9 +9,13 @@
#include "power_mgmt.h"
#include "rtc.h"
#include "sensors.h"
#include "solar.h"
#include "rf.h"
#define TAG "MAIN"
int64_t last_log_time = 0;
esp_err_t send_log() {
char entry[LOG_ENTRY_SIZE] = {0};
@@ -20,13 +26,13 @@ esp_err_t send_log() {
memcpy(&entry[1], &be_timestamp, 8);
// Pack 32-bit voltages/currents into bytes 9-24
/*int32_t be_voltage = htobe32(get_battery_mV());
float be_voltage = htobe32(get_battery_V());
memcpy(&entry[9], &be_voltage, 4);
int32_t be_current1 = htobe32(get_bridge_mA(BRIDGE_DRIVE));
float be_current1 = htobe32(get_bridge_A(BRIDGE_DRIVE));
memcpy(&entry[13], &be_current1, 4);
int32_t be_current2 = htobe32(get_bridge_mA(BRIDGE_JACK));
float be_current2 = htobe32(get_bridge_A(BRIDGE_JACK));
memcpy(&entry[17], &be_current2, 4);
int32_t be_current3 = htobe32(get_bridge_mA(BRIDGE_AUX));
float be_current3 = htobe32(get_bridge_A(BRIDGE_AUX));
memcpy(&entry[21], &be_current3, 4);
int32_t be_counter = htobe32(get_sensor_counter(SENSOR_DRIVE));
@@ -34,28 +40,111 @@ esp_err_t send_log() {
entry[29] = get_sensor(SENSOR_DRIVE);
entry[30] = get_sensor(SENSOR_JACK);
entry[31] = fsm_get_state();*/
entry[31] = fsm_get_state();
last_log_time = esp_timer_get_time();
return write_log(entry);
}
typedef enum {
LED_STATE_DRIVING,
LED_STATE_ERROR,
LED_STATE_AWAKE,
LED_STATE_CANCELLING,
LED_STATE_START1,
LED_STATE_START2,
LED_STATE_START3,
LED_STATE_START4,
LED_STATE_BOOTING
} led_state_t;
void driveLEDs(led_state_t state) {
uint8_t patterns[4][12] = {
{1,3,7,6,4,0},
{7,0},
{1,1,1,1,1,1, 1,1,1,3},
{4,2}
};
switch(state) {
case LED_STATE_DRIVING:
i2c_set_led1(patterns[state][(esp_timer_get_time()/100000) % 6]);
break;
case LED_STATE_ERROR:
i2c_set_led1(patterns[state][(esp_timer_get_time()/1000000) % 2]);
break;
case LED_STATE_AWAKE:
i2c_set_led1(patterns[state][(esp_timer_get_time()/200000) % 10]);
break;
case LED_STATE_CANCELLING:
i2c_set_led1(patterns[state][(esp_timer_get_time()/200000) % 2]);
break;
case LED_STATE_BOOTING:
i2c_set_led1(1);
break;
case LED_STATE_START1:
i2c_set_led1(0);
break;
case LED_STATE_START2:
i2c_set_led1(1);
break;
case LED_STATE_START3:
i2c_set_led1(3);
break;
case LED_STATE_START4:
i2c_set_led1(7);
break;
}
}
void app_main(void) {
// Initialize storage and load parameters
ESP_LOGI(TAG, "Initializing storage...");
esp_err_t ret = storage_init();
if (ret != ESP_OK) {
ESP_LOGW(TAG, "Storage init failed, using defaults");
esp_task_wdt_add(NULL);
// Say hello; turn on the lights
esp_sleep_wakeup_cause_t cause = rtc_wakeup_cause();
if (i2c_init() != ESP_OK) ESP_LOGE(TAG, "I2C FAILED");
i2c_set_relays(0);
driveLEDs(LED_STATE_BOOTING);
// Every boot we load parameters and monitor solar, no matter what
if (adc_init() != ESP_OK) ESP_LOGE(TAG, "ADC FAILED");
if (rtc_xtal_init() != ESP_OK) ESP_LOGE(TAG, "RTC FAILED");
if (storage_init() != ESP_OK) ESP_LOGE(TAG, "STORAGE FAILED");
if (log_init() != ESP_OK) ESP_LOGE(TAG, "LOG FAILED");
if (run_solar_fsm() != ESP_OK) ESP_LOGE(TAG, "SOLAR FAILED");
// TODO: Do a 12V check and enter deep sleep if there's a problem
send_log();
// Check wake reasons
// If button held, we stay #woke
// If not it must've been the RTC - check alarms
// If there's an alarm or the button was held, do a full boot
// Full boot will handle things from there
// only truly wake up if we saw it on EXT0, or from alarm
/*if (!rtc_is_set()) {
//ESP_LOGI("MAIN", "RTC is not set. Can't sleep til then.");
} else */if (cause == ESP_SLEEP_WAKEUP_EXT0) {
ESP_LOGI("MAIN", "Woke from button press");
} else {
if (!alarm_tripped()) {
//enter_deep_sleep();
}
}
// Initialize logging
ESP_LOGI(TAG, "Initializing logging...");
ret = log_init();
if (ret != ESP_OK) {
ESP_LOGE(TAG, "Log init failed");
}
uart_start();
/*** FULL BOOT ***/
if (uart_init() != ESP_OK) ESP_LOGE(TAG, "UART FAILED");
if (power_init() != ESP_OK) ESP_LOGE(TAG, "POWER FAILED");
if (rf_init() != ESP_OK) ESP_LOGE(TAG, "RF FAILED");
if (fsm_init() != ESP_OK) ESP_LOGE(TAG, "FSM FAILED");
if (sensors_init() != ESP_OK) ESP_LOGE(TAG, "SENSORS FAILED");
/*** MAIN LOOP ***/
TickType_t xLastWakeTime = xTaskGetTickCount();
const TickType_t xFrequency = pdMS_TO_TICKS(100);
@@ -63,6 +152,76 @@ void app_main(void) {
while(true) {
vTaskDelayUntil(&xLastWakeTime, xFrequency);
send_log();
i2c_poll_buttons();
if (i2c_get_button_state(0))
reset_shutdown_timer();
switch (fsm_get_state()) {
case STATE_IDLE:
// LED cue for user
if (i2c_get_button_ms(0) > 1600){
driveLEDs(LED_STATE_START4);
} else if (i2c_get_button_ms(0) > 1100){
driveLEDs(LED_STATE_START3);
} else if (i2c_get_button_ms(0) > 600){
driveLEDs(LED_STATE_START2);
} else if (i2c_get_button_ms(0) > 100){
driveLEDs(LED_STATE_START1);
} else{
driveLEDs(LED_STATE_AWAKE);
}
// when not actively moving we log at a low frequency
if (esp_timer_get_time() > last_log_time + DEEP_SLEEP_US)
send_log();
if(i2c_get_button_ms(0) > 2100)
fsm_request(FSM_CMD_START);
break;
case STATE_UNDO_JACK:
case STATE_UNDO_JACK_START:
// assume it's running
send_log();
driveLEDs(LED_STATE_CANCELLING);
if (i2c_get_button_tripped(0)) {
ESP_LOGI(TAG, "AAAAH STOP!!!");
fsm_request(FSM_CMD_STOP);
}
break;
default:
// assume it's running in every other case
send_log();
driveLEDs(LED_STATE_DRIVING);
if (i2c_get_button_tripped(0)) {
ESP_LOGI(TAG, "CTRL + Z PLZ!");
fsm_request(FSM_CMD_UNDO);
}
break;
}
if (alarm_tripped()) {
fsm_request(FSM_CMD_START);
set_next_alarm();
}
/*ESP_LOGI(TAG, "VOLTAGE: %2.3f | CURRENTS: %+2.8f %+2.8f %+2.8f",
get_battery_V(),
get_bridge_A(BRIDGE_DRIVE),
get_bridge_A(BRIDGE_JACK),
get_bridge_A(BRIDGE_AUX));*/
run_solar_fsm();
//check_shutdown_timer();
esp_task_wdt_reset();
}
}

View File

@@ -34,194 +34,47 @@
#include "storage.h"
#include "rtc.h"
#define TAG "POWER"
// === GPIO Pin Definitions ===
#define PIN_V_ISENS1 ADC_CHANNEL_6 // GPIO34
#define PIN_V_ISENS2 ADC_CHANNEL_3 // GPIO39 / VN
#define PIN_V_ISENS1 ADC_CHANNEL_0 // GPIO36 / VP
#define PIN_V_ISENS2 ADC_CHANNEL_6 // GPIO34
#define PIN_V_ISENS3 ADC_CHANNEL_7 // GPIO35
#define PIN_V_BATTERY ADC_CHANNEL_0 // GPIO36 / VP
#define PIN_V_BATTERY ADC_CHANNEL_3 // GPIO39 / VN
#define PIN_V_SENS_BAT PIN_V_BATTERY
#define PIN_CHG_DISABLE GPIO_NUM_26
#define PIN_CHG_BULK GPIO_NUM_27
#define AUTOZERO_THRESH 2000.0f // mA
// update time
#define UPDATE_MS 20
#define UPDATE_S 0.02f
typedef enum {
CHG_T_LOWBAT = 0,
CHG_T_BULK = 1,
CHG_T_STEADY = 2,
} charge_timer_t;
#define N_CHG_TIMERS 3
RTC_DATA_ATTR charge_state_t current_charge_state = CHG_STATE_BULK;
RTC_DATA_ATTR int64_t charge_timers[N_CHG_TIMERS] = {-1};
int64_t now;
charge_state_t get_charging_state() { return current_charge_state; }
void setTimerN(charge_timer_t i, int64_t sec) {
// set the timer for <sec> in the future if it's currently less than now
if (charge_timers[i] < now) {
charge_timers[i] = now + sec;
ESP_LOGI("BAT", "Set timer[%d] +%lld", i, (long long)sec);
}
}
void resetTimerN(charge_timer_t i) {
charge_timers[i] = -1;
}
void resetBatTimers() {
for (uint8_t i=0; i<N_CHG_TIMERS; i++)
resetTimerN(i);
}
bool getTimerN(charge_timer_t i) {
if (charge_timers[i] < 0) return false;
return system_rtc_get_raw_time() > charge_timers[i];
}
#define BULK_CHARGE_S 20 //2*60*60
#define FLOAT_STEADY_S 10 //30*60
#define LOW_DETECT_S 10 //5*60
#define STEADY_MV 13000
#define LOW_MV 12800
void run_charge_fsm() {
now = system_rtc_get_raw_time();
//ESP_LOGI("BAT", "FSM STATE %d", current_charge_state);
if (rtc_is_set()) {
switch(current_charge_state) {
case CHG_STATE_BULK:
// turn off bulk charging and go to float when time is up
if (getTimerN(CHG_T_BULK)) {
ESP_LOGI("BAT", "BULK -> FLOAT");
current_charge_state = CHG_STATE_FLOAT;
}
break;
case CHG_STATE_FLOAT:
if (getTimerN(CHG_T_STEADY)) {
ESP_LOGI("BAT", "FLOAT -> OFF");
current_charge_state = CHG_STATE_OFF;
}
if (get_battery_mV() > STEADY_MV) {
setTimerN(CHG_T_STEADY, FLOAT_STEADY_S);
} else {
resetTimerN(CHG_T_STEADY);
}
// NO break; !! float should also kick into bulk with same triggers
case CHG_STATE_OFF:
// after 5 minutes of low-ish battery go into bulk charge
if (getTimerN(CHG_T_LOWBAT)) {
ESP_LOGI("BAT", " -> BULK");
current_charge_state = CHG_STATE_BULK;
setTimerN(CHG_T_BULK, BULK_CHARGE_S);
}
if (get_battery_mV() < LOW_MV) {
setTimerN(CHG_T_LOWBAT, LOW_DETECT_S);
} else {
resetTimerN(CHG_T_LOWBAT);
}
break;
}
} else {
//ESP_LOGI("BAT", " -> BULK");
current_charge_state = CHG_STATE_BULK;
}
//rtc_gpio_hold_dis(PIN_CHG_BULK);
//rtc_gpio_hold_dis(PIN_CHG_DISABLE);
switch(current_charge_state) {
case CHG_STATE_BULK:
gpio_set_level(PIN_CHG_BULK, 1);
gpio_set_level(PIN_CHG_DISABLE, 0);
//ESP_LOGI("BAT", "BULK");
break;
case CHG_STATE_FLOAT:
gpio_set_level(PIN_CHG_BULK, 0);
gpio_set_level(PIN_CHG_DISABLE, 0);
//ESP_LOGI("BAT", "FLOAT");
break;
case CHG_STATE_OFF:
gpio_set_level(PIN_CHG_BULK, 0);
gpio_set_level(PIN_CHG_DISABLE, 1);
//ESP_LOGI("BAT", "OFF");
break;
}
//rtc_gpio_hold_en(PIN_CHG_BULK);
//rtc_gpio_hold_en(PIN_CHG_DISABLE);
}
int64_t now; // us
typedef struct {
bool enabled; // Auto-zero active for this channel
float threshold_ma; // Max current to consider "zero" (mA)
float learned_offset_mv; // Accumulated zero offset (mV)
bool initialized; // First valid zero established
} autozero_t;
static autozero_t autozero[N_BRIDGES] = {0};
int64_t az_enable_time; // Timestamp to enable autozeroing at (negative to disable)
float az_offset; // Accumulated zero offset
bool az_initialized; // First valid zero established
// === E-Fuse (Software Breaker) Configuration ===
static const char* currentLimits_A[N_BRIDGES] = {
[BRIDGE_DRIVE] = "efuse_drive_A", //40000,
[BRIDGE_AUX] = "efuse_aux_A", // 5000,
[BRIDGE_JACK] = "efuse_jack_A" // 10000
};
static const float i2t_thresholds[N_BRIDGES] = { // A^2*s (tunable per bridge if needed)
[BRIDGE_DRIVE] = 6.0f,
[BRIDGE_AUX] = 6.0f,
[BRIDGE_JACK] = 6.0f
};
static const float i_instant[N_BRIDGES] = { // Instant trip multiplier of I_rated
[BRIDGE_DRIVE] = 15.0f,
[BRIDGE_AUX] = 15.0f,
[BRIDGE_JACK] = 15.0f
};
static const float cool_rate[N_BRIDGES] = { // Cooling constant (1/s)
[BRIDGE_DRIVE] = 0.008f,
[BRIDGE_AUX] = 0.008f,
[BRIDGE_JACK] = 0.008f
};
static const int32_t cooldown_ms[N_BRIDGES] = { // Auto-reset delay after trip
[BRIDGE_DRIVE] = 5000,
[BRIDGE_AUX] = 5000,
[BRIDGE_JACK] = 5000
};
bool ema_init;
float ema_current;
static float efuse_heat[N_BRIDGES] = {0};
static uint64_t efuse_trip_time[N_BRIDGES] = {0}; // Timestamp when tripped
static bool efuse_tripped[N_BRIDGES] = {false};
float current; // with all the corrections applied
float heat;
bool tripped;
int64_t trip_time;
} isens_channel_t;
static isens_channel_t isens[N_BRIDGES] = {0};
// === ADC Handles ===
static adc_oneshot_unit_handle_t adc1_handle = NULL;
static adc_cali_handle_t adc_cali_handle = NULL;
// === EMA Filter State ===
#define EMA_ALPHA_CURRENT 0.5f
#define EMA_ALPHA_BATTERY 0.05f
static float ema_current[N_BRIDGES] = {0};
static bool ema_init[N_BRIDGES] = {false};
static float ema_battery = 0.0f;
static bool ema_battery_init = false;
// === Shared Volatile Outputs ===
volatile int32_t bridgeCurrents_mA[N_BRIDGES] = {0};
volatile int32_t batteryVoltage_mV = 0;
// === ADC Initialization ===
static esp_err_t adc_init(void) {
if (adc1_handle != NULL) {
return ESP_OK; // Already initialized
}
// ADC1 oneshot mode
esp_err_t adc_init() {
// ADC1 oneshot mode
adc_oneshot_unit_init_cfg_t init_cfg = {
.unit_id = ADC_UNIT_1,
};
@@ -246,51 +99,62 @@ static esp_err_t adc_init(void) {
};
ESP_ERROR_CHECK(adc_cali_create_scheme_line_fitting(&cali_cfg, &adc_cali_handle));
return ESP_OK;
}
float get_raw_battery_voltage(void) {
int adc_raw = 0;
int voltage_mv = 0;
if (adc_oneshot_read(adc1_handle, PIN_V_SENS_BAT, &adc_raw)
!= ESP_OK) { return NAN; }
if (adc_cali_raw_to_voltage(adc_cali_handle, adc_raw, &voltage_mv)
!= ESP_OK) { return NAN; }
// Voltage divider: 150kohm to 1Mohm -> gain = 1.15 -> scale = 1150/150
return voltage_mv * 0.00766666666; // same as / 1000.0 * 1150.0 / 150.0;
}
esp_err_t process_battery_voltage(void)
{
float raw = get_raw_battery_voltage();
if (!ema_battery_init) {
ema_battery = (float)raw;
ema_battery_init = true;
} else {
float alpha = get_param(PARAM_ADC_ALPHA_BATTERY).f32;
if (isnan(raw)) {
ESP_LOGI(TAG, "RAW BATTERY IS NAN");
} else {
if (isnan(ema_battery) || isnan(alpha))
ema_battery = raw;
else
ema_battery = alpha * (float)raw + (1.0f - alpha) * ema_battery;
}
}
return ESP_OK;
}
void autozero_enable(bridge_t bridge, bool enable) {
if (bridge >= N_BRIDGES) return;
autozero[bridge].enabled = enable;
if (!enable) {
autozero[bridge].learned_offset_mv = 0.0f;
autozero[bridge].initialized = false;
}
void set_autozero(bridge_t bridge) {
// enable autozeroing for this bridge 1 second from now
isens[bridge].az_enable_time = now+1000000;
//ESP_LOGI(TAG, "KILLING BRIDGE %d; %lld -> %lld", bridge, (long long int) now, (long long int) isens[bridge].az_enable_time);
}
void autozero_set_threshold(bridge_t bridge, float threshold_ma) {
if (bridge >= N_BRIDGES) return;
autozero[bridge].threshold_ma = fmaxf(0.0f, threshold_ma);
}
float autozero_get_offset_mv(bridge_t bridge) {
if (bridge >= N_BRIDGES) return 0.0f;
return autozero[bridge].learned_offset_mv;
}
void autozero_reset(bridge_t bridge) {
if (bridge >= N_BRIDGES) return;
autozero[bridge].learned_offset_mv = 0.0f;
autozero[bridge].initialized = false;
}
void autozero_reset_all(void) {
for (uint8_t i = 0; i < N_BRIDGES; i++) {
autozero_reset((bridge_t)i);
}
}
// === Raw Current Reading (mA) ===
static int32_t read_bridge_current_raw(bridge_t bridge) {
int adc_raw = 0;
esp_err_t process_bridge_current(bridge_t bridge) {
int adc_raw = 0;
int voltage_mv = 0;
isens_channel_t *channel = &isens[bridge];
adc_channel_t pin;
switch(bridge) {
case BRIDGE_DRIVE: pin = PIN_V_ISENS3; break;
case BRIDGE_AUX: pin = PIN_V_ISENS1; break;
case BRIDGE_DRIVE: pin = PIN_V_ISENS1; break;
case BRIDGE_JACK: pin = PIN_V_ISENS2; break;
default: return -42069;
case BRIDGE_AUX: pin = PIN_V_ISENS3; break;
default: return -42069; // lol
}
if (adc_oneshot_read(adc1_handle, pin, &adc_raw) != ESP_OK) {
@@ -300,204 +164,170 @@ static int32_t read_bridge_current_raw(bridge_t bridge) {
return 0;
}
float current_sense_mv = (float)voltage_mv;
autozero_t *az = &autozero[bridge];
// === AUTO-ZERO LEARNING PHASE ===
if (az->enabled && get_bridge_state(bridge)==0) {
float raw_current_ma = 0.0f;
switch (bridge) {
case BRIDGE_JACK:
case BRIDGE_AUX:
// ACS37042KLHBLT-030B3 is 30A capable and 44 mV/A
raw_current_ma = (current_sense_mv - 1650.0f) * 1000.0f / 44.0f;
break;
case BRIDGE_DRIVE:
// ACS37220LEZATR-100B3 is 100A capable and 13.2 mV/A
raw_current_ma = (current_sense_mv - 1650.0f) * 1000.0f / 13.20f;
break;
}
if (fabsf(raw_current_ma) <= az->threshold_ma) {
// Valid zero sample
if (!az->initialized) {
az->learned_offset_mv = current_sense_mv - 1650.0f;
az->initialized = true;
} else {
// EMA on offset (slow adaptation)
float alpha = 0.1f;
az->learned_offset_mv = alpha * (current_sense_mv - 1650.0f) +
(1.0f - alpha) * az->learned_offset_mv;
}
}
}
// === APPLY AUTO-ZERO OFFSET ===
float corrected_mv = current_sense_mv - az->learned_offset_mv;
int32_t offset_mv = (int32_t)(corrected_mv - 1650.0f);
int32_t current_ma = 0;
float raw_a = NAN;
switch (bridge) {
case BRIDGE_JACK:
case BRIDGE_AUX:
current_ma = offset_mv * 1000 / 44; // 44 mV/A
// ACS37042KLHBLT-030B3 is 30A capable and 44 mV/A
raw_a = (voltage_mv - 1650.0f) / 44.0f;
break;
case BRIDGE_DRIVE:
current_ma = offset_mv * 10000 / 132; // 13.2 mV/A
// ACS37220LEZATR-100B3 is 100A capable and 13.2 mV/A
raw_a = (voltage_mv - 1650.0f) / 13.2f;
break;
}
return current_ma;
}
// === Raw Battery Voltage Reading (mV) ===
static int32_t read_battery_voltage_raw(void)
{
int adc_raw = 0;
int voltage_mv = 0;
if (adc_oneshot_read(adc1_handle, PIN_V_SENS_BAT, &adc_raw) != ESP_OK) {
return 0;
}
if (adc_cali_raw_to_voltage(adc_cali_handle, adc_raw, &voltage_mv) != ESP_OK) {
return 0;
}
// Voltage divider: 150kΩ to 1MΩ → gain = 1.15 → scale = 1150/150
return (int32_t)voltage_mv * 1150 / 150;
}
// === EMA Filter Update ===
static void apply_ema(float *state, bool *init, float alpha, int32_t raw, volatile int32_t *out)
{
if (!*init) {
*state = (float)raw;
*init = true;
if (!channel->ema_init) {
channel->ema_current = (float)raw_a;
channel->ema_init = true;
} else {
*state = alpha * (float)raw + (1.0f - alpha) * *state;
}
*out = (int32_t)(*state + 0.5f);
}
// === Public Accessors ===
int32_t get_bridge_mA(uint8_t bridge)
{
if (bridge >= N_BRIDGES) return -1;
return (int32_t)bridgeCurrents_mA[bridge];
}
int32_t get_battery_mV(void)
{
return (int32_t)batteryVoltage_mV;
}
// === E-Fuse: Trip Logic (called every cycle) ===
static void efuse_update(uint8_t bridge, float I, float dt, uint64_t now)
{
float I_rated = (float)get_param_i8(currentLimits_A[bridge]);
float I_norm = I / I_rated;
// Instant trip on extreme overcurrent
if (I_norm >= i_instant[bridge]) {
efuse_tripped[bridge] = true;
efuse_trip_time[bridge] = now;
return;
}
// Cooling when below threshold
if (I_norm < 1.1f) {
efuse_heat[bridge] -= efuse_heat[bridge] * cool_rate[bridge] * dt;
efuse_heat[bridge] = fmaxf(0.0f, efuse_heat[bridge]);
efuse_tripped[bridge] = false; // Auto-clear if cooled
return;
}
// Accumulate heat (I²t)
efuse_heat[bridge] += (I_norm * I_norm) * dt;
if (efuse_heat[bridge] >= i2t_thresholds[bridge]) {
efuse_tripped[bridge] = true;
efuse_trip_time[bridge] = now;
}
}
// === E-Fuse: Auto-Reset After Cooldown ===
static void efuse_cooldown_check(uint64_t now)
{
for (uint8_t i = 0; i < N_BRIDGES; i++) {
if (efuse_tripped[i] &&
(now - efuse_trip_time[i]) >= (cooldown_ms[i] * 1000ULL)) {
efuse_heat[i] = 0.0f;
efuse_tripped[i] = false;
float alpha = get_param(PARAM_ADC_ALPHA_ISENS).f32;
if (isnan(raw_a)) {
ESP_LOGI(TAG, "RAW BATTERY IS NAN");
channel->ema_current = NAN;
} else {
if (isnan(ema_battery) || isnan(alpha))
channel->ema_current = raw_a;
else
channel->ema_current = alpha * raw_a + (1.0f - alpha) * channel->ema_current;
}
}
// === AUTO-ZERO LEARNING PHASE ===
if (now > channel->az_enable_time) {
//ESP_LOGI(TAG, "AZING %d", bridge);
float db = get_param(PARAM_ADC_DB_IAZ).f32;
if (isnan(db) || fabsf(channel->ema_current) <= db) {
// Valid zero sample
if (!channel->az_initialized) {
channel->az_offset = channel->ema_current;
channel->az_initialized = true;
} else {
float alpha = get_param(PARAM_ADC_ALPHA_IAZ).f32;
if (isnan(raw_a)) {
ESP_LOGI(TAG, "RAW BATTERY IS NAN");
} else {
if (isnan(ema_battery) || isnan(alpha))
channel->az_offset = channel->ema_current;
else
channel->az_offset = alpha * channel->ema_current +
(1.0f - alpha) * channel->az_offset;
}
}
}
}
// Apply the offset
channel->current = channel->ema_current - channel->az_offset;
// PARAMETERS FOR E-FUSING ALGORITHM
// PARAM_EFUSE_KINST : ratio of nominal current that should cause an immediate shutdown
// PARAM_EFUSE_TCOOL : cooldown timer from trip (in microseconds)
// PARAM_EFUSE_TAUCOOL : speed of cooldown for heating (units are 1/s; bigger = faster cooldown)
// Monitor E-fusing
float I_nominal = NAN;
switch(bridge) {
case BRIDGE_DRIVE:
I_nominal = get_param(PARAM_EFUSE_INOM_1).f32;
break;
case BRIDGE_JACK:
I_nominal = get_param(PARAM_EFUSE_INOM_2).f32;
break;
case BRIDGE_AUX:
I_nominal = get_param(PARAM_EFUSE_INOM_3).f32;
break;
}
// Normalize the current as a fraction of rated current
float I_norm = fabsf(channel->current / I_nominal);
// Instant trip on extreme overcurrent
if (I_norm >= get_param(PARAM_EFUSE_KINST).f32) {
channel->tripped = true;
channel->trip_time = now;
ESP_LOGI(TAG, "FUSE TRIP: Inom: %+.5f HEAT:%+2.5f", I_norm, channel->heat);
return ESP_OK; // no more processing, if we're over, we're over
}
// Accumulate heat
channel->heat += (I_norm * I_norm) * UPDATE_S;
// Only do cooling when below threshold
if (I_norm < 1.0f) {
// if we are hot we radiate more heat
// (I^2/I^2*t) * (1/t) * t = I^2/I^2*t
channel->heat -= channel->heat * get_param(PARAM_EFUSE_TAUCOOL).f32 * UPDATE_S;
channel->heat = fmaxf(0.0f, channel->heat); // keep it from going negative
// channel.tripped = false; // Auto-clear if cooled (WTF why this is insane)
}
// If built-up heat exceeds the time limit, trip
// Recall units of heat are (current_actual^2/current_nominal^2)*time
// Ergo, heat is measured in seconds
if (channel->heat > get_param(PARAM_EFUSE_HEAT_THRESH).f32) {
channel->tripped = true;
channel->trip_time = now;
// If we're not overheated
// And enough time has passed
// Go ahead and reset the e-fuse
} else if (channel->tripped &&
(now - channel->trip_time) > get_param(PARAM_EFUSE_TCOOL).i64) {
channel->tripped = false;
// channel.heat = 0.0f // I think we should wait for the e-fuse to catch up
}
if (bridge == BRIDGE_DRIVE)
ESP_LOGI(TAG, "FUSE: Inom: %+.5f HEAT:%+2.5f", I_norm, channel->heat);
return ESP_OK;
}
// === Public Accessors ===
float get_bridge_A(bridge_t bridge)
{
if (bridge >= N_BRIDGES) return NAN;
return isens[bridge].current;
}
float get_battery_V(void)
{
if (ema_battery_init)
return ema_battery;
return get_raw_battery_voltage();
}
// === Public E-Fuse Controls ===
void efuse_reset_all(void)
/*void efuse_reset_all(void)
{
for (uint8_t i = 0; i < N_BRIDGES; i++) {
efuse_heat[i] = 0.0f;
efuse_tripped[i] = false;
isens[i].heat = 0.0f;
isens[i].tripped = false;
}
}
}*/
bool efuse_is_tripped(uint8_t bridge)
bool efuse_is_tripped(bridge_t bridge)
{
if (bridge >= N_BRIDGES) return false;
return efuse_tripped[bridge];
return isens[bridge].tripped;
}
// === Power Management Task ===
void power_mgmt_task(void *param) {
esp_task_wdt_add(NULL);
/*gpio_config_t io_conf = {
.pin_bit_mask = (1ULL << PIN_CHG_DISABLE) | (1ULL << PIN_CHG_BULK),
.mode = GPIO_MODE_OUTPUT,
.pull_up_en = GPIO_PULLUP_DISABLE,
.pull_down_en = GPIO_PULLDOWN_DISABLE,
.intr_type = GPIO_INTR_DISABLE,
};
gpio_config(&io_conf);*/
/*// Enable RTC GPIO domain (required for hold)
rtc_gpio_init(PIN_CHG_DISABLE);
rtc_gpio_init(PIN_CHG_BULK);
// Set as output
rtc_gpio_set_direction(PIN_CHG_DISABLE, RTC_GPIO_MODE_OUTPUT_ONLY);
rtc_gpio_set_direction(PIN_CHG_BULK, RTC_GPIO_MODE_OUTPUT_ONLY);
// Optional: set initial level (will be held)
//rtc_gpio_set_level(PIN_CHG_DISABLE, 1); // e.g., start disabled
//rtc_gpio_set_level(PIN_CHG_BULK, 0);
// **Critical: Enable hold function**
rtc_gpio_hold_en(PIN_CHG_DISABLE);
rtc_gpio_hold_en(PIN_CHG_BULK);*/
ESP_ERROR_CHECK(adc_init());
TickType_t xLastWakeTime = xTaskGetTickCount();
const TickType_t xFrequency = pdMS_TO_TICKS(20);
const TickType_t xFrequency = pdMS_TO_TICKS(UPDATE_MS);
// Optional: Enable auto-zero with default threshold
autozero_enable(BRIDGE_DRIVE, true);
autozero_enable(BRIDGE_AUX, true);
autozero_enable(BRIDGE_JACK, true);
autozero_set_threshold(BRIDGE_DRIVE, AUTOZERO_THRESH);
autozero_set_threshold(BRIDGE_AUX, AUTOZERO_THRESH);
autozero_set_threshold(BRIDGE_JACK, AUTOZERO_THRESH);
//uint64_t last_wake_time = esp_timer_get_time();
//const uint64_t period = 5000; // 100 us => 10kHz
while (1) {
vTaskDelayUntil(&xLastWakeTime, xFrequency);
uint64_t now_us = esp_timer_get_time();
now = esp_timer_get_time(); // us
/*if (now - last_wake_time < period) {
uint32_t delay_us = (period - (now - last_wake_time)) / 1000;
@@ -508,43 +338,20 @@ void power_mgmt_task(void *param) {
// Sample currents
for (uint8_t i = 0; i < N_BRIDGES; i++) {
int32_t raw_ma = read_bridge_current_raw((bridge_t)i);
apply_ema(&ema_current[i], &ema_init[i], EMA_ALPHA_CURRENT,
raw_ma, &bridgeCurrents_mA[i]);
// Reset spike timer if under limit
/*if (bridgeCurrents_mA[i] < currentLimits_mA[i]) {
currentSpikeSafeTimes[i] = now + CURRENT_SPIKE_TIME_US;
}*/
// === E-FUSE UPDATE ===
float I = (float)bridgeCurrents_mA[i] / 1000.0f;
float dt = 0.020f; // 20 ms task period
efuse_update(i, I, dt, now_us);
process_bridge_current(i);
}
/*ESP_LOGI("PWR", "[ %6ld | %6ld | %6ld mA ] { %6ld mV }",
(long)bridgeCurrents_mA[BRIDGE_DRIVE],
(long)bridgeCurrents_mA[BRIDGE_JACK],
(long)bridgeCurrents_mA[BRIDGE_AUX],
(long)batteryVoltage_mV);*/
// Sample battery
int32_t raw_bat = read_battery_voltage_raw();
apply_ema(&ema_battery, &ema_battery_init, EMA_ALPHA_BATTERY,
raw_bat, &batteryVoltage_mV);
//run_charge_fsm();
efuse_cooldown_check(now_us);
process_battery_voltage();
esp_task_wdt_reset();
}
}
void start_power() {
esp_err_t power_init() {
xTaskCreate(power_mgmt_task, "PWR", 4096, NULL, 5, NULL);
return ESP_OK;
}
void shutdown_power() {
esp_err_t power_stop() {
return ESP_OK;
}

546
main/power_mgmt.c.old Normal file
View File

@@ -0,0 +1,546 @@
/*
* power_mgmt.c
*
* 1 kHz power-management task:
* • Samples all three H-bridge current sensors (DRIVE, AUX, JACK)
* • Samples battery voltage (BAT)
* • Applies EMA filtering on every channel
* • Updates shared volatile globals for the control FSM
* • Handles over-current spike protection
*
* Updated to modern ESP-IDF ADC API (line fitting)
* All variables now defined locally
*
* Created on: Nov 10, 2025
*/
#include <math.h>
#include <stdint.h>
#include <stdbool.h>
#include "driver/rtc_io.h"
#include "esp_log.h"
#include "esp_task_wdt.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_adc/adc_oneshot.h"
#include "esp_adc/adc_cali.h"
#include "esp_adc/adc_cali_scheme.h"
#include "esp_timer.h"
#include "driver/gpio.h"
#include "control_fsm.h"
#include "soc/rtc_io_reg.h"
#include "power_mgmt.h"
#include "storage.h"
#include "rtc.h"
// === GPIO Pin Definitions ===
#define PIN_V_ISENS1 ADC_CHANNEL_0 // GPIO36 / VP
#define PIN_V_ISENS2 ADC_CHANNEL_6 // GPIO34
#define PIN_V_ISENS3 ADC_CHANNEL_7 // GPIO35
#define PIN_V_BATTERY ADC_CHANNEL_3 // GPIO39 / VN
#define PIN_V_SENS_BAT PIN_V_BATTERY
#define PIN_CHG_BULK GPIO_NUM_26
#define AUTOZERO_THRESH 2000.0f // mA
typedef enum {
CHG_T_LOWBAT = 0,
CHG_T_BULK = 1,
CHG_T_STEADY = 2,
} charge_timer_t;
#define N_CHG_TIMERS 3
RTC_DATA_ATTR charge_state_t current_charge_state = CHG_STATE_BULK;
RTC_DATA_ATTR int64_t charge_timers[N_CHG_TIMERS] = {-1};
int64_t now;
charge_state_t get_charging_state() { return current_charge_state; }
void setTimerN(charge_timer_t i, int64_t sec) {
// set the timer for <sec> in the future if it's currently less than now
if (charge_timers[i] < now) {
charge_timers[i] = now + sec;
ESP_LOGI("BAT", "Set timer[%d] +%lld", i, (long long)sec);
}
}
void resetTimerN(charge_timer_t i) {
charge_timers[i] = -1;
}
void resetBatTimers() {
for (uint8_t i=0; i<N_CHG_TIMERS; i++)
resetTimerN(i);
}
bool getTimerN(charge_timer_t i) {
if (charge_timers[i] < 0) return false;
return system_rtc_get_raw_time() > charge_timers[i];
}
#define BULK_CHARGE_S 20 //2*60*60
#define FLOAT_STEADY_S 10 //30*60
#define LOW_DETECT_S 10 //5*60
#define STEADY_MV 13000
#define LOW_MV 12800
void run_charge_fsm() {
now = system_rtc_get_raw_time();
//ESP_LOGI("BAT", "FSM STATE %d", current_charge_state);
if (rtc_is_set()) {
switch(current_charge_state) {
case CHG_STATE_BULK:
// turn off bulk charging and go to float when time is up
if (getTimerN(CHG_T_BULK)) {
ESP_LOGI("BAT", "BULK -> FLOAT");
current_charge_state = CHG_STATE_FLOAT;
}
break;
case CHG_STATE_FLOAT:
if (getTimerN(CHG_T_STEADY)) {
ESP_LOGI("BAT", "FLOAT -> OFF");
current_charge_state = CHG_STATE_OFF;
}
if (get_battery_mV() > STEADY_MV) {
setTimerN(CHG_T_STEADY, FLOAT_STEADY_S);
} else {
resetTimerN(CHG_T_STEADY);
}
// NO break; !! float should also kick into bulk with same triggers
case CHG_STATE_OFF:
// after 5 minutes of low-ish battery go into bulk charge
if (getTimerN(CHG_T_LOWBAT)) {
ESP_LOGI("BAT", " -> BULK");
current_charge_state = CHG_STATE_BULK;
setTimerN(CHG_T_BULK, BULK_CHARGE_S);
}
if (get_battery_mV() < LOW_MV) {
setTimerN(CHG_T_LOWBAT, LOW_DETECT_S);
} else {
resetTimerN(CHG_T_LOWBAT);
}
break;
}
} else {
//ESP_LOGI("BAT", " -> BULK");
current_charge_state = CHG_STATE_BULK;
}
//rtc_gpio_hold_dis(PIN_CHG_BULK);
//rtc_gpio_hold_dis(PIN_CHG_DISABLE);
switch(current_charge_state) {
case CHG_STATE_BULK:
gpio_set_level(PIN_CHG_BULK, 1);
//ESP_LOGI("BAT", "BULK");
break;
case CHG_STATE_FLOAT:
gpio_set_level(PIN_CHG_BULK, 0);
//ESP_LOGI("BAT", "FLOAT");
break;
case CHG_STATE_OFF:
gpio_set_level(PIN_CHG_BULK, 0);
//ESP_LOGI("BAT", "OFF");
break;
}
//rtc_gpio_hold_en(PIN_CHG_BULK);
//rtc_gpio_hold_en(PIN_CHG_DISABLE);
}
typedef struct {
bool enabled; // Auto-zero active for this channel
float threshold_ma; // Max current to consider "zero" (mA)
float learned_offset_mv; // Accumulated zero offset (mV)
bool initialized; // First valid zero established
} autozero_t;
static autozero_t autozero[N_BRIDGES] = {0};
// === E-Fuse (Software Breaker) Configuration ===
static const char* currentLimits_A[N_BRIDGES] = {
[BRIDGE_DRIVE] = "efuse_drive_A", //40000,
[BRIDGE_AUX] = "efuse_aux_A", // 5000,
[BRIDGE_JACK] = "efuse_jack_A" // 10000
};
static const float i2t_thresholds[N_BRIDGES] = { // A^2*s (tunable per bridge if needed)
[BRIDGE_DRIVE] = 6.0f,
[BRIDGE_AUX] = 6.0f,
[BRIDGE_JACK] = 6.0f
};
static const float i_instant[N_BRIDGES] = { // Instant trip multiplier of I_rated
[BRIDGE_DRIVE] = 15.0f,
[BRIDGE_AUX] = 15.0f,
[BRIDGE_JACK] = 15.0f
};
static const float cool_rate[N_BRIDGES] = { // Cooling constant (1/s)
[BRIDGE_DRIVE] = 0.008f,
[BRIDGE_AUX] = 0.008f,
[BRIDGE_JACK] = 0.008f
};
static const int32_t cooldown_ms[N_BRIDGES] = { // Auto-reset delay after trip
[BRIDGE_DRIVE] = 5000,
[BRIDGE_AUX] = 5000,
[BRIDGE_JACK] = 5000
};
static float efuse_heat[N_BRIDGES] = {0};
static uint64_t efuse_trip_time[N_BRIDGES] = {0}; // Timestamp when tripped
static bool efuse_tripped[N_BRIDGES] = {false};
// === ADC Handles ===
static adc_oneshot_unit_handle_t adc1_handle = NULL;
static adc_cali_handle_t adc_cali_handle = NULL;
// === EMA Filter State ===
#define EMA_ALPHA_CURRENT 0.5f
#define EMA_ALPHA_BATTERY 0.05f
static float ema_current[N_BRIDGES] = {0};
static bool ema_init[N_BRIDGES] = {false};
static float ema_battery = 0.0f;
static bool ema_battery_init = false;
// === Shared Volatile Outputs ===
volatile int32_t bridgeCurrents_mA[N_BRIDGES] = {0};
volatile int32_t batteryVoltage_mV = 0;
// === ADC Initialization ===
static esp_err_t adc_init(void) {
if (adc1_handle != NULL) {
return ESP_OK; // Already initialized
}
// ADC1 oneshot mode
adc_oneshot_unit_init_cfg_t init_cfg = {
.unit_id = ADC_UNIT_1,
};
ESP_ERROR_CHECK(adc_oneshot_new_unit(&init_cfg, &adc1_handle));
// Configure all channels
adc_oneshot_chan_cfg_t chan_cfg = {
.atten = ADC_ATTEN_DB_11,
.bitwidth = ADC_BITWIDTH_12,
};
ESP_ERROR_CHECK(adc_oneshot_config_channel(adc1_handle, PIN_V_ISENS1, &chan_cfg));
ESP_ERROR_CHECK(adc_oneshot_config_channel(adc1_handle, PIN_V_ISENS2, &chan_cfg));
ESP_ERROR_CHECK(adc_oneshot_config_channel(adc1_handle, PIN_V_ISENS3, &chan_cfg));
ESP_ERROR_CHECK(adc_oneshot_config_channel(adc1_handle, PIN_V_SENS_BAT, &chan_cfg));
// Line fitting calibration (modern scheme)
adc_cali_line_fitting_config_t cali_cfg = {
.unit_id = ADC_UNIT_1,
.atten = ADC_ATTEN_DB_11,
.bitwidth = ADC_BITWIDTH_12,
};
ESP_ERROR_CHECK(adc_cali_create_scheme_line_fitting(&cali_cfg, &adc_cali_handle));
return ESP_OK;
}
void autozero_enable(bridge_t bridge, bool enable) {
if (bridge >= N_BRIDGES) return;
autozero[bridge].enabled = enable;
if (!enable) {
autozero[bridge].learned_offset_mv = 0.0f;
autozero[bridge].initialized = false;
}
}
void autozero_set_threshold(bridge_t bridge, float threshold_ma) {
if (bridge >= N_BRIDGES) return;
autozero[bridge].threshold_ma = fmaxf(0.0f, threshold_ma);
}
float autozero_get_offset_mv(bridge_t bridge) {
if (bridge >= N_BRIDGES) return 0.0f;
return autozero[bridge].learned_offset_mv;
}
void autozero_reset(bridge_t bridge) {
if (bridge >= N_BRIDGES) return;
autozero[bridge].learned_offset_mv = 0.0f;
autozero[bridge].initialized = false;
}
void autozero_reset_all(void) {
for (uint8_t i = 0; i < N_BRIDGES; i++) {
autozero_reset((bridge_t)i);
}
}
// === Raw Current Reading (mA) ===
static int32_t read_bridge_current_raw(bridge_t bridge) {
int adc_raw = 0;
int voltage_mv = 0;
adc_channel_t pin;
switch(bridge) {
case BRIDGE_DRIVE: pin = PIN_V_ISENS1; break;
case BRIDGE_AUX: pin = PIN_V_ISENS3; break;
case BRIDGE_JACK: pin = PIN_V_ISENS2; break;
default: return -42069; // lol
}
if (adc_oneshot_read(adc1_handle, pin, &adc_raw) != ESP_OK) {
return 0;
}
if (adc_cali_raw_to_voltage(adc_cali_handle, adc_raw, &voltage_mv) != ESP_OK) {
return 0;
}
float current_sense_mv = (float)voltage_mv;
autozero_t *az = &autozero[bridge];
// === AUTO-ZERO LEARNING PHASE ===
if (az->enabled && get_bridge_state(bridge)==0) {
float raw_current_ma = 0.0f;
switch (bridge) {
case BRIDGE_JACK:
case BRIDGE_AUX:
// ACS37042KLHBLT-030B3 is 30A capable and 44 mV/A
raw_current_ma = (current_sense_mv - 1650.0f) * 1000.0f / 44.0f;
break;
case BRIDGE_DRIVE:
// ACS37220LEZATR-100B3 is 100A capable and 13.2 mV/A
raw_current_ma = (current_sense_mv - 1650.0f) * 1000.0f / 13.20f;
break;
}
if (fabsf(raw_current_ma) <= az->threshold_ma) {
// Valid zero sample
if (!az->initialized) {
az->learned_offset_mv = current_sense_mv - 1650.0f;
az->initialized = true;
} else {
// EMA on offset (slow adaptation)
float alpha = 0.1f;
az->learned_offset_mv = alpha * (current_sense_mv - 1650.0f) +
(1.0f - alpha) * az->learned_offset_mv;
}
}
}
// === APPLY AUTO-ZERO OFFSET ===
float corrected_mv = current_sense_mv - az->learned_offset_mv;
int32_t offset_mv = (int32_t)(corrected_mv - 1650.0f);
int32_t current_ma = 0;
switch (bridge) {
case BRIDGE_JACK:
case BRIDGE_AUX:
current_ma = offset_mv * 1000 / 44; // 44 mV/A
break;
case BRIDGE_DRIVE:
current_ma = offset_mv * 10000 / 132; // 13.2 mV/A
break;
}
return current_ma;
}
// === Raw Battery Voltage Reading (mV) ===
static int32_t read_battery_voltage_raw(void)
{
int adc_raw = 0;
int voltage_mv = 0;
if (adc_oneshot_read(adc1_handle, PIN_V_SENS_BAT, &adc_raw) != ESP_OK) {
return 0;
}
if (adc_cali_raw_to_voltage(adc_cali_handle, adc_raw, &voltage_mv) != ESP_OK) {
return 0;
}
// Voltage divider: 150kΩ to 1MΩ → gain = 1.15 → scale = 1150/150
return (int32_t)voltage_mv * 1150 / 150;
}
// === EMA Filter Update ===
static void apply_ema(float *state, bool *init, float alpha, int32_t raw, volatile int32_t *out)
{
if (!*init) {
*state = (float)raw;
*init = true;
} else {
*state = alpha * (float)raw + (1.0f - alpha) * *state;
}
*out = (int32_t)(*state + 0.5f);
}
// === Public Accessors ===
int32_t get_bridge_mA(uint8_t bridge)
{
if (bridge >= N_BRIDGES) return -1;
return (int32_t)bridgeCurrents_mA[bridge];
}
int32_t get_battery_mV(void)
{
return (int32_t)batteryVoltage_mV;
}
// === E-Fuse: Trip Logic (called every cycle) ===
static void efuse_update(uint8_t bridge, float I, float dt, uint64_t now)
{
float I_rated = (float)get_param_i8(currentLimits_A[bridge]);
float I_norm = I / I_rated;
// Instant trip on extreme overcurrent
if (I_norm >= i_instant[bridge]) {
efuse_tripped[bridge] = true;
efuse_trip_time[bridge] = now;
return;
}
// Cooling when below threshold
if (I_norm < 1.1f) {
efuse_heat[bridge] -= efuse_heat[bridge] * cool_rate[bridge] * dt;
efuse_heat[bridge] = fmaxf(0.0f, efuse_heat[bridge]);
efuse_tripped[bridge] = false; // Auto-clear if cooled
return;
}
// Accumulate heat (I²t)
efuse_heat[bridge] += (I_norm * I_norm) * dt;
if (efuse_heat[bridge] >= i2t_thresholds[bridge]) {
efuse_tripped[bridge] = true;
efuse_trip_time[bridge] = now;
}
}
// === E-Fuse: Auto-Reset After Cooldown ===
static void efuse_cooldown_check(uint64_t now)
{
for (uint8_t i = 0; i < N_BRIDGES; i++) {
if (efuse_tripped[i] &&
(now - efuse_trip_time[i]) >= (cooldown_ms[i] * 1000ULL)) {
efuse_heat[i] = 0.0f;
efuse_tripped[i] = false;
}
}
}
// === Public E-Fuse Controls ===
void efuse_reset_all(void)
{
for (uint8_t i = 0; i < N_BRIDGES; i++) {
efuse_heat[i] = 0.0f;
efuse_tripped[i] = false;
}
}
bool efuse_is_tripped(uint8_t bridge)
{
if (bridge >= N_BRIDGES) return false;
return efuse_tripped[bridge];
}
// === Power Management Task ===
void power_mgmt_task(void *param) {
esp_task_wdt_add(NULL);
/*gpio_config_t io_conf = {
.pin_bit_mask = (1ULL << PIN_CHG_DISABLE) | (1ULL << PIN_CHG_BULK),
.mode = GPIO_MODE_OUTPUT,
.pull_up_en = GPIO_PULLUP_DISABLE,
.pull_down_en = GPIO_PULLDOWN_DISABLE,
.intr_type = GPIO_INTR_DISABLE,
};
gpio_config(&io_conf);*/
/*// Enable RTC GPIO domain (required for hold)
rtc_gpio_init(PIN_CHG_DISABLE);
rtc_gpio_init(PIN_CHG_BULK);
// Set as output
rtc_gpio_set_direction(PIN_CHG_DISABLE, RTC_GPIO_MODE_OUTPUT_ONLY);
rtc_gpio_set_direction(PIN_CHG_BULK, RTC_GPIO_MODE_OUTPUT_ONLY);
// Optional: set initial level (will be held)
//rtc_gpio_set_level(PIN_CHG_DISABLE, 1); // e.g., start disabled
//rtc_gpio_set_level(PIN_CHG_BULK, 0);
// **Critical: Enable hold function**
rtc_gpio_hold_en(PIN_CHG_DISABLE);
rtc_gpio_hold_en(PIN_CHG_BULK);*/
ESP_ERROR_CHECK(adc_init());
TickType_t xLastWakeTime = xTaskGetTickCount();
const TickType_t xFrequency = pdMS_TO_TICKS(20);
// Optional: Enable auto-zero with default threshold
autozero_enable(BRIDGE_DRIVE, true);
autozero_enable(BRIDGE_AUX, true);
autozero_enable(BRIDGE_JACK, true);
autozero_set_threshold(BRIDGE_DRIVE, AUTOZERO_THRESH);
autozero_set_threshold(BRIDGE_AUX, AUTOZERO_THRESH);
autozero_set_threshold(BRIDGE_JACK, AUTOZERO_THRESH);
//uint64_t last_wake_time = esp_timer_get_time();
//const uint64_t period = 5000; // 100 us => 10kHz
while (1) {
vTaskDelayUntil(&xLastWakeTime, xFrequency);
uint64_t now_us = esp_timer_get_time();
/*if (now - last_wake_time < period) {
uint32_t delay_us = (period - (now - last_wake_time)) / 1000;
if (delay_us > 0) vTaskDelay(pdMS_TO_TICKS(delay_us));
continue;
}
last_wake_time = now;*/
// Sample currents
for (uint8_t i = 0; i < N_BRIDGES; i++) {
int32_t raw_ma = read_bridge_current_raw((bridge_t)i);
apply_ema(&ema_current[i], &ema_init[i], EMA_ALPHA_CURRENT,
raw_ma, &bridgeCurrents_mA[i]);
// Reset spike timer if under limit
/*if (bridgeCurrents_mA[i] < currentLimits_mA[i]) {
currentSpikeSafeTimes[i] = now + CURRENT_SPIKE_TIME_US;
}*/
// === E-FUSE UPDATE ===
float I = (float)bridgeCurrents_mA[i] / 1000.0f;
float dt = 0.020f; // 20 ms task period
efuse_update(i, I, dt, now_us);
}
/*ESP_LOGI("PWR", "[ %6ld | %6ld | %6ld mA ] { %6ld mV }",
(long)bridgeCurrents_mA[BRIDGE_DRIVE],
(long)bridgeCurrents_mA[BRIDGE_JACK],
(long)bridgeCurrents_mA[BRIDGE_AUX],
(long)batteryVoltage_mV);*/
// Sample battery
int32_t raw_bat = read_battery_voltage_raw();
apply_ema(&ema_battery, &ema_battery_init, EMA_ALPHA_BATTERY,
raw_bat, &batteryVoltage_mV);
//run_charge_fsm();
efuse_cooldown_check(now_us);
esp_task_wdt_reset();
}
}
void start_power() {
xTaskCreate(power_mgmt_task, "PWR", 4096, NULL, 5, NULL);
}
void shutdown_power() {
}

View File

@@ -8,27 +8,22 @@
#ifndef MAIN_POWER_MGMT_H_
#define MAIN_POWER_MGMT_H_
#include "control_fsm.h"
#include <stdbool.h>
#include <stdint.h>
#include "esp_err.h"
typedef enum {
CHG_STATE_OFF = 0,
CHG_STATE_FLOAT = 1,
CHG_STATE_BULK = 2
} charge_state_t;
#define N_CHARGE_STATES 3
charge_state_t get_charging_state();
//void efuse_reset_all(void); // Clear all trip states (manual/programmatic reset)
bool efuse_is_tripped(bridge_t bridge); // Query if bridge is currently faulted
void resetBatTimers();
float get_bridge_A(bridge_t bridge);
float get_battery_V();
void efuse_reset_all(void); // Clear all trip states (manual/programmatic reset)
bool efuse_is_tripped(uint8_t bridge); // Query if bridge is currently faulted
void set_autozero(bridge_t bridge);
int32_t get_bridge_mA(uint8_t bridge);
int32_t get_battery_mV();
void start_power();
void shutdown_power();
esp_err_t adc_init();
esp_err_t power_init();
esp_err_t power_stop();
#endif /* MAIN_POWER_MGMT_H_ */

View File

@@ -1,6 +1,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "control_fsm.h"
#include "driver/rmt_rx.h"
#include "driver/gpio.h"
#include "esp_log.h"
@@ -14,16 +15,18 @@
#include "driver/rmt_rx.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "rf.h"
#include "flash.h"
#include "storage.h"
#define RF_PIN GPIO_NUM_23
#define TAG "RF"
#define RF_PIN GPIO_NUM_25
#define P_HIGH 1040
#define P_LOW 340
#define P_MARGIN 70
#define P_SKIPMIN 250
#define RF_DEBUG 0
#define NUM_RF_BUTTONS 4
// Struct to hold decoded RF data
typedef struct {
@@ -37,6 +40,8 @@ typedef struct {
// Global queue for passing decoded codes between tasks
static QueueHandle_t g_code_queue = NULL;
int learn_flag = -1;
// For rmt_rx_register_event_callbacks
static bool rfrx_done(rmt_channel_handle_t channel, const rmt_rx_done_event_data_t *edata, void *udata) {
BaseType_t high_task_wakeup = pdFALSE;
@@ -48,6 +53,7 @@ static bool rfrx_done(rmt_channel_handle_t channel, const rmt_rx_done_event_data
// Task that receives and decodes RF signals
static void rf_receiver_task(void* param) {
esp_task_wdt_add(NULL);
esp_log_level_set("rmt", ESP_LOG_NONE); // disable rmt messages about hw buffer too small
const uint16_t tlow = (P_HIGH - P_LOW - (2 * P_MARGIN));
const uint16_t thigh = (P_HIGH - P_LOW + (2 * P_MARGIN));
@@ -87,7 +93,7 @@ static void rf_receiver_task(void* param) {
ESP_LOGI("RF", "RF receiver task started on core %d", xPortGetCoreID());
for(;;) {
if (xQueueReceive(rx_queue, &rx_data, pdMS_TO_TICKS(1000)) == pdPASS) {
if (xQueueReceive(rx_queue, &rx_data, pdMS_TO_TICKS(500)) == pdPASS) {
size_t len = rx_data.num_symbols;
rmt_symbol_word_t *cur = rx_data.received_symbols;
@@ -126,16 +132,44 @@ static void rf_receiver_task(void* param) {
// If we got a valid code, send it to processing task
if (code) {
rf_code_t rf_msg = {
.code = code,
.high_avg = high / 24,
.low_avg = low / 24,
.errors = err,
.num_symbols = len
};
int64_t encoded = ((int64_t)len << 56) | code;
// Non-blocking send - if queue is full, just drop it
xQueueSend(g_code_queue, &rf_msg, 0);
ESP_LOGI(TAG, "GOT KEYCODE 0x%lx [%d]", (long) code, len);
if (learn_flag >= 0) {
set_param(PARAM_KEYCODE_0 + learn_flag,
(param_value_t){.i64 = encoded});
ESP_LOGI(TAG, "LEARNED KEYCODE");
learn_flag = -1;
} else {
rf_code_t rf_msg = {
.code = code,
.high_avg = high / 24,
.low_avg = low / 24,
.errors = err,
.num_symbols = len
};
// Don't do this anymore. No need to pass data between threads. Just act on it.
// Non-blocking send - if queue is full, just drop it
//xQueueSend(g_code_queue, &rf_msg, 0);
for (uint8_t i = 0; i < NUM_RF_BUTTONS; i++) {
int64_t match = get_param(PARAM_KEYCODE_0+i).i64;
if (encoded == match) {
switch (i) {
case 0: pulseOverride(RELAY_A1); pulseOverride(RELAY_A3); break;
case 1: pulseOverride(RELAY_B1); pulseOverride(RELAY_A3); break;
case 2: pulseOverride(RELAY_A2); break;
case 3: pulseOverride(RELAY_B2); break;
default: break;
}
}
}
}
}
// Debug output - print raw symbols
@@ -182,33 +216,36 @@ static void rf_receiver_task(void* param) {
vTaskDelete(NULL);
}
void start_rf() {
esp_err_t rf_init() {
g_code_queue = xQueueCreate(5, sizeof(rf_code_t));
assert(g_code_queue);
xTaskCreate(rf_receiver_task, "RF", 4096, NULL, 10, NULL);
xTaskCreate(rf_receiver_task, TAG, 4096, NULL, 10, NULL);
return ESP_OK;
}
esp_err_t rf_stop() { return ESP_OK; }
void rf_set_keycode(uint8_t index, int64_t code) {
char key[] = "keycode0";
key[7] = 48+index; // ASCII
set_param(PARAM_KEYCODE_0+index, (param_value_t){.i64=code});
}
ESP_LOGI("RF", "SET KEYCODE[%d] = 0x%16llx", index, code);
set_param_i64(key, code);
void rf_learn_keycode(uint8_t index) {
if (index >= 8) return;
learn_flag = index;
}
void rf_cancel_learn_keycode() {
learn_flag = -1;
}
int8_t rf_get_keycode() {
rf_code_t received_code;
char key[] = "keycode0";
if (xQueueReceive(g_code_queue, &received_code, 0) == pdPASS) {
int64_t newcode = ((int64_t)received_code.num_symbols << 56) | received_code.code;
for (uint8_t i = 0; i < NUM_RF_BUTTONS; i++) {
key[7] = 48+i; // ASCII
if (newcode == get_param_i64(key))
if (newcode == get_param(PARAM_KEYCODE_0+i).i64)
return i;
}
ESP_LOGI("RF", "Received unknown code 0x%08lx (%d) [0x%16llx]", (unsigned long)received_code.code, received_code.num_symbols, (unsigned long long) newcode);

View File

@@ -10,11 +10,12 @@
#include "freertos/task.h"
#include "freertos/queue.h"
#define NUM_RF_BUTTONS 4
#define NUM_RF_BUTTONS 8
int64_t recieveKeycode();
void start_rf();
esp_err_t rf_init();
esp_err_t rf_stop();
void rf_set_keycode(uint8_t index, int64_t code);
@@ -23,4 +24,7 @@ int64_t rf_get_raw_keycode();
void rf_clear_queue();
void rf_learn_keycode(uint8_t index);
void rf_cancel_learn_keycode();
#endif

View File

@@ -28,16 +28,13 @@
//#include "esp32/rtc_clk.h" // For RTC_SLOW_FREQ_32K_XTAL enum and rtc_clk_slow_freq_set()
#include "driver/rtc_io.h" // For RTC I/O handling (optional but recommended for pin configuration)
#include "solar.h"
#include "storage.h"
#define PIN_BTN_INTERRUPT GPIO_NUM_13
#define POWER_INACTIVITY_TIMEOUT_MS 20000
#define BATTERY_CHECK_INTERVAL_SEC 30
uint64_t last_activity_tick = 0;
#define DEEP_SLEEP_US 30000000ULL /* 30 seconds in deep sleep */
// RTC_DATA_ATTR keeps this var in RTC memory; persists across sleeps (but not across boots)
RTC_DATA_ATTR int64_t next_alarm_time_s = -1;
RTC_DATA_ATTR bool rtc_set = false;
@@ -45,7 +42,7 @@ bool rtc_is_set() {
return rtc_set;
}
esp_err_t start_rtc(void) {
esp_err_t rtc_xtal_init(void) {
/* ---- Wake sources ---- */
esp_sleep_enable_ext0_wakeup(PIN_BTN_INTERRUPT, 0);
gpio_set_direction(PIN_BTN_INTERRUPT, GPIO_MODE_INPUT);
@@ -62,7 +59,7 @@ esp_err_t start_rtc(void) {
// Select 32 kHz XTAL as slow clock source (wait for stabilization)
//rtc_clk_slow_freq_set(RTC_SLOW_FREQ_32K_XTAL);
// Optional: Brief delay for crystal stabilization (typically <1 ms)
vTaskDelay(pdMS_TO_TICKS(1));
//vTaskDelay(pdMS_TO_TICKS(1));
//ESP_LOGI("RTC", "Configured with external 32 kHz oscillator (freq: %d Hz)", rtc_clk_slow_freq_get_hz());
@@ -80,9 +77,9 @@ void reset_shutdown_timer(void)
void enter_deep_sleep(void)
{
//close_current_log();
//fsm_request(FSM_CMD_STOP);
i2c_set_relays(0);
//esp_sleep_enable_timer_wakeup(DEEP_SLEEP_US);
fsm_request(FSM_CMD_STOP);
i2c_stop();
esp_sleep_enable_timer_wakeup(DEEP_SLEEP_US);
esp_deep_sleep_start();
}
@@ -91,7 +88,7 @@ void rtc_set_time(struct tm *tm) {
start_new_log_file();
struct timeval tv = { .tv_sec = mktime(tm), .tv_usec = 0 };
settimeofday(&tv, NULL);
resetBatTimers();
reset_solar_fsm();
}
void rtc_get_time(struct tm *tm)

View File

@@ -18,16 +18,14 @@
#include "esp_err.h"
#define TRANSITION_DELAY_US 1000000
#define OVERRIDE_PULSE_RF 160000
#define OVERRIDE_PULSE_UX 80000
#define POWER_INACTIVITY_TIMEOUT_MS 180000
#define DEEP_SLEEP_US 120000000ULL /* 120 seconds in deep sleep */
/* -------------------------------------------------------------------------- */
/* Public API */
/* -------------------------------------------------------------------------- */
esp_err_t start_rtc();
esp_err_t rtc_xtal_init();
bool rtc_is_set();

View File

@@ -8,7 +8,7 @@
static const char* TAG = "SENS";
uint8_t sensor_pins[N_SENSORS] = {GPIO_NUM_19, GPIO_NUM_25};
uint8_t sensor_pins[N_SENSORS] = {GPIO_NUM_27, GPIO_NUM_14};
volatile int32_t sensor_count[N_SENSORS] = {0};
static volatile uint64_t sensor_last_isr_time[N_SENSORS] = {0};
@@ -43,6 +43,7 @@ static void IRAM_ATTR sensor_isr_handler(void* arg) {
// Debounce task: Processes queue, updates state & count
static void sensor_debounce_task(void* param) {
esp_task_wdt_add(NULL);
sensor_event_t evt;
static uint64_t last_processed_time[N_SENSORS] = {0};
static bool last_raw_state[N_SENSORS] = {false};
@@ -55,8 +56,6 @@ static void sensor_debounce_task(void* param) {
last_processed_time[i] = esp_timer_get_time();
}
esp_task_wdt_add(NULL);
uint8_t i = 0;
int64_t now = -1;
@@ -117,7 +116,7 @@ static void sensor_debounce_task(void* param) {
}
}
void start_sensors() {
esp_err_t sensors_init() {
gpio_config_t io_conf = {
.pin_bit_mask = (1ULL << sensor_pins[0]) | (1ULL << sensor_pins[1]),
.mode = GPIO_MODE_INPUT,
@@ -130,7 +129,7 @@ void start_sensors() {
sensor_event_queue = xQueueCreate(16, sizeof(sensor_event_t));
if (!sensor_event_queue) {
ESP_LOGE(TAG, "Failed to create sensor queue");
return;
return ESP_FAIL;
}
// Install ISR service
@@ -141,15 +140,19 @@ void start_sensors() {
sensor_stable_state[i] = !gpio_get_level(sensor_pins[i]);
}
xTaskCreate(sensor_debounce_task, "SENS_DEBOUNCE", 3072, NULL, 6, NULL);
xTaskCreate(sensor_debounce_task, "SENSORS", 3072, NULL, 6, NULL);
return ESP_OK;
}
void shutdown_sensors() {
esp_err_t sensors_stop() {
for (uint8_t i = 0; i < N_SENSORS; i++) {
gpio_isr_handler_remove(sensor_pins[i]);
}
gpio_uninstall_isr_service();
vQueueDelete(sensor_event_queue);
return ESP_OK;
}
// Public API

View File

@@ -27,7 +27,7 @@ int32_t get_sensor_counter(sensor_t i);
bool get_sensor(sensor_t i);
void start_sensors();
void shutdown_sensors();
esp_err_t sensors_init();
esp_err_t sensors_stop();
#endif /* MAIN_SENSORS_H_ */

91
main/solar.c Normal file
View File

@@ -0,0 +1,91 @@
#include "solar.h"
#include "driver/rtc_io.h"
#include "rtc.h"
#include "power_mgmt.h"
#include "esp_log.h"
#include "storage.h"
#define TAG "SOLAR"
#define PIN_CHG_BULK GPIO_NUM_26
typedef enum {
CHG_STATE_FLOAT = 0,
CHG_STATE_BULK = 1
} charge_state_t;
RTC_DATA_ATTR charge_state_t current_charge_state = CHG_STATE_FLOAT;
RTC_DATA_ATTR int64_t timer;
esp_err_t reset_solar_fsm() {
timer = -1;
current_charge_state = CHG_STATE_FLOAT;
return ESP_OK;
}
RTC_DATA_ATTR bool solar_needs_init = true;
esp_err_t init_solar_gpio() {
if (solar_needs_init) {
rtc_gpio_init(PIN_CHG_BULK);
rtc_gpio_set_direction(PIN_CHG_BULK, RTC_GPIO_MODE_OUTPUT_ONLY);
solar_needs_init = false;
}
return ESP_OK;
}
esp_err_t run_solar_fsm() {
init_solar_gpio();
int64_t now = system_rtc_get_raw_time();
//ESP_LOGI("BAT", "FSM STATE %d", current_charge_state);
float vbat = get_battery_V();
/*
The state machine is simple.
- After a period of time when battery is low, switch to bulk
- After a period of time in bulk, switch to float
*/
//if (rtc_is_set()) {
switch(current_charge_state) {
case CHG_STATE_BULK:
if (now > timer+get_param(PARAM_CHG_BULK_S).i64) {
current_charge_state = CHG_STATE_FLOAT;
}
break;
case CHG_STATE_FLOAT:
// if we have sufficient voltage, reset the timer
if (vbat > get_param(PARAM_CHG_LOW_V).f32) {
timer = now;
}
if (now > timer+get_param(PARAM_CHG_LOW_S).i64) {
timer = now;
current_charge_state = CHG_STATE_BULK;
}
break;
}
/*} else {
reset_solar_fsm();
ESP_LOGI(TAG, "RESET SOLAR FSM");
}*/
rtc_gpio_hold_dis(PIN_CHG_BULK);
switch(current_charge_state) {
case CHG_STATE_BULK:
rtc_gpio_set_level(PIN_CHG_BULK, 1);
//ESP_LOGI(TAG, "BULK");
break;
case CHG_STATE_FLOAT:
rtc_gpio_set_level(PIN_CHG_BULK, 0);
//ESP_LOGI(TAG, "FLOAT");
break;
}
rtc_gpio_hold_en(PIN_CHG_BULK);
//rtc_gpio_hold_en(PIN_CHG_DISABLE);
return ESP_OK;
}

16
main/solar.h Normal file
View File

@@ -0,0 +1,16 @@
/*
* solar.h
*
* Created on: Dec 13, 2025
* Author: Thad
*/
#ifndef MAIN_SOLAR_H_
#define MAIN_SOLAR_H_
#include "esp_err.h"
esp_err_t run_solar_fsm();
esp_err_t reset_solar_fsm();
#endif /* MAIN_SOLAR_H_ */

View File

@@ -5,7 +5,7 @@
#include "esp_crc.h"
#include "storage.h"
#define TAG "PARAMS"
#define TAG "STORAGE"
// ============================================================================
// PARAMETER TABLE GENERATION
@@ -301,7 +301,7 @@ esp_err_t write_log(char* entry) {
return ESP_FAIL;
}
ESP_LOGI(TAG, "Log @ sector %lu / index %lu / offset %lu", (unsigned long) current_sector, (unsigned long) log_head_index, (unsigned long)current_offset);
//ESP_LOGI(TAG, "Log @ sector %lu / index %lu / offset %lu", (unsigned long) current_sector, (unsigned long) log_head_index, (unsigned long)current_offset);
log_head_index++;

View File

@@ -67,23 +67,39 @@ typedef enum {
PARAM_DEF(NUM_MOVES, u32, 0) \
PARAM_DEF(MOVE_START, u32, 0) \
PARAM_DEF(MOVE_END, u32, 0) \
PARAM_DEF(EFUSE_1_A, u32, 40) \
PARAM_DEF(EFUSE_2_A, u32, 10) \
PARAM_DEF(EFUSE_3_A, u32, 10) \
PARAM_DEF(EFUSE_4_A, u32, 10) \
PARAM_DEF(EFUSE_1_AS, u16, 2400) \
PARAM_DEF(EFUSE_2_AS, u16, 2400) \
PARAM_DEF(EFUSE_3_AS, u16, 600) \
PARAM_DEF(EFUSE_4_AS, u16, 600) \
PARAM_DEF(DRIVE_DIST, u16, 10) \
PARAM_DEF(DRIVE_DIST, u16, 10) /*3*/\
PARAM_DEF(JACK_DIST, u8, 5) \
PARAM_DEF(DRIVE_TPDF, u16, 4000) \
PARAM_DEF(DRIVE_MSPF, u16, 600) \
PARAM_DEF(JACK_MSPI, u16, 600) \
PARAM_DEF(KEYCODE_0, i64, -1) \
PARAM_DEF(KEYCODE_1, i64, -1) \
PARAM_DEF(KEYCODE_2, i64, -1) \
PARAM_DEF(KEYCODE_3, i64, -1)
PARAM_DEF(JACK_MSPI, u16, 600) /*7*/\
PARAM_DEF(KEYCODE_0, i64, 0x19000000005D0C61) \
PARAM_DEF(KEYCODE_1, i64, 0x19000000005D0C62) \
PARAM_DEF(KEYCODE_2, i64, 0x19000000005D0C64) \
PARAM_DEF(KEYCODE_3, i64, 0x19000000005D0C68) /*11*/\
PARAM_DEF(KEYCODE_4, i64, -1) \
PARAM_DEF(KEYCODE_5, i64, -1) \
PARAM_DEF(KEYCODE_6, i64, -1) \
PARAM_DEF(KEYCODE_7, i64, -1) /*15*/\
PARAM_DEF(ADC_ALPHA_BATTERY, f32, 0.02) \
PARAM_DEF(ADC_ALPHA_ISENS, f32, 0.02) \
PARAM_DEF(ADC_ALPHA_IAZ, f32, 0.005) \
PARAM_DEF(ADC_DB_IAZ, f32, 5.0) /*19*/\
PARAM_DEF(EFUSE_INOM_1, f32, 40.0) \
PARAM_DEF(EFUSE_INOM_2, f32, 6.0) \
PARAM_DEF(EFUSE_INOM_3, f32, 2.0) \
PARAM_DEF(EFUSE_HEAT_THRESH, f32, 60.0) /*23*/\
PARAM_DEF(EFUSE_KINST, f32, 4.0) \
PARAM_DEF(EFUSE_TAUCOOL, f32, 0.2) \
PARAM_DEF(EFUSE_TCOOL, i64, 5000000) \
PARAM_DEF(LOW_PROTECTION_V, f32, 10.0) /*27*/\
PARAM_DEF(LOW_PROTECTION_S, i64, 10) \
PARAM_DEF(CHG_LOW_V, f32, 5.0) \
PARAM_DEF(CHG_LOW_S, i64, 5.0) \
PARAM_DEF(CHG_BULK_S, i64, 20) /*31*/\
PARAM_DEF(RF_PULSE_LENGTH, u64, 350000) \
// Generate enum for parameter indices
#define PARAM_DEF(name, type, default_val) PARAM_##name,

View File

@@ -2,12 +2,16 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "esp_task_wdt.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/uart.h"
#include "esp_log.h"
#include "esp_system.h"
#include "storage.h"
#include <errno.h>
#include <ctype.h>
#include "rf.h"
#define TAG "UART"
@@ -19,6 +23,11 @@ static char cmd_buffer[CMD_MAX_LEN];
static int cmd_pos = 0;
static TaskHandle_t uart_task_handle = NULL;
// TODO: Set Time
// TODO: Pair Remote
// TODO: Command Move
// TODO: Show current sensor values
// Parse value as either decimal or hex (0x prefix)
static bool parse_uint64(const char *str, uint64_t *result) {
char *endptr;
@@ -80,7 +89,7 @@ static void print_param_value(param_idx_t id, param_value_t val) {
case PARAM_TYPE_i64:
printf("%lld (0x%016llX)\n",
(long long)val.i64, (unsigned long long)val.u64);
(long long)val.i64, (unsigned long long)val.i64);
break;
case PARAM_TYPE_f32:
@@ -99,6 +108,54 @@ static void print_param_value(param_idx_t id, param_value_t val) {
}
}
static esp_err_t parse_param_value(const char *orig_str, param_type_e type, param_value_t *val) {
const char *str = orig_str;
// Skip leading whitespace
while (isspace((unsigned char)*str)) str++;
// Check for negative sign on unsigned integer types
bool is_unsigned_int = (type == PARAM_TYPE_u8 || type == PARAM_TYPE_u16 || type == PARAM_TYPE_u32 || type == PARAM_TYPE_u64);
if (is_unsigned_int && *str == '-') {
return ESP_FAIL;
}
char *endptr;
errno = 0;
switch (type) {
case PARAM_TYPE_u8:
case PARAM_TYPE_u16:
case PARAM_TYPE_u32:
case PARAM_TYPE_u64:
val->u64 = strtoull(str, &endptr, 0);
break;
case PARAM_TYPE_i8:
case PARAM_TYPE_i16:
case PARAM_TYPE_i32:
case PARAM_TYPE_i64:
val->i64 = strtoll(str, &endptr, 0);
break;
case PARAM_TYPE_f32:
val->f32 = strtof(str, &endptr);
break;
case PARAM_TYPE_f64:
val->f64 = strtod(str, &endptr);
break;
default:
return ESP_FAIL;
}
if (errno == ERANGE || endptr == str || *endptr != '\0') {
return ESP_FAIL;
}
return ESP_OK;
}
// Process set parameter command: sp <id> <value>
static void cmd_set_param(char *args) {
char *id_str = strtok(args, " \t");
@@ -123,17 +180,14 @@ static void cmd_set_param(char *args) {
return;
}
// Parse value
uint64_t value;
if (!parse_uint64(val_str, &value)) {
param_value_t param_val = {0};
param_type_e type = get_param_type(id);
esp_err_t parse_err = parse_param_value(val_str, type, &param_val);
if (parse_err != ESP_OK) {
printf("ERROR: Invalid value\n");
return;
}
// Set parameter (store as u64, will be cast appropriately when used)
param_value_t param_val;
param_val.u64 = value;
esp_err_t err = set_param(id, param_val);
if (err == ESP_OK) {
printf("OK: Parameter %u (%s) set to ",
@@ -259,6 +313,30 @@ static void cmd_help(char *args) {
printf("- Parameter IDs range from 0 to %d\n\n", NUM_PARAMS - 1);
}
static void cmd_rf_learn(char *args) {
char *id_str = strtok(args, " \t");
if (id_str == NULL) {
rf_cancel_learn_keycode();
return;
}
// Parse parameter ID
uint64_t id_u64;
if (!parse_uint64(id_str, &id_u64)) {
printf("ERROR: Invalid parameter ID\n");
return;
}
param_idx_t id = (param_idx_t)id_u64;
if (id < 8) {
printf("Listening for keycode for slot %d\n", id);
rf_learn_keycode(id);
return;
}
printf("ERROR: Keycode slot index out of bounds.\n");
}
// Parse and execute command
static void process_command(char *cmd) {
// Trim leading whitespace
@@ -310,6 +388,8 @@ static void process_command(char *cmd) {
cmd_list_params(cmd);
} else if (strcmp(command, "help") == 0) {
cmd_help(cmd);
} else if (strcmp(command, "rfl") == 0) {
cmd_rf_learn(cmd);
} else {
printf("ERROR: Unknown command '%s' (type 'help' for commands)\n", command);
}
@@ -317,9 +397,11 @@ static void process_command(char *cmd) {
// UART event task
void uart_event_task(void *pvParameters) {
esp_task_wdt_add(NULL);
uint8_t data[BUF_SIZE];
while (1) {
esp_task_wdt_reset();
int len = uart_read_bytes(UART_NUM, data, BUF_SIZE - 1, 20 / portTICK_PERIOD_MS);
if (len > 0) {
@@ -364,14 +446,14 @@ void uart_event_task(void *pvParameters) {
}
}
void uart_start() {
esp_err_t uart_init() {
// Configure UART
uart_config_t uart_config = {
.baud_rate = 115200,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
.baud_rate = 115200,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
.source_clk = UART_SCLK_DEFAULT,
};
@@ -379,24 +461,25 @@ void uart_start() {
ESP_ERROR_CHECK(uart_param_config(UART_NUM, &uart_config));
// Print startup message
printf("\n\n");
/*printf("\n\n");
printf("=================================\n");
printf(" ESP32 Parameter Manager\n");
printf("=================================\n");
printf("Type 'help' for available commands\n\n");
printf("> ");
fflush(stdout);
fflush(stdout);*/
// Create UART task
xTaskCreate(uart_event_task, "uart_event_task", 4096, NULL, 12, &uart_task_handle);
ESP_LOGI(TAG, "UART interface started");
return ESP_OK;
}
void uart_stop() {
esp_err_t uart_stop() {
if (uart_task_handle == NULL) {
ESP_LOGW(TAG, "UART task not running");
return;
return ESP_OK;
}
ESP_LOGI(TAG, "Shutting down UART...");
@@ -415,4 +498,6 @@ void uart_stop() {
uart_driver_delete(UART_NUM);
ESP_LOGI(TAG, "UART shutdown complete");
return ESP_OK;
}

View File

@@ -8,7 +8,9 @@
#ifndef MAIN_UART_COMMS_H_
#define MAIN_UART_COMMS_H_
void uart_start();
void uart_stop();
#include "esp_err.h"
esp_err_t uart_init();
esp_err_t uart_stop();
#endif /* MAIN_UART_COMMS_H_ */

View File

@@ -107,7 +107,7 @@ static void deregister_device(i2c_dev_t *dev)
}
}
esp_err_t i2cdev_init(void)
esp_err_t i2c_init(void)
{
ESP_LOGV(TAG, "Initializing I2C subsystem...");
memset(active_devices, 0, sizeof(active_devices));

View File

@@ -193,7 +193,7 @@ typedef struct
*
* @return ESP_OK on success
*/
esp_err_t i2cdev_init(void);
esp_err_t i2c_init(void);
/**
* @brief Release I2C subsystem (deletes all devices, buses, and mutexes)

View File

@@ -5,4 +5,4 @@ otadata, data, ota, 0xd000, 0x2000,
phy_init, data, phy, 0xf000, 0x1000,
ota_0, app, ota_0, 0x10000, 2M,
ota_1, app, ota_1, 0x210000, 2M,
storage, data, 0x40, 0x410000, 16K,
storage, data, 0x40, 0x410000, 4032K,
1 # ESP32 Partition Table - 8MB Flash with OTA Support
5 phy_init, data, phy, 0xf000, 0x1000,
6 ota_0, app, ota_0, 0x10000, 2M,
7 ota_1, app, ota_1, 0x210000, 2M,
8 storage, data, 0x40, 0x410000, 16K, storage, data, 0x40, 0x410000, 4032K,