| @@ -0,0 +1,60 @@ | |||
| # 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 | |||
| } | |||