Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-rtos EthernetInterface FatFileSystemCpp MCP23S17 SDFileSystem mbed
Fork of HTTPServerHelloWorld by
Diff: HardwareDrivers/MscFileSystem/MSCFileSystem.cpp
- Revision:
- 8:3655e9a98f28
- Parent:
- 7:1fe91b525d9a
- Child:
- 9:8f1dce5f85fe
--- a/HardwareDrivers/MscFileSystem/MSCFileSystem.cpp Sat Feb 08 17:33:41 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/* USB Mass Storage device file system
- * Copyrigh (c) 2010, Igor Skochinsky
- * based on SDFileStorage
- * Copyright (c) 2008-2009, sford
- */
-
-/* Introduction
- * ------------
- * TODO: write one
- * we're basically using NXP's USBHotLite sample code, just plugging in our own FAT library
- */
-
-#include "MSCFileSystem.h"
-#include "usbhost_inc.h"
-
-MSCFileSystem::MSCFileSystem(const char* name) :
- FATFileSystem(name)
-{
-}
-
-void print_inquiry(USB_INT08U *inqReply)
-{
- // see USB Mass Storage Class – UFI Command Specification,
- // 4.2 INQUIRY Command
- printf("Inquiry reply:\n");
- uint8_t tmp = inqReply[0]&0x1F;
- printf("Peripheral device type: %02Xh\n", tmp);
- if ( tmp == 0 )
- printf("\t- Direct access (floppy)\n");
- else if ( tmp == 0x1F )
- printf("\t- none (no FDD connected)\n");
- else
- printf("\t- unknown type\n");
- tmp = inqReply[1] >> 7;
- printf("Removable Media Bit: %d\n", tmp);
- tmp = inqReply[2] & 3;
- printf("ANSI Version: %02Xh\n", tmp);
- if ( tmp != 0 )
- printf("\t- warning! must be 0\n");
- tmp = (inqReply[2]>>3) & 3;
- printf("ECMA Version: %02Xh\n", tmp);
- if ( tmp != 0 )
- printf("\t- warning! should be 0\n");
- tmp = inqReply[2]>>6;
- printf("ISO Version: %02Xh\n", tmp);
- if ( tmp != 0 )
- printf("\t- warning! should be 0\n");
- tmp = inqReply[3] & 0xF;
- printf("Response Data Format: %02Xh\n", tmp);
- if ( tmp != 1 )
- printf("\t- warning! should be 1\n");
- tmp = inqReply[4];
- printf("Additional length: %02Xh\n", tmp);
- if ( tmp != 0x1F )
- printf("\t- warning! should be 1Fh\n");
- printf("Vendor Information: '%.8s'\n", &inqReply[8]);
- printf("Product Identification: '%.16s'\n", &inqReply[16]);
- printf("Product Revision: '%.4s'\n", &inqReply[32]);
-}
-
-int MSCFileSystem::initialise_msc()
-{
- USB_INT32S rc;
- USB_INT08U inquiryResult[INQUIRY_LENGTH];
-
- //print_clock();
- Host_Init(); /* Initialize the host controller */
- rc = Host_EnumDev(); /* Enumerate the device connected */
- if (rc != OK)
- {
- fprintf(stderr, "Could not enumerate device: %d\n", rc);
- return rc;
- }
-
-
- /* Initialize the mass storage and scsi interfaces */
- rc = MS_Init( &_blkSize, &_numBlks, inquiryResult );
- if (rc != OK)
- {
- fprintf(stderr, "Could not initialize mass storage interface: %d\n", rc);
- return rc;
- }
- printf("Successfully initialized mass storage interface; %d blocks of size %d\n", _numBlks, _blkSize);
- print_inquiry(inquiryResult);
- // FATFileSystem supports only 512-byte blocks
- return _blkSize == 512 ? OK : 1;
-}
-
-int MSCFileSystem::disk_initialize()
-{
- if ( initialise_msc() != OK )
- return 1;
-
- return 0;
-}
-
-int MSCFileSystem::disk_write(const char *buffer, int block_number)
-{
- if ( OK == MS_BulkSend(block_number, 1, (USB_INT08U *)buffer) )
- return 0;
- return 1;
-}
-
-int MSCFileSystem::disk_read(char *buffer, int block_number)
-{
- if ( OK == MS_BulkRecv(block_number, 1, (USB_INT08U *)buffer) )
- return 0;
- return 1;
-}
-
-int MSCFileSystem::disk_status() { return 0; }
-int MSCFileSystem::disk_sync() { return 0; }
-int MSCFileSystem::disk_sectors() { return _numBlks; }
