diff --git a/firmware/platformio.ini b/firmware/platformio.ini index 07574fc..b2f5dfe 100644 --- a/firmware/platformio.ini +++ b/firmware/platformio.ini @@ -12,11 +12,15 @@ platform = espressif32 framework = arduino board = esp32dev build_flags = + -DCORE_DEBUG_LEVEL=5 -I${protocol.include_dir} -D_GLIBCXX_USE_C99 -DENABLE_FPS -g -frtti + -DBOARD_HAS_PSRAM + -mfix-esp32-psram-cache-issue + -nostdlib #-DENABLE_CRASHDUMP #-DENABLE_PERFMON # use this while debugging diff --git a/firmware/src/main.cpp b/firmware/src/main.cpp index e007de8..5fa6fc1 100644 --- a/firmware/src/main.cpp +++ b/firmware/src/main.cpp @@ -1,16 +1,31 @@ #include - +#include //do we need this? #include "ioMain.hpp" #include "physicsMain.hpp" #include "tasks/taskRegistry.hpp" #include "utils/serial.hpp" +#include +#include + +void *operator new(size_t size) noexcept { return ps_malloc(size); } +void operator delete(void *p) noexcept { free(p); } +void *operator new[](size_t size) noexcept { return operator new(size); } +void operator delete[](void *p) noexcept { operator delete(p); } +void *operator new(size_t size, std::nothrow_t) noexcept { return operator new(size); } +void operator delete(void *p, std::nothrow_t) noexcept { operator delete(p); } +void *operator new[](size_t size, std::nothrow_t) noexcept { return operator new(size); } +void operator delete[](void *p, std::nothrow_t) noexcept { operator delete(p); } + + void setup() { + psramInit(); + Serial.begin(115200); + bool ramFound = psramInit(); + log_d("Ram found %d", ramFound); DPSerial::init(); - DPSerial::sendInstantDebugLog("========== START =========="); - Tasks.emplace( std::piecewise_construct, std::forward_as_tuple("I/O"), diff --git a/utils/serial/src/cppLib/lib.cpp b/utils/serial/src/cppLib/lib.cpp index 446b894..a8f7084 100644 --- a/utils/serial/src/cppLib/lib.cpp +++ b/utils/serial/src/cppLib/lib.cpp @@ -26,6 +26,7 @@ uint64_t CppLib::open(char *port) return 0; } logString("Open successfull"); + // logString("Free heap: %i of %i (%.3f %%). Largest block: %i", ESP.getFreeHeap(), ESP.getHeapSize(), 100*ESP.getFreeHeap()/(float)ESP.getHeapSize(), ESP.getMaxAllocHeap()); return (uint64_t)s_handle; } @@ -40,7 +41,7 @@ void CppLib::close() } void CppLib::poll() -{ +{ bool receivedSync = false; bool receivedHeartbeat = false; bool receivedPosition = false; @@ -50,6 +51,7 @@ void CppLib::poll() while (s_receiveQueue.size() > 0) { + logString("Received some data...."); auto packet = s_receiveQueue.front(); s_receiveQueue.pop(); diff --git a/utils/serial/src/serial/shared.cpp b/utils/serial/src/serial/shared.cpp index 30a72ac..2675c74 100644 --- a/utils/serial/src/serial/shared.cpp +++ b/utils/serial/src/serial/shared.cpp @@ -248,6 +248,7 @@ bool DPSerial::readHeader() bool DPSerial::readPayload() { + logString("Received some payload"); const uint16_t size = s_receiveHeader.PayloadSize; std::vector received; received.reserve(size);