summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2018-07-04 07:15:45 +0800
committerGitHub <[email protected]>2018-07-04 07:15:45 +0800
commit39998e4d8949d011ffdd9863f2f59c9eec21cffd (patch)
tree835abc662368ca7aae3821e092a1bb278cfabe38 /components
parent33fb280140c0bd9d235433f393942502d681aee4 (diff)
parentf3fc141f5f9a99a0f1bb7cd731ee4410b43f32f8 (diff)
Merge pull request #1602 from aozima/re_initial_dev
add re-initial check.
Diffstat (limited to 'components')
-rw-r--r--components/dfs/src/dfs.c8
-rw-r--r--components/finsh/shell.c6
-rw-r--r--components/net/lwip-2.0.2/src/arch/sys_arch.c10
3 files changed, 23 insertions, 1 deletions
diff --git a/components/dfs/src/dfs.c b/components/dfs/src/dfs.c
index fbc0899d36..459ab52793 100644
--- a/components/dfs/src/dfs.c
+++ b/components/dfs/src/dfs.c
@@ -55,8 +55,16 @@ static int fd_alloc(struct dfs_fdtable *fdt, int startfd);
/**
* this function will initialize device file system.
*/
+static volatile uint8_t init_ok = 0;
int dfs_init(void)
{
+ if(init_ok)
+ {
+ rt_kprintf("dfs already init.\n");
+ return 0;
+ }
+ init_ok = 1;
+
/* clear filesystem operations table */
memset((void *)filesystem_operation_table, 0, sizeof(filesystem_operation_table));
/* clear filesystem table */
diff --git a/components/finsh/shell.c b/components/finsh/shell.c
index 29034bb286..bd6f41cfd5 100644
--- a/components/finsh/shell.c
+++ b/components/finsh/shell.c
@@ -791,6 +791,12 @@ int finsh_system_init(void)
rt_err_t result = RT_EOK;
rt_thread_t tid;
+ if(shell)
+ {
+ rt_kprintf("finsh shell already init.\n");
+ return RT_EOK;
+ }
+
#ifdef FINSH_USING_SYMTAB
#ifdef __CC_ARM /* ARM C Compiler */
extern const int FSymTab$$Base;
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 c8e1fe1d33..316b970048 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,11 +136,19 @@ static void tcpip_init_done_callback(void *arg)
* LwIP system initialization
*/
extern int eth_system_device_init_private(void);
+static volatile uint8_t init_ok = 0;
int lwip_system_init(void)
{
rt_err_t rc;
struct rt_semaphore done_sem;
-
+
+ if(init_ok)
+ {
+ rt_kprintf("lwip system already init.\n");
+ return 0;
+ }
+ init_ok = 1;
+
eth_system_device_init_private();
/* set default netif to NULL */