野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21186|回复: 7

FAT文件系统移植问题

[复制链接]
发表于 2014-6-17 10:45:55 | 显示全部楼层 |阅读模式
       使用野火的例程在V3板子上移植文件系统(R0.09)。
       在f_open() 进程中的chk_mounted(&path, &dj.fs, (BYTE)(mode & ~FA_READ))进行到
if (LD_WORD(fs->win+BPB_BytsPerSec) != SS(fs))    /* (BPB_BytsPerSec must be equal to the physical sector size) */
  return FR_NO_FILESYSTEM;            时停止。
我用的是2GB的MicroSD卡 ,求大神指教。
回复

使用道具 举报

发表于 2014-6-17 10:46:41 | 显示全部楼层
你的SD卡没有格式化,需要在电脑上把它格式化成FAT格式
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-17 10:49:09 | 显示全部楼层
尉迟芮丽 发表于 2014-6-17 10:46
你的SD卡没有格式化,需要在电脑上把它格式化成FAT格式

要格式化成那种格式啊 ,我试过了格式化成FAT32的每单元16K和8192B两种方式 还是不行
回复 支持 反对

使用道具 举报

发表于 2014-6-17 10:52:05 | 显示全部楼层
coolpad 发表于 2014-6-17 10:49
要格式化成那种格式啊 ,我试过了格式化成FAT32的每单元16K和8192B两种方式 还是不行

FAT格式,默认大小
回复 支持 反对

使用道具 举报

发表于 2014-6-17 10:57:13 | 显示全部楼层
coolpad 发表于 2014-6-17 10:49
要格式化成那种格式啊 ,我试过了格式化成FAT32的每单元16K和8192B两种方式 还是不行

如果还不行估计是有些SD卡不兼容吧,你可以先用SDIO_SD卡的那个例程测试一下,它没有使用文件系统。那个例程如果能通过说明能兼容你的SD卡。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-17 10:58:36 | 显示全部楼层
尉迟芮丽 发表于 2014-6-17 10:57
如果还不行估计是有些SD卡不兼容吧,你可以先用SDIO_SD卡的那个例程测试一下,它没有使用文件系统。那个例 ...

前面的实验做过了  可以正常擦除和读写
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-17 11:03:52 | 显示全部楼层
房宜楠 发表于 2014-6-17 10:52
FAT格式,默认大小

我用的是USB大容量存储例程的代码进行格式化的 这个有关系么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-18 09:16:17 | 显示全部楼层
我又自己试了下,用的还是2GB的SD卡,发现用读卡器格式化会把扇区分为512B,用野火USB大容量存储例程会把卡的扇区分为1024B,而FAT文件系统默认扇区是512B并进行判定,导致f_open函数返回值出错。可以在ff.c中找到    #define        SS(fs)        512U   /* Fixed sector size */  将512U改为1024U或其他与SD卡扇区大小相匹配的数值即可。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 05:55 , Processed in 0.027803 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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