提交 f5f4c7e9 编写于 作者: B bernard.xiong

fix stat function on a root directory of file system; increase stack of play_ui thread.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@526 bbd45198-f89e-11dd-88c7-29a3b14d5316
上级 8d4da31b
......@@ -57,17 +57,17 @@ void rt_init_thread_entry(void *parameter)
/* init the elm FAT filesystam*/
elm_init();
/* mount sd card fat partition 1 as root directory */
if (dfs_mount("sd0", "/", "elm", 0, 0) == 0)
rt_kprintf("File System initialized!\n");
else
rt_kprintf("File System init failed!\n");
/* mount spi flash fat as resource directory */
if (dfs_mount("spi0", "/flash", "elm", 0, 0) == 0)
/* mount spi flash fat as root directory */
if (dfs_mount("spi0", "/", "elm", 0, 0) == 0)
rt_kprintf("SPI File System initialized!\n");
else
rt_kprintf("SPI File System init failed!\n");
/* mount sd card fat partition 1 as SD directory */
if (dfs_mount("sd0", "/SD", "elm", 0, 0) == 0)
rt_kprintf("File System initialized!\n");
else
rt_kprintf("File System init failed!\n");
}
#endif
......
......@@ -541,7 +541,7 @@ struct pbuf *rt_dm9000_rx(rt_device_t dev)
}
/* it issues an error, release pbuf */
pbuf_free(p);
if (p != RT_NULL) pbuf_free(p);
p = RT_NULL;
}
}
......
......@@ -945,7 +945,7 @@ void player_notify_stop()
void player_ui_init()
{
player_ui_tid = rt_thread_create("ply_ui", player_entry, RT_NULL,
0x800, 25, 5);
4096, 25, 5);
if (player_ui_tid != RT_NULL)
rt_thread_startup(player_ui_tid);
}
......
......@@ -78,7 +78,7 @@
#define SD_CARD_LOCKED ((uint32_t)0x02000000)
#define SD_CARD_PROGRAMMING ((uint32_t)0x00000007)
#define SD_CARD_RECEIVING ((uint32_t)0x00000006)
#define SD_DATATIMEOUT ((uint32_t)0x000FFFFF)
#define SD_DATATIMEOUT ((uint32_t)0xFFFFFFFF)
#define SD_0TO7BITS ((uint32_t)0x000000FF)
#define SD_8TO15BITS ((uint32_t)0x0000FF00)
#define SD_16TO23BITS ((uint32_t)0x00FF0000)
......
......@@ -18,6 +18,8 @@
extern struct dfs_fd fd_table[];
#define NO_WORKING_DIR "system does not support working dir\n"
/*
+------------------------------------------------------------------------------
| Function : fd_new
......@@ -150,9 +152,7 @@ int dfile_raw_open(struct dfs_fd* fd, const char *path, int flags)
build_fullpath(working_directory, path, fullpath);
dfs_unlock();
#else
#ifdef RT_USING_FINSH
rt_kprintf("bad filename");
#endif
rt_kprintf(NO_WORKING_DIR);
return -1;
#endif
}
......@@ -367,9 +367,7 @@ int dfile_raw_unlink(const char *path)
build_fullpath(working_directory, path, fullpath);
dfs_unlock();
#else
#ifdef RT_USING_FINSH
rt_kprintf("bad filename");
#endif
rt_kprintf(NO_WORKING_DIR);
return -1;
#endif
}
......@@ -476,9 +474,7 @@ int dfile_raw_stat(const char *path, struct dfs_stat *buf)
build_fullpath(working_directory, path, fullpath);
dfs_unlock();
#else
#ifdef RT_USING_FINSH
rt_kprintf("not support working directory, bad filename\n");
#endif
rt_kprintf(NO_WORKING_DIR);
return -1;
#endif
}
......@@ -491,9 +487,24 @@ int dfile_raw_stat(const char *path, struct dfs_stat *buf)
fspathlen = strlen(fs->path);
rt_memset(real_path, 0, sizeof(real_path));
if (*(fullpath + fspathlen) != '/') strcpy(real_path, "/");
if (*(fullpath + fspathlen) != '/') real_path[0] = '/';
strcat(real_path, fullpath + fspathlen);
if (real_path[0] == '/' && real_path[1] == '\0')
{
/* it's the root directory */
buf->st_dev = 0;
buf->st_mode = DFS_S_IRUSR | DFS_S_IRGRP | DFS_S_IROTH |
DFS_S_IWUSR | DFS_S_IWGRP | DFS_S_IWOTH;
buf->st_mode |= DFS_S_IFDIR | DFS_S_IXUSR | DFS_S_IXGRP | DFS_S_IXOTH;
buf->st_size = 0;
buf->st_mtime = 0;
buf->st_blksize = 512;
return DFS_STATUS_OK;
}
if (fs->ops->stat == RT_NULL)
{
dfs_log(DFS_DEBUG_ERROR, ("the filesystem didn't implement this function"));
......@@ -535,7 +546,7 @@ int dfile_raw_rename(const char* oldpath, const char* newpath)
build_fullpath(working_directory, oldpath, oldfullpath);
dfs_unlock();
#else
rt_kprintf("bad filename\n");
rt_kprintf(NO_WORKING_DIR);
return -1;
#endif
}
......@@ -549,7 +560,7 @@ int dfile_raw_rename(const char* oldpath, const char* newpath)
build_fullpath(working_directory, newpath, newfullpath);
dfs_unlock();
#else
rt_kprintf("bad filename");
rt_kprintf(NO_WORKING_DIR);
return -1;
#endif
}
......@@ -597,11 +608,12 @@ void ls(const char* pathname)
if ( length > 0 )
{
rt_memset(&stat, 0, sizeof(struct dfs_stat));
/* build full path for each file */
strncpy(fullpath, pathname, 256);
strcat(fullpath, "/");
strcat(fullpath, dirent.d_name);
if (pathname[strlen(pathname) - 1] != '/')
rt_snprintf(fullpath, sizeof(fullpath), "%s%c%s", pathname, '/', dirent.d_name);
else
rt_snprintf(fullpath, sizeof(fullpath), "%s%s", pathname, dirent.d_name);
dfile_raw_stat(fullpath, &stat);
if ( stat.st_mode & DFS_S_IFDIR )
......@@ -624,7 +636,7 @@ void ls(const char* pathname)
}
FINSH_FUNCTION_EXPORT(ls, list directory contents)
void _mkdir(const char* pathname)
static void mkdir(const char* pathname)
{
/* make a new directory */
if (dfile_raw_open(&fd, pathname, DFS_O_DIRECTORY | DFS_O_CREAT) == 0)
......@@ -633,7 +645,7 @@ void _mkdir(const char* pathname)
}
else rt_kprintf("Can't mkdir %s\n", pathname);
}
FINSH_FUNCTION_EXPORT(_mkdir, make a directory)
FINSH_FUNCTION_EXPORT(mkdir, make a directory)
void rm(const char* filename)
{
......
......@@ -1042,28 +1042,3 @@ void rtgui_topwin_get_clipinfo(struct rtgui_rect* rect_list, rt_int32_t count)
rt_sem_release(&_rtgui_topwin_lock);
}
#endif
#ifdef RT_USING_FINSH
#include <finsh.h>
void rtgui_topwin_dump()
{
struct rtgui_list_node* node;
rtgui_list_foreach(node, &_rtgui_topwin_show_list)
{
struct rtgui_topwin* wnd = rtgui_list_entry(node, struct rtgui_topwin, list);
rt_kprintf("wnd at (%d, %d) - (%d, %d)\n",
wnd->extent.x1, wnd->extent.y1, wnd->extent.x2, wnd->extent.y2);
if (wnd->title != RT_NULL)
{
rt_kprintf("title[%s] border (%d, %d) - (%d, %d)\n", wnd->title->title,
RTGUI_WIDGET(wnd->title)->extent.x1, RTGUI_WIDGET(wnd->title)->extent.y1,
RTGUI_WIDGET(wnd->title)->extent.x2, RTGUI_WIDGET(wnd->title)->extent.y2);
}
}
}
FINSH_FUNCTION_EXPORT(rtgui_topwin_dump, dump topwindow list);
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册