summaryrefslogtreecommitdiff
path: root/components/drivers
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2015-07-06 10:10:07 +0800
committerBernard Xiong <[email protected]>2015-07-06 10:10:07 +0800
commiteb23f0def3cc28e675fd4e1e806f6563d0cc9cea (patch)
tree8f242fabb74c334623b67ec97865e4e48cb5a216 /components/drivers
parent1d488eaedfea24db84575adfc82ba1a3dcb8bebf (diff)
parent95fe1d15ca1a3f37dec9db5cf02b1253943340a0 (diff)
Merge pull request #511 from AubrCool/fix-lpc4088candriver
Fix lpc4088candriver
Diffstat (limited to 'components/drivers')
-rw-r--r--components/drivers/can/can.c23
-rw-r--r--components/drivers/include/drivers/can.h33
2 files changed, 29 insertions, 27 deletions
diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c
index c31523c1a0..fc0d74877f 100644
--- a/components/drivers/can/can.c
+++ b/components/drivers/can/can.c
@@ -607,11 +607,15 @@ static rt_err_t rt_can_control(struct rt_device *dev,
*/
static void cantimeout(void* arg)
{
+ #ifdef RT_CAN_USING_LED
rt_uint32_t ledonflag = 0;
+ #endif /*RT_CAN_USING_LED*/
rt_can_t can = (rt_can_t)arg;
rt_device_control((rt_device_t)can,RT_CAN_CMD_GET_STATUS,(void* )&can->status);
if(can->timerinitflag == 1) {
- ledonflag = 1;
+ #ifdef RT_CAN_USING_LED
+ ledonflag = 1;
+ #endif /*RT_CAN_USING_LED*/
can->timerinitflag = 0xFF;
}
#ifdef RT_CAN_USING_LED
@@ -713,17 +717,12 @@ rt_err_t rt_hw_can_register(struct rt_can_device *can,
device->user_data = data;
can->timerinitflag = 0;
- if(can->config.rcvled != RT_NULL ||
- can->config.sndled != RT_NULL ||
- can->config.errled != RT_NULL)
- {
- rt_timer_init(&can->timer,
- name,
- cantimeout,
- (void*)can,
- can->config.ticks,
- RT_TIMER_FLAG_PERIODIC);
- }
+ rt_timer_init(&can->timer,
+ name,
+ cantimeout,
+ (void*)can,
+ can->config.ticks,
+ RT_TIMER_FLAG_PERIODIC);
/* register a character device */
return rt_device_register(device, name, RT_DEVICE_FLAG_RDWR);
}
diff --git a/components/drivers/include/drivers/can.h b/components/drivers/include/drivers/can.h
index 3a24162f03..a6c60cd28e 100644
--- a/components/drivers/include/drivers/can.h
+++ b/components/drivers/include/drivers/can.h
@@ -14,6 +14,8 @@
#ifndef CAN_H_
#define CAN_H_
+#include <rtthread.h>
+
#ifndef RT_CANMSG_BOX_SZ
#define RT_CANMSG_BOX_SZ 16
#endif
@@ -58,8 +60,10 @@ struct rt_can_filter_item
rt_uint32_t mode :1;
rt_uint32_t mask;
rt_int32_t hdr;
+#ifdef RT_CAN_USING_HDR
rt_err_t (*ind)(rt_device_t dev, void* args ,rt_int32_t hdr, rt_size_t size);
- void* args;
+ void* args;
+#endif /*RT_CAN_USING_HDR*/
};
#ifdef RT_CAN_USING_HDR
#define RT_CAN_FILTER_ITEM_INIT(id,ide,rtr,mode,mask,ind,args) \
@@ -86,7 +90,7 @@ struct rt_can_filter_item
#define RT_CAN_EXT_RMT_DATA_FILTER_INIT(id,ind,args) \
RT_CAN_FILTER_ITEM_INIT(id,1,0,1,0xFFFFFFFF,ind,args)
#else
-#define RT_CAN_FILTER_ITEM_INIT(id,ide,rtr,mode,mask,args) \
+#define RT_CAN_FILTER_ITEM_INIT(id,ide,rtr,mode,mask) \
{\
id,\
ide,\
@@ -94,20 +98,19 @@ struct rt_can_filter_item
mode,\
mask,\
-1,\
- args,\
}
-#define RT_CAN_FILTER_STD_INIT(id,args) \
- RT_CAN_FILTER_ITEM_INIT(id,0,0,0,0xFFFFFFFF,args)
-#define RT_CAN_FILTER_EXT_INIT(id,args) \
- RT_CAN_FILTER_ITEM_INIT(id,1,0,0,0xFFFFFFFF,args)
-#define RT_CAN_STD_RMT_FILTER_INIT(id,args) \
- RT_CAN_FILTER_ITEM_INIT(id,0,1,0,0xFFFFFFFF,args)
-#define RT_CAN_EXT_RMT_FILTER_INIT(id,args) \
- RT_CAN_FILTER_ITEM_INIT(id,1,1,0,0xFFFFFFFF,args)
-#define RT_CAN_STD_RMT_DATA_FILTER_INIT(id,args) \
- RT_CAN_FILTER_ITEM_INIT(id,0,0,1,0xFFFFFFFF,args)
-#define RT_CAN_EXT_RMT_DATA_FILTER_INIT(id,args) \
- RT_CAN_FILTER_ITEM_INIT(id,1,0,1,0xFFFFFFFF,args)
+#define RT_CAN_FILTER_STD_INIT(id) \
+ RT_CAN_FILTER_ITEM_INIT(id,0,0,0,0xFFFFFFFF)
+#define RT_CAN_FILTER_EXT_INIT(id) \
+ RT_CAN_FILTER_ITEM_INIT(id,1,0,0,0xFFFFFFFF)
+#define RT_CAN_STD_RMT_FILTER_INIT(id) \
+ RT_CAN_FILTER_ITEM_INIT(id,0,1,0,0xFFFFFFFF)
+#define RT_CAN_EXT_RMT_FILTER_INIT(id) \
+ RT_CAN_FILTER_ITEM_INIT(id,1,1,0,0xFFFFFFFF)
+#define RT_CAN_STD_RMT_DATA_FILTER_INIT(id) \
+ RT_CAN_FILTER_ITEM_INIT(id,0,0,1,0xFFFFFFFF)
+#define RT_CAN_EXT_RMT_DATA_FILTER_INIT(id) \
+ RT_CAN_FILTER_ITEM_INIT(id,1,0,1,0xFFFFFFFF)
#endif
struct rt_can_filter_config