USB composite device example program, drag-and-drop flash writer.
Dependencies: SWD USBDevice mbed BaseDAP
Diff: USBMSD_Drop/RomDisk.cpp
- Revision:
- 1:ea8e179320d7
- Parent:
- 0:2385683c867a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/USBMSD_Drop/RomDisk.cpp Sat Sep 28 03:21:14 2013 +0000 @@ -0,0 +1,55 @@ +// RomDisk.cpp 2013/9/26 +#include "mbed.h" +#include "RomDisk.h" + +RomDisk::RomDisk() +{ + _sectors = 128; // 64KB(512*128) +} + +int RomDisk::read(uint8_t * data, uint32_t block) +{ + SectorIndex* p = const_cast<SectorIndex*>(sector_index); + while(p->data) { + if (p->block == block) { + memcpy(data, p->data, 512); + return 0; + } + p++; + } + memset(data, 0x00, 512); + return 0; +} + +int RomDisk::write(const uint8_t * data, uint32_t block) +{ + return 0; +} + +uint32_t RomDisk::sectors() +{ + return _sectors; +} + +bool RomDisk::is_fat(uint32_t sector) +{ + return sector >= 6 && sector <= 7; +} + +bool RomDisk::is_rootdir(uint32_t sector) +{ + return sector >= 8 && sector <= 15; +} + +int RomDisk::dir_count(uint32_t sector) +{ + if (!is_rootdir(sector)) { + return -1; + } + return sector - 8; +} + +uint32_t RomDisk::cluster_to_sector(uint32_t cluster) +{ + return cluster + 38; +}