Hello,
I have implemented a file system on the external flash, following the example: "USB MSC Example", SDK16, nRF52840. The objective was to implement an audio recorder application.
I did a little performance test, by continuously writing chunks of 2400 bytes, using fatfs/src/ff.c f_write(). I measured timing of every 100 transactions as you can see below.
I can see that average time for such transaction is ~30 mSec (~3 sec for 100 transactions).
This is done by using the fastest clock possible (as far as I understand): #define QSPI_CONFIG_FREQUENCY 0
My question is: Is this a reasonable write performance? What can I do to improve it?
I tried to understand if the QSPI driver is using DMA but couldn't get a clear picture about it (other than that documentation says this is the default).
Thanks in advance!
Line 1: [1;35m[00:00:00.026,000] <info> test_fs: Start 100 write transactions[0m
Line 2: [1;35m[00:00:02.789,000] <info> test_fs: Completed 100 write transactions[0m
Line 10: [1;35m[00:00:07.982,000] <info> test_fs: Start 100 write transactions[0m
Line 11: [1;35m[00:00:11.205,000] <info> test_fs: Completed 100 write transactions[0m
Line 19: [1;35m[00:00:16.393,000] <info> test_fs: Start 100 write transactions[0m
Line 20: [1;35m[00:00:19.423,000] <info> test_fs: Completed 100 write transactions[0m
Line 28: [1;35m[00:00:24.633,000] <info> test_fs: Start 100 write transactions[0m
Line 29: [1;35m[00:00:27.466,000] <info> test_fs: Completed 100 write transactions[0m
Line 37: [1;35m[00:00:32.652,000] <info> test_fs: Start 100 write transactions[0m
Line 38: [1;35m[00:00:35.556,000] <info> test_fs: Completed 100 write transactions[0m
Line 46: [1;35m[00:00:40.739,000] <info> test_fs: Start 100 write transactions[0m
Line 47: [1;35m[00:00:43.590,000] <info> test_fs: Completed 100 write transactions[0m
Line 55: [1;35m[00:00:48.773,000] <info> test_fs: Start 100 write transactions[0m
Line 56: [1;35m[00:00:51.526,000] <info> test_fs: Completed 100 write transactions[0m