USB Composite support
Dependents: mbed_cdc_hid_composite
Fork of USBDevice by
Diff: USBDevice/USBHAL_KL25Z.cpp
- Revision:
- 9:354942d2fa38
- Parent:
- 8:335f2506f422
- Child:
- 13:16731886c049
--- a/USBDevice/USBHAL_KL25Z.cpp Fri Mar 01 13:10:29 2013 +0000 +++ b/USBDevice/USBHAL_KL25Z.cpp Mon Mar 04 13:37:51 2013 +0000 @@ -66,8 +66,8 @@ // * 16 bidirectionnal endpt -> 32 physical endpt // * as there are ODD and EVEN buffer -> 32*2 bdt __attribute__((__aligned__(512))) BDT bdt[NUMBER_OF_PHYSICAL_ENDPOINTS * 2]; -uint8_t endpoint_buffer[(NUMBER_OF_PHYSICAL_ENDPOINTS - 2) * 2][64]; -uint8_t endpoint_buffer_iso[2*2][1023]; +uint8_t * endpoint_buffer[(NUMBER_OF_PHYSICAL_ENDPOINTS - 2) * 2]; +uint8_t * endpoint_buffer_iso[2*2]; static uint8_t set_addr = 0; static uint8_t addr = 0; @@ -199,15 +199,21 @@ if ((flags & ISOCHRONOUS) == 0) { handshake_flag = USB_ENDPT_EPHSHK_MASK; - if (IN_EP(endpoint)) + if (IN_EP(endpoint)) { + endpoint_buffer[EP_BDT_IDX(log_endpoint, TX, ODD )] = (uint8_t *) malloc (64*2); buf = &endpoint_buffer[EP_BDT_IDX(log_endpoint, TX, ODD )][0]; - else + } else { + endpoint_buffer[EP_BDT_IDX(log_endpoint, RX, ODD )] = (uint8_t *) malloc (64*2); buf = &endpoint_buffer[EP_BDT_IDX(log_endpoint, RX, ODD )][0]; + } } else { - if (IN_EP(endpoint)) + if (IN_EP(endpoint)) { + endpoint_buffer_iso[2] = (uint8_t *) malloc (1023*2); buf = &endpoint_buffer_iso[2][0]; - else + } else { + endpoint_buffer_iso[0] = (uint8_t *) malloc (1023*2); buf = &endpoint_buffer_iso[0][0]; + } } // IN endpt -> device to host (TX)