USB composite device example program, drag-and-drop flash writer.
Dependencies: SWD USBDevice mbed BaseDAP
USBMSD_LPC.h@0:2385683c867a, 2013-09-17 (annotated)
- Committer:
- va009039
- Date:
- Tue Sep 17 04:33:44 2013 +0000
- Revision:
- 0:2385683c867a
- Child:
- 1:ea8e179320d7
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
va009039 | 0:2385683c867a | 1 | // USBMSD_LPC.h 2013/9/16 |
va009039 | 0:2385683c867a | 2 | #pragma once |
va009039 | 0:2385683c867a | 3 | #include "USBMSD.h" |
va009039 | 0:2385683c867a | 4 | #include "RomDisk.h" |
va009039 | 0:2385683c867a | 5 | #include "Target2.h" |
va009039 | 0:2385683c867a | 6 | #include "Flash.h" |
va009039 | 0:2385683c867a | 7 | |
va009039 | 0:2385683c867a | 8 | /** drag-and-drop flash writer using the USBMSD class |
va009039 | 0:2385683c867a | 9 | * |
va009039 | 0:2385683c867a | 10 | * @code |
va009039 | 0:2385683c867a | 11 | * #include "mbed.h" |
va009039 | 0:2385683c867a | 12 | * #include "USBMSD_LPC.h" |
va009039 | 0:2385683c867a | 13 | * Serial pc(USBTX, USBRX); |
va009039 | 0:2385683c867a | 14 | * int main() { |
va009039 | 0:2385683c867a | 15 | * USBMSD_LPC* LPC1114 = new USBMSD_LPC(PTB8,PTB9,PTB10,&pc); // SWDIO(dp12),SWCLK(dp3),nReset(dp23) |
va009039 | 0:2385683c867a | 16 | * while(1); // forever |
va009039 | 0:2385683c867a | 17 | * } |
va009039 | 0:2385683c867a | 18 | * @endcode |
va009039 | 0:2385683c867a | 19 | */ |
va009039 | 0:2385683c867a | 20 | class USBMSD_LPC : public USBMSD { |
va009039 | 0:2385683c867a | 21 | public: |
va009039 | 0:2385683c867a | 22 | /** create drag-and-drop flash writer |
va009039 | 0:2385683c867a | 23 | * @param swdio SWD(swdio) pin |
va009039 | 0:2385683c867a | 24 | * @param swclk SWD(swclk) pin |
va009039 | 0:2385683c867a | 25 | * @param reset reset pin |
va009039 | 0:2385683c867a | 26 | * @param usbpc output stream |
va009039 | 0:2385683c867a | 27 | */ |
va009039 | 0:2385683c867a | 28 | USBMSD_LPC(PinName swdio, PinName swclk, PinName reset, Serial* usbpc); |
va009039 | 0:2385683c867a | 29 | virtual ~USBMSD_LPC() {} |
va009039 | 0:2385683c867a | 30 | virtual int disk_initialize(); |
va009039 | 0:2385683c867a | 31 | virtual int disk_status(); |
va009039 | 0:2385683c867a | 32 | virtual int disk_read(uint8_t * data, uint64_t block); |
va009039 | 0:2385683c867a | 33 | virtual int disk_write(const uint8_t * data, uint64_t block); |
va009039 | 0:2385683c867a | 34 | virtual uint64_t disk_sectors(); |
va009039 | 0:2385683c867a | 35 | virtual uint64_t disk_size(); |
va009039 | 0:2385683c867a | 36 | protected: |
va009039 | 0:2385683c867a | 37 | void flashBinary(int addr, const uint8_t* buf, int size); |
va009039 | 0:2385683c867a | 38 | RomDisk _romdisk; |
va009039 | 0:2385683c867a | 39 | bool _prog_mode; |
va009039 | 0:2385683c867a | 40 | int _prev_block; |
va009039 | 0:2385683c867a | 41 | int _addr; |
va009039 | 0:2385683c867a | 42 | uint8_t _status; |
va009039 | 0:2385683c867a | 43 | Target2 _target; |
va009039 | 0:2385683c867a | 44 | Flash* _flash; |
va009039 | 0:2385683c867a | 45 | Serial* _pc; |
va009039 | 0:2385683c867a | 46 | }; |