From 29284ceb87ebf65c348b3853de814aa0875446f5 Mon Sep 17 00:00:00 2001 From: Erick Ahmed Date: Mon, 8 Jun 2026 23:38:28 +0200 Subject: [PATCH] Move thread handles and attributes to related file - Better separation of concerns --- Core/Inc/canlog.h | 11 +++++++++++ Core/Src/canlog.c | 37 +++++++++++++++++++++++++++---------- Core/Src/main.c | 37 +++---------------------------------- 3 files changed, 41 insertions(+), 44 deletions(-) diff --git a/Core/Inc/canlog.h b/Core/Inc/canlog.h index 63dc730..58737f5 100644 --- a/Core/Inc/canlog.h +++ b/Core/Inc/canlog.h @@ -3,6 +3,17 @@ #include "main.h" +/* Decladerations for thread handles and attributes */ +extern osThreadId_t vCAN1_rx; +extern osThreadId_t vCAN2_rx; +extern osThreadId_t vLED_CAN1_Heartbeat; +extern osThreadId_t vLED_CAN2_Heartbeat; + +extern const osThreadAttr_t vCAN1_rx_attributes; +extern const osThreadAttr_t vCAN2_rx_attributes; +extern const osThreadAttr_t vLED_CAN1_Heartbeat_attributes; +extern const osThreadAttr_t vLED_CAN2_Heartbeat_attributes; + /** * @brief Initializes the CAN logger modules, OS threads, queues, and hardware. * @param hcan1 Pointer to the CAN1 handle diff --git a/Core/Src/canlog.c b/Core/Src/canlog.c index a04a0dd..e11f30b 100644 --- a/Core/Src/canlog.c +++ b/Core/Src/canlog.c @@ -5,27 +5,44 @@ extern CAN_HandleTypeDef hcan1; extern CAN_HandleTypeDef hcan2; -/* Definitions for canBus1Listen */ -osThreadId_t canBus1ListenHandle; -const osThreadAttr_t canBus1Listen_attributes = { - .name = "canBus1Listen", +/* FreeRTOS task definitions */ + +/* Definitions for CAN1rx incoming */ +osThreadId_t vCAN1_rx; +const osThreadAttr_t vCAN1_rx_attributes = { + .name = "vCAN1_rx", .stack_size = 128 * 4, .priority = (osPriority_t) osPriorityRealtime1, }; -/* Definitions for canBus2Listen */ -osThreadId_t canBus2ListenHandle; -const osThreadAttr_t canBus2Listen_attributes = { - .name = "canBus2Listen", + +/* Definitions for CAN2rx incoming*/ +osThreadId_t vCAN2_rx; +const osThreadAttr_t vCAN2_rx_attributes = { + .name = "vCAN2_rx", .stack_size = 128 * 4, .priority = (osPriority_t) osPriorityRealtime, }; +/* Definitions for CAN1 LED heartbeat */ +osThreadId_t vLED_CAN1_Heartbeat; +const osThreadAttr_t vLED_CAN1_Heartbeat_attributes = { + .name = "vLED_CAN1_HeartbeatTask", + .stack_size = 128 * 4, + .priority = (osPriority_t) osPriorityLow1, +}; + +/* Definitions for CAN2 LED heartbeat */ +osThreadId_t vLED_CAN2_Heartbeat; +const osThreadAttr_t vLED_CAN2_Heartbeat_attributes = { + .name = "vLED_CAN2_HeartbeatTask", + .stack_size = 128 * 4, + .priority = (osPriority_t) osPriorityLow, +}; + /* Private function prototypes -----------------------------------------------*/ void CAN_Logger_Init(CAN_HandleTypeDef *hcan1, CAN_HandleTypeDef *hcan2){} static void CAN_Listen(void *argument){} - - /* BEGIN vCAN_log */ /** * @brief Log incoming CAN bus traffic. diff --git a/Core/Src/main.c b/Core/Src/main.c index dceb012..03591f9 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -49,40 +49,6 @@ SD_HandleTypeDef hsd; DMA_HandleTypeDef hdma_sdio_rx; DMA_HandleTypeDef hdma_sdio_tx; -/* FreeRTOS task definitions */ - -/* Definitions for CAN1rx incoming */ -osThreadId_t vCAN1_rx; -const osThreadAttr_t vCAN1_rx_attributes = { - .name = "vCAN1_rx", - .stack_size = 128 * 4, - .priority = (osPriority_t) osPriorityRealtime1, -}; - -/* Definitions for CAN2rx incoming*/ -osThreadId_t vCAN2_rx; -const osThreadAttr_t vCAN2_rx_attributes = { - .name = "vCAN2_rx", - .stack_size = 128 * 4, - .priority = (osPriority_t) osPriorityRealtime, -}; - -/* Definitions for CAN1 LED heartbeat */ -osThreadId_t vLED_CAN1_Heartbeat; -const osThreadAttr_t vLED_CAN1_Heartbeat_attributes = { - .name = "vLED_CAN1_HeartbeatTask", - .stack_size = 128 * 4, - .priority = (osPriority_t) osPriorityLow1, -}; - -/* Definitions for CAN2 LED heartbeat */ -osThreadId_t vLED_CAN2_Heartbeat; -const osThreadAttr_t vLED_CAN2_Heartbeat_attributes = { - .name = "vLED_CAN2_HeartbeatTask", - .stack_size = 128 * 4, - .priority = (osPriority_t) osPriorityLow, -}; - /* USER CODE BEGIN PV */ /* USER CODE END PV */ @@ -97,6 +63,9 @@ static void MX_SDIO_SD_Init(void); /* USER CODE BEGIN PFP */ +void vCAN_log(void *argument); +void vLED_HeartbeatOnCanRx(void *argument); + /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/