USB composite device example program, drag-and-drop flash writer.
Dependencies: SWD USBDevice mbed BaseDAP
USBMSD_LPC.cpp
- Committer:
- va009039
- Date:
- 2013-09-28
- Revision:
- 1:ea8e179320d7
- Parent:
- 0:2385683c867a
File content as of revision 1:ea8e179320d7:
// USBMSD_LPC.cpp 2013/9/28 #include "mbed.h" #include "USBMSD_LPC.h" #define MY_DEBUG #include "mydebug.h" #ifdef TARGET_LPC1768 #define LED_ON 1 #define LED_OFF 0 #endif #ifdef TARGET_KL25Z #define LED_ON 0 #define LED_OFF 1 #endif DigitalOut led3(LED3); USBMSD_LPC::USBMSD_LPC(SWD* swd, Serial* usbpc) : _pc(usbpc) { _target = new Target2(swd); _flash = NULL; led3 = LED_OFF; } /* virtual */ void USBMSD_LPC::Drop(const uint8_t* data, int len, int offset, int total) { if (_flash == NULL) { _target->setup(); _flash = new Flash(_target, _pc); } DBG("%d/%d", offset, total); if (offset == 0) { _flash->init(); _flash->eraseAll(); led3 = LED_ON; } _flash->write(offset, data, len); led3 = !led3; if (offset+len >= total) { led3 = LED_OFF; delete _flash; _flash = NULL; _target->SoftwareReset(); _target->setup(); } }