added bigtreetech SKR-Pico #2988

Merged
s-light merged 10 commits from bigtreetech_SKR_Pico into master 2025-06-19 22:36:20 +03:00
s-light commented 2025-06-12 02:08:26 +03:00 (Migrated from github.com)

i hope i have done all correctly..

please let me know how i can test my changes locally -
is it save to link the repo to the arduino hardware folder?

i hope i have done all correctly.. please let me know how i can test my changes locally - is it save to link the repo to the arduino hardware folder?
earlephilhower commented 2025-06-12 04:36:40 +03:00 (Migrated from github.com)

I'm a fan of the Bigtree SKR boards and have built an MPCNC and a custom delta 3D printer using older ones, so this is really cool. I imagine the PIO can be really handy for doing precise, low (~0) CPU overhead step control!

Did you manually change the boards.txt or package file? The CI is showing a different ordering of entries vs. what the script generates. You'll want to rerun your makeboards.py and commit those changes to get that part passing.

For the "build all boards" failure you'll need to define the commented-out SPI and I2C(Wire) defines. You can give legal defaults (see the plain Pico) or use 99 like you have....unless the user calls Wire.begin() or SPI.begin() the values aren't actually applied...but they do need to be defined.

I'm a fan of the Bigtree SKR boards and have built an [MPCNC](https://docs.v1e.com/mpcnc/intro/) and a custom delta 3D printer using older ones, so this is really cool. I imagine the PIO can be really handy for doing precise, low (~0) CPU overhead step control! Did you manually change the boards.txt or package file? The CI is showing a different ordering of entries vs. what the script generates. You'll want to rerun your `makeboards.py` and commit those changes to get that part passing. For the "build all boards" failure you'll need to define the commented-out SPI and I2C(Wire) defines. You can give legal defaults (see the plain Pico) or use `99` like you have....unless the user calls `Wire.begin()` or `SPI.begin()` the values aren't actually applied...but they do need to be defined.
earlephilhower (Migrated from github.com) requested changes 2025-06-12 18:46:45 +03:00
earlephilhower (Migrated from github.com) commented 2025-06-12 18:46:37 +03:00

I just checked the schematic and it looks like this has only 2 MB (16Mbit) of flash, so the 16 here should be 2. OTW things like the filesystem and EEPROM will go very, very wrong...

I just checked the schematic and it looks like this has only 2 MB (16Mbit) of flash, so the `16` here should be `2`. OTW things like the filesystem and EEPROM will go very, very wrong...
maxgerhardt (Migrated from github.com) reviewed 2025-06-13 00:01:07 +03:00
maxgerhardt (Migrated from github.com) commented 2025-06-13 00:01:07 +03:00

If https://www.reddit.com/r/BIGTREETECH/comments/19f58r4/skr_pico_flash_size/ is right and the flash is a W25Q16JVUXIQ then the boot2_w25q16jvxq_4_padded_checksum might be an even better match for the Boot2 (faster too, 4 data lines instead of 2), instead of the currently set boot2_w25q080_2_padded_checksum.

If https://www.reddit.com/r/BIGTREETECH/comments/19f58r4/skr_pico_flash_size/ is right and the flash is a W25Q16JVUXIQ then the `boot2_w25q16jvxq_4_padded_checksum` might be an even better match for the Boot2 (faster too, 4 data lines instead of 2), instead of the currently set `boot2_w25q080_2_padded_checksum`.
earlephilhower (Migrated from github.com) reviewed 2025-06-13 00:35:31 +03:00
earlephilhower (Migrated from github.com) commented 2025-06-13 00:35:31 +03:00

Could you be mixing up the Espressif DIO/QIO and the Pico. I thought only QSPI (i.e. 4) lines were supported by XIP. The _2 or _4 in boot2.s refers to the sysclk divisor, so a /2 is faster than a /4...

Could you be mixing up the Espressif DIO/QIO and the Pico. I thought only QSPI (i.e. 4) lines were supported by XIP. The _2 or _4 in boot2.s refers to the sysclk divisor, so a /2 is faster than a /4...
maxgerhardt (Migrated from github.com) reviewed 2025-06-13 00:36:25 +03:00
maxgerhardt (Migrated from github.com) commented 2025-06-13 00:36:24 +03:00

Correct. Taking that back. Clock div by 2 is better than div by 4.

Correct. Taking that back. Clock div by 2 is better than div by 4.
s-light (Migrated from github.com) reviewed 2025-06-14 12:59:24 +03:00
s-light (Migrated from github.com) commented 2025-06-14 12:59:24 +03:00

you are right -
W25Q16 - Density 16Mb
in the fast read i read 16MB

https://github.com/bigtreetech/SKR-Pico/blob/master/Hardware/BTT%20SKR%20Pico%20V1.0-SCH.pdf
image
image

so what is the best fit?
https://github.com/earlephilhower/arduino-pico/blob/master/tools/makeboards.py#L126

  • Generic SPI /2 boot2_generic_03h_2_padded_checksum
  • Generic SPI /4 boot2_generic_03h_4_padded_checksum
  • IS25LP080 QSPI /2 boot2_is25lp080_2_padded_checksum
  • IS25LP080 QSPI /4 boot2_is25lp080_4_padded_checksum
  • W25Q080 QSPI /2 boot2_w25q080_2_padded_checksum
  • W25Q080 QSPI /4 boot2_w25q080_4_padded_checksum
  • W25X10CL QSPI /2 boot2_w25x10cl_2_padded_checksum
  • W25X10CL QSPI /4 boot2_w25x10cl_4_padded_checksum
  • W25Q64JV QSPI /4 boot2_w25q64jv_4_padded_checksum
  • W25Q16JVxQ QSPI /4 boot2_w25q16jvxq_4_padded_checksum
  • W25Q128JV QSPI /4 boot2_w25q128jvxq_4_padded_checksum
you are right - [`W25Q16` - `Density 16Mb`](https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en&partNo=W25Q16JV) in the fast read i read `16MB` https://github.com/bigtreetech/SKR-Pico/blob/master/Hardware/BTT%20SKR%20Pico%20V1.0-SCH.pdf ![image](https://github.com/user-attachments/assets/4f16f08a-ee7e-4dc0-95e5-b45ff0a7d11c) ![image](https://github.com/user-attachments/assets/b6649361-1338-401f-bb38-9fa7cc429ae3) so what is the best fit? https://github.com/earlephilhower/arduino-pico/blob/master/tools/makeboards.py#L126 - Generic SPI /2 `boot2_generic_03h_2_padded_checksum` - Generic SPI /4 `boot2_generic_03h_4_padded_checksum` - IS25LP080 QSPI /2 `boot2_is25lp080_2_padded_checksum` - IS25LP080 QSPI /4 `boot2_is25lp080_4_padded_checksum` - W25Q080 QSPI /2 `boot2_w25q080_2_padded_checksum` - W25Q080 QSPI /4 `boot2_w25q080_4_padded_checksum` - W25X10CL QSPI /2 `boot2_w25x10cl_2_padded_checksum` - W25X10CL QSPI /4 `boot2_w25x10cl_4_padded_checksum` - W25Q64JV QSPI /4 `boot2_w25q64jv_4_padded_checksum` - W25Q16JVxQ QSPI /4 `boot2_w25q16jvxq_4_padded_checksum` - W25Q128JV QSPI /4 `boot2_w25q128jvxq_4_padded_checksum`
maxgerhardt (Migrated from github.com) reviewed 2025-06-14 14:43:34 +03:00
maxgerhardt (Migrated from github.com) commented 2025-06-14 14:43:34 +03:00

What's the serial output result when uploading https://github.com/earlephilhower/arduino-pico/blob/master/libraries/LittleFS/examples/SpeedTest/SpeedTest.ino and using either

  • boot2_w25q080_2_padded_checksum
  • boot2_w25q16jvxq_4_padded_checksum
  • boot2_generic_03h_2_padded_checksum
  • boot2_generic_03h_4_padded_checksum

Don't forget to give it some filesystem size like Tools -> Flash size -> "2MB (Sketch 1MB, FS: 1MB)".

What's the serial output result when uploading https://github.com/earlephilhower/arduino-pico/blob/master/libraries/LittleFS/examples/SpeedTest/SpeedTest.ino and using either * `boot2_w25q080_2_padded_checksum` * `boot2_w25q16jvxq_4_padded_checksum` * `boot2_generic_03h_2_padded_checksum` * `boot2_generic_03h_4_padded_checksum` Don't forget to give it some filesystem size like Tools -> Flash size -> "2MB (Sketch 1MB, FS: 1MB)".
s-light (Migrated from github.com) reviewed 2025-06-16 10:13:48 +03:00
s-light (Migrated from github.com) commented 2025-06-16 10:13:48 +03:00

i will test this when i am back at home next weekend.

i will test this when i am back at home next weekend.
earlephilhower (Migrated from github.com) reviewed 2025-06-17 04:33:21 +03:00
earlephilhower (Migrated from github.com) commented 2025-06-17 04:33:21 +03:00

Before you do any testing, be sure to update the flash size to 2 and rebuild the boards.txt file so you don't end up with a FS trying to go past EOF...

Before you do any testing, be sure to update the flash size to `2` and rebuild the boards.txt file so you don't end up with a FS trying to go past EOF...
earlephilhower (Migrated from github.com) approved these changes 2025-06-18 05:27:49 +03:00
earlephilhower (Migrated from github.com) left a comment

If you've done some testing on your board with this, then this LGTM now, thx!

If you've done some testing on your board with this, then this LGTM now, thx!
s-light (Migrated from github.com) reviewed 2025-06-20 03:26:54 +03:00
s-light (Migrated from github.com) commented 2025-06-20 03:26:53 +03:00

boot2_w25q080_2_padded_checksum

02:09:56.201 -> Beginning test
02:09:56.201 -> Creating 256KB file, may take a while...
02:09:56.580 -> ==> Time to write 256KB in 256b chunks = 427 milliseconds
02:09:56.580 -> ==> Created file size = 262144
02:09:56.580 -> Reading 256KB file sequentially in 256b chunks
02:09:56.612 -> ==> Time to read 256KB sequentially in 256b chunks = 28 milliseconds =  MB/s
02:09:56.612 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks
02:09:56.644 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 29 milliseconds =  MB/s
02:09:56.644 -> Reading 256KB file in reverse by 256b chunks
02:09:56.708 -> ==> Time to read 256KB in reverse in 256b chunks = 68 milliseconds =  MB/s
02:09:56.708 -> Writing 64K file in 1-byte chunks
02:09:56.996 -> ==> Time to write 64KB in 1b chunks = 266 milliseconds =  KB/s
02:09:56.996 -> Reading 64K file in 1-byte chunks
02:09:57.124 -> ==> Time to read 64KB in 1b chunks = 130 milliseconds =  KB/s
02:09:57.124 -> done

02:30:46.366 -> Beginning test
02:30:46.366 -> Creating 256KB file, may take a while...
02:30:47.137 -> ==> Time to write 256KB in 256b chunks = 765 milliseconds
02:30:47.137 -> ==> Created file size = 262144
02:30:47.137 -> Reading 256KB file sequentially in 256b chunks
02:30:47.170 -> ==> Time to read 256KB sequentially in 256b chunks = 28 milliseconds =  MB/s
02:30:47.170 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks
02:30:47.202 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 29 milliseconds =  MB/s
02:30:47.202 -> Reading 256KB file in reverse by 256b chunks
02:30:47.266 -> ==> Time to read 256KB in reverse in 256b chunks = 68 milliseconds =  MB/s
02:30:47.266 -> Writing 64K file in 1-byte chunks
02:30:47.684 -> ==> Time to write 64KB in 1b chunks = 407 milliseconds =  KB/s
02:30:47.684 -> Reading 64K file in 1-byte chunks
02:30:47.813 -> ==> Time to read 64KB in 1b chunks = 130 milliseconds =  KB/s
02:30:47.813 -> done

02:41:47.629 -> Beginning test
02:41:47.669 -> Creating 256KB file, may take a while...
02:41:48.661 -> ==> Time to write 256KB in 256b chunks = 1016 milliseconds
02:41:48.661 -> ==> Created file size = 262144
02:41:48.661 -> Reading 256KB file sequentially in 256b chunks
02:41:48.693 -> ==> Time to read 256KB sequentially in 256b chunks = 28 milliseconds =  MB/s
02:41:48.693 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks
02:41:48.725 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 29 milliseconds =  MB/s
02:41:48.725 -> Reading 256KB file in reverse by 256b chunks
02:41:48.790 -> ==> Time to read 256KB in reverse in 256b chunks = 68 milliseconds =  MB/s
02:41:48.790 -> Writing 64K file in 1-byte chunks
02:41:49.211 -> ==> Time to write 64KB in 1b chunks = 415 milliseconds =  KB/s
02:41:49.211 -> Reading 64K file in 1-byte chunks
02:41:49.341 -> ==> Time to read 64KB in 1b chunks = 130 milliseconds =  KB/s
02:41:49.341 -> done

boot2_w25q16jvxq_4_padded_checksum

02:33:37.114 -> ==> Time to write 256KB in 256b chunks = 1144 milliseconds
02:33:37.114 -> ==> Created file size = 262144
02:33:37.114 -> Reading 256KB file sequentially in 256b chunks
02:33:37.147 -> ==> Time to read 256KB sequentially in 256b chunks = 45 milliseconds =  MB/s
02:33:37.147 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks
02:33:37.179 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 46 milliseconds =  MB/s
02:33:37.179 -> Reading 256KB file in reverse by 256b chunks
02:33:37.307 -> ==> Time to read 256KB in reverse in 256b chunks = 109 milliseconds =  MB/s
02:33:37.307 -> Writing 64K file in 1-byte chunks
02:33:37.759 -> ==> Time to write 64KB in 1b chunks = 451 milliseconds =  KB/s
02:33:37.759 -> Reading 64K file in 1-byte chunks
02:33:37.889 -> ==> Time to read 64KB in 1b chunks = 135 milliseconds =  KB/s
02:33:37.889 -> done
// hit reset
02:33:47.947 -> Beginning test
02:33:47.979 -> Creating 256KB file, may take a while...
02:33:49.077 -> ==> Time to write 256KB in 256b chunks = 1097 milliseconds
02:33:49.077 -> ==> Created file size = 262144
02:33:49.077 -> Reading 256KB file sequentially in 256b chunks
02:33:49.109 -> ==> Time to read 256KB sequentially in 256b chunks = 45 milliseconds =  MB/s
02:33:49.109 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks
02:33:49.173 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 46 milliseconds =  MB/s
02:33:49.173 -> Reading 256KB file in reverse by 256b chunks
02:33:49.269 -> ==> Time to read 256KB in reverse in 256b chunks = 106 milliseconds =  MB/s
02:33:49.269 -> Writing 64K file in 1-byte chunks
02:33:49.718 -> ==> Time to write 64KB in 1b chunks = 454 milliseconds =  KB/s
02:33:49.718 -> Reading 64K file in 1-byte chunks
02:33:49.879 -> ==> Time to read 64KB in 1b chunks = 135 milliseconds =  KB/s
02:33:49.879 -> done

boot2_generic_03h_2_padded_checksum


boot2_generic_03h_4_padded_checksum

between every switch in the boot2_ thing i did a makerboards.py run and closed and reopened the IDE.

but after i tried the boot2_generic_03h_2_padded_checksum i did not get any serial output -
the serial port /dev/ttyACM0 did not show up anymore..

`boot2_w25q080_2_padded_checksum` ``` 02:09:56.201 -> Beginning test 02:09:56.201 -> Creating 256KB file, may take a while... 02:09:56.580 -> ==> Time to write 256KB in 256b chunks = 427 milliseconds 02:09:56.580 -> ==> Created file size = 262144 02:09:56.580 -> Reading 256KB file sequentially in 256b chunks 02:09:56.612 -> ==> Time to read 256KB sequentially in 256b chunks = 28 milliseconds = MB/s 02:09:56.612 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks 02:09:56.644 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 29 milliseconds = MB/s 02:09:56.644 -> Reading 256KB file in reverse by 256b chunks 02:09:56.708 -> ==> Time to read 256KB in reverse in 256b chunks = 68 milliseconds = MB/s 02:09:56.708 -> Writing 64K file in 1-byte chunks 02:09:56.996 -> ==> Time to write 64KB in 1b chunks = 266 milliseconds = KB/s 02:09:56.996 -> Reading 64K file in 1-byte chunks 02:09:57.124 -> ==> Time to read 64KB in 1b chunks = 130 milliseconds = KB/s 02:09:57.124 -> done 02:30:46.366 -> Beginning test 02:30:46.366 -> Creating 256KB file, may take a while... 02:30:47.137 -> ==> Time to write 256KB in 256b chunks = 765 milliseconds 02:30:47.137 -> ==> Created file size = 262144 02:30:47.137 -> Reading 256KB file sequentially in 256b chunks 02:30:47.170 -> ==> Time to read 256KB sequentially in 256b chunks = 28 milliseconds = MB/s 02:30:47.170 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks 02:30:47.202 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 29 milliseconds = MB/s 02:30:47.202 -> Reading 256KB file in reverse by 256b chunks 02:30:47.266 -> ==> Time to read 256KB in reverse in 256b chunks = 68 milliseconds = MB/s 02:30:47.266 -> Writing 64K file in 1-byte chunks 02:30:47.684 -> ==> Time to write 64KB in 1b chunks = 407 milliseconds = KB/s 02:30:47.684 -> Reading 64K file in 1-byte chunks 02:30:47.813 -> ==> Time to read 64KB in 1b chunks = 130 milliseconds = KB/s 02:30:47.813 -> done 02:41:47.629 -> Beginning test 02:41:47.669 -> Creating 256KB file, may take a while... 02:41:48.661 -> ==> Time to write 256KB in 256b chunks = 1016 milliseconds 02:41:48.661 -> ==> Created file size = 262144 02:41:48.661 -> Reading 256KB file sequentially in 256b chunks 02:41:48.693 -> ==> Time to read 256KB sequentially in 256b chunks = 28 milliseconds = MB/s 02:41:48.693 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks 02:41:48.725 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 29 milliseconds = MB/s 02:41:48.725 -> Reading 256KB file in reverse by 256b chunks 02:41:48.790 -> ==> Time to read 256KB in reverse in 256b chunks = 68 milliseconds = MB/s 02:41:48.790 -> Writing 64K file in 1-byte chunks 02:41:49.211 -> ==> Time to write 64KB in 1b chunks = 415 milliseconds = KB/s 02:41:49.211 -> Reading 64K file in 1-byte chunks 02:41:49.341 -> ==> Time to read 64KB in 1b chunks = 130 milliseconds = KB/s 02:41:49.341 -> done ``` `boot2_w25q16jvxq_4_padded_checksum` ``` 02:33:37.114 -> ==> Time to write 256KB in 256b chunks = 1144 milliseconds 02:33:37.114 -> ==> Created file size = 262144 02:33:37.114 -> Reading 256KB file sequentially in 256b chunks 02:33:37.147 -> ==> Time to read 256KB sequentially in 256b chunks = 45 milliseconds = MB/s 02:33:37.147 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks 02:33:37.179 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 46 milliseconds = MB/s 02:33:37.179 -> Reading 256KB file in reverse by 256b chunks 02:33:37.307 -> ==> Time to read 256KB in reverse in 256b chunks = 109 milliseconds = MB/s 02:33:37.307 -> Writing 64K file in 1-byte chunks 02:33:37.759 -> ==> Time to write 64KB in 1b chunks = 451 milliseconds = KB/s 02:33:37.759 -> Reading 64K file in 1-byte chunks 02:33:37.889 -> ==> Time to read 64KB in 1b chunks = 135 milliseconds = KB/s 02:33:37.889 -> done // hit reset 02:33:47.947 -> Beginning test 02:33:47.979 -> Creating 256KB file, may take a while... 02:33:49.077 -> ==> Time to write 256KB in 256b chunks = 1097 milliseconds 02:33:49.077 -> ==> Created file size = 262144 02:33:49.077 -> Reading 256KB file sequentially in 256b chunks 02:33:49.109 -> ==> Time to read 256KB sequentially in 256b chunks = 45 milliseconds = MB/s 02:33:49.109 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks 02:33:49.173 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 46 milliseconds = MB/s 02:33:49.173 -> Reading 256KB file in reverse by 256b chunks 02:33:49.269 -> ==> Time to read 256KB in reverse in 256b chunks = 106 milliseconds = MB/s 02:33:49.269 -> Writing 64K file in 1-byte chunks 02:33:49.718 -> ==> Time to write 64KB in 1b chunks = 454 milliseconds = KB/s 02:33:49.718 -> Reading 64K file in 1-byte chunks 02:33:49.879 -> ==> Time to read 64KB in 1b chunks = 135 milliseconds = KB/s 02:33:49.879 -> done ``` `boot2_generic_03h_2_padded_checksum` ``` ``` `boot2_generic_03h_4_padded_checksum` ``` ``` between every switch in the boot2_ thing i did a makerboards.py run and closed and reopened the IDE. but after i tried the `boot2_generic_03h_2_padded_checksum` i did not get any serial output - the serial port `/dev/ttyACM0` did not show up anymore..
maxgerhardt (Migrated from github.com) reviewed 2025-06-20 03:41:23 +03:00
maxgerhardt (Migrated from github.com) commented 2025-06-20 03:41:23 +03:00

Woops, did the %f specifier break somehow?

Woops, did the `%f` specifier break somehow?
earlephilhower (Migrated from github.com) reviewed 2025-06-20 04:35:24 +03:00
earlephilhower (Migrated from github.com) commented 2025-06-20 04:35:24 +03:00

I think that's the old toolchain/GCC/Newlib with the new core. We moved to the full fat printf because Newlib 4.4 broke C++ w/nano-printf. So we removed the u_printf_float option (not needed) in build.py and platform.txt. But without it, the old Newlib will not link in floating point printout routines. The new GCC/Newlib will link in %f no matter what...

I think that's the old toolchain/GCC/Newlib with the new core. We moved to the full fat printf because Newlib 4.4 broke C++ w/nano-printf. So we removed the u_printf_float option (not needed) in build.py and platform.txt. But without it, the *old* Newlib will not link in floating point printout routines. The new GCC/Newlib will link in %f no matter what...
earlephilhower (Migrated from github.com) reviewed 2025-06-20 04:35:51 +03:00
earlephilhower (Migrated from github.com) commented 2025-06-20 04:35:51 +03:00

FWIW, just ran this on the IDE w/aPico 2

Beginning test
Creating 256KB file, may take a while...
==> Time to write 256KB in 256b chunks = 1040 milliseconds
==> Created file size = 262144
Reading 256KB file sequentially in 256b chunks
==> Time to read 256KB sequentially in 256b chunks = 23 milliseconds = 11.40 MB/s
Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks
==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 23 milliseconds = 11.40 MB/s
Reading 256KB file in reverse by 256b chunks
==> Time to read 256KB in reverse in 256b chunks = 56 milliseconds = 4.68 MB/s
Writing 64K file in 1-byte chunks
==> Time to write 64KB in 1b chunks = 407 milliseconds = 161.02 KB/s
Reading 64K file in 1-byte chunks
==> Time to read 64KB in 1b chunks = 131 milliseconds = 500.27 KB/s
done
FWIW, just ran this on the IDE w/aPico 2 ```` Beginning test Creating 256KB file, may take a while... ==> Time to write 256KB in 256b chunks = 1040 milliseconds ==> Created file size = 262144 Reading 256KB file sequentially in 256b chunks ==> Time to read 256KB sequentially in 256b chunks = 23 milliseconds = 11.40 MB/s Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 23 milliseconds = 11.40 MB/s Reading 256KB file in reverse by 256b chunks ==> Time to read 256KB in reverse in 256b chunks = 56 milliseconds = 4.68 MB/s Writing 64K file in 1-byte chunks ==> Time to write 64KB in 1b chunks = 407 milliseconds = 161.02 KB/s Reading 64K file in 1-byte chunks ==> Time to read 64KB in 1b chunks = 131 milliseconds = 500.27 KB/s done ````
s-light commented 2025-06-23 11:06:59 +03:00 (Migrated from github.com)

thanks for merging 🎂

thanks for merging :birthday:
Sign in to join this conversation.