diff --git a/bsp/lpc408x/applications/canapp.c b/bsp/lpc408x/applications/canapp.c index 75be9b16c1..59250380f8 100644 --- a/bsp/lpc408x/applications/canapp.c +++ b/bsp/lpc408x/applications/canapp.c @@ -34,15 +34,15 @@ struct rt_can_filter_item filter1item[4] = }; struct rt_can_filter_config filter1 = { - .count = 4, - .actived = 1, - .items = filter1item, + 4, + 1, + filter1item, }; static struct can_app_struct can_data[1] = { { - .name = "lpccan1", - .filter = &filter1, - .eventopt = RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, + "lpccan1", + &filter1, + RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, }, }; static rt_err_t lpccanind(rt_device_t dev, rt_size_t size) diff --git a/bsp/lpc408x/applications/startup.c b/bsp/lpc408x/applications/startup.c index 0ce6fb7df6..bcab985a62 100644 --- a/bsp/lpc408x/applications/startup.c +++ b/bsp/lpc408x/applications/startup.c @@ -19,7 +19,7 @@ #include "board.h" extern int rt_application_init(void); - +extern void sram_init(void); /** * This function will startup RT-Thread RTOS. */ diff --git a/bsp/lpc408x/project.uvprojx b/bsp/lpc408x/project.uvprojx index c5f481a937..14f721caf2 100644 --- a/bsp/lpc408x/project.uvprojx +++ b/bsp/lpc408x/project.uvprojx @@ -361,7 +361,7 @@ 0 0 0 - 1 + 0 0 0 0 @@ -369,7 +369,7 @@ CORE_M4, RT_USING_ARM_LIBC - 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 + 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 @@ -607,6 +607,11 @@ 1 .\drivers\drv_lpccan.c + + drv_sdram.c + 1 + .\drivers\drv_sdram.c + @@ -720,62 +725,62 @@ clock_time.c 1 - ../../components/pthreads/clock_time.c + ..\..\components\libc\pthreads\clock_time.c mqueue.c 1 - ../../components/pthreads/mqueue.c + ..\..\components\libc\pthreads\mqueue.c pthread.c 1 - ../../components/pthreads/pthread.c + ..\..\components\libc\pthreads\pthread.c pthread_attr.c 1 - ../../components/pthreads/pthread_attr.c + ..\..\components\libc\pthreads\pthread_attr.c pthread_barrier.c 1 - ../../components/pthreads/pthread_barrier.c + ..\..\components\libc\pthreads\pthread_barrier.c pthread_cond.c 1 - ../../components/pthreads/pthread_cond.c + ..\..\components\libc\pthreads\pthread_cond.c pthread_mutex.c 1 - ../../components/pthreads/pthread_mutex.c + ..\..\components\libc\pthreads\pthread_mutex.c pthread_rwlock.c 1 - ../../components/pthreads/pthread_rwlock.c + ..\..\components\libc\pthreads\pthread_rwlock.c pthread_spin.c 1 - ../../components/pthreads/pthread_spin.c + ..\..\components\libc\pthreads\pthread_spin.c pthread_tls.c 1 - ../../components/pthreads/pthread_tls.c + ..\..\components\libc\pthreads\pthread_tls.c sched.c 1 - ../../components/pthreads/sched.c + ..\..\components\libc\pthreads\sched.c semaphore.c 1 - ../../components/pthreads/semaphore.c + ..\..\components\libc\pthreads\semaphore.c diff --git a/bsp/lpc408x/rtconfig.h b/bsp/lpc408x/rtconfig.h index 9b04e63aab..ce8d0dc908 100644 --- a/bsp/lpc408x/rtconfig.h +++ b/bsp/lpc408x/rtconfig.h @@ -151,7 +151,7 @@ // //
-#define RT_USING_LWIP +//#define RT_USING_LWIP // #define RT_LWIP_ICMP // diff --git a/bsp/stm32f10x/applications/canapp.c b/bsp/stm32f10x/applications/canapp.c index b04a9d628f..ba9d592247 100644 --- a/bsp/stm32f10x/applications/canapp.c +++ b/bsp/stm32f10x/applications/canapp.c @@ -120,9 +120,9 @@ INIT_DEVICE_EXPORT(can_bus_hook_init); struct can_app_struct { const char *name; - struct rt_event event; struct rt_can_filter_config *filter; rt_uint8_t eventopt; + struct rt_event event; }; 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) @@ -153,27 +153,27 @@ struct rt_can_filter_item filter2item[4] = }; struct rt_can_filter_config filter1 = { - .count = 4, - .actived = 1, - .items = filter1item, + 4, + 1, + filter1item, }; struct rt_can_filter_config filter2 = { - .count = 4, - .actived = 1, - .items = filter2item, + 4, + 1, + filter2item, }; static struct can_app_struct can_data[2] = { { - .name = "bxcan1", - .filter = &filter1, - .eventopt = RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, + "bxcan1", + &filter1, + RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, }, { - .name = "bxcan2", - .filter = &filter2, - .eventopt = RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, + "bxcan2", + &filter2, + RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, }, }; void rt_can_thread_entry(void *parameter) diff --git a/bsp/stm32f10x/drivers/bxcan.c b/bsp/stm32f10x/drivers/bxcan.c index 6df1a544b1..77d18c6fd0 100644 --- a/bsp/stm32f10x/drivers/bxcan.c +++ b/bsp/stm32f10x/drivers/bxcan.c @@ -20,6 +20,7 @@ #endif #ifdef RT_USING_CAN +#define inline __inline #ifndef STM32F10X_CL #define BX_CAN_FMRNUMBER 14 #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_err_t res; 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)); 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; } } - rt_uint32_t ID[2]; - rt_uint32_t shift; - rt_uint32_t thisid; - rt_uint32_t thismask; - CAN_FilterInitTypeDef CAN_FilterInitStructure; 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[1] = pfilterreg->FR2; 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; case RT_CAN_CMD_SET_FILTER: return setfilter(pbxcan, (struct rt_can_filter_config *) arg); - break; case RT_CAN_CMD_SET_MODE: argval = (rt_uint32_t) arg; if (argval != RT_CAN_MODE_NORMAL || @@ -1306,27 +1307,30 @@ static const struct rt_can_ops canops = #ifdef USING_BXCAN1 static struct stm_bxcan bxcan1data = { - .reg = CAN1, - .mfrbase = (void *) &CAN1->sFilterRegister[0], - .sndirq = CAN1_TX_IRQn, - .rcvirq0 = CAN1_RX0_IRQn, - .rcvirq1 = CAN1_RX1_IRQn, - .errirq = CAN1_SCE_IRQn, - .alocmask = {0, 0}, - .filtercnt = BX_CAN2_FMRSTART, - .fifo1filteroff = 7, - .filtermap = { - [0] = { - .id32mask_cnt = 0, - .id32bit_cnt = 0, - .id16mask_cnt = 2, - .id16bit_cnt = 24, + CAN1, + (void *) &CAN1->sFilterRegister[0], + CAN1_TX_IRQn, + CAN1_RX0_IRQn, + CAN1_RX1_IRQn, + CAN1_SCE_IRQn, + { + 0, + }, + {0, 0}, + BX_CAN2_FMRSTART, + 7, + { + { + 0, + 0, + 2, + 24, }, - [1] = { - .id32mask_cnt = 0, - .id32bit_cnt = 0, - .id16mask_cnt = 2, - .id16bit_cnt = 24, + { + 0, + 0, + 2, + 24, }, }, }; @@ -1444,27 +1448,30 @@ void CAN1_SCE_IRQHandler(void) #ifdef USING_BXCAN2 static struct stm_bxcan bxcan2data = { - .reg = CAN2, - .mfrbase = (void *) &CAN1->sFilterRegister[BX_CAN2_FMRSTART], - .sndirq = CAN2_TX_IRQn, - .rcvirq0 = CAN2_RX0_IRQn, - .rcvirq1 = CAN2_RX1_IRQn, - .errirq = CAN2_SCE_IRQn, - .alocmask = {0, 0}, - .filtercnt = BX_CAN_FMRNUMBER - BX_CAN2_FMRSTART, - .fifo1filteroff = 7, - .filtermap = { - [0] = { - .id32mask_cnt = 0, - .id32bit_cnt = 0, - .id16mask_cnt = 2, - .id16bit_cnt = 24, + CAN2, + (void *) &CAN1->sFilterRegister[BX_CAN2_FMRSTART], + CAN2_TX_IRQn, + CAN2_RX0_IRQn, + CAN2_RX1_IRQn, + CAN2_SCE_IRQn, + { + 0, + } + {0, 0}, + BX_CAN_FMRNUMBER - BX_CAN2_FMRSTART, + 7, + { + { + 0, + 0, + 2, + 24, }, - [1] = { - .id32mask_cnt = 0, - .id32bit_cnt = 0, - .id16mask_cnt = 2, - .id16bit_cnt = 24, + { + 0, + 0, + 2, + 24, }, }, }; diff --git a/bsp/stm32f10x/project.uvprojx b/bsp/stm32f10x/project.uvprojx index ec401a6ee7..1624d7c1cb 100644 --- a/bsp/stm32f10x/project.uvprojx +++ b/bsp/stm32f10x/project.uvprojx @@ -361,7 +361,7 @@ 0 0 0 - 1 + 0 0 0 0