USB composite device example program, drag-and-drop flash writer.
Dependencies: SWD USBDevice mbed BaseDAP
USBMSD_LPC.h
- Committer:
- va009039
- Date:
- 2013-09-17
- Revision:
- 0:2385683c867a
- Child:
- 1:ea8e179320d7
File content as of revision 0:2385683c867a:
// USBMSD_LPC.h 2013/9/16 #pragma once #include "USBMSD.h" #include "RomDisk.h" #include "Target2.h" #include "Flash.h" /** drag-and-drop flash writer using the USBMSD class * * @code * #include "mbed.h" * #include "USBMSD_LPC.h" * Serial pc(USBTX, USBRX); * int main() { * USBMSD_LPC* LPC1114 = new USBMSD_LPC(PTB8,PTB9,PTB10,&pc); // SWDIO(dp12),SWCLK(dp3),nReset(dp23) * while(1); // forever * } * @endcode */ class USBMSD_LPC : public USBMSD { 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 */ USBMSD_LPC(PinName swdio, PinName swclk, PinName reset, 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(); 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; Flash* _flash; Serial* _pc; };