📄 lib_host20.h
字号:
Periodic_Frame_List_Cell_Structure sCell[Host20_Preiodic_Frame_List_MAX];
} Periodic_Frame_List_Structure;
//<3.1>iTD Structure Definition****************************************
typedef struct _iTD_Status {
//<1>.Next_Link_Pointer Word
UINT32 bOffset:12;
UINT32 bPageSelect:3;
UINT32 bInterruptOnComplete:1;
UINT32 bLength:12;
UINT32 bStatus:4;
} iTD_Status_Structure;
#define HOST20_iTD_Status_Active 0x08
#define HOST20_iTD_Status_DataBufferError 0x04
#define HOST20_iTD_Status_BabbleDetect 0x02
#define HOST20_iTD_Status_TransctionError 0x01
typedef struct _iTD_BufferPointer {
//<1>.Next_Link_Pointer Word
UINT32 bMultiFunction:12;
UINT32 bBufferPointer:20;
} iTD_BufferPointer_Structure;
typedef struct _iTD {
//<1>.Next_Link_Pointer Word
UINT32 bTerminate:1;
UINT32 bType:2;
UINT32 bReserve_1:2;
UINT32 bNextLinkPointer:27;
//<2>.Status Word
iTD_Status_Structure ArrayStatus_Word[8];
//<3>.Buffer_Pointer Word
iTD_BufferPointer_Structure ArrayBufferPointer_Word[7];
} iTD_Structure;
//<3.2>siTD Structure Definition****************************************
typedef struct _siTD {
//<1>.1 Word
UINT32 bTerminate:1;
UINT32 bType:2;
UINT32 bReserve_1:2;
UINT32 bNextQHDPointer:27;
//<2>.2 Word
UINT32 bDeviceAddress:7;
UINT32 bReserve_21:1;
UINT32 bEdNumber:4;
UINT32 bReserve_22:4;
UINT32 bHubAddr:7;
UINT32 bReserve_23:1;
UINT32 bPortNumber:7;
UINT32 bInOut:1;
//<3>.3 Word
UINT32 bS_Mask:8;
UINT32 bC_Mask:8;
UINT32 bReserve_31:16;
//<4>.4 Word
UINT32 bStatus:8;
UINT32 bC_Prog_Mask:8;
UINT32 bTotalBytesToTransfer:10;
UINT32 bReserve_41:4;
UINT32 bPageSelect:1;
UINT32 bInterruptOnComplete:1;
//<5>.5 Word
UINT32 bCurrentOffset:12;
UINT32 bBufferPointer_Page0:20;
//<6>.6 Word
UINT32 bT_Count:3;
UINT32 bTransactionPosition:2;
UINT32 bReserve_61:7;
UINT32 bBufferPointer_Page1:20;
//<6>.7 Word
UINT32 bBP_Terminate:1;
UINT32 bReserve_71:4;
UINT32 bBackPointer:27;
} siTD_Structure;
#define HOST20_siTD_Status_Active 0x80
#define HOST20_siTD_TP_All 0x00
#define HOST20_siTD_TP_Begin 0x01
#define HOST20_siTD_TP_Mid 0x02
#define HOST20_siTD_TP_End 0x03
//<3.2>qTD Structure Definition****************************************
typedef struct _qTD {
//<1>.Next_qTD_Pointer Word
UINT32 bTerminate:1;
UINT32 bReserve_1:4;
UINT32 bNextQTDPointer:27;
//<2>.Alternate Next qTD Word
UINT32 bAlternateTerminate:1;
UINT32 bReserve_2:4;
UINT32 bAlternateQTDPointer:27;
//<3>.Status Word
UINT32 bStatus_PingState:1;
UINT32 bStatus_SplitState:1;
UINT32 bStatus_MissMicroFrame:1;
UINT32 bStatus_Transaction_Err:1;
UINT32 bStatus_Babble:1;
UINT32 bStatus_Buffer_Err:1;
UINT32 bStatus_Halted:1;
UINT32 bStatus_Active:1;
UINT32 bPID:2;
UINT32 bErrorCounter:2;
UINT32 CurrentPage:3;
UINT32 bInterruptOnComplete:1;
UINT32 bTotalBytes:15;
UINT32 bDataToggle:1;
//<4>.Buffer Pointer Word Array
UINT32 ArrayBufferPointer_Word[5];
} qTD_Structure;
#define HOST20_qTD_PID_OUT 0x00
#define HOST20_qTD_PID_IN 0x01
#define HOST20_qTD_PID_SETUP 0x02
#define HOST20_qTD_STATUS_Active 0x80
#define HOST20_qTD_STATUS_Halted 0x40
#define HOST20_qTD_STATUS_BufferError 0x20
#define HOST20_qTD_STATUS_Babble 0x10
#define HOST20_qTD_STATUS_TransactionError 0x08
#define HOST20_qTD_STATUS_MissMicroFrame 0x04
#define HOST20_qTD_STATUS_Split 0x02
#define HOST20_qTD_STATUS_Ping 0x01
//<3.3>qHD Structure Definition****************************************
typedef struct _qHD {
//<1>.Next_qHD_Pointer Word
UINT32 bTerminate:1;
UINT32 bType:2;
UINT32 bReserve_1:2;
UINT32 bNextQHDPointer:27;
//<2>.qHD_2 Word
UINT32 bDeviceAddress:7;
UINT32 bInactiveOnNextTransaction:1;
UINT32 bEdNumber:4;
UINT32 bEdSpeed:2;
UINT32 bDataToggleControl:1;
UINT32 bHeadOfReclamationListFlag:1;
UINT32 bMaxPacketSize:11;
UINT32 bControlEdFlag:1;
UINT32 bNakCounter:4;
//<3>.qHD_3 Word
UINT32 bInterruptScheduleMask:8;
UINT32 bSplitTransactionMask:8;
UINT32 bHubAddr:7;
UINT32 bPortNumber:7;
UINT32 bHighBandwidth:2;
//<4>.Overlay_CurrentqTD
UINT32 bOverlay_CurrentqTD;
//<5>.Overlay_NextqTD
UINT32 bOverlay_NextTerminate:1;
UINT32 bOverlay_Reserve2:4;
UINT32 bOverlay_NextqTD:27;
//<6>.Overlay_AlternateNextqTD
UINT32 bOverlay_AlternateNextTerminate:1;
UINT32 bOverlay_NanCnt:4;
UINT32 bOverlay_AlternateqTD:27;
//<7>.Overlay_TotalBytes
UINT32 bOverlay_Status:8;
UINT32 bOverlay_PID:2;
UINT32 bOverlay_ErrorCounter:2;
UINT32 bOverlay_C_Page:3;
UINT32 bOverlay_InterruptOnComplete:1;
UINT32 bOverlay_TotalBytes:15;
UINT32 bOverlay_Direction:1;
//<8>.Overlay_BufferPointer0
UINT32 bOverlay_CurrentOffset:12;
UINT32 bOverlay_BufferPointer_0:20;
//<9>.Overlay_BufferPointer1
UINT32 bOverlay_C_Prog_Mask:8;
UINT32 bOverlay_Reserve3:4;
UINT32 bOverlay_BufferPointer_1:20;
//<10>.Overlay_BufferPointer2
UINT32 bOverlay_FrameTag:5;
UINT32 bOverlay_S_Bytes:7;
UINT32 bOverlay_BufferPointer_2:20;
//<11>.Overlay_BufferPointer3
UINT32 bOverlay_Reserve4:12;
UINT32 bOverlay_BufferPointer_3:20;
//<12>.Overlay_BufferPointer4
UINT32 bOverlay_Reserve5:12;
UINT32 bOverlay_BufferPointer_4:20;
} qHD_Structure;
#define HOST20_HD_Type_iTD 0x00
#define HOST20_HD_Type_QH 0x01
#define HOST20_HD_Type_siTD 0x02
#define HOST20_HD_Type_FSTN 0x03
//<3.4>.Test Condition Definition****************************************
typedef struct {
UINT8 bStructureEnable; //Enable = 0x66 Disable=>Others
UINT8 bInterruptThreshod; //01,02,04,08,10,20,40
UINT8 bAsynchronousParkMode; //00=>Disable,01=>Enable
UINT8 bAsynchronousParkModeCounter; //01,02,03
UINT8 bFrameSize; //00,01,02
} Host20_Init_Condition_Structure;
#define HOST20_FrameSize_1024 0x00
#define HOST20_FrameSize_512 0x01
#define HOST20_FrameSize_256 0x02
//<3.5>.Host20's Attach Device Info Structure****************************************
//OTGHost Device Structure
typedef struct
{
UINT8 bDEVICE_LENGTH; // bLength
UINT8 bDT_DEVICE; // bDescriptorType
UINT8 bVerLowByte; // bcdUSB
UINT8 bVerHighByte;
UINT8 bDeviceClass; // bDeviceClass
UINT8 bDeviceSubClass; // bDeviceSubClas;
UINT8 bDeviceProtocol; // bDeviceProtocol
UINT8 bEP0MAXPACKETSIZE; // bMaxPacketSize0
UINT8 bVIDLowByte; // idVendor
UINT8 bVIDHighByte;
UINT8 bPIDLowByte; // idProduct
UINT8 bPIDHighByte;
UINT8 bRNumLowByte; // bcdDeviceReleaseNumber
UINT8 bRNumHighByte;
UINT8 bManufacturer; // iManufacturer
UINT8 bProduct; // iProduct
UINT8 bSerialNumber; // iSerialNumber
UINT8 bCONFIGURATION_NUMBER; // bNumConfigurations
}OTGH_Descriptor_Device_Struct;
//<3.6>.OTGHost Configuration Structure => Only Support 2 Configuration / 5 Interface / 1 Class / 5 Endpoint /1 OTG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -