USBLocalFileSystem.lib testing program for LPC11U35
Dependencies: BaseDAP SWD USBDAP USBLocalFileSystem mbed DA14580 SWSPI W25X40BV
USB memory + Writer for DA14580 BLE chip + CMSIS-DAP debugger + USB-UART functions in one chip
One button input loads your application into DA14580 or DA14580 included BLE modules
Quote:
Current compatible hardware description can be found at https://github.com/K4zuki/da14580/releases/tag/MurataBLEr04
main.cpp@0:eba731be11fb, 2015-08-17 (annotated)
- Committer:
- k4zuki
- Date:
- Mon Aug 17 19:20:25 2015 +0000
- Revision:
- 0:eba731be11fb
- Child:
- 1:484bd6db1378
initial forked version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
k4zuki | 0:eba731be11fb | 1 | #include "mbed.h" |
k4zuki | 0:eba731be11fb | 2 | #include "USBLocalFileSystem.h" |
k4zuki | 0:eba731be11fb | 3 | #include "USBDAP.h" |
k4zuki | 0:eba731be11fb | 4 | #include "BaseDAP.h" |
k4zuki | 0:eba731be11fb | 5 | #include "USB_HID.h" |
k4zuki | 0:eba731be11fb | 6 | |
k4zuki | 0:eba731be11fb | 7 | SWD swd(p25,p24,p23); // SWDIO,SWCLK,nRESET |
k4zuki | 0:eba731be11fb | 8 | DigitalOut connected(LED1); |
k4zuki | 0:eba731be11fb | 9 | DigitalOut running(LED2); |
k4zuki | 0:eba731be11fb | 10 | |
k4zuki | 0:eba731be11fb | 11 | class myDAP : public BaseDAP |
k4zuki | 0:eba731be11fb | 12 | { |
k4zuki | 0:eba731be11fb | 13 | public: |
k4zuki | 0:eba731be11fb | 14 | myDAP(SWD* swd):BaseDAP(swd) {}; |
k4zuki | 0:eba731be11fb | 15 | virtual void infoLED(int select, int value) { |
k4zuki | 0:eba731be11fb | 16 | switch(select) { |
k4zuki | 0:eba731be11fb | 17 | case 0: |
k4zuki | 0:eba731be11fb | 18 | connected = value^1; |
k4zuki | 0:eba731be11fb | 19 | running = 1; |
k4zuki | 0:eba731be11fb | 20 | break; |
k4zuki | 0:eba731be11fb | 21 | case 1: |
k4zuki | 0:eba731be11fb | 22 | running = value^1; |
k4zuki | 0:eba731be11fb | 23 | connected = 1; |
k4zuki | 0:eba731be11fb | 24 | break; |
k4zuki | 0:eba731be11fb | 25 | } |
k4zuki | 0:eba731be11fb | 26 | } |
k4zuki | 0:eba731be11fb | 27 | }; |
k4zuki | 0:eba731be11fb | 28 | |
k4zuki | 0:eba731be11fb | 29 | int main() |
k4zuki | 0:eba731be11fb | 30 | { |
k4zuki | 0:eba731be11fb | 31 | USBLocalFileSystem* usb_local = new USBLocalFileSystem(P0_9, P0_8, P0_10, P0_7,"local"); // RamDisk(64KB) |
k4zuki | 0:eba731be11fb | 32 | myDAP* dap = new myDAP(&swd); |
k4zuki | 0:eba731be11fb | 33 | |
k4zuki | 0:eba731be11fb | 34 | // USBStorage2* _usb = usb_local->getUsb(); |
k4zuki | 0:eba731be11fb | 35 | // USB_HID* _hid = _usb->getHID(); |
k4zuki | 0:eba731be11fb | 36 | |
k4zuki | 0:eba731be11fb | 37 | while(1) { |
k4zuki | 0:eba731be11fb | 38 | usb_local->lock(true); |
k4zuki | 0:eba731be11fb | 39 | usb_local->remount(); |
k4zuki | 0:eba731be11fb | 40 | char filename[32]; |
k4zuki | 0:eba731be11fb | 41 | if (usb_local->find(filename, sizeof(filename), "*.TXT")) { |
k4zuki | 0:eba731be11fb | 42 | FILE* fp = fopen(filename, "r"); |
k4zuki | 0:eba731be11fb | 43 | if (fp) { |
k4zuki | 0:eba731be11fb | 44 | int c; |
k4zuki | 0:eba731be11fb | 45 | while((c = fgetc(fp)) != EOF) { |
k4zuki | 0:eba731be11fb | 46 | usb_local->putc(c); |
k4zuki | 0:eba731be11fb | 47 | } |
k4zuki | 0:eba731be11fb | 48 | fclose(fp); |
k4zuki | 0:eba731be11fb | 49 | #if defined(__MICROLIB) && defined(__ARMCC_VERSION) // with microlib and ARM compiler |
k4zuki | 0:eba731be11fb | 50 | free(fp); |
k4zuki | 0:eba731be11fb | 51 | #endif |
k4zuki | 0:eba731be11fb | 52 | } |
k4zuki | 0:eba731be11fb | 53 | } |
k4zuki | 0:eba731be11fb | 54 | |
k4zuki | 0:eba731be11fb | 55 | HID_REPORT recv_report; |
k4zuki | 0:eba731be11fb | 56 | if( usb_local->getUsb()->getHID()->readNB(&recv_report) ) { |
k4zuki | 0:eba731be11fb | 57 | HID_REPORT send_report; |
k4zuki | 0:eba731be11fb | 58 | dap->Command(recv_report.data, send_report.data); |
k4zuki | 0:eba731be11fb | 59 | send_report.length = 64; |
k4zuki | 0:eba731be11fb | 60 | usb_local->getUsb()->getHID()->send(&send_report); |
k4zuki | 0:eba731be11fb | 61 | } |
k4zuki | 0:eba731be11fb | 62 | |
k4zuki | 0:eba731be11fb | 63 | usb_local->lock(false); |
k4zuki | 0:eba731be11fb | 64 | wait_ms(100*5); |
k4zuki | 0:eba731be11fb | 65 | } |
k4zuki | 0:eba731be11fb | 66 | } |