Memory File System Library, for SPI PRAM NP8P128A13 (Micron) see: http://mbed.org/users/okini3939/notebook/extend-memory/
PRAMFileSystem.h@0:475e05403ad8, 2012-11-12 (annotated)
- Committer:
- okini3939
- Date:
- Mon Nov 12 15:36:45 2012 +0000
- Revision:
- 0:475e05403ad8
1st build
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 0:475e05403ad8 | 1 | /* |
okini3939 | 0:475e05403ad8 | 2 | * Memory File System Library, for SPI PRAM NP8P128A13 (Micron) |
okini3939 | 0:475e05403ad8 | 3 | * Copyright (c) 2012 Hiroshi Suga |
okini3939 | 0:475e05403ad8 | 4 | * Released under the MIT License: http://mbed.org/license/mit |
okini3939 | 0:475e05403ad8 | 5 | */ |
okini3939 | 0:475e05403ad8 | 6 | |
okini3939 | 0:475e05403ad8 | 7 | #ifndef _PRAMFileSystem_H_ |
okini3939 | 0:475e05403ad8 | 8 | #define _PRAMFileSystem_H_ |
okini3939 | 0:475e05403ad8 | 9 | |
okini3939 | 0:475e05403ad8 | 10 | #include "mbed.h" |
okini3939 | 0:475e05403ad8 | 11 | #include "FATFileSystem.h" |
okini3939 | 0:475e05403ad8 | 12 | |
okini3939 | 0:475e05403ad8 | 13 | #define CMD_WREN 0x06 // Write enable |
okini3939 | 0:475e05403ad8 | 14 | #define CMD_WRDI 0x04 // Write disable |
okini3939 | 0:475e05403ad8 | 15 | #define CMD_RDID 0x9f // Read identification |
okini3939 | 0:475e05403ad8 | 16 | #define CMD_RDSR 0x05 // Read status register |
okini3939 | 0:475e05403ad8 | 17 | #define CMD_WRSR 0x01 // Write status registe |
okini3939 | 0:475e05403ad8 | 18 | #define CMD_READ 0x03 // Read data bytes |
okini3939 | 0:475e05403ad8 | 19 | #define CMD_FREAD 0x0b // Read data bytes at higher speed |
okini3939 | 0:475e05403ad8 | 20 | #define CMD_PP 0x02 // Page program (legacy program) |
okini3939 | 0:475e05403ad8 | 21 | #define CMD_PP_BA 0x22 // Page program (bit-alterable write) |
okini3939 | 0:475e05403ad8 | 22 | #define CMD_PP_1S 0xd1 // Page program (On all 1s) |
okini3939 | 0:475e05403ad8 | 23 | #define CMD_SE 0xd8 // Sector erase |
okini3939 | 0:475e05403ad8 | 24 | |
okini3939 | 0:475e05403ad8 | 25 | |
okini3939 | 0:475e05403ad8 | 26 | class PRAMFileSystem : public FATFileSystem { |
okini3939 | 0:475e05403ad8 | 27 | public: |
okini3939 | 0:475e05403ad8 | 28 | |
okini3939 | 0:475e05403ad8 | 29 | /** Create the File System for accessing an SD Card using SPI |
okini3939 | 0:475e05403ad8 | 30 | * |
okini3939 | 0:475e05403ad8 | 31 | * @param mosi SPI mosi pin connected to SD Card |
okini3939 | 0:475e05403ad8 | 32 | * @param miso SPI miso pin conencted to SD Card |
okini3939 | 0:475e05403ad8 | 33 | * @param sclk SPI sclk pin connected to SD Card |
okini3939 | 0:475e05403ad8 | 34 | * @param cs DigitalOut pin used as SD Card chip select |
okini3939 | 0:475e05403ad8 | 35 | * @param name The name used to access the virtual filesystem |
okini3939 | 0:475e05403ad8 | 36 | */ |
okini3939 | 0:475e05403ad8 | 37 | PRAMFileSystem (PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name); |
okini3939 | 0:475e05403ad8 | 38 | virtual int disk_initialize (); |
okini3939 | 0:475e05403ad8 | 39 | virtual int disk_write (const char *buffer, int block_number); |
okini3939 | 0:475e05403ad8 | 40 | virtual int disk_read (char *buffer, int block_number); |
okini3939 | 0:475e05403ad8 | 41 | virtual int disk_status (); |
okini3939 | 0:475e05403ad8 | 42 | virtual int disk_sync (); |
okini3939 | 0:475e05403ad8 | 43 | virtual int disk_sectors (); |
okini3939 | 0:475e05403ad8 | 44 | |
okini3939 | 0:475e05403ad8 | 45 | protected: |
okini3939 | 0:475e05403ad8 | 46 | |
okini3939 | 0:475e05403ad8 | 47 | int _init (); |
okini3939 | 0:475e05403ad8 | 48 | int _status (); |
okini3939 | 0:475e05403ad8 | 49 | int _read (int addr, char *buf, int len); |
okini3939 | 0:475e05403ad8 | 50 | int _write (int addr, const char *buf, int len); |
okini3939 | 0:475e05403ad8 | 51 | int _sectors; |
okini3939 | 0:475e05403ad8 | 52 | |
okini3939 | 0:475e05403ad8 | 53 | SPI _spi; |
okini3939 | 0:475e05403ad8 | 54 | DigitalOut _cs; |
okini3939 | 0:475e05403ad8 | 55 | }; |
okini3939 | 0:475e05403ad8 | 56 | |
okini3939 | 0:475e05403ad8 | 57 | #endif |