USB composite device example program, drag-and-drop flash writer.

Dependencies:   SWD USBDevice mbed BaseDAP

Revision:
1:ea8e179320d7
Parent:
0:2385683c867a
--- a/USBMSD_LPC.h	Tue Sep 17 04:33:44 2013 +0000
+++ b/USBMSD_LPC.h	Sat Sep 28 03:21:14 2013 +0000
@@ -1,7 +1,6 @@
-// USBMSD_LPC.h 2013/9/16
+// USBMSD_LPC.h 2013/9/26
 #pragma once
-#include "USBMSD.h"
-#include "RomDisk.h"
+#include "USBMSD_Drop.h"
 #include "Target2.h"
 #include "Flash.h"
 
@@ -11,36 +10,24 @@
  * #include "mbed.h"
  * #include "USBMSD_LPC.h"
  * Serial pc(USBTX, USBRX);
+ * SWD swd(PTB8,PTB9,PTB10); // SWDIO(dp12),SWCLK(dp3),nReset(dp23)
+ *
  * int main() {
- *     USBMSD_LPC* LPC1114 = new USBMSD_LPC(PTB8,PTB9,PTB10,&pc); // SWDIO(dp12),SWCLK(dp3),nReset(dp23)
+ *     USBMSD_LPC* LPC1114 = new USBMSD_LPC(&swd, &pc); 
  *     while(1); // forever
  * }
  * @endcode
  */
-class USBMSD_LPC : public USBMSD {
+class USBMSD_LPC : public USBMSD_Drop {
 public:
     /** create drag-and-drop flash writer
-     * @param swdio SWD(swdio) pin
-     * @param swclk SWD(swclk) pin
-     * @param reset reset pin
-     * @param usbpc output stream
+     * @param swd SWD interface
      */
-    USBMSD_LPC(PinName swdio, PinName swclk, PinName reset, Serial* usbpc);
+    USBMSD_LPC(SWD* swd, Serial* usbpc);
     virtual ~USBMSD_LPC() {}
-    virtual int disk_initialize();
-    virtual int disk_status();
-    virtual int disk_read(uint8_t * data, uint64_t block);
-    virtual int disk_write(const uint8_t * data, uint64_t block);
-    virtual uint64_t disk_sectors();
-    virtual uint64_t disk_size();
+    virtual void Drop(const uint8_t* data, int len, int offset, int total);
 protected:
-    void flashBinary(int addr, const uint8_t* buf, int size);
-    RomDisk _romdisk;
-    bool _prog_mode;
-    int _prev_block;
-    int _addr;
-    uint8_t _status;
-    Target2 _target;
+    Target2* _target;
     Flash* _flash;
     Serial* _pc;
 };