SdFat tests on Arduino Q

Follow on, to this one...

I just tried SDFat again on the Q and as you found the speed is not ideal.
(I think at 50mhz)


Type any character to start
                           FreeStack: -2640
Type is FAT32
Card size: 31.72 GB (GB = 1E9 bytes)

Manufacturer ID: 0XAD
OEM ID: LS
Product: USD00
              Revision: 1.0
Serial number: 0X12250D95
Manufacturing date: 6/2021

FILE_SIZE_MB = 5
BUF_SIZE = 512 bytes
                    Starting write test, please wait.

write speed and latency
speed,max,min,avg
KB/Sec,usec,usec,usec
41.06,12475,12464,12468
41.06,12475,12464,12468

Starting read test, please wait.

read speed and latency
speed,max,min,avg
KB/Sec,usec,usec,usec
41.06,12477,12467,12469
41.06,12478,12467,12469

I also verified, that it helps to turn on the array access: (at 20mhz)

write speed and latency
speed,max,min,avg
KB/Sec,usec,usec,usec
55.56,9221,9210,9213
55.56,9221,9210,9213

Starting read test, please wait.

read speed and latency
speed,max,min,avg
KB/Sec,usec,usec,usec
55.53,9228,9216,9219
55.53,9228,9216,9219

Done

Interesting thing, this is with it built with link mode static.

With link mode Dynamic (default), it fails to link the sketch:

Linking everything together...
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\zephyr\\tools\\arm-zephyr-eabi\\0.16.8/bin/arm-zephyr-eabi-g++" "-LC:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506" "-LC:\\Users\\kurte\\Documents\\Arduino\\hardware\\arduino-git\\ArduinoCore-zephyr\\variants\\arduino_uno_q_stm32u585xx" -Wl,--gc-sections -mcpu=cortex-m33 -mfloat-abi=hard -mfpu=fpv5-sp-d16 -std=gnu++17 -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit -lstdc++ -lsupc++ -lnosys -nostdlib --specs=picolibc.specs --specs=nosys.specs "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\sketch\\sdfat_bench.ino.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\ExFatLib\\ExFatDbg.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\ExFatLib\\ExFatFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\ExFatLib\\ExFatFilePrint.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\ExFatLib\\ExFatFileWrite.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\ExFatLib\\ExFatFormatter.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\ExFatLib\\ExFatName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\ExFatLib\\ExFatPartition.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\ExFatLib\\ExFatVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatDbg.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatFileLFN.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatFilePrint.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatFileSFN.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatFormatter.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatPartition.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FatLib\\FatVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FreeStack.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FsLib\\FsFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FsLib\\FsNew.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\FsLib\\FsVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\MinimumSerial.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SdCard\\Rp2040Sdio\\PioSdioCard.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SdCard\\SdCardInfo.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SdCard\\SdSpiCard.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SdCard\\TeensySdio\\TeensySdio.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SpiDriver\\SdSpiArtemis.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SpiDriver\\SdSpiChipSelect.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SpiDriver\\SdSpiDue.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SpiDriver\\SdSpiParticle.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SpiDriver\\SdSpiSTM32.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SpiDriver\\SdSpiSTM32Core.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\SpiDriver\\SdSpiTeensy3.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\common\\FmtNumber.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\common\\FsCache.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\common\\FsDateTime.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\common\\FsName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\common\\FsStructs.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\common\\FsUtf.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\common\\PrintBasic.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\common\\upcase.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\iostream\\StdioStream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\iostream\\StreamBaseClass.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\iostream\\istream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SdFat\\iostream\\ostream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\libraries\\SPI\\SPI.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506\\core\\analogReference.cpp.o" -Wl,--start-group "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506/core\\core.a" -lstdc++ -lsupc++ -Wl,--end-group -e main "-TC:\\Users\\kurte\\Documents\\Arduino\\hardware\\arduino-git\\ArduinoCore-zephyr\\variants\\arduino_uno_q_stm32u585xx/syms-dynamic.ld" "-TC:\\Users\\kurte\\Documents\\Arduino\\hardware\\arduino-git\\ArduinoCore-zephyr/variants/_ldscripts/memory-check.ld" "-TC:\\Users\\kurte\\Documents\\Arduino\\hardware\\arduino-git\\ArduinoCore-zephyr/variants/_ldscripts/build-static.ld" -o "C:\\Users\\kurte\\AppData\\Local\\arduino\\sketches\\EFB3371F9EB223AB1B72441A6728A506/sdfat_bench.ino_check.tmp"
c:/users/kurte/appdata/local/arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\arduino\sketches\EFB3371F9EB223AB1B72441A6728A506\sketch\sdfat_bench.ino.cpp.o: in function `loop':
c:\Users\kurte\Documents\Arduino\Arduino_UNOQ\sdfat_bench/sdfat_bench.ino:235: undefined reference to `sbrk'
collect2.exe: error: ld returned 1 exit status
Using library SdFat at version 2.3.0 in folder: C:\Users\kurte\Documents\Arduino\libraries\SdFat 
Using library SPI in folder: C:\Users\kurte\Documents\Arduino\hardware\arduino-git\ArduinoCore-zephyr\libraries\SPI (legacy)
exit status 1

Compilation error: exit status 1
1 Like