From bbc1f643e2f4af41edc642f73c420edda8ea16cc Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Fri, 6 Aug 2021 15:27:14 +0200 Subject: [PATCH] ota task stack size configurable --- src/espasyncota.cpp | 5 +++-- src/espasyncota.h | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/espasyncota.cpp b/src/espasyncota.cpp index b472acd..446b5a8 100644 --- a/src/espasyncota.cpp +++ b/src/espasyncota.cpp @@ -30,8 +30,9 @@ constexpr int END_TASK_BIT = BIT5; constexpr int TASK_ENDED = BIT6; } // namespace -EspAsyncOta::EspAsyncOta(const char *taskName, espcpputils::CoreAffinity coreAffinity) : +EspAsyncOta::EspAsyncOta(const char *taskName, uint32_t stackSize, espcpputils::CoreAffinity coreAffinity) : m_taskName{taskName}, + m_stackSize{stackSize}, m_coreAffinity{coreAffinity} { assert(m_eventGroup.handle); @@ -54,7 +55,7 @@ tl::expected EspAsyncOta::startTask() m_eventGroup.clearBits(TASK_RUNNING | START_REQUEST_BIT | REQUEST_RUNNING_BIT | REQUEST_FINISHED_BIT | REQUEST_SUCCEEDED_BIT | END_TASK_BIT | TASK_ENDED); - const auto result = espcpputils::createTask(otaTask, m_taskName, 8192, this, 10, &m_taskHandle, m_coreAffinity); + const auto result = espcpputils::createTask(otaTask, m_taskName, m_stackSize, this, 10, &m_taskHandle, m_coreAffinity); if (result != pdPASS) { auto msg = fmt::format("failed creating http task {}", result); diff --git a/src/espasyncota.h b/src/espasyncota.h index a09df32..27aa286 100644 --- a/src/espasyncota.h +++ b/src/espasyncota.h @@ -27,7 +27,7 @@ enum OtaCloudUpdateStatus class EspAsyncOta { public: - EspAsyncOta(const char *taskName="asyncOtaTask", espcpputils::CoreAffinity coreAffinity=espcpputils::CoreAffinity::Core1); + EspAsyncOta(const char *taskName="asyncOtaTask", uint32_t stackSize=2048, espcpputils::CoreAffinity coreAffinity=espcpputils::CoreAffinity::Core1); ~EspAsyncOta(); tl::expected startTask(); @@ -48,6 +48,7 @@ private: void otaTask(); const char * const m_taskName; + const uint32_t m_stackSize; const espcpputils::CoreAffinity m_coreAffinity; int m_progress{};