summaryrefslogtreecommitdiff
path: root/src/tasks/tasks.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tasks/tasks.cpp')
-rw-r--r--src/tasks/tasks.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/tasks/tasks.cpp b/src/tasks/tasks.cpp
index 2477d8b9..c28f463c 100644
--- a/src/tasks/tasks.cpp
+++ b/src/tasks/tasks.cpp
@@ -5,7 +5,9 @@
*/
#include "tasks.hpp"
+
#include <functional>
+
#include "esp_heap_caps.h"
#include "freertos/FreeRTOS.h"
#include "freertos/portmacro.h"
@@ -31,6 +33,10 @@ template <>
auto Name<Type::kDatabase>() -> std::string {
return "DB";
}
+template <>
+auto Name<Type::kDatabaseBackground>() -> std::string {
+ return "DB_BG";
+}
template <Type t>
auto AllocateStack() -> cpp::span<StackType_t>;
@@ -39,7 +45,7 @@ auto AllocateStack() -> cpp::span<StackType_t>;
// amount of stack space.
template <>
auto AllocateStack<Type::kAudio>() -> cpp::span<StackType_t> {
- std::size_t size = 48 * 1024;
+ std::size_t size = 32 * 1024;
return {static_cast<StackType_t*>(heap_caps_malloc(size, MALLOC_CAP_DEFAULT)),
size};
}
@@ -67,6 +73,12 @@ auto AllocateStack<Type::kDatabase>() -> cpp::span<StackType_t> {
return {static_cast<StackType_t*>(heap_caps_malloc(size, MALLOC_CAP_SPIRAM)),
size};
}
+template <>
+auto AllocateStack<Type::kDatabaseBackground>() -> cpp::span<StackType_t> {
+ std::size_t size = 256 * 1024;
+ return {static_cast<StackType_t*>(heap_caps_malloc(size, MALLOC_CAP_SPIRAM)),
+ size};
+}
// 2048 bytes in internal ram
// 302 KiB in external ram.
@@ -106,6 +118,10 @@ template <>
auto Priority<Type::kDatabase>() -> UBaseType_t {
return 8;
}
+template <>
+auto Priority<Type::kDatabaseBackground>() -> UBaseType_t {
+ return 7;
+}
template <Type t>
auto WorkerQueueSize() -> std::size_t;
@@ -114,6 +130,10 @@ template <>
auto WorkerQueueSize<Type::kDatabase>() -> std::size_t {
return 8;
}
+template <>
+auto WorkerQueueSize<Type::kDatabaseBackground>() -> std::size_t {
+ return 8;
+}
template <>
auto WorkerQueueSize<Type::kUiFlush>() -> std::size_t {