SDFileSystem

Dependencies:   FATFileSystem

Dependents:   WavePlayer_HelloWorld CAN_LOG_SD SDCard GPSLogger ... more

mbed 2 and mbed OS 5

This is an mbed 2 library. For mbed-os files system functionality, please see the File System documentation.

Revision:
4:3f40cbfe801c
Parent:
3:7b35d1709458
--- a/SDFileSystem.h	Mon Mar 17 14:34:01 2014 +0000
+++ b/SDFileSystem.h	Wed Aug 24 02:51:06 2016 +0000
@@ -32,14 +32,13 @@
  * #include "mbed.h"
  * #include "SDFileSystem.h"
  *
- * SDFileSystem sd(p5, p6, p7, p12, "sd"); // MOSI, MISO, SCLK, SSEL
- *  
+ * SDFileSystem sd(p5, p6, p7, p12, "sd"); // mosi, miso, sclk, cs
+ *
  * int main() {
- *     FILE *fp = fopen("/sd/mbed.txt", "w");
+ *     FILE *fp = fopen("/sd/myfile.txt", "w");
  *     fprintf(fp, "Hello World!\n");
  *     fclose(fp);
  * }
- * @endcode
  */
 class SDFileSystem : public FATFileSystem {
 public:
@@ -53,13 +52,12 @@
      * @param name The name used to access the virtual filesystem
      */
     SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name);
-    
     virtual int disk_initialize();
     virtual int disk_status();
-    virtual int disk_read(uint8_t * buffer, uint64_t block_number);
-    virtual int disk_write(const uint8_t * buffer, uint64_t block_number);
+    virtual int disk_read(uint8_t* buffer, uint32_t block_number, uint32_t count);
+    virtual int disk_write(const uint8_t* buffer, uint32_t block_number, uint32_t count);
     virtual int disk_sync();
-    virtual uint64_t disk_sectors();
+    virtual uint32_t disk_sectors();
 
 protected:
 
@@ -70,15 +68,22 @@
     int initialise_card();
     int initialise_card_v1();
     int initialise_card_v2();
-    
+
     int _read(uint8_t * buffer, uint32_t length);
     int _write(const uint8_t *buffer, uint32_t length);
-    uint64_t _sd_sectors();
-    uint64_t _sectors;
-    
+    uint32_t _sd_sectors();
+    uint32_t _sectors;
+
+    void set_init_sck(uint32_t sck) { _init_sck = sck; }
+    // Note: The highest SPI clock rate is 20 MHz for MMC and 25 MHz for SD
+    void set_transfer_sck(uint32_t sck) { _transfer_sck = sck; }
+    uint32_t _init_sck;
+    uint32_t _transfer_sck;
+
     SPI _spi;
     DigitalOut _cs;
     int cdv;
+    int _is_initialized;
 };
 
-#endif
+#endif
\ No newline at end of file