diff --git a/bsp/at91sam9260/application.c b/bsp/at91sam9260/application.c index 97841bdc8db2e745092b4f9f178a1b4cbe06d6ee..4e85bdf21122fb316b5727ef4037b8649f02de46 100755 --- a/bsp/at91sam9260/application.c +++ b/bsp/at91sam9260/application.c @@ -19,10 +19,83 @@ #include +#ifdef RT_USING_DFS +/* dfs init */ +#include +/* dfs filesystem:ELM FatFs filesystem init */ +#include +/* dfs Filesystem APIs */ +#include +#ifdef RT_USING_DFS_UFFS +/* dfs filesystem:UFFS filesystem init */ +#include +#endif +#endif + #ifdef RT_USING_LED #include "led.h" #endif +#define RT_INIT_THREAD_STACK_SIZE (2*1024) + +#ifdef RT_USING_DFS_ROMFS +#include +#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