Merge pull request #663 from AubrCool/master
[BSP] remove c99 code in CAN demo.
This commit is contained in:
commit
97671b12cb
|
@ -34,15 +34,15 @@ struct rt_can_filter_item filter1item[4] =
|
||||||
};
|
};
|
||||||
struct rt_can_filter_config filter1 =
|
struct rt_can_filter_config filter1 =
|
||||||
{
|
{
|
||||||
.count = 4,
|
4,
|
||||||
.actived = 1,
|
1,
|
||||||
.items = filter1item,
|
filter1item,
|
||||||
};
|
};
|
||||||
static struct can_app_struct can_data[1] = {
|
static struct can_app_struct can_data[1] = {
|
||||||
{
|
{
|
||||||
.name = "lpccan1",
|
"lpccan1",
|
||||||
.filter = &filter1,
|
&filter1,
|
||||||
.eventopt = RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
|
RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
static rt_err_t lpccanind(rt_device_t dev, rt_size_t size)
|
static rt_err_t lpccanind(rt_device_t dev, rt_size_t size)
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
|
|
||||||
extern int rt_application_init(void);
|
extern int rt_application_init(void);
|
||||||
|
extern void sram_init(void);
|
||||||
/**
|
/**
|
||||||
* This function will startup RT-Thread RTOS.
|
* This function will startup RT-Thread RTOS.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -361,7 +361,7 @@
|
||||||
<wLevel>0</wLevel>
|
<wLevel>0</wLevel>
|
||||||
<uThumb>0</uThumb>
|
<uThumb>0</uThumb>
|
||||||
<uSurpInc>0</uSurpInc>
|
<uSurpInc>0</uSurpInc>
|
||||||
<uC99>1</uC99>
|
<uC99>0</uC99>
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<v6Lang>0</v6Lang>
|
<v6Lang>0</v6Lang>
|
||||||
<v6LangP>0</v6LangP>
|
<v6LangP>0</v6LangP>
|
||||||
|
@ -369,7 +369,7 @@
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define>CORE_M4, RT_USING_ARM_LIBC</Define>
|
<Define>CORE_M4, RT_USING_ARM_LIBC</Define>
|
||||||
<Undefine></Undefine>
|
<Undefine></Undefine>
|
||||||
<IncludePath>Libraries/Device/NXP/LPC407x_8x_177x_8x/Include;Libraries/CMSIS/Include;Libraries/Drivers/include;applications;.;drivers;../../include;../../libcpu/arm/cortex-m4;../../libcpu/arm/common;../../components/pthreads;../../components/libc/armlibc;../../components/drivers/include;../../components/drivers/include;../../components/finsh</IncludePath>
|
<IncludePath>Libraries/Device/NXP/LPC407x_8x_177x_8x/Include;Libraries/CMSIS/Include;Libraries/Drivers/include;applications;.;drivers;../../include;../../libcpu/arm/cortex-m4;../../libcpu/arm/common;..\..\components\libc\pthreads;../../components/libc/armlibc;../../components/drivers/include;../../components/drivers/include;../../components/finsh</IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
<Aads>
|
<Aads>
|
||||||
|
@ -607,6 +607,11 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\drivers\drv_lpccan.c</FilePath>
|
<FilePath>.\drivers\drv_lpccan.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>drv_sdram.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\drivers\drv_sdram.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@ -720,62 +725,62 @@
|
||||||
<File>
|
<File>
|
||||||
<FileName>clock_time.c</FileName>
|
<FileName>clock_time.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/clock_time.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\clock_time.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>mqueue.c</FileName>
|
<FileName>mqueue.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/mqueue.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\mqueue.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>pthread.c</FileName>
|
<FileName>pthread.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/pthread.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\pthread.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>pthread_attr.c</FileName>
|
<FileName>pthread_attr.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/pthread_attr.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\pthread_attr.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>pthread_barrier.c</FileName>
|
<FileName>pthread_barrier.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/pthread_barrier.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\pthread_barrier.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>pthread_cond.c</FileName>
|
<FileName>pthread_cond.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/pthread_cond.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\pthread_cond.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>pthread_mutex.c</FileName>
|
<FileName>pthread_mutex.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/pthread_mutex.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\pthread_mutex.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>pthread_rwlock.c</FileName>
|
<FileName>pthread_rwlock.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/pthread_rwlock.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\pthread_rwlock.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>pthread_spin.c</FileName>
|
<FileName>pthread_spin.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/pthread_spin.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\pthread_spin.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>pthread_tls.c</FileName>
|
<FileName>pthread_tls.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/pthread_tls.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\pthread_tls.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>sched.c</FileName>
|
<FileName>sched.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/sched.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\sched.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>semaphore.c</FileName>
|
<FileName>semaphore.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../../components/pthreads/semaphore.c</FilePath>
|
<FilePath>..\..\components\libc\pthreads\semaphore.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
|
@ -151,7 +151,7 @@
|
||||||
// </section>
|
// </section>
|
||||||
|
|
||||||
// <section name="RT_USING_LWIP" description="lwip, a lightweight TCP/IP protocol stack" default="true" >
|
// <section name="RT_USING_LWIP" description="lwip, a lightweight TCP/IP protocol stack" default="true" >
|
||||||
#define RT_USING_LWIP
|
//#define RT_USING_LWIP
|
||||||
// <bool name="RT_LWIP_ICMP" description="Enable ICMP protocol" default="true" />
|
// <bool name="RT_LWIP_ICMP" description="Enable ICMP protocol" default="true" />
|
||||||
#define RT_LWIP_ICMP
|
#define RT_LWIP_ICMP
|
||||||
// <bool name="RT_LWIP_IGMP" description="Enable IGMP protocol" default="false" />
|
// <bool name="RT_LWIP_IGMP" description="Enable IGMP protocol" default="false" />
|
||||||
|
|
|
@ -120,9 +120,9 @@ INIT_DEVICE_EXPORT(can_bus_hook_init);
|
||||||
struct can_app_struct
|
struct can_app_struct
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
struct rt_event event;
|
|
||||||
struct rt_can_filter_config *filter;
|
struct rt_can_filter_config *filter;
|
||||||
rt_uint8_t eventopt;
|
rt_uint8_t eventopt;
|
||||||
|
struct rt_event event;
|
||||||
};
|
};
|
||||||
static struct can_app_struct can_data[2];
|
static struct can_app_struct can_data[2];
|
||||||
static rt_err_t can1ind(rt_device_t dev, void *args, rt_int32_t hdr, rt_size_t size)
|
static rt_err_t can1ind(rt_device_t dev, void *args, rt_int32_t hdr, rt_size_t size)
|
||||||
|
@ -153,27 +153,27 @@ struct rt_can_filter_item filter2item[4] =
|
||||||
};
|
};
|
||||||
struct rt_can_filter_config filter1 =
|
struct rt_can_filter_config filter1 =
|
||||||
{
|
{
|
||||||
.count = 4,
|
4,
|
||||||
.actived = 1,
|
1,
|
||||||
.items = filter1item,
|
filter1item,
|
||||||
};
|
};
|
||||||
struct rt_can_filter_config filter2 =
|
struct rt_can_filter_config filter2 =
|
||||||
{
|
{
|
||||||
.count = 4,
|
4,
|
||||||
.actived = 1,
|
1,
|
||||||
.items = filter2item,
|
filter2item,
|
||||||
};
|
};
|
||||||
static struct can_app_struct can_data[2] =
|
static struct can_app_struct can_data[2] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.name = "bxcan1",
|
"bxcan1",
|
||||||
.filter = &filter1,
|
&filter1,
|
||||||
.eventopt = RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
|
RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "bxcan2",
|
"bxcan2",
|
||||||
.filter = &filter2,
|
&filter2,
|
||||||
.eventopt = RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR,
|
RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
void rt_can_thread_entry(void *parameter)
|
void rt_can_thread_entry(void *parameter)
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#endif
|
#endif
|
||||||
#ifdef RT_USING_CAN
|
#ifdef RT_USING_CAN
|
||||||
|
|
||||||
|
#define inline __inline
|
||||||
#ifndef STM32F10X_CL
|
#ifndef STM32F10X_CL
|
||||||
#define BX_CAN_FMRNUMBER 14
|
#define BX_CAN_FMRNUMBER 14
|
||||||
#define BX_CAN2_FMRSTART 7
|
#define BX_CAN2_FMRSTART 7
|
||||||
|
@ -849,6 +850,12 @@ static rt_err_t bxmodifyfilter(struct stm_bxcan *pbxcan, struct rt_can_filter_it
|
||||||
rt_int32_t fcase;
|
rt_int32_t fcase;
|
||||||
rt_err_t res;
|
rt_err_t res;
|
||||||
rt_int32_t hdr, fbase, foff;
|
rt_int32_t hdr, fbase, foff;
|
||||||
|
rt_uint32_t ID[2];
|
||||||
|
rt_uint32_t shift;
|
||||||
|
rt_uint32_t thisid;
|
||||||
|
rt_uint32_t thismask;
|
||||||
|
CAN_FilterInitTypeDef CAN_FilterInitStructure;
|
||||||
|
CAN_FilterRegister_TypeDef *pfilterreg;
|
||||||
|
|
||||||
fcase = (pitem->mode | (pitem->ide << 1));
|
fcase = (pitem->mode | (pitem->ide << 1));
|
||||||
hdr = bxcanfindfilter(pbxcan, pitem, fcase, &fbase, &foff);
|
hdr = bxcanfindfilter(pbxcan, pitem, fcase, &fbase, &foff);
|
||||||
|
@ -894,14 +901,9 @@ static rt_err_t bxmodifyfilter(struct stm_bxcan *pbxcan, struct rt_can_filter_it
|
||||||
return RT_EBUSY;
|
return RT_EBUSY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rt_uint32_t ID[2];
|
|
||||||
rt_uint32_t shift;
|
|
||||||
rt_uint32_t thisid;
|
|
||||||
rt_uint32_t thismask;
|
|
||||||
CAN_FilterInitTypeDef CAN_FilterInitStructure;
|
|
||||||
|
|
||||||
pitem->hdr = hdr;
|
pitem->hdr = hdr;
|
||||||
CAN_FilterRegister_TypeDef *pfilterreg = &((CAN_FilterRegister_TypeDef *)pbxcan->mfrbase)[fbase];
|
pfilterreg = &((CAN_FilterRegister_TypeDef *)pbxcan->mfrbase)[fbase];
|
||||||
ID[0] = pfilterreg->FR1;
|
ID[0] = pfilterreg->FR1;
|
||||||
ID[1] = pfilterreg->FR2;
|
ID[1] = pfilterreg->FR2;
|
||||||
CAN_FilterInitStructure.CAN_FilterNumber = (pfilterreg - &CAN1->sFilterRegister[0]);
|
CAN_FilterInitStructure.CAN_FilterNumber = (pfilterreg - &CAN1->sFilterRegister[0]);
|
||||||
|
@ -1152,7 +1154,6 @@ static rt_err_t control(struct rt_can_device *can, int cmd, void *arg)
|
||||||
break;
|
break;
|
||||||
case RT_CAN_CMD_SET_FILTER:
|
case RT_CAN_CMD_SET_FILTER:
|
||||||
return setfilter(pbxcan, (struct rt_can_filter_config *) arg);
|
return setfilter(pbxcan, (struct rt_can_filter_config *) arg);
|
||||||
break;
|
|
||||||
case RT_CAN_CMD_SET_MODE:
|
case RT_CAN_CMD_SET_MODE:
|
||||||
argval = (rt_uint32_t) arg;
|
argval = (rt_uint32_t) arg;
|
||||||
if (argval != RT_CAN_MODE_NORMAL ||
|
if (argval != RT_CAN_MODE_NORMAL ||
|
||||||
|
@ -1306,27 +1307,30 @@ static const struct rt_can_ops canops =
|
||||||
#ifdef USING_BXCAN1
|
#ifdef USING_BXCAN1
|
||||||
static struct stm_bxcan bxcan1data =
|
static struct stm_bxcan bxcan1data =
|
||||||
{
|
{
|
||||||
.reg = CAN1,
|
CAN1,
|
||||||
.mfrbase = (void *) &CAN1->sFilterRegister[0],
|
(void *) &CAN1->sFilterRegister[0],
|
||||||
.sndirq = CAN1_TX_IRQn,
|
CAN1_TX_IRQn,
|
||||||
.rcvirq0 = CAN1_RX0_IRQn,
|
CAN1_RX0_IRQn,
|
||||||
.rcvirq1 = CAN1_RX1_IRQn,
|
CAN1_RX1_IRQn,
|
||||||
.errirq = CAN1_SCE_IRQn,
|
CAN1_SCE_IRQn,
|
||||||
.alocmask = {0, 0},
|
{
|
||||||
.filtercnt = BX_CAN2_FMRSTART,
|
0,
|
||||||
.fifo1filteroff = 7,
|
|
||||||
.filtermap = {
|
|
||||||
[0] = {
|
|
||||||
.id32mask_cnt = 0,
|
|
||||||
.id32bit_cnt = 0,
|
|
||||||
.id16mask_cnt = 2,
|
|
||||||
.id16bit_cnt = 24,
|
|
||||||
},
|
},
|
||||||
[1] = {
|
{0, 0},
|
||||||
.id32mask_cnt = 0,
|
BX_CAN2_FMRSTART,
|
||||||
.id32bit_cnt = 0,
|
7,
|
||||||
.id16mask_cnt = 2,
|
{
|
||||||
.id16bit_cnt = 24,
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
24,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
24,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -1444,27 +1448,30 @@ void CAN1_SCE_IRQHandler(void)
|
||||||
#ifdef USING_BXCAN2
|
#ifdef USING_BXCAN2
|
||||||
static struct stm_bxcan bxcan2data =
|
static struct stm_bxcan bxcan2data =
|
||||||
{
|
{
|
||||||
.reg = CAN2,
|
CAN2,
|
||||||
.mfrbase = (void *) &CAN1->sFilterRegister[BX_CAN2_FMRSTART],
|
(void *) &CAN1->sFilterRegister[BX_CAN2_FMRSTART],
|
||||||
.sndirq = CAN2_TX_IRQn,
|
CAN2_TX_IRQn,
|
||||||
.rcvirq0 = CAN2_RX0_IRQn,
|
CAN2_RX0_IRQn,
|
||||||
.rcvirq1 = CAN2_RX1_IRQn,
|
CAN2_RX1_IRQn,
|
||||||
.errirq = CAN2_SCE_IRQn,
|
CAN2_SCE_IRQn,
|
||||||
.alocmask = {0, 0},
|
{
|
||||||
.filtercnt = BX_CAN_FMRNUMBER - BX_CAN2_FMRSTART,
|
0,
|
||||||
.fifo1filteroff = 7,
|
}
|
||||||
.filtermap = {
|
{0, 0},
|
||||||
[0] = {
|
BX_CAN_FMRNUMBER - BX_CAN2_FMRSTART,
|
||||||
.id32mask_cnt = 0,
|
7,
|
||||||
.id32bit_cnt = 0,
|
{
|
||||||
.id16mask_cnt = 2,
|
{
|
||||||
.id16bit_cnt = 24,
|
0,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
24,
|
||||||
},
|
},
|
||||||
[1] = {
|
{
|
||||||
.id32mask_cnt = 0,
|
0,
|
||||||
.id32bit_cnt = 0,
|
0,
|
||||||
.id16mask_cnt = 2,
|
2,
|
||||||
.id16bit_cnt = 24,
|
24,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -361,7 +361,7 @@
|
||||||
<wLevel>0</wLevel>
|
<wLevel>0</wLevel>
|
||||||
<uThumb>0</uThumb>
|
<uThumb>0</uThumb>
|
||||||
<uSurpInc>0</uSurpInc>
|
<uSurpInc>0</uSurpInc>
|
||||||
<uC99>1</uC99>
|
<uC99>0</uC99>
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<v6Lang>0</v6Lang>
|
<v6Lang>0</v6Lang>
|
||||||
<v6LangP>0</v6LangP>
|
<v6LangP>0</v6LangP>
|
||||||
|
|
Loading…
Reference in New Issue