Wait until CAN1 or CAN2 save anything to FIFO buffer

- Moving CAN event flag to vCANLoggerListen to avoid possible race
  condition and to make ISR leaner
This commit is contained in:
2026-06-16 21:04:43 +02:00
parent da1c13fcb0
commit 79f317cec5
2 changed files with 9 additions and 2 deletions
+1 -2
View File
@@ -99,7 +99,6 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
if (osMessageQueuePut(queue, &message, 0U, 0U) == osOK)
{
osEventFlagsSet(xCanEventFlags, flag);
osThreadFlagsSet(led_task, 0x01);
}
else
@@ -130,7 +129,7 @@ void vCANLoggerListen(void *argument)
{
if (osMessageQueueGet(queue, &message, NULL, osWaitForever) == osOK)
{
osEventFlagsSet(xCanEventFlags, flag);
}
}
/* CODE END */
+8
View File
@@ -94,6 +94,14 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
*/
void vUARTLogger(void *argument)
{
CanMessage_t msg;
char tx_buffer[45]; // converted extended frame
bool queues_empty;
for (;;)
{
osEventFlagsWait(xCanEventFlags, 0x03, osFlagsWaitAny, osWaitForever);
}
}
/* END vUARTLoggerListen */