| # SerialFlash | |||||
| Use SPI Flash memory with a filesystem-like interface. | |||||
| ## Accessing Files | |||||
| ### Open A File | |||||
| SerialFlashFile file; | |||||
| file = SerialFlash.open("filename.bin"); | |||||
| if (file) { // true if the file exists | |||||
| ### Read Data | |||||
| char buffer[256]; | |||||
| file.read(buffer, 256); | |||||
| ### File Size & Positon | |||||
| file.size(); | |||||
| file.position() | |||||
| file.seek(); | |||||
| ### Write Data | |||||
| file.write(buffer, 256); | |||||
| Several limitations apply to writing. Only previously unwritten portions of the file may be written. Files sizes can never change. Writes may only be done within the file's original size. | |||||
| file.erase(); // not yet implemented | |||||
| Only files created for erasing can be erased. The entire file is erased to all 255 (0xFF) bytes. | |||||
| ## Managing Files | |||||
| ### Create New Files | |||||
| SerialFlash.create(filename, size); | |||||
| SerialFlash.createErasable(filename, size); | |||||
| New files must be created using these funtions. Each returns true if the file is successfully created, or false if not enough space is available. | |||||
| Once created, files can never be renamed or deleted. The file's size can never change. Writing additional data can NOT grow the size of file. | |||||
| Files created for erasing automatically increase in size to the nearest number of erasable blocks, resulting in a file that may be 4K to 128K larger than requested. | |||||
| ### Directory Listing | |||||
| SerialFlash.opendir(); | |||||
| SerialFlash.readdir(buffer, buflen, filelen); | |||||
| A list of files stored in the Flash can be accessed with readdir(), which returns true for each file, or false to indicate no more files. | |||||
| ## Full Erase | |||||
| SerialFlash.erase(); | |||||
| while (SerialFlash.ready() == false) { | |||||
| // wait, 30 seconds to 2 minutes for most chips | |||||
| } |