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

Dependencies:   SWD USBDevice mbed BaseDAP

Revision:
1:ea8e179320d7
Parent:
0:2385683c867a
--- a/tests/test_RomDisk.cpp	Tue Sep 17 04:33:44 2013 +0000
+++ b/tests/test_RomDisk.cpp	Sat Sep 28 03:21:14 2013 +0000
@@ -1,21 +1,59 @@
+// test_RomDisk.cpp 2013/9/24
 #if 0
 #include "mbed.h"
-#include "USBMSD_LPC.h"
-
+#include "USBMSD2.h"
+#include "RomDisk.h"
 #include "mytest.h"
 #include "mydebug.h"
 
 Serial pc(USBTX, USBRX);
 
+class RomDisk1 : public USBMSD2 {
+public:
+    RomDisk1() {
+        _sectors = 128; // 64KB(512*128)
+        _status = 0x01;
+        connect();
+    }
+    virtual int disk_initialize() {
+        _status = 0x00;
+        return 0;
+    }
+    virtual int disk_status() { return _status; }
+    virtual int disk_read(uint8_t * data, uint64_t block) { return _disk.read(data, block); }
+    virtual int disk_write(const uint8_t * data, uint64_t block) {
+        if (_disk.is_data(block)) {
+            DBG("block=%d", (int)block);
+        }
+        return _disk.write(data, block);
+    }
+    virtual uint64_t disk_sectors() { return _sectors; }
+    virtual uint64_t disk_size() { return _sectors * 512; }
+    
+protected:
+    RomDisk _disk;
+    uint64_t _sectors;
+    uint8_t _status;
+};
+
+
 TEST(RomDisk1,test1) {
-#ifdef TARGET_LPC1768
-    USBMSD_LPC* LPC1114 = new USBMSD_LPC(p21,p22,p17,&pc); // SWDIO(dp12),SWCLK(dp3),nReset(dp23) 
-#endif
-#ifdef TARGET_KL25Z
-    USBMSD_LPC* LPC1114 = new USBMSD_LPC(PTB8,PTB9,PTB10,&pc); // SWDIO(dp12),SWCLK(dp3),nReset(dp23)
-#endif
-
-    while(1); // forever
+    RomDisk1* intf = new RomDisk1();
+    Timer t;
+    t.reset();
+    t.start();
+    int n = 0;
+    while(1) { // forever
+        if (intf->readable()) {
+            int c = intf->getc();
+            debug("%02x[%c]\n", c, c > ' ' ? c : '.');
+        }
+        if (t.read_ms() > 1000*1) {
+            t.reset();
+            intf->putc('A'+ n%26);
+            n++;
+        }
+    }
 }
 
 int main() {