瀏覽代碼

correct can hdr read error

Aubr.Cool 10 年之前
父節點
當前提交
c3e4fd079c
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      components/drivers/can/can.c

+ 3 - 1
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);
     }