[ZLG-ARM] 请教zlg/fs 中一个函数参数问题

[复制链接]
 楼主| dsoyy 发表于 2008-11-3 14:43 | 显示全部楼层 |阅读模式
我读SD卡文件,调用函数:&nbsp;uint32&nbsp;OSFileRead(void&nbsp;*Buf,&nbsp;uint32&nbsp;Size,&nbsp;HANDLE&nbsp;Handle)<br />其中uint32&nbsp;Size是要读的字节数,因为读取的是文件,所以为了获取size的数值,又调用函数:extern&nbsp;uint8&nbsp;GetFDTInfo(FDT&nbsp;*Rt,uint8&nbsp;Drive,&nbsp;uint32&nbsp;ClusIndex,&nbsp;uint32&nbsp;Index);(ZLG.FSfat.H)<br />此函数参数有几点不明白:<br />1、FDT&nbsp;*Rt结构体中可以获取我要得到的文件长度<br />2、我只挂一个SD,Drive输入参数是不是0?<br />3、ClusIndex:目录首簇号如何设置?<br />4、Index:文件(目录)在FDT中的位置,如何获取参数?<br />
ZLG_Dengz 发表于 2008-11-4 09:17 | 显示全部楼层

RE

仅就开源的学习版ZLG_FS而言:<br />1.&nbsp;/*&nbsp;目录表数据结构&nbsp;*/<br />typedef&nbsp;struct&nbsp;_FDT<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;Name[11];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//短文件名主文件名<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;&nbsp;&nbsp;Attr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//文件属性<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;&nbsp;&nbsp;NTRes;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//保留给NT<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;&nbsp;&nbsp;CrtTimeTenth;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//建立时间(fat16保留)<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;CrtTime;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//建立时间(fat16保留)<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;CrtDate;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//建立日期(fat16保留)<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;LstAccDate;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//最后访问日期(fat16保留)<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;FstClusHI;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//起始簇号高两个字节(fat16保留)<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;WrtTime;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//最后写时间<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;WrtDate;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//最后写日期<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;FstClusLO;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//起始簇(cluster)号低两个字节<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;&nbsp;FileSize;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//文件大小<br />}&nbsp;FDT;<br /><br />FileSize即为你要得文件大小.<br /><br />2.&nbsp;驱动器号在开源版文件系统里是从0开始分配的,正常情况下,如果你只有一个SD卡加载到文件系统里时,分配的设备号应该是0,如果不是0,可能是由于你前面加载的设备未卸载.<br /><br />3、4.&nbsp;&nbsp;参见文件系统源码,和相关资料吧!不是几句话能说清楚的.
ZLG_Dengz 发表于 2008-11-8 01:12 | 显示全部楼层

RE

&nbsp;&nbsp;呵呵,同意楼上,多交流,会学的更快更好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

566

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部

144

主题

566

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部