From 30d072eee8c9bc9be8651e528fcef874dd039ca1 Mon Sep 17 00:00:00 2001 From: "onelife.real" Date: Mon, 11 Jul 2011 06:16:26 +0000 Subject: [PATCH] *** EFM32 branch *** 1. Solve the problem mentioned in revision 1623 (runtime error) - Cause: In the EFM32 demo application, some TCP/IP functions are called in non-task context (e.g. "tcp_new()"). And after revision 1621, those functions will trigger the scheduler ("rt_schedule()") which seems to be triggered only in task context. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1624 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- bsp/efm32/application.c | 6 ++++-- bsp/efm32/rtconfig.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bsp/efm32/application.c b/bsp/efm32/application.c index 7e968790d2..3d13a6290f 100644 --- a/bsp/efm32/application.c +++ b/bsp/efm32/application.c @@ -114,12 +114,16 @@ void rt_demo_thread_entry(void* parameter) #endif #if defined(EFM32_USING_ETHERNET) + extern void httpd_init(void); + rt_device_t eth = RT_NULL; eth = rt_device_find(ETH_DEVICE_NAME); if (eth != RT_NULL) { eth->init(eth); + httpd_init(); + rt_kprintf("Http service init OK!\n"); } else { @@ -187,7 +191,6 @@ int rt_application_init() #if defined(RT_USING_LWIP) { extern void lwip_sys_init(void); - extern void httpd_init(void); /* Create Ethernet Threads */ if (eth_system_device_init() != RT_EOK) @@ -204,7 +207,6 @@ int rt_application_init() #endif /* init lwip system */ lwip_sys_init(); - httpd_init(); rt_kprintf("TCP/IP stack init OK!\n"); } #endif diff --git a/bsp/efm32/rtconfig.h b/bsp/efm32/rtconfig.h index 11eab40685..951225b98f 100644 --- a/bsp/efm32/rtconfig.h +++ b/bsp/efm32/rtconfig.h @@ -30,7 +30,7 @@ /* SECTION: RT_DEBUG */ #define RT_DEBUG -//#define RT_MEM_DEBUG (1) +//#define RT_DEBUG_MEM (1) //#define RT_DEBUG_SCHEDULER (1) //#define THREAD_DEBUG //#define IRQ_DEBUG -- GitLab