79 USBMSD(
mbed::BlockDevice *bd,
bool connect_blocking =
true, uint16_t vendor_id = 0x0703, uint16_t product_id = 0x0104, uint16_t product_release = 0x0001);
149 virtual int disk_read(uint8_t *data, uint64_t block, uint8_t count);
159 virtual int disk_write(
const uint8_t *data, uint64_t block, uint8_t count);
164 virtual int disk_initialize();
171 virtual uint64_t disk_sectors();
178 virtual uint64_t disk_size();
185 virtual int disk_status();
214 uint32_t DataResidue;
222 volatile bool _media_removed;
246 uint64_t _memory_size;
247 uint64_t _block_count;
252 uint8_t _bulk_in_buf[64];
253 uint8_t _bulk_out_buf[64];
256 uint32_t _bulk_out_size;
263 events::Task<void(
const setup_packet_t *)> _control_task;
271 uint8_t _configuration_descriptor[32];
273 virtual const uint8_t *string_iproduct_desc();
274 virtual const uint8_t *string_iinterface_desc();
275 virtual const uint8_t *configuration_desc(uint8_t index);
276 virtual void callback_set_configuration(uint8_t configuration);
277 virtual void callback_set_interface(uint16_t interface, uint8_t alternate);
278 virtual void callback_state_change(DeviceState new_state);
279 virtual void callback_request(
const setup_packet_t *setup);
280 virtual void callback_request_xfer_done(
const setup_packet_t *setup,
bool aborted);
288 void _control(
const setup_packet_t *request);
293 void _write_next(uint8_t *data, uint32_t size);
296 void CBWDecode(uint8_t *buf, uint16_t size);
298 bool inquiryRequest(
void);
299 bool write(uint8_t *buf, uint16_t size);
300 bool readFormatCapacity();
301 bool readCapacity(
void);
302 bool infoTransfer(
void);
303 void memoryRead(
void);
304 bool modeSense6(
void);
305 bool modeSense10(
void);
306 void testUnitReady(
void);
307 bool requestSense(
void);
308 void memoryVerify(uint8_t *buf, uint16_t size);
309 void memoryWrite(uint8_t *buf, uint16_t size);
USBMSD(mbed::BlockDevice *bd, bool connect_blocking=true, uint16_t vendor_id=0x0703, uint16_t product_id=0x0104, uint16_t product_release=0x0001)
Constructor.
USBMSD(USBPhy *phy, mbed::BlockDevice *bd, uint16_t vendor_id, uint16_t product_id, uint16_t product_release)
Fully featured constructor.