底层驱动接口
RT-Thread DFS 文件系统针对下层媒介使用的是RT-Thread 的设备IO系统,其中主要包括设备读写等操作。但是有些文件系统并不依赖于RT-Thread 的设备系统,例如1.0.x分支引入的只读文件系统、网络文件系统等。对于常使用的FAT 文件系统,下层驱动必须用块设备的形式来实现。
文件系统初始化
在使用文件系统接口前,需要对文件系统进行初始化,代码如下:
- #ifdef RT_USING_DFS
- /* 包含DFS 的头文件 */
- #include <dfs_fs.h>
- #include <dfs_elm.h>
- #endif
- /* 初始化线程 */
- void rt_init_thread_entry(void *parameter)
- {
- /* 文件系统初始化 */
- #ifdef RT_USING_DFS
- {
- /* 初始化设备文件系统 */
- dfs_init();
- #ifdef RT_USING_DFS ELMFAT
- /* 如果使用的是ELM 的FAT 文件系统,需要对它进行初始化 */
- elm_init();
- /* 调用dfs_mount 函数对设备进行装载 */
- if (dfs_mount("sd0", "/", "elm", 0, 0) == 0)
- rt_kprintf("File System initialized!\n");
- else
- rt_kprintf("File System init failed!\n");
- #endif
- }
- #endif
- }
其主要包括的函数接口为:
- int dfs_mount(const char* device_name, const char* path, const char* filesystemtype,
- rt_uint32_t rwflag, const void* data);
dfs_mount 函数用于把以device_name 为名称的设备挂接到path 路径中。filesystemtype 指定了设备上的文件系统的类型(如上面代码所述的elm、rom、nfs 等文件系统)。data参数对某些文件系统是有意义的,如nfs,对elm 类型系统则没有意义。
- 参数:
device_name - 设备名; path - 挂接路径; filesystemtype - 文件系统的类型; rwflag - 文件系统的标志; data - 文件系统的数据。
- 返回值:
装载成功将返回0,否则返回-1。具体的错误需要查看errno。