Kazuki Yamamoto / Mbed 2 deprecated 11u35_usbLocalFilesystem Featured

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

Committer:
k4zuki
Date:
Wed Aug 19 13:23:10 2015 +0000
Revision:
2:228291df190e
11U35 CMSIS-DAP; add DA14580.h/.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
k4zuki 2:228291df190e 1 /**
k4zuki 2:228291df190e 2 * @file DA1458X.h
k4zuki 2:228291df190e 3 * @brief DA1458X writer
k4zuki 2:228291df190e 4 **/
k4zuki 2:228291df190e 5 #ifndef DA1458X_H
k4zuki 2:228291df190e 6 #define DA1458X_H
k4zuki 2:228291df190e 7
k4zuki 2:228291df190e 8 #include "mbed.h"
k4zuki 2:228291df190e 9
k4zuki 2:228291df190e 10 #define LOADER_FILE "/local/loader.bin"
k4zuki 2:228291df190e 11 #define TARGET_FILE "/local/target.bin"
k4zuki 2:228291df190e 12
k4zuki 2:228291df190e 13 /** \class DA14580
k4zuki 2:228291df190e 14 * \brief mbed library for Dialog Semiconductor DA14580 Bluetooth LE chip
k4zuki 2:228291df190e 15 *
k4zuki 2:228291df190e 16 * Example:
k4zuki 2:228291df190e 17 * @code
k4zuki 2:228291df190e 18 * #include "mbed.h"
k4zuki 2:228291df190e 19 * #include "DA14580.h"
k4zuki 2:228291df190e 20 *
k4zuki 2:228291df190e 21 * DA14580 BLE(P0_18, P0_19, P0_1);
k4zuki 2:228291df190e 22 * Serial pc(USBTX, USBRX);
k4zuki 2:228291df190e 23 *
k4zuki 2:228291df190e 24 * int main()
k4zuki 2:228291df190e 25 * {
k4zuki 2:228291df190e 26 * int result=0;
k4zuki 2:228291df190e 27 * pc.baud(115200);
k4zuki 2:228291df190e 28 *
k4zuki 2:228291df190e 29 * wait_ms(1);
k4zuki 2:228291df190e 30 * fp = fopen( SOURCE_FILE, "rb" );
k4zuki 2:228291df190e 31 * result = BLE.load(fp);
k4zuki 2:228291df190e 32 * fclose(fp);
k4zuki 2:228291df190e 33 #if defined(__MICROLIB) && defined(__ARMCC_VERSION) // with microlib and ARM compiler
k4zuki 2:228291df190e 34 * free(fp);
k4zuki 2:228291df190e 35 #endif
k4zuki 2:228291df190e 36 * pc.printf("Result = %d \n\r",&result);
k4zuki 2:228291df190e 37 * }
k4zuki 2:228291df190e 38 * @endcode
k4zuki 2:228291df190e 39 */
k4zuki 2:228291df190e 40
k4zuki 2:228291df190e 41 enum XMODEM_CONST {
k4zuki 2:228291df190e 42 SOH = (0x01),
k4zuki 2:228291df190e 43 STX = (0x02),
k4zuki 2:228291df190e 44 EOT = (0x04),
k4zuki 2:228291df190e 45 ACK = (0x06),
k4zuki 2:228291df190e 46 DLE = (0x10),
k4zuki 2:228291df190e 47 NAK = (0x15),
k4zuki 2:228291df190e 48 CAN = (0x18),
k4zuki 2:228291df190e 49 };
k4zuki 2:228291df190e 50
k4zuki 2:228291df190e 51 enum DA14580_STATUS{
k4zuki 2:228291df190e 52 SUCCESS,
k4zuki 2:228291df190e 53 E_NOT_CONNECTED,
k4zuki 2:228291df190e 54 E_FILE_NOT_FOUND,
k4zuki 2:228291df190e 55 E_TIMEOUT_STX,
k4zuki 2:228291df190e 56 E_ACK_NOT_RETURNED,
k4zuki 2:228291df190e 57 E_CRC_MISMATCH
k4zuki 2:228291df190e 58 };
k4zuki 2:228291df190e 59
k4zuki 2:228291df190e 60 class DA14580
k4zuki 2:228291df190e 61 {
k4zuki 2:228291df190e 62 public:
k4zuki 2:228291df190e 63 DA14580( PinName TX, PinName RX, PinName RESET );
k4zuki 2:228291df190e 64 DA14580( Serial &ble, PinName RESET );
k4zuki 2:228291df190e 65 ~DA14580();
k4zuki 2:228291df190e 66
k4zuki 2:228291df190e 67 void init();
k4zuki 2:228291df190e 68 int load();
k4zuki 2:228291df190e 69 int file_size( FILE *fp ); // copied from ika_shouyu_poppoyaki
k4zuki 2:228291df190e 70 RawSerial _ble;
k4zuki 2:228291df190e 71
k4zuki 2:228291df190e 72 private:
k4zuki 2:228291df190e 73 uint8_t _recieve;
k4zuki 2:228291df190e 74 uint8_t _read;
k4zuki 2:228291df190e 75 int _filesize;
k4zuki 2:228291df190e 76 int _timeout;
k4zuki 2:228291df190e 77 int _status;
k4zuki 2:228291df190e 78 FILE* _fp;
k4zuki 2:228291df190e 79 int _crc;
k4zuki 2:228291df190e 80 DigitalInOut _reset;
k4zuki 2:228291df190e 81 };
k4zuki 2:228291df190e 82
k4zuki 2:228291df190e 83 #endif //DA1458X_H