The purpose of this application is to allow easy manipulation of the QSPI file system from a PC

Dependencies:   EALib USBDevice mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RAMFileSystem.h Source File

RAMFileSystem.h

00001 #ifndef RAMFILESYSTEM_H
00002 #define RAMFILESYSTEM_H
00003 
00004 #include "mbed.h"
00005 #include "FATFileSystem.h"
00006 #include "sdram.h"
00007 #include <stdint.h>
00008 
00009 /** Creates a FAT file system in SDRAM
00010  *
00011  * @code
00012  * #include "mbed.h"
00013  * #include "RAMFileSystem.h"
00014  *
00015  * RAMFileSystem ramfs(0xA0000000, 4*1024*1024, "ram"); // 4MB of ram starting at 0xA...
00016  *  
00017  * int main() {
00018  *     sdram_init();
00019  *
00020  *     FILE *fp = fopen("/ram/myfile.txt", "w");
00021  *     fprintf(fp, "Hello World!\n");
00022  *     fclose(fp);
00023  * }
00024  * @endcode
00025  */
00026 class RAMFileSystem : public FATFileSystem {
00027 public:
00028 
00029     /** Create the File System in RAM
00030      *
00031      * @param addr Start of memory to use for file system
00032      * @param size Number of bytes to use for file system
00033      * @param name The name used to access the virtual filesystem
00034      */
00035     RAMFileSystem(uint32_t addr, uint32_t size, const char* name);
00036     virtual int disk_initialize();
00037     virtual int disk_status();
00038     virtual int disk_read(uint8_t * buffer, uint64_t sector);
00039     virtual int disk_write(const uint8_t * buffer, uint64_t sector);
00040     virtual int disk_sync();
00041     virtual uint64_t disk_sectors();
00042 
00043     uint64_t disk_size();
00044     int disk_nread(uint8_t * buffer, uint64_t sector, uint8_t count);
00045     int disk_nwrite(const uint8_t * buffer, uint64_t sector, uint8_t count);
00046 
00047 protected:
00048 
00049     uint32_t memStart;
00050     uint32_t memSize;
00051     int status;
00052 };
00053 
00054 #endif
00055