Giovanni,
here is the output of our tests, performed on two different uSD cards (and cross-cheched on two different Olimex boards.
In both cases we write 4096 times a 4096 bytes block.
CASE 1 CARD DETAILS: VERBATIM CLASS 4 SDHC [8 Gb]
Code: Select all
Sleep delay: 0 ms
time spent in f_write(): 15247 ms
time spent in disk_write(): 15218 ms
number of bytes written: 16777216
average writing speed: 1100 Kb/s
Sleep delay: 1 ms
time spent in f_write(): 11143 ms
time spent in disk_write(): 11119 ms
number of bytes written: 16777216
average writing speed: 1505 Kb/s
Sleep delay: 4 ms
time spent in f_write(): 3260 ms
time spent in disk_write(): 3243 ms
number of bytes written: 16777216
average writing speed: 5146 Kb/s
Sleep delay: 6 ms
time spent in f_write(): 2193 ms
time spent in disk_write(): 2178 ms
number of bytes written: 16777216
average writing speed: 7650 Kb/s
Sleep delay: 8 ms
time spent in f_write(): 1777 ms
time spent in disk_write(): 1764 ms
number of bytes written: 16777216
average writing speed: 9441 Kb/s
Sleep delay: 10 ms
time spent in f_write(): 1644 ms
time spent in disk_write(): 1633 ms
number of bytes written: 16777216
average writing speed: 10205 Kb/s
Sleep delay: 15 ms
time spent in f_write(): 1456 ms
time spent in disk_write(): 1450 ms
number of bytes written: 16777216
average writing speed: 11522 Kb/s
CASE 2 CARD DETAILS: SAMSUNG EVO UHS-1 [8 Gb]
Code: Select all
Sleep delay: 0 ms
time spent in f_write(): 9076 ms
time spent in disk_write(): 9050 ms
number of bytes written: 16777216
average writing speed: 1848 Kb/s
Sleep delay: 1 ms
time spent in f_write(): 4900 ms
time spent in disk_write(): 4890 ms
number of bytes written: 16777216
average writing speed: 3423 Kb/s
Sleep delay: 4 ms
time spent in f_write(): 388 ms
time spent in disk_write(): 383 ms
number of bytes written: 16777216
average writing speed: 43240 Kb/s
Sleep delay: 6 ms
time spent in f_write(): 383 ms
time spent in disk_write(): 378 ms
number of bytes written: 16777216
average writing speed: 43804 Kb/s
Sleep delay: 8 ms
time spent in f_write(): 401 ms
time spent in disk_write(): 396 ms
number of bytes written: 16777216
average writing speed: 41838 Kb/s
Sleep delay: 10 ms
time spent in f_write(): 323 ms
time spent in disk_write(): 318 ms
number of bytes written: 16777216
average writing speed: 51941 Kb/s
Sleep delay: 15 ms
time spent in f_write(): 300 ms
time spent in disk_write(): 295 ms
number of bytes written: 16777216
average writing speed: 55924 Kb/s
I guess the slight fluctuation in the second case giving a non monotonic increase in speed may be related to the millisecond granularity of systime.
Do you have any comments or suggestion for additional tests?
Thanks
Alberto