野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19877|回复: 2

1.FATFS0.10_flash 问题

[复制链接]
发表于 2016-1-9 14:52:54 | 显示全部楼层 |阅读模式
/*************************   flash ÎļtÏμí3   *********************************************/
                /* Register work area for each volume (Always succeeds regardless of disk status) */
                res_flash = f_mount(&fs,"0:",1);
                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,"0:",0);
                        res_flash = f_mount(&fs,"0:",1);
                }
/**************************  flash   *****************************************/               
请问这段代码什么意思?

回复

使用道具 举报

发表于 2016-1-9 15:13:53 | 显示全部楼层
FatFs的第一步工作就是使用f_mount函数挂载工作区。f_mount函数有三个形参,第一个参数是指向FATFS变量指针,如果赋值为NULL可以取消物理设备挂载。第二个参数为逻辑设备编号,使用设备根路径表示,与物理设备编号挂钩,在代码清单 1‑1中我们定义SPI Flash芯片物理编号为1,所以这里使用“1:”。第三个参数可选0或1,1表示立即挂载,0表示不立即挂载,延迟挂载。 f_mount函数会返回一个FRESULT类型值,指示运行情况。
如果f_mount函数返回值为FR_NO_FILESYSTEM,说明没有FAT文件系统,比如新出厂的SPI Flash芯片就没有FAT文件系统。我们就必须对物理设备进行格式化处理。使用f_mkfs函数可以实现格式化操作。f_mkfs函数有三个形参,第一个参数为逻辑设备编号;第二参数可选0或者1,0表示设备为一般硬盘,1表示设备为软盘。第三个参数指定扇区大小,如果为0,表示通过代码清单 1‑6中disk_ioctl函数获取。格式化成功后需要先取消挂载原来设备,再重新挂载设备。
http://pan.baidu.com/s/1mh1HzRE
参考 第24章 串行 FLASH 文件系统 FatFs


回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-9 15:24:53 | 显示全部楼层
亽亼 发表于 2016-1-9 15:13
FatFs的第一步工作就是使用f_mount函数挂载工作区。f_mount函数有三个形参,第一个参数是指向FATFS变量指针 ...

好的,感谢你。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 06:47 , Processed in 0.038125 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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