Added basic output Task

This commit is contained in:
@CarlWachter 2023-08-31 10:33:46 +02:00
parent d8f592d455
commit 60e1d4c372
2 changed files with 58 additions and 9 deletions

View File

@ -7,20 +7,46 @@
#include <cmsis_os2.h>
#include <FreeRTOS.h>
#include <sta/debug/debug.hpp>
#include <sta/debug/assert.hpp>
typedef StaticTask_t osStaticThreadDef_t;
extern "C" void startManagerTask(void *)
{
extern "C" void outputTask(void *);
namespace sta{
namespace rtos{
extern "C" void startManagerTask(void *)
{
STA_DEBUG_PRINTLN("INITIALIZED MANAGER TASK");
// Create thread using static allocation
osThreadId_t outputTaskHandle;
uint32_t outputTaskBuffer[ 128 ];
osStaticThreadDef_t outputTaskControlBlock;
const osThreadAttr_t outputTask_attributes = {
.name = "outputTask",
.cb_mem = &outputTaskControlBlock,
.cb_size = sizeof(outputTaskControlBlock),
.stack_mem = &outputTaskBuffer[0],
.stack_size = sizeof(outputTaskBuffer),
.priority = (osPriority_t) osPriorityLow,
};
outputTaskHandle = osThreadNew(outputTask, NULL, &outputTask_attributes);
STA_ASSERT_MSG(outputTaskHandle != nullptr, "outputTask initialization failed");
while (true)
{
// TODO
}
osThreadExit();
}
}
}

23
App/Src/tasks/output.cpp Normal file
View File

@ -0,0 +1,23 @@
/*
* manager.cpp
*
* Created on: Aug 31, 2023
* Author: Carl
*/
#include <cmsis_os.h>
#include <string>
#include <usart.h>
extern "C" void outputTask(void *)
{
std::string str("Hello World!");
for (char c : str)
{
HAL_UART_Transmit(&huart2, (uint8_t*)&c, 1, HAL_MAX_DELAY);
}
osThreadExit();
}