diff options
author | Dominik Sliwa <dominik.sliwa@toradex.com> | 2018-12-17 00:02:43 +0100 |
---|---|---|
committer | Dominik Sliwa <dominik.sliwa@toradex.com> | 2018-12-17 00:02:43 +0100 |
commit | 46bfc66ac58289bc868d982e3b0ec46176302be0 (patch) | |
tree | 9da0cbb478dc66a1e0d52d4d89a4d9439eadfebe /app | |
parent | 91c4e8e66f28d3967e3c2a36478810c10031b8e5 (diff) |
Move CAN data out of fifo in a thread not IRQ
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Diffstat (limited to 'app')
-rw-r--r-- | app/src/can_task.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/app/src/can_task.c b/app/src/can_task.c index b81ed72..d24aa66 100644 --- a/app/src/can_task.c +++ b/app/src/can_task.c @@ -253,6 +253,8 @@ static inline void can_fifo_rx(uint8_t id, flexcan_fifo_transfer_t * rxXfer) FLEXCAN_TransferReceiveFifoNonBlocking(can_regs[id].base, &can_regs[id].handle, rxXfer); xSemaphoreTake(can_msg->sem, portMAX_DELAY); if (can_msg->async_status == pdTRUE) { + FLEXCAN_ReadRxFifo(can_regs[id].base, can_regs[id].handle.rxFifoFrameBuf); + FLEXCAN_TransferAbortReceiveFifo(can_regs[id].base, &can_regs[id].handle); frame_to_buffer(rxXfer->frame, id); can_regs[id].frames_in_buf++; generate_can_irq(id); |