Adds sitara_depot/free_rtos Original one is on server_gorbunov/SmartForce4.0/sitara_depot
53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
/*
|
|
* task.hpp
|
|
*
|
|
* Created on: 6 ìàð. 2023 ã.
|
|
* Author: sychev
|
|
* Âî FreeRtos åñòü äâà ñïîñîáà ñîçäàòü çàäà÷ó:
|
|
* xTaskCreate - ñòýê âûäåëÿåòñÿ äèíàìè÷åñêè ïðè ñîçäàíèè çàäà÷è
|
|
* xTaskCreateStatic - ñòåê âûäåëÿåòñÿ ñòàòè÷åñêè
|
|
* Äàííûé ìîäóëü ðåàëèçîâàí íà îñíîâå xTaskCreate
|
|
*/
|
|
|
|
#ifndef FREE_RTOS_TASK_TASK_HPP_
|
|
#define FREE_RTOS_TASK_TASK_HPP_
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
|
|
namespace free_rtos {
|
|
/**
|
|
* @brief Êëàññ îáåðòêà ðåàëèçóþùèé ñîçäàíèå çàäà÷è âî free_rtos.
|
|
*/
|
|
class Task {
|
|
public:
|
|
/**
|
|
* @brief Òèï óêàçàòåëÿ íà ôóíêöèþ çàäà÷è
|
|
*
|
|
*/
|
|
using TaskFunction = TaskFunction_t;
|
|
|
|
static const uint32_t TaskPriorityHiest = configMAX_PRIORITIES - 1; // 31
|
|
static const uint32_t TaskPriorityLowest = 0; // 0
|
|
|
|
bool Create(std::string name, uint32_t priority, TaskFunction task_fun,
|
|
void * taskArg, int32_t stack_size_bytes = -1);
|
|
|
|
~Task() {
|
|
vTaskDelete(taskHandle_);
|
|
}
|
|
|
|
private:
|
|
static const uint32_t defStackSize_ = 8192; /// Ðàçìåð ñòåêà ïî-óìîë÷àíèþ
|
|
|
|
TaskHandle_t taskHandle_;
|
|
};
|
|
|
|
}
|
|
|
|
|
|
#endif /* FREE_RTOS_TASK_TASK_HPP_ */
|