Trace the USB transfer data. I got impress about the time cost at each stage. Every 64 sectors write will take a block erase and build block map. And when access FAT1, FAT2, Root directory and MBR, it will copy block which take many time.
I list the time cost below, the time is relative.
1.Write sector takes 620 us.
2.Build block map and erase block takes 12ms
3.Copy block takes 180ms.
And then I rewrite block map evict method, just pick up the less time cost block. And then write speed improve 33%. now the read write speed is same as SDK does.
The other way to improve the speed should put our foucs on read redandunt time. Every build block map will read 64 redandunt area and takes 9ms.