Browse Source

Merge pull request #1602 from aozima/re_initial_dev

add re-initial check.
Bernard Xiong 7 years ago
parent
commit
39998e4d89

+ 8 - 0
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 */

+ 6 - 0
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;

+ 9 - 1
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 */