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@13:9a2f6902f4f1, 2017-08-19 (annotated)
- 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?
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 | 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 | } |