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

Dependencies:   SWD USBDevice mbed BaseDAP

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers test_RomDisk.cpp Source File

test_RomDisk.cpp

00001 // test_RomDisk.cpp 2013/9/24
00002 #if 0
00003 #include "mbed.h"
00004 #include "USBMSD2.h"
00005 #include "RomDisk.h"
00006 #include "mytest.h"
00007 #include "mydebug.h"
00008 
00009 Serial pc(USBTX, USBRX);
00010 
00011 class RomDisk1 : public USBMSD2 {
00012 public:
00013     RomDisk1() {
00014         _sectors = 128; // 64KB(512*128)
00015         _status = 0x01;
00016         connect();
00017     }
00018     virtual int disk_initialize() {
00019         _status = 0x00;
00020         return 0;
00021     }
00022     virtual int disk_status() { return _status; }
00023     virtual int disk_read(uint8_t * data, uint64_t block) { return _disk.read(data, block); }
00024     virtual int disk_write(const uint8_t * data, uint64_t block) {
00025         if (_disk.is_data(block)) {
00026             DBG("block=%d", (int)block);
00027         }
00028         return _disk.write(data, block);
00029     }
00030     virtual uint64_t disk_sectors() { return _sectors; }
00031     virtual uint64_t disk_size() { return _sectors * 512; }
00032     
00033 protected:
00034     RomDisk _disk;
00035     uint64_t _sectors;
00036     uint8_t _status;
00037 };
00038 
00039 
00040 TEST(RomDisk1,test1) {
00041     RomDisk1* intf = new RomDisk1();
00042     Timer t;
00043     t.reset();
00044     t.start();
00045     int n = 0;
00046     while(1) { // forever
00047         if (intf->readable()) {
00048             int c = intf->getc();
00049             debug("%02x[%c]\n", c, c > ' ' ? c : '.');
00050         }
00051         if (t.read_ms() > 1000*1) {
00052             t.reset();
00053             intf->putc('A'+ n%26);
00054             n++;
00055         }
00056     }
00057 }
00058 
00059 int main() {
00060     pc.baud(921600);
00061     //pc.baud(9600);
00062     DBG("%s", __FILE__);
00063 
00064     RUN_ALL_TESTS();
00065     exit(0);
00066 }
00067 #endif