阅读:1616回复:0
请教大家一个关于linux+arm的U盘存储控制问题
各位大侠好,
我在做U盘存储控制器的开发,采用的arm9+linux开发Usb主控器,我将数据使用write+fsync写入U盘(sandisk), 但是经过测试发现,一般来说每次存200字节的数据只需几ms,但是有时会出现将近200ms的问题, 检测USB总线的信号 发现主要是由于这段时间,U盘没有准备好接受(发送)数据因此一直回nak,而我这边的hc在一直重发所致。 因此,我判断是当每次写入200字节并且是强制写入U盘的时候,U盘写入速度不稳定(测试:每次存200字节共存储1亿字节会出现300多次超过150ms的现象), 但是当我以每次写入1024字节时,U盘写入速度会相对稳定许多(测试:每次存1024字节共存储1亿字节会出现2-3次超过150ms的现象)。 后发现凡是不是以1024倍数写入的话都会有此问题。请问这是为什么,nandflsh会出现写入速度不稳定的情况吗,那近200ms的时间究竟是怎么出现的呢, 请大家不吝赐教。 |
|