1 如果U盘文件太大,一次读不完。例如我有4k的xram,一次只能读8扇区; 如果我要读U盘内一个6k大小的文件,那么执行完一次ExecCommandbuf(CMD_FILEREAD, 1, &DATA_BUF)以后,需要再执行一次CMD_FileRead, 而这次就需要在数据缓冲区起始地址处加上已读的扇区长度。 则第二次ExecCommandbuf(CMD_FileRead, 1, &DATA_BUF+8*512),执行写文件也一样要加上已写的长度。 9寸钉你上次给我说不用改动ExecCommandBuf中的参数 &DATA_BUF, 错了哦, 我看了示例程序,里面都加上了。我应该没错吧
2 CMD_FileModify这个命令应用我真没搞清楚。 mCmdParam.Modify.mFileAttr = 0xff; /* 输入参数: 新的文件属性,为0FFH则不修改 */ mCmdParam.Modify.mFileTime = 0xffff; /* 输入参数: 新的文件时间,为0FFFFH则不修改,使用新建文件产生的默认时间 */ mCmdParam.Modify.mFileDate = ( (2005-1980)<<9 ) + ( 7<<5 ) + 05; /* 输入参数: 新的文件日期: 2004.05.18 */ mCmdParam.Modify.mFileSize = NewSize; /* 输入参数: 如果原文件较小,那么新的文件长度与原文件一样长,否则被RAM所限 */ i = ExecCommand( CMD_FileModify, 4+2+2+1 ); /* 修改当前文件的信息,修改日期和长度,参数长度为sizeof(mCmdParam.Modify.mFileSize)+... */ 其中EXECCOMMAND命令中的参数长度为什么是4+2+2+1呢? 另外,比如我现在要往U盘内写一个10k大小的文件,而我的xram只有4k大, 那么根据上面说明的来操作的话,mCmdParam.Modify.mFileSize = 4k, 文件长度被限制在4k, 我该怎么做呢?