From ac7237b0bbe2815e55c68c73345fc259ba6d40c1 Mon Sep 17 00:00:00 2001 From: dario Date: Fri, 1 Sep 2023 18:48:51 +0200 Subject: [PATCH] Modified manager task to avoid crashes. --- .settings/stm32cubeide.project.prefs | 4 +-- App/Src/startup.cpp | 2 ++ App/Src/tasks/manager.cpp | 54 ++++++++++++++-------------- Core/Src/freertos.c | 1 + 4 files changed, 31 insertions(+), 30 deletions(-) diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs index 80ac6f9..96364d8 100644 --- a/.settings/stm32cubeide.project.prefs +++ b/.settings/stm32cubeide.project.prefs @@ -1,5 +1,5 @@ 635E684B79701B039C64EA45C3F84D30=C96BA6CC9F20E1205A6EBDFF40205165 66BE74F758C12D739921AEA421D593D3=4 -8DF89ED150041C4CBC7CB9A9CAA90856=C37D8D153607683CBCB65A289104E87E -DC22A860405A8BF2F2C095E5B6529F12=C37D8D153607683CBCB65A289104E87E +8DF89ED150041C4CBC7CB9A9CAA90856=D6E44E0C9E8538D2672E3627575EB9A7 +DC22A860405A8BF2F2C095E5B6529F12=B7A8998BB86F8064A3F4829332693759 eclipse.preferences.version=1 diff --git a/App/Src/startup.cpp b/App/Src/startup.cpp index cbe8a74..18cc29e 100644 --- a/App/Src/startup.cpp +++ b/App/Src/startup.cpp @@ -34,6 +34,8 @@ namespace sta UARTSettings settings = { .mode = UARTMode::RX_TX }; STM32UART * intf_ptr = new STM32UART(&huart2, settings, mutex); Debug = new PrintableUART(intf_ptr); + + STA_DEBUG_PRINTLN("UART SUCCESSFULLY INITIALIZED"); } } // namespace rtos } // namespace sta diff --git a/App/Src/tasks/manager.cpp b/App/Src/tasks/manager.cpp index 761d756..cd18f39 100644 --- a/App/Src/tasks/manager.cpp +++ b/App/Src/tasks/manager.cpp @@ -12,41 +12,39 @@ #include #include +#include + typedef StaticTask_t osStaticThreadDef_t; extern "C" void outputTask(void *); -namespace sta{ +extern "C" void startManagerTask(void *) +{ + STA_DEBUG_PRINTLN("INITIALIZED MANAGER TASK"); - 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, + }; - // 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"); + */ - outputTaskHandle = osThreadNew(outputTask, NULL, &outputTask_attributes); - STA_ASSERT_MSG(outputTaskHandle != nullptr, "outputTask initialization failed"); - - while (true) - { - // TODO - } - - osThreadExit(); - } + while (true) + { + STA_DEBUG_PRINTLN("PING!"); } + + osThreadExit(); } diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c index 54202b0..8f3a4e1 100644 --- a/Core/Src/freertos.c +++ b/Core/Src/freertos.c @@ -56,6 +56,7 @@ const osThreadAttr_t defaultTask_attributes = { .stack_size = 128 * 4, .priority = (osPriority_t) osPriorityNormal, }; + /* Definitions for managerTask */ osThreadId_t managerTaskHandle; uint32_t managerTaskBuffer[ 128 ];