Arduino Library for SPI Flash memory chips
SPIMemory

Formerly known as SPIFlash.
Unclaimed project
Are you a maintainer of SPIMemory? Claim this project to take control of your public changelog and roadmap.
Changelog
Arduino library for Flash Memory Chips (SPI based only). Formerly SPIFlash
Last updated 5 months ago
Formerly known as SPIFlash.
Please report any bugs in issues
Download the latest stable release (v3.2.0) from here. Please report any bugs in issues.
This Arduino library is for use with flash memory chips that communicate using the SPI protocol. In its current form it supports identifying the flash chip and its various features; automatic address allocation and management; writing and reading a number of different types of data, ranging from 8-bit to 32-bit (signed and unsigned) values, floats, Strings, arrays of bytes/chars and structs to and from various locations; sector, block and chip erase; and powering down for low power operation.
ESP32 support will remain in beta till the ESP32 core can be installed via the Arduino boards manager.
NOTE: ESP32 boards usually have an SPI Flash already attached to their SS pin, so the user has to declare the ChipSelect pin being used when the constructor is declared - for exampleSPIFlash flash(33);
Test sketch - FlashDiagnostics.ino from v3.2.0 with #RUNDIAGNOSTIC commented out
Test platform - Arduino Pro Mini 8MHz 3.3V
| Library version | SFDP discovery | Compiled code size | % Difference from v3.1.0 |:-----|-----|-----|-----:| | v3.1.0 | Not supported | 17652 bytes | 0% | | v3.2.0 | Supported & enabled by default | 20104 bytes | +13.9% | | v3.2.1 | Supported & enabled | 17854 bytes | +1.1% | | v3.2.1 | Supported & disabled | 15316 bytes | -13.75% |
Fixes issue #135 : The addition of the SFDP checking to _chipID resulted in a sudden (very large) increase in compiled code size. As of the current version (v3.2.1), SFDP checking is an user controlled option. To get the library to work with SFDP compatible flash memory that is not officially supported, the user must uncomment '//#define USES_SFDP' in 'SPIMemory.h'.
Moved bool _loopedOver from being a local variable in getAddress() to a global one. Now it actually does what it was meant to do - i.e. prevent looping over data a second time.