Dependencies:   EthernetNetIf mbed

Committer:
donatien
Date:
Thu Aug 05 15:31:14 2010 +0000
Revision:
2:3034b64b0c3f
Parent:
0:21dd20de08d1

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:21dd20de08d1 1 /* mbed SDFileSystem Library, for providing file access to SD cards
donatien 0:21dd20de08d1 2 * Copyright (c) 2008-2010, sford
donatien 0:21dd20de08d1 3 *
donatien 0:21dd20de08d1 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
donatien 0:21dd20de08d1 5 * of this software and associated documentation files (the "Software"), to deal
donatien 0:21dd20de08d1 6 * in the Software without restriction, including without limitation the rights
donatien 0:21dd20de08d1 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
donatien 0:21dd20de08d1 8 * copies of the Software, and to permit persons to whom the Software is
donatien 0:21dd20de08d1 9 * furnished to do so, subject to the following conditions:
donatien 0:21dd20de08d1 10 *
donatien 0:21dd20de08d1 11 * The above copyright notice and this permission notice shall be included in
donatien 0:21dd20de08d1 12 * all copies or substantial portions of the Software.
donatien 0:21dd20de08d1 13 *
donatien 0:21dd20de08d1 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
donatien 0:21dd20de08d1 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
donatien 0:21dd20de08d1 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
donatien 0:21dd20de08d1 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
donatien 0:21dd20de08d1 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
donatien 0:21dd20de08d1 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
donatien 0:21dd20de08d1 20 * THE SOFTWARE.
donatien 0:21dd20de08d1 21 */
donatien 0:21dd20de08d1 22
donatien 0:21dd20de08d1 23 #ifndef MBED_SDHCFILESYSTEM_H
donatien 0:21dd20de08d1 24 #define MBED_SDHCFILESYSTEM_H
donatien 0:21dd20de08d1 25
donatien 0:21dd20de08d1 26 #include "mbed.h"
donatien 0:21dd20de08d1 27 #include "FATFileSystem.h"
donatien 0:21dd20de08d1 28
donatien 0:21dd20de08d1 29 /* Double Words */
donatien 0:21dd20de08d1 30 typedef unsigned long long uint64_t;
donatien 0:21dd20de08d1 31 typedef long long sint64_t;
donatien 0:21dd20de08d1 32
donatien 0:21dd20de08d1 33 /** Access the filesystem on an SD Card using SPI
donatien 0:21dd20de08d1 34 *
donatien 0:21dd20de08d1 35 * @code
donatien 0:21dd20de08d1 36 * #include "mbed.h"
donatien 0:21dd20de08d1 37 * #include "SDFileSystem.h"
donatien 0:21dd20de08d1 38 *
donatien 0:21dd20de08d1 39 * SDFileSystem sd(p5, p6, p7, p12, "sd"); // mosi, miso, sclk, cs
donatien 0:21dd20de08d1 40 *
donatien 0:21dd20de08d1 41 * int main() {
donatien 0:21dd20de08d1 42 * FILE *fp = fopen("/sd/myfile.txt", "w");
donatien 0:21dd20de08d1 43 * fprintf(fp, "Hello World!\n");
donatien 0:21dd20de08d1 44 * fclose(fp);
donatien 0:21dd20de08d1 45 * }
donatien 0:21dd20de08d1 46 */
donatien 0:21dd20de08d1 47 class SDFileSystem : public FATFileSystem {
donatien 0:21dd20de08d1 48 public:
donatien 0:21dd20de08d1 49
donatien 0:21dd20de08d1 50 /** Create the File System for accessing an SD Card using SPI
donatien 0:21dd20de08d1 51 *
donatien 0:21dd20de08d1 52 * @param mosi SPI mosi pin connected to SD Card
donatien 0:21dd20de08d1 53 * @param miso SPI miso pin conencted to SD Card
donatien 0:21dd20de08d1 54 * @param sclk SPI sclk pin connected to SD Card
donatien 0:21dd20de08d1 55 * @param cs DigitalOut pin used as SD Card chip select
donatien 0:21dd20de08d1 56 * @param name The name used to access the virtual filesystem
donatien 0:21dd20de08d1 57 */
donatien 0:21dd20de08d1 58 SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name);
donatien 0:21dd20de08d1 59 virtual int disk_initialize();
donatien 0:21dd20de08d1 60 virtual int disk_write(const char *buffer, int block_number);
donatien 0:21dd20de08d1 61 virtual int disk_read(char *buffer, int block_number);
donatien 0:21dd20de08d1 62 virtual int disk_status();
donatien 0:21dd20de08d1 63 virtual int disk_sync();
donatien 0:21dd20de08d1 64 virtual int disk_sectors();
donatien 0:21dd20de08d1 65
donatien 0:21dd20de08d1 66 protected:
donatien 0:21dd20de08d1 67
donatien 0:21dd20de08d1 68 int _cmd(int cmd, int arg);
donatien 0:21dd20de08d1 69 int _cmdx(int cmd, int arg);
donatien 0:21dd20de08d1 70 int _cmd8();
donatien 0:21dd20de08d1 71 int _cmd58();
donatien 0:21dd20de08d1 72 int initialise_card();
donatien 0:21dd20de08d1 73 int initialise_card_v1();
donatien 0:21dd20de08d1 74 int initialise_card_v2();
donatien 0:21dd20de08d1 75
donatien 0:21dd20de08d1 76 int _read(char *buffer, int length);
donatien 0:21dd20de08d1 77 int _write(const char *buffer, int length);
donatien 0:21dd20de08d1 78 int _sd_sectors();
donatien 0:21dd20de08d1 79 int _sectors;
donatien 0:21dd20de08d1 80
donatien 0:21dd20de08d1 81 SPI _spi;
donatien 0:21dd20de08d1 82 DigitalOut _cs;
donatien 0:21dd20de08d1 83 int cdv;
donatien 0:21dd20de08d1 84 };
donatien 0:21dd20de08d1 85
donatien 0:21dd20de08d1 86 #endif