Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cd0b412d74 | |||
| 24e100cae6 | |||
| 7d5b3f9be2 |
+1
-1
@@ -49,7 +49,7 @@ typedef struct {
|
|||||||
|
|
||||||
void CAN_Logger_Init(CAN_HandleTypeDef *hcan1, CAN_HandleTypeDef *hcan2);
|
void CAN_Logger_Init(CAN_HandleTypeDef *hcan1, CAN_HandleTypeDef *hcan2);
|
||||||
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan);
|
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan);
|
||||||
void vCANLoggerListen(void *argument);
|
void vCANListener(void *argument);
|
||||||
void vLEDHeartbeat(void *argument);
|
void vLEDHeartbeat(void *argument);
|
||||||
|
|
||||||
#endif /* CANLOG_H */
|
#endif /* CANLOG_H */
|
||||||
|
|||||||
+3
-3
@@ -100,13 +100,13 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
|
|||||||
}
|
}
|
||||||
/* END HAL_CAN_RxFifo0MsgPendingCallback */
|
/* END HAL_CAN_RxFifo0MsgPendingCallback */
|
||||||
|
|
||||||
/* BEGIN vCANLoggerListen */
|
/* BEGIN vCANListener */
|
||||||
/**
|
/**
|
||||||
* @brief Log incoming CAN bus traffic in FIFO buffer
|
* @brief Log incoming CAN bus traffic in FIFO buffer
|
||||||
* @param argument: Not used
|
* @param argument: Not used
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void vCANLoggerListen(void *argument)
|
void vCANListener(void *argument)
|
||||||
{
|
{
|
||||||
CAN_HandleTypeDef *hcan = (CAN_HandleTypeDef*)argument;
|
CAN_HandleTypeDef *hcan = (CAN_HandleTypeDef*)argument;
|
||||||
osMessageQueueId_t queue = (hcan->Instance == CAN1) ? xCAN1RxQueue : xCAN2RxQueue;
|
osMessageQueueId_t queue = (hcan->Instance == CAN1) ? xCAN1RxQueue : xCAN2RxQueue;
|
||||||
@@ -125,7 +125,7 @@ void vCANLoggerListen(void *argument)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* END vCANLoggerListen */
|
/* END vCANListener */
|
||||||
|
|
||||||
/* BEGIN vLEDHeartbeat */
|
/* BEGIN vLEDHeartbeat */
|
||||||
/**
|
/**
|
||||||
|
|||||||
+5
-10
@@ -125,31 +125,26 @@ int main(void)
|
|||||||
osKernelInitialize();
|
osKernelInitialize();
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_TASKS */
|
/* USER CODE BEGIN RTOS_TASKS */
|
||||||
|
|
||||||
const osThreadAttr_t CAN1rxAttributes = {
|
const osThreadAttr_t CAN1rxAttributes = {
|
||||||
.name = "CAN1rx",
|
.name = "CAN1rx",
|
||||||
.stack_size = 128 * 4,
|
.stack_size = 128 * 4,
|
||||||
.priority = (osPriority_t) osPriorityRealtime1,
|
.priority = (osPriority_t) osPriorityRealtime1,
|
||||||
};
|
};
|
||||||
|
|
||||||
const osThreadAttr_t CAN2rxAttributes = {
|
const osThreadAttr_t CAN2rxAttributes = {
|
||||||
.name = "CAN2rx",
|
.name = "CAN2rx",
|
||||||
.stack_size = 128 * 4,
|
.stack_size = 128 * 4,
|
||||||
.priority = (osPriority_t) osPriorityRealtime,
|
.priority = (osPriority_t) osPriorityRealtime,
|
||||||
};
|
};
|
||||||
|
|
||||||
const osThreadAttr_t UartLoggerAttributes = {
|
const osThreadAttr_t UartLoggerAttributes = {
|
||||||
.name = "UART_Logger",
|
.name = "UART_Logger",
|
||||||
.stack_size = 256 * 4,
|
.stack_size = 256 * 4,
|
||||||
.priority = (osPriority_t) osPriorityVeryHigh,
|
.priority = (osPriority_t) osPriorityVeryHigh,
|
||||||
};
|
};
|
||||||
|
|
||||||
const osThreadAttr_t LEDHeartbeatCAN1Attributes = {
|
const osThreadAttr_t LEDHeartbeatCAN1Attributes = {
|
||||||
.name = "LED_HB_CAN1",
|
.name = "LED_HB_CAN1",
|
||||||
.stack_size = 128 * 4,
|
.stack_size = 128 * 4,
|
||||||
.priority = (osPriority_t) osPriorityVeryLow1,
|
.priority = (osPriority_t) osPriorityVeryLow1,
|
||||||
};
|
};
|
||||||
|
|
||||||
const osThreadAttr_t LEDHeartbeatCAN2Attributes = {
|
const osThreadAttr_t LEDHeartbeatCAN2Attributes = {
|
||||||
.name = "LED_HB_CAN2",
|
.name = "LED_HB_CAN2",
|
||||||
.stack_size = 128 * 4,
|
.stack_size = 128 * 4,
|
||||||
@@ -169,16 +164,16 @@ int main(void)
|
|||||||
/* USER CODE END RTOS_TIMERS */
|
/* USER CODE END RTOS_TIMERS */
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_QUEUES */
|
/* USER CODE BEGIN RTOS_QUEUES */
|
||||||
xCAN1RxQueue = osMessageQueueNew(32, sizeof(CanMessage_t), NULL);
|
xCAN1RxQueue = osMessageQueueNew(64, sizeof(CanMessage_t), NULL);
|
||||||
xCAN2RxQueue = osMessageQueueNew(32, sizeof(CanMessage_t), NULL);
|
xCAN2RxQueue = osMessageQueueNew(64, sizeof(CanMessage_t), NULL);
|
||||||
xUARTQueue = osMessageQueueNew(32, sizeof(CanMessage_t), NULL);
|
xUARTQueue = osMessageQueueNew(128, sizeof(CanMessage_t), NULL);
|
||||||
|
|
||||||
if (xCAN1RxQueue == NULL || xCAN2RxQueue == NULL || xUARTQueue == NULL) Error_Handler();
|
if (xCAN1RxQueue == NULL || xCAN2RxQueue == NULL || xUARTQueue == NULL) Error_Handler();
|
||||||
/* USER CODE END RTOS_QUEUES */
|
/* USER CODE END RTOS_QUEUES */
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_THREADS */
|
/* USER CODE BEGIN RTOS_THREADS */
|
||||||
xCAN1rxTask = osThreadNew(vCANLoggerListen, &hcan1, &CAN1rxAttributes);
|
xCAN1rxTask = osThreadNew(vCANListener, &hcan1, &CAN1rxAttributes);
|
||||||
xCAN2rxTask = osThreadNew(vCANLoggerListen, &hcan2, &CAN2rxAttributes);
|
xCAN2rxTask = osThreadNew(vCANListener, &hcan2, &CAN2rxAttributes);
|
||||||
xUartTask = osThreadNew(vUARTLogger, NULL, &UartLoggerAttributes);
|
xUartTask = osThreadNew(vUARTLogger, NULL, &UartLoggerAttributes);
|
||||||
xCAN1LedTask = osThreadNew(vLEDHeartbeat, &led_can1, &LEDHeartbeatCAN1Attributes);
|
xCAN1LedTask = osThreadNew(vLEDHeartbeat, &led_can1, &LEDHeartbeatCAN1Attributes);
|
||||||
xCAN2LedTask = osThreadNew(vLEDHeartbeat, &led_can2, &LEDHeartbeatCAN2Attributes);
|
xCAN2LedTask = osThreadNew(vLEDHeartbeat, &led_can2, &LEDHeartbeatCAN2Attributes);
|
||||||
|
|||||||
Reference in New Issue
Block a user