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

Committer:
k4zuki
Date:
Sat Aug 19 10:45:02 2017 +0000
Revision:
13:9a2f6902f4f1
Parent:
11:f6a0c6b3cc7d
works every other time when pressing TARGET button

Who changed what in which revision?

UserRevisionLine numberNew contents of line
k4zuki 6:cb6984367a7a 1 #include "mbed.h"
k4zuki 6:cb6984367a7a 2 #include "mystorage.h"
k4zuki 6:cb6984367a7a 3 #include "W25X40BV.h"
k4zuki 6:cb6984367a7a 4
k4zuki 6:cb6984367a7a 5 // MyStorage(PinName mosi, PinName miso, PinName sclk, PinName cs);
k4zuki 6:cb6984367a7a 6 MyStorage::MyStorage(PinName mosi, PinName miso, PinName sclk, PinName cs) :
k4zuki 6:cb6984367a7a 7 _flash(mosi, miso, sclk, cs) {
k4zuki 7:5b78247c45c2 8 }
k4zuki 6:cb6984367a7a 9
k4zuki 6:cb6984367a7a 10 // virtual int storage_read(uint8_t* data, uint32_t block);
k4zuki 6:cb6984367a7a 11 int MyStorage::storage_read(uint8_t *buffer, uint32_t block_number) {
k4zuki 6:cb6984367a7a 12 report_read_count++;
k4zuki 6:cb6984367a7a 13
k4zuki 6:cb6984367a7a 14 // receive the data
k4zuki 6:cb6984367a7a 15 // _read(buffer, 512);
k4zuki 6:cb6984367a7a 16 // _flash.readStream(uint32_t addr, uint8_t* buf, uint32_t count);
k4zuki 9:e279dee6e41c 17 _flash.readStream(256 * ((block_number) * 2), buffer, 512);
k4zuki 6:cb6984367a7a 18 return 0;
k4zuki 6:cb6984367a7a 19 }
k4zuki 6:cb6984367a7a 20
k4zuki 6:cb6984367a7a 21 // virtual int storage_write(const uint8_t* data, uint32_t block);
k4zuki 6:cb6984367a7a 22 int MyStorage::storage_write(const uint8_t *buffer, uint32_t block_number) {
k4zuki 6:cb6984367a7a 23 report_write_count++;
k4zuki 6:cb6984367a7a 24
k4zuki 6:cb6984367a7a 25 // send the data block
k4zuki 6:cb6984367a7a 26 // _write(buffer, 512);
k4zuki 6:cb6984367a7a 27 // writeStream(uint32_t addr, uint8_t* buf, uint32_t count);
k4zuki 6:cb6984367a7a 28 // void pageErase(uint8_t page);
k4zuki 11:f6a0c6b3cc7d 29 // _flash.pageErase((block_number) * 2);
k4zuki 11:f6a0c6b3cc7d 30 // _flash.pageErase((block_number) * 2 + 1);
k4zuki 9:e279dee6e41c 31 _flash.writeStream(512 * (block_number), (uint8_t*)buffer, 256);
k4zuki 9:e279dee6e41c 32 _flash.writeStream(512 * (block_number) + 256, (uint8_t*)(buffer + 256), 256);
k4zuki 6:cb6984367a7a 33 return 0;
k4zuki 6:cb6984367a7a 34 }
k4zuki 6:cb6984367a7a 35
k4zuki 6:cb6984367a7a 36 // virtual uint32_t storage_sectors();
k4zuki 6:cb6984367a7a 37 uint32_t MyStorage::storage_sectors() {
k4zuki 6:cb6984367a7a 38 report_sectors_count++;
k4zuki 9:e279dee6e41c 39 return (256); //256*512
k4zuki 6:cb6984367a7a 40 }
k4zuki 6:cb6984367a7a 41
k4zuki 6:cb6984367a7a 42 // virtual uint32_t storage_size();
k4zuki 6:cb6984367a7a 43 uint32_t MyStorage::storage_size()
k4zuki 6:cb6984367a7a 44 {
k4zuki 6:cb6984367a7a 45 report_size_count++;
k4zuki 9:e279dee6e41c 46 return (256*512); //256*512
k4zuki 6:cb6984367a7a 47 }