USB tiny disk
USBTinyDisk.h@0:bc3d724e2ea5, 2014-01-21 (annotated)
- Committer:
- yihui
- Date:
- Tue Jan 21 08:38:35 2014 +0000
- Revision:
- 0:bc3d724e2ea5
initial
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yihui | 0:bc3d724e2ea5 | 1 | /* |
yihui | 0:bc3d724e2ea5 | 2 | * Implements a tiny USB disk |
yihui | 0:bc3d724e2ea5 | 3 | */ |
yihui | 0:bc3d724e2ea5 | 4 | |
yihui | 0:bc3d724e2ea5 | 5 | #ifndef __USB_TINY_DISK_H__ |
yihui | 0:bc3d724e2ea5 | 6 | #define __USB_TINY_DISK_H__ |
yihui | 0:bc3d724e2ea5 | 7 | |
yihui | 0:bc3d724e2ea5 | 8 | #include "USBMSD.h" |
yihui | 0:bc3d724e2ea5 | 9 | |
yihui | 0:bc3d724e2ea5 | 10 | class USBTinyDisk: public USBMSD { |
yihui | 0:bc3d724e2ea5 | 11 | public: |
yihui | 0:bc3d724e2ea5 | 12 | USBTinyDisk(uint16_t vendor_id = 0x2886, uint16_t product_id = 0x0070, uint16_t product_release = 0x0001); |
yihui | 0:bc3d724e2ea5 | 13 | |
yihui | 0:bc3d724e2ea5 | 14 | protected: |
yihui | 0:bc3d724e2ea5 | 15 | /* |
yihui | 0:bc3d724e2ea5 | 16 | * read a block on a storage chip |
yihui | 0:bc3d724e2ea5 | 17 | * |
yihui | 0:bc3d724e2ea5 | 18 | * @param data pointer where will be stored read data |
yihui | 0:bc3d724e2ea5 | 19 | * @param block block number |
yihui | 0:bc3d724e2ea5 | 20 | * @returns 0 if successful |
yihui | 0:bc3d724e2ea5 | 21 | */ |
yihui | 0:bc3d724e2ea5 | 22 | virtual int disk_read(uint8_t * data, uint64_t block); |
yihui | 0:bc3d724e2ea5 | 23 | |
yihui | 0:bc3d724e2ea5 | 24 | /* |
yihui | 0:bc3d724e2ea5 | 25 | * write a block on a storage chip |
yihui | 0:bc3d724e2ea5 | 26 | * |
yihui | 0:bc3d724e2ea5 | 27 | * @param data data to write |
yihui | 0:bc3d724e2ea5 | 28 | * @param block block number |
yihui | 0:bc3d724e2ea5 | 29 | * @returns 0 if successful |
yihui | 0:bc3d724e2ea5 | 30 | */ |
yihui | 0:bc3d724e2ea5 | 31 | virtual int disk_write(const uint8_t * data, uint64_t block); |
yihui | 0:bc3d724e2ea5 | 32 | |
yihui | 0:bc3d724e2ea5 | 33 | /* |
yihui | 0:bc3d724e2ea5 | 34 | * Disk initilization |
yihui | 0:bc3d724e2ea5 | 35 | */ |
yihui | 0:bc3d724e2ea5 | 36 | virtual int disk_initialize(); |
yihui | 0:bc3d724e2ea5 | 37 | |
yihui | 0:bc3d724e2ea5 | 38 | /* |
yihui | 0:bc3d724e2ea5 | 39 | * Return the number of blocks |
yihui | 0:bc3d724e2ea5 | 40 | * |
yihui | 0:bc3d724e2ea5 | 41 | * @returns number of blocks |
yihui | 0:bc3d724e2ea5 | 42 | */ |
yihui | 0:bc3d724e2ea5 | 43 | virtual uint64_t disk_sectors(); |
yihui | 0:bc3d724e2ea5 | 44 | |
yihui | 0:bc3d724e2ea5 | 45 | /* |
yihui | 0:bc3d724e2ea5 | 46 | * Return memory size |
yihui | 0:bc3d724e2ea5 | 47 | * |
yihui | 0:bc3d724e2ea5 | 48 | * @returns memory size |
yihui | 0:bc3d724e2ea5 | 49 | */ |
yihui | 0:bc3d724e2ea5 | 50 | virtual uint64_t disk_size(); |
yihui | 0:bc3d724e2ea5 | 51 | |
yihui | 0:bc3d724e2ea5 | 52 | |
yihui | 0:bc3d724e2ea5 | 53 | /* |
yihui | 0:bc3d724e2ea5 | 54 | * To check the status of the storage chip |
yihui | 0:bc3d724e2ea5 | 55 | * |
yihui | 0:bc3d724e2ea5 | 56 | * @returns status: 0: OK, 1: disk not initialized, 2: no medium in the drive, 4: write protected |
yihui | 0:bc3d724e2ea5 | 57 | */ |
yihui | 0:bc3d724e2ea5 | 58 | virtual int disk_status(); |
yihui | 0:bc3d724e2ea5 | 59 | |
yihui | 0:bc3d724e2ea5 | 60 | /* |
yihui | 0:bc3d724e2ea5 | 61 | * Get string manufacturer descriptor |
yihui | 0:bc3d724e2ea5 | 62 | * |
yihui | 0:bc3d724e2ea5 | 63 | * @returns pointer to the string manufacturer descriptor |
yihui | 0:bc3d724e2ea5 | 64 | */ |
yihui | 0:bc3d724e2ea5 | 65 | virtual uint8_t * stringImanufacturerDesc(); |
yihui | 0:bc3d724e2ea5 | 66 | |
yihui | 0:bc3d724e2ea5 | 67 | /* |
yihui | 0:bc3d724e2ea5 | 68 | * Get string product descriptor |
yihui | 0:bc3d724e2ea5 | 69 | * |
yihui | 0:bc3d724e2ea5 | 70 | * @returns pointer to the string product descriptor |
yihui | 0:bc3d724e2ea5 | 71 | */ |
yihui | 0:bc3d724e2ea5 | 72 | virtual uint8_t * stringIproductDesc(); |
yihui | 0:bc3d724e2ea5 | 73 | |
yihui | 0:bc3d724e2ea5 | 74 | /* |
yihui | 0:bc3d724e2ea5 | 75 | * Get string serial descriptor |
yihui | 0:bc3d724e2ea5 | 76 | * |
yihui | 0:bc3d724e2ea5 | 77 | * @returns pointer to the string serial descriptor |
yihui | 0:bc3d724e2ea5 | 78 | */ |
yihui | 0:bc3d724e2ea5 | 79 | virtual uint8_t * stringIserialDesc(); |
yihui | 0:bc3d724e2ea5 | 80 | }; |
yihui | 0:bc3d724e2ea5 | 81 | |
yihui | 0:bc3d724e2ea5 | 82 | #endif |