Demonstration of a very simple unix-like shell. Based on integrating both Klaus Bu\'s SDHCFileSystem and the FATFileSystem library out of Thomas Hamilton\'s SDCard program. Result: you get high capacity + a plethora of filesystem functions.

Dependencies:   mbed

Committer:
shimniok
Date:
Tue Oct 11 15:13:42 2011 +0000
Revision:
0:792bddcf799d
Initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shimniok 0:792bddcf799d 1 /* mbed Microcontroller Library - FATFileSystem
shimniok 0:792bddcf799d 2 Copyright (c) 2008, sford */
shimniok 0:792bddcf799d 3
shimniok 0:792bddcf799d 4 //Modified by Thomas Hamilton, Copyright 2010
shimniok 0:792bddcf799d 5
shimniok 0:792bddcf799d 6 #ifndef MBED_FATFILESYSTEM_H
shimniok 0:792bddcf799d 7 #define MBED_FATFILESYSTEM_H
shimniok 0:792bddcf799d 8
shimniok 0:792bddcf799d 9 #include "stdint.h"
shimniok 0:792bddcf799d 10 #include "ff.h"
shimniok 0:792bddcf799d 11 #include "mbed.h"
shimniok 0:792bddcf799d 12 #include "FileSystemLike.h"
shimniok 0:792bddcf799d 13 #include "FATFileHandle.h"
shimniok 0:792bddcf799d 14 #include "FATDirHandle.h"
shimniok 0:792bddcf799d 15 #include <stdio.h>
shimniok 0:792bddcf799d 16
shimniok 0:792bddcf799d 17 class FATFileSystem : public FileSystemLike
shimniok 0:792bddcf799d 18 {
shimniok 0:792bddcf799d 19 private:
shimniok 0:792bddcf799d 20 FATFS FileSystemObject;
shimniok 0:792bddcf799d 21 unsigned char Drive;
shimniok 0:792bddcf799d 22
shimniok 0:792bddcf799d 23 public:
shimniok 0:792bddcf799d 24 static FATFileSystem* DriveArray[_DRIVES];
shimniok 0:792bddcf799d 25
shimniok 0:792bddcf799d 26 FATFileSystem(const char* SystemName);
shimniok 0:792bddcf799d 27 virtual ~FATFileSystem();
shimniok 0:792bddcf799d 28
shimniok 0:792bddcf799d 29 int format(unsigned int allocationunit);
shimniok 0:792bddcf799d 30
shimniok 0:792bddcf799d 31 virtual FileHandle* open(const char* filename, int flags);
shimniok 0:792bddcf799d 32 virtual int remove(const char* filename);
shimniok 0:792bddcf799d 33 virtual int rename(const char* oldname, const char* newname);
shimniok 0:792bddcf799d 34 virtual DirHandle* opendir(const char* name);
shimniok 0:792bddcf799d 35 virtual int mkdir(const char* name, mode_t mode);
shimniok 0:792bddcf799d 36
shimniok 0:792bddcf799d 37 virtual int disk_initialize() { return 0x00; }
shimniok 0:792bddcf799d 38 virtual int disk_status() { return 0x00; }
shimniok 0:792bddcf799d 39 virtual int disk_read(unsigned char* buff,
shimniok 0:792bddcf799d 40 unsigned long sector, unsigned char count) = 0;
shimniok 0:792bddcf799d 41 virtual int disk_write(const unsigned char* buff,
shimniok 0:792bddcf799d 42 unsigned long sector, unsigned char count) = 0;
shimniok 0:792bddcf799d 43 virtual int disk_sync() { return 0x00; }
shimniok 0:792bddcf799d 44 virtual unsigned long disk_sector_count() = 0;
shimniok 0:792bddcf799d 45 virtual unsigned short disk_sector_size() { return 512; }
shimniok 0:792bddcf799d 46 virtual unsigned long disk_block_size() { return 1; }
shimniok 0:792bddcf799d 47 };
shimniok 0:792bddcf799d 48
shimniok 0:792bddcf799d 49 #endif