野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9694|回复: 2

MINI_OK中文件系统FathFs的疑问

[复制链接]
发表于 2015-7-20 12:40:46 | 显示全部楼层 |阅读模式
你好,火哥,我参考了你“MINI_OK”中的FatFs文件系统的改写,收获很多,但是我有点小疑问:
1)在开辟盘符时为什么两次调用f_mount(),即如下:
        res_flash = f_mount(&fs_flash,"0:",0);
        printf("\r\n f_mount res_flash=%d \r\n",res_flash);

        if(res_flash ==FR_NO_FILESYSTEM)
        {
                res_flash=f_mkfs("0:",0,4096);   //创建个文件夹
                printf("\r\nmkfs res_flash=%d",res_flash);
                res_flash = f_mount(&fs_flash,"0:",0);
                res_flash = f_mount(&fs_flash,"0:",1);
        }
2)我看到在diskio.c文件中有关SD卡的宏定义和函数调用,就试想把FatFs文件系统用到SD卡中,就修改了diskio.c的宏:
#ifndef FATFS_USE_SDIO
        #define FATFS_USE_SDIO        1
#endif

但是发现不能使用到SD卡中,请问修改后的FatFs文件系统还能否使用到SD卡中呢,是如何使用的呢???


回复

使用道具 举报

发表于 2015-7-20 15:42:03 | 显示全部楼层
1.if(res_flash ==FR_NO_FILESYSTEM)进入函数里面说明没有文件系统,调用f_mkfs("0:",0,4096);格式化外部Flash创建文件系统,然后才是
f_mount(&fs_flash,"0:",0);是解除挂载
f_mount(&fs_flash,"0:",1);重新挂载
2.完全可以用到SD卡的,http://pan.baidu.com/s/1ntBXLDv这是SD卡版本的例程,你可以参考里边部分例程来修改
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-20 21:32:28 | 显示全部楼层
火哥,你好,关于FATFS文件系统控制外部Flash的应用我还有最后的两个疑问:
1. 当使用f_open()等调用函数开辟空间后,假如要删除,是使用底层函数SPI_FLASH_SectorErase()吗??如果是,输入的地址参数怎么算??删除的大小又是在那设置的。
2. 火哥能不能讲讲在使用了文件系统控制Flash后,如何在这flash中开辟个动态的内存空间,思路是怎样的???
谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 22:28 , Processed in 0.028063 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表