From 12fba54f9151c2c9072041772acee72f77d662be Mon Sep 17 00:00:00 2001 From: "luohui2320@gmail.com" Date: Mon, 30 May 2011 14:30:10 +0000 Subject: [PATCH] add devfs for at91sam9260 git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1441 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- bsp/at91sam9260/application.c | 93 +++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 5 deletions(-) diff --git a/bsp/at91sam9260/application.c b/bsp/at91sam9260/application.c index 97841bdc8d..4e85bdf211 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