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 USBMSD_SD USBDevice
Diff: USBMSD/USBMSD.cpp
- Revision:
- 11:a26e7b7a1221
- Parent:
- 10:cf8fd2b6ca23
- Child:
- 12:a12eb1fc05f3
--- a/USBMSD/USBMSD.cpp Wed Nov 16 11:06:27 2011 +0000
+++ b/USBMSD/USBMSD.cpp Wed Nov 16 17:17:42 2011 +0000
@@ -62,7 +62,6 @@
case REPORT_DESCRIPTOR:
if ((reportDesc() != NULL) \
&& (reportDescLength() != 0)) {
- printf("report desc\r\n");
transfer->remaining = reportDescLength();
transfer->ptr = reportDesc();
transfer->direction = DEVICE_TO_HOST;
@@ -70,7 +69,6 @@
}
break;
case HID_DESCRIPTOR:
- printf("hid desc\r\n");
// Find the HID descriptor, after the configuration descriptor
hidDescriptor = findDescriptor(HID_DESCRIPTOR);
if (hidDescriptor != NULL) {
@@ -106,15 +104,12 @@
transfer->notify = true;
success = true;
case MSC_REQUEST_GET_MAX_LUN:
- printf("get max lun\r\n");
transfer->remaining = 1;
transfer->ptr = dum;
transfer->direction = DEVICE_TO_HOST;
success = true;
break;
case SET_IDLE:
- printf("set idle\r\n");
- // First byte will be used for report ID
success = true;
default:
break;
@@ -179,9 +174,9 @@
return false;
}
- printf("blockSize: %d\r\n", BlockSize);
+ /*printf("blockSize: %d\r\n", BlockSize);
printf("memSize: %d\r\n", MemorySize);
- printf("number of blocks: %d\r\n", BlockCount);
+ printf("number of blocks: %d\r\n", BlockCount);*/
//connect the device
USBDevice::connect();
@@ -330,8 +325,8 @@
bool USBMSD::inquiryRequest (void) {
uint8_t inquiry[] = { 0x00, 0x80, 0x00, 0x01,
36 - 4, 0x80, 0x00, 0x00,
- 'M', 'B', 'E', 'D', '.', 'O', 'R', 'G',
- 'M', 'B', 'E', 'D', ' ', 'U', 'S', 'B', ' ', 'D', 'I', 'S', 'K', ' ', ' ', ' ',
+ 'M', 'b', 'e', 'd', '.', 'o', 'r', 'g',
+ 'M', 'b', 'e', 'd', ' ', 'U', 'S', 'B', ' ', 'D', 'i', 's', 'k', ' ', ' ', ' ',
'1', '.', '0', ' ',
};
if (!write(inquiry, sizeof(inquiry))) {
@@ -385,9 +380,7 @@
}
stage = SEND_CSW;
- if (!writeNB(EPBULK_IN, buf, size, MAX_PACKET_SIZE_EPBULK)) {
- return false;
- }
+ writeNB(EPBULK_IN, buf, size, MAX_PACKET_SIZE_EPBULK);
csw.DataResidue -= size;
csw.Status = CSW_PASSED;
@@ -443,7 +436,7 @@
sendCSW();
}
-DigitalOut l1(LED1);
+
void USBMSD::CBWDecode(uint8_t * buf, uint16_t size) {
if (size == sizeof(cbw)) {
memcpy((uint8_t *)&cbw, buf, size);
@@ -648,9 +641,9 @@
uint8_t * USBMSD::stringIproductDesc() {
static uint8_t stringIproductDescriptor[] = {
- 0x12, //bLength
+ 0x1e, //bLength
STRING_DESCRIPTOR, //bDescriptorType 0x03
- 'M',0,'b',0,'e',0,'d',0,' ',0,'M',0,'S',0,'D',0 //bString iProduct - Mbed Audio
+ 'M',0,'b',0,'e',0,'d',0,' ',0,'M',0,'S',0,'D', 0, ' ', 0, '&', 0, ' ', 0, 'H', 0, 'I', 0, 'D', 0 //bString iProduct - Mbed Audio
};
return stringIproductDescriptor;
}
@@ -693,39 +686,11 @@
C_RESERVED | C_SELF_POWERED, // bmAttributes
C_POWER(0), // bMaxPower
- // Interface 1, Alternate Setting 0, MSC Class
- 9, // bLength
- 4, // bDescriptorType
- 0x00, // bInterfaceNumber
- 0x00, // bAlternateSetting
- 0x02, // bNumEndpoints
- 0x08, // bInterfaceClass
- 0x06, // bInterfaceSubClass
- 0x50, // bInterfaceProtocol
- 0x00, // iInterface
-
- // endpoint descriptor, USB spec 9.6.6, page 269-271, Table 9-13
- 7, // bLength
- 5, // bDescriptorType
- PHY_TO_DESC(EPBULK_IN), // bEndpointAddress
- 0x02, // bmAttributes (0x02=bulk)
- LSB(MAX_PACKET_SIZE_EPBULK),// wMaxPacketSize (LSB)
- MSB(MAX_PACKET_SIZE_EPBULK),// wMaxPacketSize (MSB)
- 0, // bInterval
-
- // endpoint descriptor, USB spec 9.6.6, page 269-271, Table 9-13
- 7, // bLength
- 5, // bDescriptorType
- PHY_TO_DESC(EPBULK_OUT), // bEndpointAddress
- 0x02, // bmAttributes (0x02=bulk)
- LSB(MAX_PACKET_SIZE_EPBULK),// wMaxPacketSize (LSB)
- MSB(MAX_PACKET_SIZE_EPBULK),// wMaxPacketSize (MSB)
- 0, // bInterval
// interface 1: HID
INTERFACE_DESCRIPTOR_LENGTH, // bLength
INTERFACE_DESCRIPTOR, // bDescriptorType
- 0x01, // bInterfaceNumber
+ 0x00, // bInterfaceNumber
0x00, // bAlternateSetting
0x02, // bNumEndpoints
HID_CLASS, // bInterfaceClass
@@ -759,6 +724,36 @@
MSB(MAX_PACKET_SIZE_EPINT), // wMaxPacketSize (MSB)
10, // bInterval (milliseconds)
+ // Interface 1, Alternate Setting 0, MSC Class
+ 9, // bLength
+ 4, // bDescriptorType
+ 0x01, // bInterfaceNumber
+ 0x00, // bAlternateSetting
+ 0x02, // bNumEndpoints
+ 0x08, // bInterfaceClass
+ 0x06, // bInterfaceSubClass
+ 0x50, // bInterfaceProtocol
+ 0x00, // iInterface
+
+ // endpoint descriptor, USB spec 9.6.6, page 269-271, Table 9-13
+ 7, // bLength
+ 5, // bDescriptorType
+ PHY_TO_DESC(EPBULK_IN), // bEndpointAddress
+ 0x02, // bmAttributes (0x02=bulk)
+ LSB(MAX_PACKET_SIZE_EPBULK),// wMaxPacketSize (LSB)
+ MSB(MAX_PACKET_SIZE_EPBULK),// wMaxPacketSize (MSB)
+ 0, // bInterval
+
+ // endpoint descriptor, USB spec 9.6.6, page 269-271, Table 9-13
+ 7, // bLength
+ 5, // bDescriptorType
+ PHY_TO_DESC(EPBULK_OUT), // bEndpointAddress
+ 0x02, // bmAttributes (0x02=bulk)
+ LSB(MAX_PACKET_SIZE_EPBULK),// wMaxPacketSize (LSB)
+ MSB(MAX_PACKET_SIZE_EPBULK),// wMaxPacketSize (MSB)
+ 0, // bInterval
+
+
};
return configDescriptor;
}