Added AsyncUdpListener and taskutils
This commit is contained in:
38
src/taskutils.h
Normal file
38
src/taskutils.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
// espressif includes
|
||||
#include <freertos/FreeRTOS.h>
|
||||
#include <freertos/task.h>
|
||||
|
||||
// local includes
|
||||
#include "cpptypesafeenum.h"
|
||||
|
||||
namespace espcpputils {
|
||||
#define CoreAffinityValues(x) \
|
||||
x(Core0) \
|
||||
x(Core1) \
|
||||
x(Both)
|
||||
DECLARE_TYPESAFE_ENUM(CoreAffinity, : uint8_t, CoreAffinityValues)
|
||||
|
||||
namespace {
|
||||
BaseType_t createTask(TaskFunction_t pvTaskCode,
|
||||
const char * const pcName,
|
||||
const uint32_t usStackDepth,
|
||||
void * const pvParameters,
|
||||
UBaseType_t uxPriority,
|
||||
TaskHandle_t * const pvCreatedTask,
|
||||
CoreAffinity coreAffinity)
|
||||
{
|
||||
switch (coreAffinity)
|
||||
{
|
||||
case CoreAffinity::Core0:
|
||||
case CoreAffinity::Core1:
|
||||
return xTaskCreatePinnedToCore(pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pvCreatedTask, int(coreAffinity));
|
||||
case CoreAffinity::Both:
|
||||
return xTaskCreate(pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pvCreatedTask);
|
||||
default:
|
||||
__builtin_unreachable();
|
||||
}
|
||||
}
|
||||
} // namespace
|
||||
} // namespace espcpputils
|
||||
Reference in New Issue
Block a user