From c3e4fd079c2631f1033e9ee48494778e561afdc1 Mon Sep 17 00:00:00 2001 From: "Aubr.Cool" Date: Tue, 9 Jun 2015 08:36:03 +0800 Subject: [PATCH] correct can hdr read error --- components/drivers/can/can.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c index 8ac3029533..c31523c1a0 100644 --- a/components/drivers/can/can.c +++ b/components/drivers/can/can.c @@ -65,7 +65,7 @@ rt_inline int _can_int_rx(struct rt_can_device *can, struct rt_can_msg *data, in can->hdr[hdr].msgs--; } listmsg->owner = RT_NULL; - } else + } else if(hdr == -1) #endif /*RT_CAN_USING_HDR*/ if (!rt_list_isempty(&rx_fifo->uselist)) { @@ -97,6 +97,8 @@ rt_inline int _can_int_rx(struct rt_can_device *can, struct rt_can_msg *data, in RT_ASSERT(rx_fifo->freenumbers <= can->config.msgboxsz); rt_hw_interrupt_enable(level); listmsg = RT_NULL; + } else { + break; } data ++; msgs -= sizeof(struct rt_can_msg); }