我用CH375B读写U盘 遇到了个问题, 文件数据缓冲区和磁盘数据缓冲区的大小根据什么确定呢?? 还有我使用ARM来读写U盘,内部FLASH为8K 还有我看到的有双缓冲区读写这种读写方式,怎么设置这两个缓冲区的大小呢,我怎么在参数中指定缓冲区的地址呢 ? 双缓冲区是哪两个缓冲区?包括这个磁盘数据缓冲区么? 初次使用这个芯片? 问的问题可能比较菜,希望解答. 谢谢!!!
不是这样理解的,磁盘缓冲区是必须需要的,磁盘缓冲区的大小取决于你U盘一个扇区的大小,现在一般市面上出现的U盘有一个扇区大小为2048字节的大扇区U盘,至于文件缓冲区,如果按照字节方式读写的话,是不需要文件缓冲区的。如果按照扇区方式读写的话,那么需要文件缓冲区的大小最少也是U盘的一个扇区的大小,但是如果你的RAM够大的话,你可以定义为扇区整数倍的大小RAM缓冲区的大小。
先谢谢楼上的回复, 我看WCH公司给的程序里磁盘数据缓冲区的大小是2048或4096,是不是就是因为U盘一个扇区大小的问题,难道还有扇区大小为4096的U盘么? 设为2048或4096的话对于一个512的来说一次必须读4个扇区到缓冲区啊 ? 还有我想看看它如何对缓冲区进行操作的? WCH公司给做到库函数例了吧?有没有什么资料推荐一下?呵呵。 还有是不是文件缓冲区越大,读写U盘的速度越快呢?还有双缓冲区读写怎么实现的啊? 谢谢。
是的,现在我们遇到过一款苹果的MP3,一个扇区的大小是4K的,对磁盘缓冲区的话,你只需要定义这个大,当扇区数小于你定义的磁盘缓冲区,那么,大的那部分RAM是没有用到的,对于文件缓冲区,你可以在DISK-READY之后判断下你的U盘的一个扇区的大小是多大?然后根据一个扇区的大小来定义你文件缓冲区的大小就可以了,你可以直接去参考CH375LIB里面的例子程序,一般情况下是文件缓冲区越大,读写速度越快,采用双缓冲的话,就不需要定义文件缓冲区,直接调用FILE-WRITEX或者FILE-READX这两个函数,这个函数有一个指针是指向你自己定义的缓冲区的。
自己的缓冲区怎么定义啊?特别是双缓冲区的时候 我是初学者,不懂
自己研究子程序库里面的例子程序