天熱進(jìn)來坐坐,我有個(gè)問題要問 :)

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, 我該怎么做呢?

1,你的緩沖區(qū)總共才4K,在第一次讀完數(shù)據(jù)后,第二次你要把緩沖區(qū)地址指定到 &DATA_BUF+8*512,那你讓它數(shù)據(jù)往哪存啊?例子程序里是將緩沖區(qū)數(shù)據(jù)分兩次寫,那第二次,寫時(shí),緩沖區(qū)地址當(dāng)然要指定到后面,如果你的緩沖區(qū)是8K,那么如果你愿意將你的6K數(shù)據(jù)分兩次寫(每次4K)的話,第二次,就 應(yīng)該是 &DATA_BUF+8*512. 2,0xff 0xffff 0xffff 0xffffffff 分別代表以上4個(gè)參數(shù),那參數(shù)長度是不是 4+2+2+1 個(gè)字節(jié)啊! 寫10K,的話,分3次寫,4K數(shù)據(jù)->緩沖區(qū),寫,4K數(shù)據(jù)->緩沖區(qū),寫,2K數(shù)據(jù)->緩沖區(qū),寫,..哦..注意..不要將地址指向&DATA_BUF+8*512,..


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频