sitara_depot/components/free_rtos/task/task.cpp

42 lines
910 B
C++
Raw Normal View History

/*
* task.cpp
*
* Created on: 6 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Author: sychev
*/
#include "free_rtos/task/task.hpp"
bool free_rtos::Task::Create(std::string name, uint32_t priority, TaskFunction task_fun,
void * taskArg, int32_t stack_size_bytes)
{
if ( (priority > TaskPriorityHiest) || (task_fun == nullptr) ) {
return false;
}
if (stack_size_bytes < 0)
{
stack_size_bytes = defStackSize_;
}
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32 <20><><EFBFBD><EFBFBD><EFBFBD>
if (stack_size_bytes % 32) {
return false;
}
auto ret = xTaskCreate(task_fun,
name.c_str(),
stack_size_bytes / sizeof(configSTACK_DEPTH_TYPE),
taskArg,
priority,
&taskHandle_);
if (pdPASS != ret) {
return false;
}
return true;
}