打印
[ZLG-ARM]

请教zlg/fs 中一个函数参数问题

[复制链接]
1311|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dsoyy|  楼主 | 2008-11-3 14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我读SD卡文件,调用函数: uint32 OSFileRead(void *Buf, uint32 Size, HANDLE Handle)
其中uint32 Size是要读的字节数,因为读取的是文件,所以为了获取size的数值,又调用函数:extern uint8 GetFDTInfo(FDT *Rt,uint8 Drive, uint32 ClusIndex, uint32 Index);(ZLG.FSfat.H)
此函数参数有几点不明白:
1、FDT *Rt结构体中可以获取我要得到的文件长度
2、我只挂一个SD,Drive输入参数是不是0?
3、ClusIndex:目录首簇号如何设置?
4、Index:文件(目录)在FDT中的位置,如何获取参数?

相关帖子

沙发
ZLG_Dengz| | 2008-11-4 09:17 | 只看该作者

RE

仅就开源的学习版ZLG_FS而言:
1. /* 目录表数据结构 */
typedef struct _FDT
{
    char    Name[11];           //短文件名主文件名
    uint8   Attr;               //文件属性
    uint8   NTRes;              //保留给NT
    uint8   CrtTimeTenth;       //建立时间(fat16保留)
    uint16  CrtTime;            //建立时间(fat16保留)
    uint16  CrtDate;            //建立日期(fat16保留)
    uint16  LstAccDate;         //最后访问日期(fat16保留)
    uint16  FstClusHI;          //起始簇号高两个字节(fat16保留)
    uint16  WrtTime;            //最后写时间
    uint16  WrtDate;            //最后写日期
    uint16  FstClusLO;          //起始簇(cluster)号低两个字节
    uint32  FileSize;           //文件大小
} FDT;

FileSize即为你要得文件大小.

2. 驱动器号在开源版文件系统里是从0开始分配的,正常情况下,如果你只有一个SD卡加载到文件系统里时,分配的设备号应该是0,如果不是0,可能是由于你前面加载的设备未卸载.

3、4.  参见文件系统源码,和相关资料吧!不是几句话能说清楚的.

使用特权

评论回复
板凳
ZLG_Dengz| | 2008-11-8 01:12 | 只看该作者

RE

  呵呵,同意楼上,多交流,会学的更快更好。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

566

帖子

3

粉丝