summaryrefslogtreecommitdiff
path: root/bsp/dev3210
diff options
context:
space:
mode:
author[email protected] <[email protected]>2010-11-30 14:22:18 +0000
committer[email protected] <[email protected]>2010-11-30 14:22:18 +0000
commit98492b7344f659cfdef0a34d218026e08599ae82 (patch)
tree6538c118e0f330115f1d46623c85e42c60dca4c9 /bsp/dev3210
parent753de2064321e558268ba046d1dea5add52ac6e2 (diff)
cleanup 3210 branch code.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1163 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'bsp/dev3210')
-rw-r--r--bsp/dev3210/application.c137
-rw-r--r--bsp/dev3210/rtconfig.h10
-rw-r--r--bsp/dev3210/startup.c14
3 files changed, 91 insertions, 70 deletions
diff --git a/bsp/dev3210/application.c b/bsp/dev3210/application.c
index 0d2fe9cbdf..5791d6eaa1 100644
--- a/bsp/dev3210/application.c
+++ b/bsp/dev3210/application.c
@@ -12,43 +12,19 @@
* 2010-06-25 Bernard first version
*/
-/**
- * @addtogroup Loongson SoC3210
- */
-/*@{*/
#include <rtthread.h>
#include <soc3210.h>
-struct rt_thread thread;
-ALIGN(4)
-rt_uint8_t thread_stack[1024];
-
-#include <finsh.h>
-void thread_entry(void* parameter)
-{
- int i = 0;
-
- while (1)
- {
- rt_kprintf("i = %d, cause: 0x%08x, config: 0x%08x\n", i++, read_c0_cause(), read_c0_config());
- rt_kprintf("HSB_MISC_CFG 0x%08x\n", HSB_MISC_REG);
- rt_thread_delay(100);
- }
-}
-void thread_test()
-{
- rt_err_t result = rt_thread_init(&thread,
- "tid",
- thread_entry, RT_NULL,
- &thread_stack, sizeof(thread_stack),
- 200,
- 5);
- if (result == RT_EOK)
- rt_thread_startup(&thread);
- else
- rt_kprintf("init thread failed\n");
-}
-FINSH_FUNCTION_EXPORT(thread_test, test thread!!);
+#ifdef RT_USING_DFS
+#include <dfs.h>
+#include <dfs_elm.h>
+#ifdef RT_USING_DFS_ROMFS
+#include <dfs_romfs.h>
+#endif
+#ifdef RT_USING_DFS_DEVFS
+#include <devfs.h>
+#endif
+#endif
#ifdef RT_USING_RTGUI
#include <rtgui/rtgui.h>
@@ -56,32 +32,87 @@ FINSH_FUNCTION_EXPORT(thread_test, test thread!!);
#include <rtgui/rtgui_server.h>
#endif
-int rt_application_init()
+void rt_init_thread_entry(void* parameter)
{
+ /* Filesystem Initialization */
+#ifdef RT_USING_DFS
+ {
+ /* init the device filesystem */
+ dfs_init();
+
+#if defined(RT_USING_DFS_ROMFS)
+ dfs_romfs_init();
+ if (dfs_mount(RT_NULL, "/", "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_ELMFAT)
+ /* init the elm chan FatFs filesystam*/
+ elm_init();
+ /* mount sd card fat partition 1 as root directory */
+ if (dfs_mount("sd0", "/sd", "elm", 0, 0) == 0)
+ {
+ rt_kprintf("File System initialized!\n");
+ }
+ else
+ rt_kprintf("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("uart");
+ rt_kprintf("libc init done\n");
+ #endif
+#endif
+ }
+#endif
+
#ifdef RT_USING_RTGUI
- rtgui_rect_t rect;
+ {
+ rtgui_rect_t rect;
- rtgui_system_server_init();
+ rtgui_system_server_init();
- /* register dock panel */
- rect.x1 = 0;
- rect.y1 = 0;
- rect.x2 = 400;
- rect.y2 = 480;
- rtgui_panel_register("panel", &rect);
+ /* register dock panel */
+ rect.x1 = 0;
+ rect.y1 = 0;
+ rect.x2 = 400;
+ rect.y2 = 480;
+ rtgui_panel_register("panel", &rect);
- /* register main panel */
- rect.x1 = 400;
- rect.y1 = 0;
- rect.x2 = 800;
- rect.y2 = 480;
- rtgui_panel_register("main", &rect);
- rtgui_panel_set_default_focused("main");
+ /* register main panel */
+ rect.x1 = 400;
+ rect.y1 = 0;
+ rect.x2 = 800;
+ rect.y2 = 480;
+ rtgui_panel_register("main", &rect);
+ rtgui_panel_set_default_focused("main");
- rt_hw_lcd_init();
+ rt_hw_lcd_init();
+ }
#endif
+}
+
+int rt_application_init()
+{
+ rt_thread_t tid;
+
+ /* create initialization thread */
+ tid = rt_thread_create("init",
+ rt_init_thread_entry, RT_NULL,
+ 4096, 8, 20);
+ if (tid != RT_NULL) rt_thread_startup(tid);
return 0;
}
-
-/*@}*/
diff --git a/bsp/dev3210/rtconfig.h b/bsp/dev3210/rtconfig.h
index 9b507d266b..945affa405 100644
--- a/bsp/dev3210/rtconfig.h
+++ b/bsp/dev3210/rtconfig.h
@@ -53,6 +53,7 @@
/* Using SLAB MM */
#define RT_USING_SLAB
+/* #define RT_USING_SMALL_MEM */
/* SECTION: Device System */
/* Using Device System */
@@ -68,8 +69,8 @@
/* SECTION: the runtime libc library */
/* the runtime libc library */
-#define RT_USING_NEWLIB
-#define RT_USING_PTHREADS
+/* #define RT_USING_NEWLIB */
+/* #define RT_USING_PTHREADS */
/* SECTION: finsh, a C-Express shell */
/* Using FinSH as Shell*/
@@ -81,8 +82,9 @@
/* SECTION: device filesystem support */
#define RT_USING_DFS
-#define RT_USING_DFS_ELMFAT
+/* #define RT_USING_DFS_ELMFAT */
#define RT_USING_DFS_ROMFS
+/* #define RT_USING_DFS_DEVFS */
/* the max number of mounted filesystem */
#define DFS_FILESYSTEMS_MAX 2
@@ -90,6 +92,8 @@
#define DFS_FD_MAX 4
/* the max number of cached sector */
#define DFS_CACHE_MAX_NUM 4
+/* Using working directory */
+#define DFS_USING_WORKDIR
/* SECTION: lwip, a lighwight TCP/IP protocol stack */
/* #define RT_USING_LWIP */
diff --git a/bsp/dev3210/startup.c b/bsp/dev3210/startup.c
index 8b38099c6f..5312814582 100644
--- a/bsp/dev3210/startup.c
+++ b/bsp/dev3210/startup.c
@@ -29,20 +29,6 @@ extern unsigned char __bss_end;
extern int rt_application_init(void);
-void dump_mem(const unsigned char* addr)
-{
- int size;
- rt_kprintf("---- memory: 0x%08x ----\n", addr);
- for (size = 0; size < 32 * 4; size ++)
- {
- rt_kprintf("%02x ", (*addr) & 0xff);
- addr ++;
- if ((size + 1) % 16 == 0)
- rt_kprintf("\n");
- }
- rt_kprintf("\n");
-}
-
extern void tlb_refill_exception(void);
extern void general_exception(void);
extern void irq_exception(void);