From 60e1d4c3728294803404d418c0a3218930dd83ed Mon Sep 17 00:00:00 2001 From: "@CarlWachter" Date: Thu, 31 Aug 2023 10:33:46 +0200 Subject: [PATCH] Added basic output Task --- App/Src/tasks/manager.cpp | 44 +++++++++++++++++++++++++++++++-------- App/Src/tasks/output.cpp | 23 ++++++++++++++++++++ 2 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 App/Src/tasks/output.cpp diff --git a/App/Src/tasks/manager.cpp b/App/Src/tasks/manager.cpp index fcb9ac5..761d756 100644 --- a/App/Src/tasks/manager.cpp +++ b/App/Src/tasks/manager.cpp @@ -7,20 +7,46 @@ #include +#include #include +#include +typedef StaticTask_t osStaticThreadDef_t; -extern "C" void startManagerTask(void *) -{ - STA_DEBUG_PRINTLN("INITIALIZED MANAGER TASK"); +extern "C" void outputTask(void *); - while (true) - { - // TODO +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(); + } } - - osThreadExit(); } - diff --git a/App/Src/tasks/output.cpp b/App/Src/tasks/output.cpp new file mode 100644 index 0000000..a8a2ec2 --- /dev/null +++ b/App/Src/tasks/output.cpp @@ -0,0 +1,23 @@ +/* + * manager.cpp + * + * Created on: Aug 31, 2023 + * Author: Carl + */ + +#include +#include +#include + + +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(); +}