sitara_depot/components/free_rtos/task/task.cpp
algin ae3cac8a7d feat: First commit
Adds sitara_depot/free_rtos

Original one is on server_gorbunov/SmartForce4.0/sitara_depot
2023-05-03 14:01:32 +03:00

42 lines
900 B
C++

/*
* task.cpp
*
* Created on: 6 ìàð. 2023 ã.
* Author: sychev
*/
#include "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_;
}
/// Ñòåê äîëæåí áûòü âûðîâíåí ïî ãðàíèöå 32 áàéòà
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;
}