USB composite device example program, drag-and-drop flash writer.
Dependencies: SWD USBDevice mbed BaseDAP
Diff: USBMSD_LPC.h
- Revision:
- 1:ea8e179320d7
- Parent:
- 0:2385683c867a
--- a/USBMSD_LPC.h Tue Sep 17 04:33:44 2013 +0000 +++ b/USBMSD_LPC.h Sat Sep 28 03:21:14 2013 +0000 @@ -1,7 +1,6 @@ -// USBMSD_LPC.h 2013/9/16 +// USBMSD_LPC.h 2013/9/26 #pragma once -#include "USBMSD.h" -#include "RomDisk.h" +#include "USBMSD_Drop.h" #include "Target2.h" #include "Flash.h" @@ -11,36 +10,24 @@ * #include "mbed.h" * #include "USBMSD_LPC.h" * Serial pc(USBTX, USBRX); + * SWD swd(PTB8,PTB9,PTB10); // SWDIO(dp12),SWCLK(dp3),nReset(dp23) + * * int main() { - * USBMSD_LPC* LPC1114 = new USBMSD_LPC(PTB8,PTB9,PTB10,&pc); // SWDIO(dp12),SWCLK(dp3),nReset(dp23) + * USBMSD_LPC* LPC1114 = new USBMSD_LPC(&swd, &pc); * while(1); // forever * } * @endcode */ -class USBMSD_LPC : public USBMSD { +class USBMSD_LPC : public USBMSD_Drop { 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 + * @param swd SWD interface */ - USBMSD_LPC(PinName swdio, PinName swclk, PinName reset, Serial* usbpc); + USBMSD_LPC(SWD* swd, 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(); + virtual void Drop(const uint8_t* data, int len, int offset, int total); 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; + Target2* _target; Flash* _flash; Serial* _pc; };