FILE_DATA_BUF与DISK_DATA_BUF共用问题

我将FILE_DATA_BUF与DISK_DATA_BUF共用,首先,将数据写到缓冲区,然后设置写入扇区数mCmdParam.WriteX.mSectorCount = 1;再保存缓冲区起始地址mCmdParam.WriteX.mDataBuffer = &FILE_DATA_BUF[0];最后调用CH375FileWriteX();调用CH375FileWriteX()前还调用了CH375DirtyBuffer();但最后文件的结果是在512个数据中有一块连续的数据不对,而且每个512个数据的块中都有这样的数据出现,数据也完全一样,请教下是什么问题?[Emot]1[/Emot]

我在描述下:存512个数据后调用CH375FileWriteX()将512个数据写到文件,这样每写8个数据块(一个数据块512字节),再写第九个数据块就会出现一个块的数据是错的,错误的数据块的数据全部一样,但如果不共用FILE_DATA_BUF与DISK_DATA_BUF则不会出现这种情况,这是为什么呢?求解决!!


你这个错误是有规律的,每一个扇区会出错,你去下载CH375LIB.ZIP,里面在MCS51/FILELIB4/EXAM3这个例子就是磁盘缓冲区与文件缓冲区共用的例子,你可以参考。


就是参考/EXAM3做的,是不是要用CH375HF4.lib这个库,不能用CH375HF6.lib啊?


这两个没什么区别,只是对应的.H需要一致。


看来只能在外面加RAM了


只有登录才能回复,可以选择微信账号登录