Repository navigation
Replies: 3 comments 3 replies
|
Needs to be mentioned that <circle/fs/fat/fatfs.h> is used, as I wanted to test the builtin methods. Is it the culprit? |
0 replies
|
Have you tried burst/larger blocks at the underlying block layer - basically a small read ahead caching routine - to optimise the bulk transfer nature?
I wrote a fairly primitive one, when developing some of my game libs - it’s broken out to its own discrete functions here: https://github.com/Xalior/circle-libsdl2/tree/main/circle-diskcache
…-Good luck, Dx
Sent from my iPhone
|
1 reply
|
Needs to be mentioned that <circle/fs/fat/fatfs.h> is used, as I wanted to test the builtin methods. Is it the culprit?
No, the native Circle FAT filesystem driver is relatively slow. You
should use FatFs in addon/fatfs/ instead, because it's much faster and
has more features. See the sample in addon/fatfs/sample/.
Normally you can read the whole file with one call to f_read(), which
should be the fastest. The SD card support in Circle is not perfect, but
you should be able to read your file in about 2 seconds.
|
2 replies
Answer selected by
ledlaux
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Need some help with SD card speed settings, because it is running in 25MHz mode only (I think so). Loading of 24mb soundfont into memory takes 19,4s to read which is very slow (1.15mb/s). Kernel reports in the log that it found 3.0 class card.
Hardware:
RPI Zero 2w
10 class SDHC 30mb/s 32gb card formatted with 32 KB cluster size.
I have set in
kernel.h
kernel.cpp:
config.txt
cmdline.txt
usbspeed=full fast=true loglevel=4sysconfig.h
emmc.cpp
#define SD_4BIT_DATATested both single bulk FileRead calls and 32 KB / 64 KB chunked read loops. Result is always the same. What am I missing?
All reactions