diff --git a/App/Src/tasks/manager.cpp b/App/Src/tasks/manager.cpp index e0e19d2..fcb9ac5 100644 --- a/App/Src/tasks/manager.cpp +++ b/App/Src/tasks/manager.cpp @@ -11,7 +11,7 @@ #include -extern "C" void managerTask(void *) +extern "C" void startManagerTask(void *) { STA_DEBUG_PRINTLN("INITIALIZED MANAGER TASK"); diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c index 2cc7d3e..54202b0 100644 --- a/Core/Src/freertos.c +++ b/Core/Src/freertos.c @@ -29,6 +29,7 @@ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ +typedef StaticTask_t osStaticThreadDef_t; typedef StaticSemaphore_t osStaticMutexDef_t; /* USER CODE BEGIN PTD */ @@ -55,6 +56,18 @@ const osThreadAttr_t defaultTask_attributes = { .stack_size = 128 * 4, .priority = (osPriority_t) osPriorityNormal, }; +/* Definitions for managerTask */ +osThreadId_t managerTaskHandle; +uint32_t managerTaskBuffer[ 128 ]; +osStaticThreadDef_t managerTaskControlBlock; +const osThreadAttr_t managerTask_attributes = { + .name = "managerTask", + .cb_mem = &managerTaskControlBlock, + .cb_size = sizeof(managerTaskControlBlock), + .stack_mem = &managerTaskBuffer[0], + .stack_size = sizeof(managerTaskBuffer), + .priority = (osPriority_t) osPriorityLow, +}; /* Definitions for uartMutex */ osMutexId_t uartMutexHandle; osStaticMutexDef_t uartMutex_cb; @@ -70,6 +83,7 @@ const osMutexAttr_t uartMutex_attributes = { /* USER CODE END FunctionPrototypes */ void StartDefaultTask(void *argument); +extern void startManagerTask(void *argument); void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */ @@ -118,6 +132,9 @@ void MX_FREERTOS_Init(void) { /* creation of defaultTask */ defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes); + /* creation of managerTask */ + managerTaskHandle = osThreadNew(startManagerTask, NULL, &managerTask_attributes); + /* USER CODE BEGIN RTOS_THREADS */ /* add threads, ... */ /* USER CODE END RTOS_THREADS */ diff --git a/TACOS-Demo.ioc b/TACOS-Demo.ioc index c6618d4..2b3194c 100644 --- a/TACOS-Demo.ioc +++ b/TACOS-Demo.ioc @@ -2,9 +2,10 @@ CAD.formats= CAD.pinconfig= CAD.provider= -FREERTOS.IPParameters=Tasks01,configUSE_NEWLIB_REENTRANT,configRECORD_STACK_HIGH_ADDRESS,configCHECK_FOR_STACK_OVERFLOW,Mutexes01 +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configUSE_NEWLIB_REENTRANT,configRECORD_STACK_HIGH_ADDRESS,configCHECK_FOR_STACK_OVERFLOW,Mutexes01,FootprintOK FREERTOS.Mutexes01=uartMutex,Static,uartMutex_cb -FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;managerTask,8,128,startManagerTask,As external,NULL,Static,managerTaskBuffer,managerTaskControlBlock FREERTOS.configCHECK_FOR_STACK_OVERFLOW=1 FREERTOS.configRECORD_STACK_HIGH_ADDRESS=1 FREERTOS.configUSE_NEWLIB_REENTRANT=1