F_mount delay when using Daisy Bootloader

Hey all.

New to C++ and only just getting started with Daisy programming, so apologies if this is a newbie question.

I have the following code:

SdmmcHandler::Config sd_cfg;
sd_cfg.Defaults();
sdcard.Init(sd_cfg);
log("SD Card Initialized.");
fsi.Init(FatFSInterface::Config::MEDIA_SD);
log("Filesystem Initialized.");
FATFS& fs = fsi.GetSDFileSystem();
log("Filesystem found.");
f_mount(&fs, "/", 1);
log("Filesystem mounted.");

(the extensive log messages are there to help debug this issue!)

When uploaded to Flash memory this works exactly as expected. However, when I install the Daisy Bootloader and then upload this to SRAM, the f_mount command causes a 30 second delay (exactly) before the code proceeds. Is this normal and to be expected?!

Thanks.

1 Like

Hi Jon!
I’m really sorry for the delay in response. This a good question.

Basically, it’s a linker issue. By default, our linker puts the data section (where the file handler is) in a region that doesn’t have direct access to the SD card. We should change the default linker for the bootloader so thank you for bringing this up.

In the meantime, you should actually be able to get it working on the BOOT_QSPI setting, even if it’s just for a little test.