Simons Wii controlled m3pi program
Dependencies: mbed m3pi ID12RFIDIRQ
MassStorageFS.cpp
00001 #include "mbed.h" 00002 #include "FATFileSystem.h" 00003 #include "Utils.h" 00004 00005 int MassStorage_ReadCapacity(int device, u32* blockCount, u32* blockSize); 00006 int MassStorage_Read(int device, u32 blockAddr, u32 blockCount, u8* dst, u32 blockSize); 00007 int MassStorage_Write(int device, u32 blockAddr, u32 blockCount, u8* dst, u32 blockSize); 00008 00009 class USBFileSystem : public FATFileSystem 00010 { 00011 int _device; 00012 u32 _blockSize; 00013 u32 _blockCount; 00014 00015 public: 00016 USBFileSystem() : FATFileSystem("usb"),_device(0),_blockSize(0),_blockCount(0) 00017 { 00018 } 00019 00020 void SetDevice(int device) 00021 { 00022 _device = device; 00023 } 00024 00025 virtual int disk_initialize() 00026 { 00027 return MassStorage_ReadCapacity(_device,&_blockCount,&_blockSize); 00028 } 00029 00030 virtual int disk_write(const char *buffer, int block_number) 00031 { 00032 return MassStorage_Write(_device,block_number,1,(u8*)buffer,_blockSize); 00033 } 00034 00035 virtual int disk_read(char *buffer, int block_number) 00036 { 00037 return MassStorage_Read(_device,block_number,1,(u8*)buffer,_blockSize); 00038 } 00039 00040 virtual int disk_sectors() 00041 { 00042 return _blockCount; 00043 } 00044 }; 00045 00046 void DumpFS(int depth, int count) 00047 { 00048 DIR *d = opendir("/usb"); 00049 if (!d) 00050 { 00051 printf("USB file system borked\n"); 00052 return; 00053 } 00054 00055 printf("\nDumping root dir\n"); 00056 struct dirent *p; 00057 for(;;) 00058 { 00059 p = readdir(d); 00060 if (!p) 00061 break; 00062 int len = sizeof( dirent); 00063 printf("%s %d\n", p->d_name, len); 00064 } 00065 closedir(d); 00066 } 00067 00068 int OnDiskInsert(int device) 00069 { 00070 USBFileSystem fs; 00071 fs.SetDevice(device); 00072 DumpFS(0,0); 00073 return 0; 00074 }
Generated on Tue Jul 12 2022 20:27:40 by 1.7.2