Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of SDFileSystem by
Diff: SDFileSystem.h
- 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