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

📄 lib_host20.h

📁 FIC8120方案的 StartCell_Driver
💻 H
📖 第 1 页 / 共 3 页
字号:
    #define  HOST20_CONFIGURATION_NUM_MAX 0X02 
    #define  HOST20_INTERFACE_NUM_MAX     0X05 
    #define  HOST20_ENDPOINT_NUM_MAX      0X05 
    #define  HOST20_CLASS_NUM_MAX         0x01
    
    
    #define  HOST20_CONFIGURATION_LENGTH  0X09 
    #define  HOST20_INTERFACE_LENGTH      0X09 
    #define  HOST20_ENDPOINT_LENGTHX      0X07     
    #define  HOST20_CLASS_LENGTHX         0X09   
 
 typedef struct
 {	

      //<3>.Define for ED-OTG
                UINT8   bED_OTG_Length;
                UINT8   bED_OTG_bDescriptorType;
                UINT8   bED_OTG_bAttributes;

    
 }OTGH_Descriptor_OTG_Struct;
 
 typedef struct
 {	
     //<3>.Define for ED-1
                UINT8   bED_Length;
                UINT8   bED_bDescriptorType;
                UINT8   bED_EndpointAddress;
                UINT8   bED_bmAttributes;
                UINT8   bED_wMaxPacketSizeLowByte;
                UINT8   bED_wMaxPacketSizeHighByte;
                UINT8   bED_Interval;
    
 }OTGH_Descriptor_EndPoint_Struct;


 typedef struct
 {	
    
   UINT8   bClass_LENGTH;
   UINT8   bClaNumberss;
   UINT8   bClassVerLowByte;
   UINT8   bClassVerHighByte;
   UINT8   bCityNumber;
   UINT8   bFollowDescriptorNum;
   UINT8   bReport;
   UINT8   bLengthLowByte;
   UINT8   bLengthHighByte;
       
 }OTGH_Descriptor_Class_Struct;






 typedef struct
 {	

     //<2>.Define for Interface-1
			UINT8 bINTERFACE_LENGTH;		// bLength
			UINT8 bDT_INTERFACE;			// bDescriptorType INTERFACE
			UINT8 bInterfaceNumber;         // bInterfaceNumber
			UINT8 bAlternateSetting;	    // bAlternateSetting
			UINT8 bEP_NUMBER;			    // bNumEndpoints(excluding endpoint zero)
			UINT8 bInterfaceClass;	        // bInterfaceClass
			UINT8 bInterfaceSubClass;       // bInterfaceSubClass
			UINT8 bInterfaceProtocol;       // bInterfaceProtocol
			UINT8 bInterface;		        // iInterface
            
            OTGH_Descriptor_Class_Struct      sClass[HOST20_CLASS_NUM_MAX];
            OTGH_Descriptor_EndPoint_Struct   sED[HOST20_ENDPOINT_NUM_MAX];

          
    
 }OTGH_Descriptor_Interface_Struct;



 typedef struct
 {	

 	UINT8  bCONFIG_LENGTH;					// bLength
	UINT8  bDT_CONFIGURATION;				// bDescriptorType CONFIGURATION
	UINT8  bTotalLengthLowByte;	            // wTotalLength, include all descriptors
	UINT8  bTotalLengthHighByte;
	UINT8  bINTERFACE_NUMBER;			    // bNumInterface
	UINT8  bConfigurationValue;				// bConfigurationValue
	UINT8  bConfiguration;			        // iConfiguration
	UINT8  bAttribute;				        // bmAttribute
	UINT8  bMaxPower;				        // iMaxPower (2mA units)

    OTGH_Descriptor_Interface_Struct        sInterface[HOST20_INTERFACE_NUM_MAX];
   

 }OTGH_Descriptor_Configuration_Only_Struct;



 //Support Configuration x2 
 //        Interface     x5
 //        EndPoint      x5
 //        OTG           X1 

 typedef struct
 {	
	
	//<1>.Basic Information
    UINT8                                   bDeviceOnHub;
    UINT8                                   bOnHubPortNumber;
	UINT8                                   bAdd;
    UINT8                                   bConnectStatus;
    UINT8                                   bPortEnableDisableStatus;    
    UINT8                                   bSpeed;  //0=>Low Speed / 1=>Full Speed / 2 => High Speed
    UINT8                                   bPortReset;  
    UINT8                                   bSuspend;  
    volatile UINT8                          bRemoteWakeUpDetected;  
    UINT8                                   bSendOK;
    UINT8                                   bSendStatusError;
    
    
    qTD_Structure                           *psSendLastqTD;    
    UINT8                                   *bDataBuffer;
	//<2>.Descriptor Information
    OTGH_Descriptor_Device_Struct            sDD;
    OTGH_Descriptor_Configuration_Only_Struct   saCD[HOST20_CONFIGURATION_NUM_MAX];
    OTGH_Descriptor_OTG_Struct              sOTG; 
   
    UINT8                                   bReportDescriptor[0x74];
    UINT8                                   bStringLanguage[10];
    UINT8                                   bStringManufacture[0xFF];
    UINT8                                   bStringProduct[0xFF];
    UINT8                                   bStringSerialN[0xFF];  
    //<3>.For ISO Information    
    UINT8                                   bISOTransferEnable;
    UINT32                                  wISOiTDAddress[1024];

 }Host20_Attach_Device_Structure;

    #define HOST20_Attach_Device_Speed_Full                  0x00
    #define HOST20_Attach_Device_Speed_Low                   0x01
    #define HOST20_Attach_Device_Speed_High                  0x02

 //<3.7>.Control Command Structure
 typedef struct {
     
      UINT8   bmRequestType; //(In/Out),(Standard...),(Device/Interface...)
      UINT8   bRequest;      //GetStatus .....
      UINT8   wValueLow;     //Byte2  
      UINT8   wValueHigh;    //Byte3 
      UINT8   wIndexLow;     //Byte4
      UINT8   wIndexHigh;    //Byte5
      UINT8   wLengthLow;    //Byte6
      UINT8   wLengthHigh;   //Byte7

          
 } Host20_Control_Command_Structure;

  #define HOST20_CONTROL_GetStatus             0x00
  #define HOST20_CONTROL_ClearFeature          0x01
  #define HOST20_CONTROL_SetFeature            0x03
  #define HOST20_CONTROL_SetAddress            0x05
  #define HOST20_CONTROL_GetDescriptor         0x06
  #define HOST20_CONTROL_SetDescriptor         0x07
  #define HOST20_CONTROL_GetConfiguration      0x08
  #define HOST20_CONTROL_GetInterface          0x0A
  #define HOST20_CONTROL_SetInterface          0x0B  
  #define HOST20_CONTROL_SyncFrame             0x0C


  #define HOST20_HID_GetReport                 0x01
  #define HOST20_HID_GetIdle                   0x02
  #define HOST20_HID_GetProtocol               0x03
  #define HOST20_HID_SetReport                 0x09
  #define HOST20_HID_SetIdle                   0x0A
  #define HOST20_HID_SetProtocol               0x0B


 //<3.8>.BufferPointerArray
  typedef struct {
      UINT32   BufferPointerArray[8];  
 } Host20_BufferPointerArray_Structure;
 


 //<3.8>.ISO_FrameBufferMode
  typedef struct {
      UINT32            wFrameBufferAddress;  
      UINT32            wFrameBufferAddressOffset;        
      UINT32            wSize; 
      UINT32            wReceiveCounter;             
      UINT32            CurrentiTDNum;
      
      
      
 } Host20_ISO_FixBufferMode_Structure;
 




//=================== 4.Extern Function Definition =======================================================
//========================================================================================================

extern UINT8 flib_OTGH_Init(UINT32 wTimeWaitForConnect_ms,UINT8 wForDevice_B,UINT8 bDeviceA_HNP2);
extern UINT8 flib_Host20_Close(UINT8 bForDeviceB);
extern UINT8 flib_Host20_ISR(void);
extern UINT8 flib_Host20_PortBusReset(void);
extern UINT8 flib_Host20_Suspend(void);
extern UINT8 flib_Host20_Resume(void);
extern void  flib_Host20_RemoteWakeUp(void);
extern UINT8 flib_Host20_Waiting_Result(void);
extern UINT8 flib_Host20_Issue_Control (UINT8 bEdNum,UINT8* pbCmd,UINT16 hwDataSize,UINT8* pbData);
extern UINT8  flib_Host20_Issue_Bulk(UINT8 bArrayListNum,UINT16 hwSize,UINT32 *pwBufferArray,UINT32 wOffset,UINT8 bDirection);
extern void  flib_Host20_Issue_ISO (UINT8 bCheckResult,UINT32 wEndPt,UINT32 wMaxPacketSize,UINT32 wSize,UINT32 *pwBufferArray,UINT32 wOffset,UINT8 bDirection,UINT8 bMult);
extern void  flib_Host20_Issue_Interrupt(UINT8 bArrayListNum,UINT16 hwSize,UINT32 *pwBufferArray,UINT32 wOffset,UINT8 bDirection);
extern UINT8 flib_Host20_Enumerate (UINT8 bNormalEnumerate,UINT8 bAddress);
extern void flib_DumpDeviceDescriptor (OTGH_Descriptor_Device_Struct *sDevice);
extern void flib_PrintDeviceInfo (void);
extern void flib_PrintDeviceInfo_ByInput (Host20_Attach_Device_Structure *psAttachDevice);
extern void flib_Host20_TimerISR(void);
extern void flib_Host20_TimerEnable(UINT32 wTime_ms);
extern void flib_Host20_InitStructure(void);
extern UINT32 flib_Host20_GetStructure(UINT8 Type);
extern void flib_Host20_ReleaseStructure(UINT8 Type,UINT32 pwAddress);
extern void flib_Host20_QHD_Control_Init(void);
extern void flib_Host20_Allocate_QHD(qHD_Structure  *psQHTemp,UINT8 bNextType,UINT8 bAddress,UINT8 bHead,UINT8 bEndPt, UINT32 wMaxPacketSize);
extern UINT8 flib_Host20_Send_qTD(qTD_Structure *spHeadqTD ,qHD_Structure *spTempqHD,UINT32 wTimeOutSec);
extern UINT8 flib_Host20_Issue_Control_Turbo (UINT8 bEdNum,UINT8* pbCmd,UINT32 wDataSize,UINT32 *pwPageAddress,UINT32 wCurrentOffset);  
extern void flib_Host20_Control_Command_Request(Host20_Control_Command_Structure *pbCMD,UINT8 bmRequestType_Temp,UINT8 bRequest_Temp,UINT16 wValue_Temp,UINT16 wIndex_Temp,UINT16 wLength_Temp);
extern void flib_DumpString (UINT8 *pbTemp,UINT8 bSize);  
extern void  flib_Host20_Interrupt_Init(UINT32 wForceInterval,UINT8 bS_Mask,UINT8 bMult);  
extern void flib_Host20_Asynchronous_Enable(void);
extern void flib_Host20_Asynchronous_Disable(void);
extern UINT8 flib_OTGH_Checking_RemoteWakeUp(void);
extern UINT8 flib_OTGH_RemoteWakeEnable(void);
extern void flib_Host20_StopRun_Setting(UINT8 bOption);
extern void flib_Host20_Asynchronous_Setting(UINT8 bOption);
extern void flib_Host20_Periodic_Setting(UINT8 bOption);
extern void flib_Host20_TimerEnable_UnLock(UINT32 wTime_Tick);  
extern void flib_Host20_TimerDisable_UnLock(void);
extern void flib_Host20_Issue_ISO_FixBufferMode_ISR(void);
extern void flib_Host20_Issue_ISO_FixBufferMode_Init(UINT32 wEndPt,UINT32 wMaxPacketSize,UINT8 *pbBuffer,UINT32 wOffset,UINT8 bDirection);
extern void  flib_Host20_ISO_Init (void);  
extern UINT8 flib_Host20_Issue_Control_ByMode (UINT8 bEdNum,UINT8* pbCmd,UINT16 hwDataSize,UINT8* pbData,UINT8 bModeSelect);
//john : remove force speed
//extern void flib_Host20_ForceSpeed(UINT8 bSpeedType);   
extern void  flib_Host20_Issue_ISO_FixBufferMode_Close(void);   
extern void  flib_Host20_Issue_ISO_siTD(UINT8 bCheckResult,UINT32 wEndPt,UINT32 wMaxPacketSize,UINT32 wSize
                            ,UINT32 *pwBufferArray,UINT32 wOffset,UINT8 bDirection,UINT8 bMult);   
extern void flib_Host20_RemoteWakeUp_Processing(void);
//=================== 5.Call Extern Function Definition =======================================================
//========================================================================================================
extern void flib_Debug_LED_Init(void);
extern void flib_Debug_LED_On_All(void);
extern void flib_Debug_LED_Off_All(void);
//=================== 6.Extern Variable Definition =======================================================
//========================================================================================================
extern UINT8 OTGH_GETDESCRIPTOR_DEVICE[]; 
extern UINT8 OTGH_GETDESCRIPTOR_CONFIG[]; 
extern UINT8 OTGH_SETADDRESS[]          ; 
extern UINT8 OTGH_SETCONFIGURATION[]    ;
extern UINT8 OTGH_GETDESCRIPTOR_OTG[]   ; 
extern UINT8 OTGH_SET_FEATURE_OTG[]     ;
extern UINT8 OTGH_SETDESCRIPTOR_DEVICE[]     ; 
extern UINT8 OTGH_GETDESCRIPTOR_STR70[]     ;
extern UINT8 OTGH_SETDESCRIPTOR_STR70[]     ; 
extern UINT8 OTGH_GETDESCRIPTOR_STR80[]     ;
extern UINT8 OTGH_SETDESCRIPTOR_STR80[]     ;   
extern UINT32 waIntervalMap[] ;
extern volatile UINT32 wOTG_Timer_Counter;
extern qHD_Structure     *psHost20_qHD_List_Control[3];
extern qHD_Structure     *psHost20_qHD_List_Bulk[3]; 
extern qHD_Structure     *psHost20_qHD_List_Interrupt[3]; 
extern UINT8             Host20_qTD_Manage[Host20_qTD_MAX];  //1=>Free 2=>used
extern UINT8             Host20_iTD_Manage[Host20_iTD_MAX];  //1=>Free 2=>used  
extern UINT8             Host20_DataPage_Manage[Host20_Page_MAX];  //1=>Free 2=>used  
extern Host20_Init_Condition_Structure sInitCondition;
extern volatile Host20_Attach_Device_Structure  sAttachDevice;
extern volatile UINT32 wOTG_Timer_Counter;
extern Periodic_Frame_List_Structure  *psHost20_FramList;
extern volatile UINT32 gwLastiTDSendOK;   
extern Host20_ISO_FixBufferMode_Structure sISOFixBufferMode;   
extern UINT8 bForceSpeed;//0=>All Clear 1=>Full Speed 2=>High Speed   
extern Host20_Attach_Device_Structure *psDevice_AP;  
#endif //LIB_HOST20__H





⌨️ 快捷键说明

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