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
mystorage.cpp@6:cb6984367a7a, 2016-03-04 (annotated)
- Committer:
- k4zuki
- Date:
- Fri Mar 04 10:34:25 2016 +0000
- Revision:
- 6:cb6984367a7a
- Child:
- 7:5b78247c45c2
multi libraries update
Who changed what in which revision?
User | Revision | Line number | New 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 | 6:cb6984367a7a | 8 | |
k4zuki | 6:cb6984367a7a | 9 | //storage_initialize(); |
k4zuki | 6:cb6984367a7a | 10 | } |
k4zuki | 6:cb6984367a7a | 11 | |
k4zuki | 6:cb6984367a7a | 12 | // virtual int storage_read(uint8_t* data, uint32_t block); |
k4zuki | 6:cb6984367a7a | 13 | int MyStorage::storage_read(uint8_t *buffer, uint32_t block_number) { |
k4zuki | 6:cb6984367a7a | 14 | report_read_count++; |
k4zuki | 6:cb6984367a7a | 15 | |
k4zuki | 6:cb6984367a7a | 16 | // receive the data |
k4zuki | 6:cb6984367a7a | 17 | // _read(buffer, 512); |
k4zuki | 6:cb6984367a7a | 18 | // _flash.readStream(uint32_t addr, uint8_t* buf, uint32_t count); |
k4zuki | 6:cb6984367a7a | 19 | _flash.readStream(block_number*256, buffer, 512); |
k4zuki | 6:cb6984367a7a | 20 | return 0; |
k4zuki | 6:cb6984367a7a | 21 | } |
k4zuki | 6:cb6984367a7a | 22 | |
k4zuki | 6:cb6984367a7a | 23 | // virtual int storage_write(const uint8_t* data, uint32_t block); |
k4zuki | 6:cb6984367a7a | 24 | int MyStorage::storage_write(const uint8_t *buffer, uint32_t block_number) { |
k4zuki | 6:cb6984367a7a | 25 | report_write_count++; |
k4zuki | 6:cb6984367a7a | 26 | |
k4zuki | 6:cb6984367a7a | 27 | // send the data block |
k4zuki | 6:cb6984367a7a | 28 | // _write(buffer, 512); |
k4zuki | 6:cb6984367a7a | 29 | // writeStream(uint32_t addr, uint8_t* buf, uint32_t count); |
k4zuki | 6:cb6984367a7a | 30 | // void pageErase(uint8_t page); |
k4zuki | 6:cb6984367a7a | 31 | _flash.pageErase(block_number); |
k4zuki | 6:cb6984367a7a | 32 | _flash.pageErase(block_number + 1); |
k4zuki | 6:cb6984367a7a | 33 | _flash.writeStream(block_number * 256, (uint8_t*)buffer, 256); |
k4zuki | 6:cb6984367a7a | 34 | _flash.writeStream(block_number * 256 + 256, (uint8_t*)(buffer + 256), 256); |
k4zuki | 6:cb6984367a7a | 35 | return 0; |
k4zuki | 6:cb6984367a7a | 36 | } |
k4zuki | 6:cb6984367a7a | 37 | |
k4zuki | 6:cb6984367a7a | 38 | // virtual uint32_t storage_sectors(); |
k4zuki | 6:cb6984367a7a | 39 | uint32_t MyStorage::storage_sectors() { |
k4zuki | 6:cb6984367a7a | 40 | report_sectors_count++; |
k4zuki | 6:cb6984367a7a | 41 | return 256; //256*512 |
k4zuki | 6:cb6984367a7a | 42 | } |
k4zuki | 6:cb6984367a7a | 43 | |
k4zuki | 6:cb6984367a7a | 44 | // virtual uint32_t storage_size(); |
k4zuki | 6:cb6984367a7a | 45 | uint32_t MyStorage::storage_size() |
k4zuki | 6:cb6984367a7a | 46 | { |
k4zuki | 6:cb6984367a7a | 47 | report_size_count++; |
k4zuki | 6:cb6984367a7a | 48 | return 128*1024; //256*512 |
k4zuki | 6:cb6984367a7a | 49 | } |