eloquentarduino / tflm_esp32

MIT License
0 stars 2 forks source link

Compatibility issue with arduino-esp32 v3 #1

Open HAL9000COM opened 1 week ago

HAL9000COM commented 1 week ago

The arduino core for esp32 updates to v3 has a lot of API changes, this library is not compatible with it.

Compilation error:

In file included from /home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:23,
                 from /home/hal/Arduino/libraries/tflm_esp32/src/tflm_esp32.h:5,
                 from /mnt/c/Users/Luke/Documents/ESPECG/esp32/esp32.ino:9:
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
   46 |     static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
      |                        ^~~~~~
In file included from /home/hal/.arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
                 from /home/hal/.arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
                 from /home/hal/.arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/specfun.h:45,
                 from /home/hal/.arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/cmath:1935,
                 from /home/hal/.arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/math.h:36,
                 from /home/hal/.arduino15/packages/esp32/hardware/esp32/3.0.2/cores/esp32/esp32-hal.h:30,
                 from /home/hal/.arduino15/packages/esp32/hardware/esp32/3.0.2/cores/esp32/Arduino.h:36,
                 from /tmp/arduino/sketches/1130CF3B5EA12452C750E870557ECC2E/sketch/esp32.ino.cpp:1:
/home/hal/.arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
  757 |     is_pod
      |     ^~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tflm_esp32.h: In instantiation of 'tflite::MicroInterpreter* eloq::tf::newInterpreter(tflite::MicroMutableOpResolver<numOps>*, const tflite::Model*, uint8_t*, size_t) [with unsigned char numOps = 1; uint8_t = unsigned char; size_t = unsigned int]':
/home/hal/Arduino/libraries/EloquentTinyML/src/./eloquent_tinyml/tf.h:146:53:   required from 'Eloquent::Error::Exception& Eloquent::TF::Sequential<numOps, tensorArenaSize>::begin(const unsigned char*) [with unsigned char numOps = 1; unsigned int tensorArenaSize = 81920]'
/mnt/c/Users/Luke/Documents/ESPECG/esp32/esp32.ino:146:19:   required from here
/home/hal/Arduino/libraries/tflm_esp32/src/tflm_esp32.h:31:69: error: 'static void tflite::MicroErrorReporter::operator delete(void*)' is private within this context
   31 |             static ErrorReporter *reporter = new MicroErrorReporter();
      |                                                                     ^
In file included from /home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:26:
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/compatibility.h:27:8: note: declared private here
   27 |   void operator delete(void* p) {}
      |        ^~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/compatibility.h:27:8: note: in definition of macro 'TF_LITE_REMOVE_VIRTUAL_DELETE'
   27 |   void operator delete(void* p) {}
      |        ^~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tflm_esp32.h:31:69: error: 'static void tflite::MicroErrorReporter::operator delete(void*)' is private within this context
   31 |             static ErrorReporter *reporter = new MicroErrorReporter();
      |                                                                     ^
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/compatibility.h:27:8: note: declared private here
   27 |   void operator delete(void* p) {}
      |        ^~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/compatibility.h:27:8: note: in definition of macro 'TF_LITE_REMOVE_VIRTUAL_DELETE'
   27 |   void operator delete(void* p) {}
      |        ^~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tflm_esp32.h:31:46: error: 'static void tflite::MicroErrorReporter::operator delete(void*)' is private within this context
   31 |             static ErrorReporter *reporter = new MicroErrorReporter();
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/compatibility.h:27:8: note: declared private here
   27 |   void operator delete(void* p) {}
      |        ^~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/compatibility.h:27:8: note: in definition of macro 'TF_LITE_REMOVE_VIRTUAL_DELETE'
   27 |   void operator delete(void* p) {}
      |        ^~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tflm_esp32.h:31:46: error: 'static void tflite::MicroErrorReporter::operator delete(void*)' is private within this context
   31 |             static ErrorReporter *reporter = new MicroErrorReporter();
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/compatibility.h:27:8: note: declared private here
   27 |   void operator delete(void* p) {}
      |        ^~~~~~~~
/home/hal/Arduino/libraries/tflm_esp32/src/tensorflow/lite/micro/compatibility.h:27:8: note: in definition of macro 'TF_LITE_REMOVE_VIRTUAL_DELETE'
   27 |   void operator delete(void* p) {}
      |        ^~~~~~~~
eloquentarduino commented 4 days ago

This is a compiled library, so it will only work on the same settings I used to compile it (IDF 2.x). I need to figure it out how to support different IDF cores (probably will need to create another library).