|
@@ -19,10 +19,83 @@
|
|
|
|
|
|
#include <rtthread.h>
|
|
|
|
|
|
+#ifdef RT_USING_DFS
|
|
|
+/* dfs init */
|
|
|
+#include <dfs_init.h>
|
|
|
+/* dfs filesystem:ELM FatFs filesystem init */
|
|
|
+#include <dfs_elm.h>
|
|
|
+/* dfs Filesystem APIs */
|
|
|
+#include <dfs_fs.h>
|
|
|
+#ifdef RT_USING_DFS_UFFS
|
|
|
+/* dfs filesystem:UFFS filesystem init */
|
|
|
+#include <dfs_uffs.h>
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
#ifdef RT_USING_LED
|
|
|
#include "led.h"
|
|
|
#endif
|
|
|
|
|
|
+#define RT_INIT_THREAD_STACK_SIZE (2*1024)
|
|
|
+
|
|
|
+#ifdef RT_USING_DFS_ROMFS
|
|
|
+#include <dfs_romfs.h>
|
|
|
+#endif
|
|
|
+
|
|
|
+void rt_init_thread_entry(void* parameter)
|
|
|
+{
|
|
|
+/* Filesystem Initialization */
|
|
|
+#ifdef RT_USING_DFS
|
|
|
+ {
|
|
|
+ /* init the device filesystem */
|
|
|
+ dfs_init();
|
|
|
+
|
|
|
+#if defined(RT_USING_DFS_ELMFAT)
|
|
|
+ /* init the elm chan FatFs filesystam*/
|
|
|
+ elm_init();
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(RT_USING_DFS_ROMFS)
|
|
|
+ dfs_romfs_init();
|
|
|
+ if (dfs_mount(RT_NULL, "/rom", "rom", 0, &romfs_root) == 0)
|
|
|
+ {
|
|
|
+ rt_kprintf("ROM File System initialized!\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ rt_kprintf("ROM File System initialzation failed!\n");
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(RT_USING_DFS_DEVFS)
|
|
|
+ devfs_init();
|
|
|
+ if (dfs_mount(RT_NULL, "/dev", "devfs", 0, 0) == 0)
|
|
|
+ rt_kprintf("Device File System initialized!\n");
|
|
|
+ else
|
|
|
+ rt_kprintf("Device File System initialzation failed!\n");
|
|
|
+
|
|
|
+ #ifdef RT_USING_NEWLIB
|
|
|
+ /* init libc */
|
|
|
+ libc_system_init("uart0");
|
|
|
+ #endif
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(RT_USING_DFS_UFFS)
|
|
|
+ {
|
|
|
+ /* init the uffs filesystem */
|
|
|
+ dfs_uffs_init();
|
|
|
+
|
|
|
+ /* mount flash device as flash directory */
|
|
|
+ if(dfs_mount("nand0", "/nand0", "uffs", 0, 0) == 0)
|
|
|
+ rt_kprintf("UFFS File System initialized!\n");
|
|
|
+ else
|
|
|
+ rt_kprintf("UFFS File System initialzation failed!\n");
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ }
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
#ifdef RT_USING_LED
|
|
|
void rt_led_thread_entry(void* parameter)
|
|
|
{
|
|
@@ -52,26 +125,36 @@ void rt_led_thread_entry(void* parameter)
|
|
|
|
|
|
int rt_application_init()
|
|
|
{
|
|
|
+ rt_thread_t init_thread;
|
|
|
#ifdef RT_USING_LED
|
|
|
rt_thread_t led_thread;
|
|
|
+#endif
|
|
|
|
|
|
#if (RT_THREAD_PRIORITY_MAX == 32)
|
|
|
-
|
|
|
-
|
|
|
+ init_thread = rt_thread_create("init",
|
|
|
+ rt_init_thread_entry, RT_NULL,
|
|
|
+ RT_INIT_THREAD_STACK_SIZE, 8, 20);
|
|
|
+#ifdef RT_USING_LED
|
|
|
led_thread = rt_thread_create("led",
|
|
|
rt_led_thread_entry, RT_NULL,
|
|
|
512, 20, 20);
|
|
|
+#endif
|
|
|
|
|
|
#else
|
|
|
-
|
|
|
-
|
|
|
+ init_thread = rt_thread_create("init",
|
|
|
+ rt_init_thread_entry, RT_NULL,
|
|
|
+ RT_INIT_THREAD_STACK_SIZE, 80, 20);
|
|
|
+#ifdef RT_USING_LED
|
|
|
led_thread = rt_thread_create("led",
|
|
|
rt_led_thread_entry, RT_NULL,
|
|
|
512, 200, 20);
|
|
|
+#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-
|
|
|
+ if (init_thread != RT_NULL)
|
|
|
+ rt_thread_startup(init_thread);
|
|
|
+#ifdef RT_USING_LED
|
|
|
if(led_thread != RT_NULL)
|
|
|
rt_thread_startup(led_thread);
|
|
|
#endif
|