Pendrive to sd card data transfer coding

Dependencies:   FatFileSystem TextLCD mbed

Fork of MSCUsbHost by gavin beardall

Committer:
sathguru
Date:
Thu Apr 16 05:12:20 2015 +0000
Revision:
1:77e50c06ea01
Parent:
0:e6a539e59b52
Pendrive to sd card data transfer coding

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gbeardall 0:e6a539e59b52 1 /*
gbeardall 0:e6a539e59b52 2 **************************************************************************************************************
gbeardall 0:e6a539e59b52 3 * NXP USB Host Stack
gbeardall 0:e6a539e59b52 4 *
gbeardall 0:e6a539e59b52 5 * (c) Copyright 2008, NXP SemiConductors
gbeardall 0:e6a539e59b52 6 * (c) Copyright 2008, OnChip Technologies LLC
gbeardall 0:e6a539e59b52 7 * All Rights Reserved
gbeardall 0:e6a539e59b52 8 *
gbeardall 0:e6a539e59b52 9 * www.nxp.com
gbeardall 0:e6a539e59b52 10 * www.onchiptech.com
gbeardall 0:e6a539e59b52 11 *
gbeardall 0:e6a539e59b52 12 * File : usbhost_ms.h
gbeardall 0:e6a539e59b52 13 * Programmer(s) : Ravikanth.P
gbeardall 0:e6a539e59b52 14 * Version :
gbeardall 0:e6a539e59b52 15 *
gbeardall 0:e6a539e59b52 16 **************************************************************************************************************
gbeardall 0:e6a539e59b52 17 */
gbeardall 0:e6a539e59b52 18
gbeardall 0:e6a539e59b52 19 #ifndef USBHOST_MS_H
gbeardall 0:e6a539e59b52 20 #define USBHOST_MS_H
gbeardall 0:e6a539e59b52 21
gbeardall 0:e6a539e59b52 22 /*
gbeardall 0:e6a539e59b52 23 **************************************************************************************************************
gbeardall 0:e6a539e59b52 24 * INCLUDE HEADER FILES
gbeardall 0:e6a539e59b52 25 **************************************************************************************************************
gbeardall 0:e6a539e59b52 26 */
gbeardall 0:e6a539e59b52 27
gbeardall 0:e6a539e59b52 28 #include "usbhost_inc.h"
gbeardall 0:e6a539e59b52 29
gbeardall 0:e6a539e59b52 30 /*
gbeardall 0:e6a539e59b52 31 **************************************************************************************************************
gbeardall 0:e6a539e59b52 32 * MASS STORAGE SPECIFIC DEFINITIONS
gbeardall 0:e6a539e59b52 33 **************************************************************************************************************
gbeardall 0:e6a539e59b52 34 */
gbeardall 0:e6a539e59b52 35
gbeardall 0:e6a539e59b52 36 #define MS_GET_MAX_LUN_REQ 0xFE
gbeardall 0:e6a539e59b52 37 #define MASS_STORAGE_CLASS 0x08
gbeardall 0:e6a539e59b52 38 #define MASS_STORAGE_SUBCLASS_SCSI 0x06
gbeardall 0:e6a539e59b52 39 #define MASS_STORAGE_PROTOCOL_BO 0x50
gbeardall 0:e6a539e59b52 40
gbeardall 0:e6a539e59b52 41 #define INQUIRY_LENGTH 36
gbeardall 0:e6a539e59b52 42 /*
gbeardall 0:e6a539e59b52 43 **************************************************************************************************************
gbeardall 0:e6a539e59b52 44 * SCSI SPECIFIC DEFINITIONS
gbeardall 0:e6a539e59b52 45 **************************************************************************************************************
gbeardall 0:e6a539e59b52 46 */
gbeardall 0:e6a539e59b52 47
gbeardall 0:e6a539e59b52 48 #define CBW_SIGNATURE 0x43425355
gbeardall 0:e6a539e59b52 49 #define CSW_SIGNATURE 0x53425355
gbeardall 0:e6a539e59b52 50 #define CBW_SIZE 31
gbeardall 0:e6a539e59b52 51 #define CSW_SIZE 13
gbeardall 0:e6a539e59b52 52 #define CSW_CMD_PASSED 0x00
gbeardall 0:e6a539e59b52 53 #define SCSI_CMD_REQUEST_SENSE 0x03
gbeardall 0:e6a539e59b52 54 #define SCSI_CMD_TEST_UNIT_READY 0x00
gbeardall 0:e6a539e59b52 55 #define SCSI_CMD_INQUIRY 0x12
gbeardall 0:e6a539e59b52 56 #define SCSI_CMD_READ_10 0x28
gbeardall 0:e6a539e59b52 57 #define SCSI_CMD_READ_CAPACITY 0x25
gbeardall 0:e6a539e59b52 58 #define SCSI_CMD_WRITE_10 0x2A
gbeardall 0:e6a539e59b52 59
gbeardall 0:e6a539e59b52 60 /*
gbeardall 0:e6a539e59b52 61 **************************************************************************************************************
gbeardall 0:e6a539e59b52 62 * TYPE DEFINITIONS
gbeardall 0:e6a539e59b52 63 **************************************************************************************************************
gbeardall 0:e6a539e59b52 64 */
gbeardall 0:e6a539e59b52 65
gbeardall 0:e6a539e59b52 66 typedef enum ms_data_dir {
gbeardall 0:e6a539e59b52 67
gbeardall 0:e6a539e59b52 68 MS_DATA_DIR_IN = 0x80,
gbeardall 0:e6a539e59b52 69 MS_DATA_DIR_OUT = 0x00,
gbeardall 0:e6a539e59b52 70 MS_DATA_DIR_NONE = 0x01
gbeardall 0:e6a539e59b52 71
gbeardall 0:e6a539e59b52 72 } MS_DATA_DIR;
gbeardall 0:e6a539e59b52 73
gbeardall 0:e6a539e59b52 74 /*
gbeardall 0:e6a539e59b52 75 **************************************************************************************************************
gbeardall 0:e6a539e59b52 76 * FUNCTION PROTOTYPES
gbeardall 0:e6a539e59b52 77 **************************************************************************************************************
gbeardall 0:e6a539e59b52 78 */
gbeardall 0:e6a539e59b52 79
gbeardall 0:e6a539e59b52 80 USB_INT32S MS_BulkRecv ( USB_INT32U block_number,
gbeardall 0:e6a539e59b52 81 USB_INT16U num_blocks,
gbeardall 0:e6a539e59b52 82 volatile USB_INT08U *user_buffer);
gbeardall 0:e6a539e59b52 83
gbeardall 0:e6a539e59b52 84 USB_INT32S MS_BulkSend ( USB_INT32U block_number,
gbeardall 0:e6a539e59b52 85 USB_INT16U num_blocks,
gbeardall 0:e6a539e59b52 86 volatile USB_INT08U *user_buffer);
gbeardall 0:e6a539e59b52 87 USB_INT32S MS_ParseConfiguration(void);
gbeardall 0:e6a539e59b52 88 USB_INT32S MS_TestUnitReady (void);
gbeardall 0:e6a539e59b52 89 USB_INT32S MS_ReadCapacity (USB_INT32U *numBlks, USB_INT32U *blkSize);
gbeardall 0:e6a539e59b52 90 USB_INT32S MS_GetMaxLUN (void);
gbeardall 0:e6a539e59b52 91 USB_INT32S MS_GetSenseInfo (void);
gbeardall 0:e6a539e59b52 92 USB_INT32S MS_Init (USB_INT32U *blkSize, USB_INT32U *numBlks, USB_INT08U *inquiryResult);
gbeardall 0:e6a539e59b52 93 USB_INT32S MS_Inquire (USB_INT08U *response);
gbeardall 0:e6a539e59b52 94
gbeardall 0:e6a539e59b52 95 void Fill_MSCommand ( USB_INT32U block_number,
gbeardall 0:e6a539e59b52 96 USB_INT32U block_size,
gbeardall 0:e6a539e59b52 97 USB_INT16U num_blocks,
gbeardall 0:e6a539e59b52 98 MS_DATA_DIR direction,
gbeardall 0:e6a539e59b52 99 USB_INT08U scsi_cmd,
gbeardall 0:e6a539e59b52 100 USB_INT08U scsi_cmd_len);
gbeardall 0:e6a539e59b52 101 #endif