1 如果U盤文件太大,一次讀不完。例如我有4k的xram,一次只能讀8扇區(qū); 如果我要讀U盤內(nèi)一個(gè)6k大小的文件,那么執(zhí)行完一次ExecCommandbuf(CMD_FILEREAD, 1, &DATA_BUF)以后,需要再執(zhí)行一次CMD_FileRead, 而這次就需要在數(shù)據(jù)緩沖區(qū)起始地址處加上已讀的扇區(qū)長度。 則第二次ExecCommandbuf(CMD_FileRead, 1, &DATA_BUF+8*512),執(zhí)行寫文件也一樣要加上已寫的長度。 9寸釘你上次給我說不用改動(dòng)ExecCommandBuf中的參數(shù) &DATA_BUF, 錯(cuò)了哦, 我看了示例程序,里面都加上了。我應(yīng)該沒錯(cuò)吧
2 CMD_FileModify這個(gè)命令應(yīng)用我真沒搞清楚。 mCmdParam.Modify.mFileAttr = 0xff; /* 輸入?yún)?shù): 新的文件屬性,為0FFH則不修改 */ mCmdParam.Modify.mFileTime = 0xffff; /* 輸入?yún)?shù): 新的文件時(shí)間,為0FFFFH則不修改,使用新建文件產(chǎn)生的默認(rèn)時(shí)間 */ mCmdParam.Modify.mFileDate = ( (2005-1980)<<9 ) + ( 7<<5 ) + 05; /* 輸入?yún)?shù): 新的文件日期: 2004.05.18 */ mCmdParam.Modify.mFileSize = NewSize; /* 輸入?yún)?shù): 如果原文件較小,那么新的文件長度與原文件一樣長,否則被RAM所限 */ i = ExecCommand( CMD_FileModify, 4+2+2+1 ); /* 修改當(dāng)前文件的信息,修改日期和長度,參數(shù)長度為sizeof(mCmdParam.Modify.mFileSize)+... */ 其中EXECCOMMAND命令中的參數(shù)長度為什么是4+2+2+1呢? 另外,比如我現(xiàn)在要往U盤內(nèi)寫一個(gè)10k大小的文件,而我的xram只有4k大, 那么根據(jù)上面說明的來操作的話,mCmdParam.Modify.mFileSize = 4k, 文件長度被限制在4k, 我該怎么做呢?