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.
Dependents: USB_SERIAL_con_main MPU6050_DMP_test_for1549 servo_controller_1549
Fork of USBDevice by
Revision 9:354942d2fa38, committed 2013-03-04
- Comitter:
- samux
- Date:
- Mon Mar 04 13:37:51 2013 +0000
- Parent:
- 8:335f2506f422
- Child:
- 10:1e3d126a322b
- Commit message:
- kl25z: use malloc to allocate only endpoints needed
Changed in this revision
| USBDevice/USBHAL_KL25Z.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- 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)
