USB composite device example program, drag-and-drop flash writer.
Dependencies: SWD USBDevice mbed BaseDAP
Diff: tests/test_RomDisk.cpp
- Revision:
- 1:ea8e179320d7
- Parent:
- 0:2385683c867a
diff -r 2385683c867a -r ea8e179320d7 tests/test_RomDisk.cpp --- 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() {