⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb.h

📁 Test some scsi command for usb mass storage
💻 H
字号:
// Public Constants
#define URB_LENGTH               32
#define BUFFER_LENGTH            1024
#define SETUP_REQUEST_LENGTH     8
// ******bmRequestType of USB Command**********
// Data Transfer Direction
#define RT_HOST_TO_DEVICE     0x00
#define RT_DEVICE_TO_HOST     0x80    // 10000000B
// Request Type
#define RT_STANDARD_REQ       0x00
#define RT_CLASS_REQ          0x20    // 00100000B
#define RT_VENDOR_REQ         0x60    // 01100000B
// Recipient
#define RT_DEVICE_RECI        0x00
#define RT_INTERFACE_RECI     0x01
#define RT_ENDPOINT_RECI      0x02
#define RT_OTHER_RECI         0x03
// ***********bRequest of USB Command*******************
#define REQ_GET_STATUS         0
#define REQ_CLEAR_FEATURE      1
#define REQ_SET_FEATURE        3
#define REQ_SET_ADDRESS        5
#define REQ_GET_DESCRIPTOR     6
#define REQ_SET_DESCRIPTOR     7
#define REQ_GET_CONFIGURATION  8
#define REQ_SET_CONFIGURATION  9
#define REQ_GET_INTERFACE      10
#define REQ_SET_INTERFACE      11
#define REQ_SYNCH_FRAME        12
// ***************Descriptor Type********************
#define DEVICE_DESCRIPTOR        0x01
#define CONFIGURATION_DESCRIPTOR 0x02
#define INTERFACE_DESCRIPTOR     0x04
#define ENDPOINT_DESCRIPTOR      0x05
#define STRING_DESCRIPTOR        0x03
#define HUB_DESCRIPTOR           0x29
#define HID_DESCRIPTOR           0x21
// ************URB Structure************************
#define URB_TRANSACTION_TOKEN    0       // byte
#define URB_CHAIN_END_FLAG       1       // byte
#define URB_DEV_ADD              2       // byte
#define URB_END_POINT            3       // byte
#define URB_ERROR_CODE           4       // byte
#define URB_STATUS               5       // byte
#define URB_TRANSACTION_FLAGS    6       // word
#define URB_BUFFER_OFF           8       // word
#define URB_BUFFER_SEG           10      // word
#define URB_BUFFER_LENGTH        12      // word
#define URB_ACTUAL_LENGTH        14      // word
#define URB_SETUP_BUFFER_OFF     16      // word
#define URB_SETUP_BUFFER_SEG     18      // word
#define URB_START_FRAME          20      // word
#define URB_NR_OF_PACKETS        22      // word
#define URB_INT_INTERVAL         24      // byte
#define URB_ERROR_COUNT          25      // byte
#define URB_TIMEOUT              26      // word
#define URB_NEXT_URB_OFF         28      // word
#define URB_NEXT_URB_SEG         30      // word
// ***********Setup_Request structure***************
#define SR_REQUEST_TYPE   0  // byte
#define SR_REQUEST        1  // byte
#define SR_VALUE          2  // word
#define SR_INDEX          4  // word
#define SR_LENGTH         6  // word
// *********Device Descriptor Structure***************
#define DD_LENGTH               0   // BYTE
#define DD_DESCRIPTOR_TYPE      1   // BYTE
#define DD_USB_VERSION          2   // WORD
#define DD_DEVICE_CLASS         4   // BYTE
#define DD_DEVICE_SUB_CLASS     5   // BYTE
#define DD_DEVICE_PROTOCOL      6   // BYTE
#define DD_MAX_PACKET_SIZE      7   // BYTE
#define DD_VENDOR_ID            8   // WORD
#define DD_PRODUCT_ID           10  // WORD
#define DD_DEVICE_BCD           12  // WORD
#define DD_MANUFACTURER_INDEX   14  // BYTE
#define DD_PRODUCT_INDEX        15  // BYTE
#define DD_SERIAL_NUMBER        16  // BYTE
#define DD_NUM_CONFIGURATION    17  // BYTE
// **********Configuration Descriptor Structure*********
#define CD_LENGTH               0   // BYTE
#define CD_DESCRIPTOR_TYPE      1   // BYTE
#define CD_TOTAL_LENGTH         2   // WORD
#define CD_NUM_INTERFACE        4   // BYTE
#define CD_CONFIGURATION_VALUE  5   // BYTE
#define CD_CONFIGURATION        6   // BYTE
#define CD_ATTRIBUTES           7   // BYTE
#define CD_MAX_POWER            8   // BYTE
// *********Interface Descriptor Structure*************
#define ID_LENGTH               0   // BYTE
#define ID_DESCRIPTOR_TYPE      1   // BYTE
#define ID_INTERFACE_NUM        2   // BYTE
#define ID_INTERFACE_SETTING    3   // BYTE
#define ID_NUM_ENDPOINTS        4   // BYTE
#define ID_INTERFACE_CLASS      5   // BYTE
#define ID_INTERFACE_SUB_CLASS  6   // BYTE
#define ID_INTERFACE_PROTOCOL   7   // BYTE
#define ID_INTERFACE            8   // BYTE
// *********Endpoint Descriptor Structure****************
#define ED_LENGTH               0   // BYTE
#define ED_DESCRIPTOR_TYPE      1   // BYTE
#define ED_ENDPOINT_ADDRESS     2   // BYTE
#define ED_ATTRIBUTES           3   // BYTE
#define ED_MAX_PACKET_SIZE      4   // WORD
#define ED_INTERVAL             6   // BYTE
// *************String Descriptor Structure************
#define SD_LENGTH               0   // BYTE
#define SD_DESCRIPTOR_TYPE      1   // BYTE
#define SD_STRING               2   // BYTE[]




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -