Student project by David Berlin and Boris Dogadov made for the Embedded Systems Workshop course given in Tel-Aviv University on 2010 by Sivan Toledo. Visit the project website for more details: http://davidberlin.co.il/sadna/ .

Dependencies:   EthernetNetIf NTPClient_NetServices mbed HTTPServer HTTPClient CyaSSL

Committer:
sivan_toledo
Date:
Mon Apr 25 12:31:46 2011 +0000
Revision:
1:b05231650f32
Parent:
0:3e7d6f496a67

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sivan_toledo 0:3e7d6f496a67 1 #include "FATFileSystem.h"
sivan_toledo 0:3e7d6f496a67 2
sivan_toledo 0:3e7d6f496a67 3 int MassStorage_ReadCapacity(int device, u32* blockCount, u32* blockSize);
sivan_toledo 0:3e7d6f496a67 4 int MassStorage_Read(int device, u32 blockAddr, u32 blockCount, u8* dst, u32 blockSize);
sivan_toledo 0:3e7d6f496a67 5 int MassStorage_Write(int device, u32 blockAddr, u32 blockCount, u8* dst, u32 blockSize);
sivan_toledo 0:3e7d6f496a67 6
sivan_toledo 0:3e7d6f496a67 7 class USBFileSystem : public FATFileSystem
sivan_toledo 0:3e7d6f496a67 8 {
sivan_toledo 0:3e7d6f496a67 9 int _device;
sivan_toledo 0:3e7d6f496a67 10 u32 _blockSize;
sivan_toledo 0:3e7d6f496a67 11 u32 _blockCount;
sivan_toledo 0:3e7d6f496a67 12
sivan_toledo 0:3e7d6f496a67 13 public:
sivan_toledo 0:3e7d6f496a67 14 USBFileSystem() : FATFileSystem("usb"),_device(0),_blockSize(0),_blockCount(0)
sivan_toledo 0:3e7d6f496a67 15 {
sivan_toledo 0:3e7d6f496a67 16 }
sivan_toledo 0:3e7d6f496a67 17
sivan_toledo 0:3e7d6f496a67 18 void SetDevice(int device)
sivan_toledo 0:3e7d6f496a67 19 {
sivan_toledo 0:3e7d6f496a67 20 _device = device;
sivan_toledo 0:3e7d6f496a67 21 }
sivan_toledo 0:3e7d6f496a67 22
sivan_toledo 0:3e7d6f496a67 23 virtual int disk_initialize()
sivan_toledo 0:3e7d6f496a67 24 {
sivan_toledo 0:3e7d6f496a67 25 return MassStorage_ReadCapacity(_device,&_blockCount,&_blockSize);
sivan_toledo 0:3e7d6f496a67 26 }
sivan_toledo 0:3e7d6f496a67 27
sivan_toledo 0:3e7d6f496a67 28 virtual int disk_write(const char *buffer, int block_number)
sivan_toledo 0:3e7d6f496a67 29 {
sivan_toledo 0:3e7d6f496a67 30 return MassStorage_Write(_device,block_number,1,(u8*)buffer,_blockSize);
sivan_toledo 0:3e7d6f496a67 31 }
sivan_toledo 0:3e7d6f496a67 32
sivan_toledo 0:3e7d6f496a67 33 virtual int disk_read(char *buffer, int block_number)
sivan_toledo 0:3e7d6f496a67 34 {
sivan_toledo 0:3e7d6f496a67 35 //printf("disk_readA\r\n");
sivan_toledo 0:3e7d6f496a67 36 int r = MassStorage_Read(_device,block_number,1,(u8*)buffer,_blockSize);
sivan_toledo 0:3e7d6f496a67 37 //printf("disk_readB\r\n");
sivan_toledo 0:3e7d6f496a67 38 return r;
sivan_toledo 0:3e7d6f496a67 39 }
sivan_toledo 0:3e7d6f496a67 40
sivan_toledo 0:3e7d6f496a67 41 virtual int disk_sectors()
sivan_toledo 0:3e7d6f496a67 42 {
sivan_toledo 0:3e7d6f496a67 43 return _blockCount;
sivan_toledo 0:3e7d6f496a67 44 }
sivan_toledo 0:3e7d6f496a67 45 };