2 #if (USE_STM32_USB_HOST_MODE || USE_STM32_USB_USE_DEVICE_MODE || USE_STM32_USB_OTG_MODE)
31 #ifndef __USBH_MSC_SCSI_H__
32 #define __USBH_MSC_SCSI_H__
35 #include "stm32/usb/usbh_stdreq.h"
62 USBH_MSC_PHASE_ERROR = 2,
64 }USBH_MSC_Status_TypeDef;
67 CMD_UNINITIALIZED_STATE =0,
74 typedef struct __MassStorageParameter
78 uint16_t MSPageLength;
81 uint8_t MSWriteProtect;
82 } MassStorageParameter_TypeDef;
95 #define OPCODE_TEST_UNIT_READY 0X00
96 #define OPCODE_READ_CAPACITY10 0x25
97 #define OPCODE_MODE_SENSE6 0x1A
98 #define OPCODE_READ10 0x28
99 #define OPCODE_WRITE10 0x2A
100 #define OPCODE_REQUEST_SENSE 0x03
102 #define DESC_REQUEST_SENSE 0X00
103 #define ALLOCATION_LENGTH_REQUEST_SENSE 63
104 #define XFER_LEN_READ_CAPACITY10 8
105 #define XFER_LEN_MODE_SENSE6 63
107 #define MASK_MODE_SENSE_WRITE_PROTECT 0x80
108 #define MODE_SENSE_PAGE_CONTROL_FIELD 0x00
109 #define MODE_SENSE_PAGE_CODE 0x3F
110 #define DISK_WRITE_PROTECTED 0x01
125 extern MassStorageParameter_TypeDef USBH_MSC_Param;
133 uint8_t USBH_MSC_TestUnitReady(USB_OTG_CORE_HANDLE *pdev);
134 uint8_t USBH_MSC_ReadCapacity10(USB_OTG_CORE_HANDLE *pdev);
135 uint8_t USBH_MSC_ModeSense6(USB_OTG_CORE_HANDLE *pdev);
136 uint8_t USBH_MSC_RequestSense(USB_OTG_CORE_HANDLE *pdev);
137 uint8_t USBH_MSC_Write10(USB_OTG_CORE_HANDLE *pdev,
141 uint8_t USBH_MSC_Read10(USB_OTG_CORE_HANDLE *pdev,
145 void USBH_MSC_StateMachine(USB_OTG_CORE_HANDLE *pdev);
151 #endif //__USBH_MSC_SCSI_H__
libheivs configuration file