diff --git a/firmware/platformio.ini b/firmware/platformio.ini index b2f5dfe..ee90b47 100644 --- a/firmware/platformio.ini +++ b/firmware/platformio.ini @@ -18,9 +18,9 @@ build_flags = -DENABLE_FPS -g -frtti - -DBOARD_HAS_PSRAM - -mfix-esp32-psram-cache-issue - -nostdlib + ; -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 5fa6fc1..d74f76a 100644 --- a/firmware/src/main.cpp +++ b/firmware/src/main.cpp @@ -5,17 +5,17 @@ #include "tasks/taskRegistry.hpp" #include "utils/serial.hpp" -#include -#include +// #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 *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() @@ -24,29 +24,29 @@ void setup() 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"), - std::forward_as_tuple(&ioSetup, &ioLoop, "I/O", 0)); - Tasks.at("I/O").run(); - Tasks.at("I/O").setLogFps(); - Tasks.emplace( - std::piecewise_construct, - std::forward_as_tuple("Physics"), - std::forward_as_tuple(&physicsSetup, &physicsLoop, "Physics", 1)); - Tasks.at("Physics").run(); + // DPSerial::init(); + // DPSerial::sendInstantDebugLog("========== START =========="); + // Tasks.emplace( + // std::piecewise_construct, + // std::forward_as_tuple("I/O"), + // std::forward_as_tuple(&ioSetup, &ioLoop, "I/O", 0)); + // Tasks.at("I/O").run(); + // Tasks.at("I/O").setLogFps(); + // Tasks.emplace( + // std::piecewise_construct, + // std::forward_as_tuple("Physics"), + // std::forward_as_tuple(&physicsSetup, &physicsLoop, "Physics", 1)); + // Tasks.at("Physics").run(); - TaskHandle_t defaultTask = xTaskGetCurrentTaskHandle(); - DPSerial::sendInstantDebugLog("default task handle is %i", defaultTask); - vTaskSuspend(NULL); - taskYIELD(); - DPSerial::sendInstantDebugLog("setup - this should not be printed"); + // TaskHandle_t defaultTask = xTaskGetCurrentTaskHandle(); + // DPSerial::sendInstantDebugLog("default task handle is %i", defaultTask); + // vTaskSuspend(NULL); + // taskYIELD(); + // DPSerial::sendInstantDebugLog("setup - this should not be printed"); } void loop() { - DPSerial::sendInstantDebugLog("loop - this should not be printed"); - delay(1000); + // DPSerial::sendInstantDebugLog("loop - this should not be printed"); + // delay(1000); } diff --git a/firmware/src/utils/spiramallocator.cpp b/firmware/src/utils/spiramallocator.cpp new file mode 100644 index 0000000..079d52a --- /dev/null +++ b/firmware/src/utils/spiramallocator.cpp @@ -0,0 +1,15 @@ +#include "esp_heap_caps.h" + +struct SpiRamAllocator { + void* allocate(size_t size) { + return heap_caps_malloc(size, MALLOC_CAP_SPIRAM); + } + + void deallocate(void* pointer) { + heap_caps_free(pointer); + } + + void* reallocate(void* ptr, size_t new_size) { + return heap_caps_realloc(ptr, new_size, MALLOC_CAP_SPIRAM); + } +}; \ No newline at end of file