diff options
| author | Bernard Xiong <[email protected]> | 2017-11-29 08:58:52 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-11-29 08:58:52 +0800 |
| commit | e34f53c4ca4b14900f68e83b52949ff211f246d4 (patch) | |
| tree | 3171e4e522a33965de632751f4b397a8b7fd0ed2 | |
| parent | a3bc27bbdc2c950ea110c2c5191d17c902ed4da0 (diff) | |
| parent | 4b4a3ab2b79feb0f6414bf50a131a1b4ca67d074 (diff) | |
Merge pull request #1052 from aozima/lwip_dev
[LWIP] make sure lwip initialization order.
| -rw-r--r-- | components/net/lwip-2.0.2/src/arch/sys_arch.c | 5 | ||||
| -rw-r--r-- | components/net/lwip-2.0.2/src/netif/ethernetif.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/components/net/lwip-2.0.2/src/arch/sys_arch.c b/components/net/lwip-2.0.2/src/arch/sys_arch.c index d0862000ad..6e4bc64dc3 100644 --- a/components/net/lwip-2.0.2/src/arch/sys_arch.c +++ b/components/net/lwip-2.0.2/src/arch/sys_arch.c @@ -136,10 +136,13 @@ static void tcpip_init_done_callback(void *arg) /** * LwIP system initialization */ +extern int eth_system_device_init_private(void); int lwip_system_init(void) { rt_err_t rc; struct rt_semaphore done_sem; + + eth_system_device_init_private(); /* set default netif to NULL */ netif_default = RT_NULL; @@ -181,7 +184,7 @@ int lwip_system_init(void) return 0; } -INIT_COMPONENT_EXPORT(lwip_system_init); +INIT_PREV_EXPORT(lwip_system_init); void sys_init(void) { diff --git a/components/net/lwip-2.0.2/src/netif/ethernetif.c b/components/net/lwip-2.0.2/src/netif/ethernetif.c index 6fbf8597e9..362c4ea4ae 100644 --- a/components/net/lwip-2.0.2/src/netif/ethernetif.c +++ b/components/net/lwip-2.0.2/src/netif/ethernetif.c @@ -415,8 +415,17 @@ static void eth_rx_thread_entry(void* parameter) } #endif +/* this function does not need, + * use eth_system_device_init_private() + * call by lwip_system_init(). + */ int eth_system_device_init(void) { + return 0; +} + +int eth_system_device_init_private(void) +{ rt_err_t result = RT_EOK; /* initialize Rx thread. */ @@ -454,7 +463,6 @@ int eth_system_device_init(void) return (int)result; } -INIT_PREV_EXPORT(eth_system_device_init); #ifdef RT_USING_FINSH #include <finsh.h> |
