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

📄 obj_usbdesc.h

📁 AT91rm9200的引导代码
💻 H
📖 第 1 页 / 共 2 页
字号:
		char    type,         /* Descriptor type */
		char    index,        /* Descriptor index */
		short   feature,      /* Feature */
		void    *pPrvtStdDt); /* Pointer to private Standard data */

	void (*GetConfiguration)(
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*GetDescriptor) (
		char    type,         /* Descriptor type */
		char    index,        /* Descriptor index */
		short   langID,       /* Language ID */
		short   length,       /* Desriptor length */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*GetInterface) (
		short   interface,    /* Interface index */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*GetStatus) (
		char    recipient,    /* device, interface, endpoint */
		short   index,        /* interface or endpoint index */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*SetAddress) (
		char    address,      /* device, interface, endpoint */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*SetConfiguration) (
		short   cfgValue,     /* Configuration value */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*SetDescriptor) (
		char    type,         /* Descriptor type */
		char    index,        /* Descriptor index */
		short   langID,       /* Language ID */
		short   length,       /* Desriptor length */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*SetFeature) (
		char    recipient,    /* device, interface, endpoint */
		short   index,        /* interface or endpoint index */
		short   feature,      /* Feature selector */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*SetInterface) (
		short   interface,    /* Interface index */
		short   setting,      /* Alternative setting */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
	void (*SynchFrame) (
		short   endpoint,     /* Endpoint index */
		void    *pPrvtStdDt); /* Pointer to private Standard data */
/* ======================================================================= */
/* Following pointers are used by dispatchClassRequest()                   */
/* and dispatchVendorRequest()                                             */
/* ======================================================================= */
	void *pPrivateStandardData;
	void *pPrivateClassData;
	void *pPrivateVendorData;

/* Control Endpoint definition */
	AT91PS_UDP     pUdp;
	char           epId;
} AT91S_UsbDesc, *AT91PS_UsbDesc;

typedef AT91PS_UsbDesc (*AT91PF_OpenUsbDesc) (AT91PS_UsbDesc, AT91PS_UDP,	char);

typedef void (*AT91PF_DispatchRequest)       (AT91PS_UsbDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DispatchClassRequest)  (AT91PS_UsbSetup, void *);
typedef void (*AT91PF_DispatchVendorRequest) (AT91PS_UsbSetup, void *);
typedef void (*AT91PF_ClearFeature)          (char, char, short, void *);
typedef void (*AT91PF_GetConfiguration)      (void *);
typedef void (*AT91PF_GetDescriptor)         (char, char, short, short, void *);
typedef void (*AT91PF_GetInterface)          (short, void *);
typedef void (*AT91PF_GetStatus)             (char, short, void *);
typedef void (*AT91PF_SetAddress)            (char, void *);
typedef void (*AT91PF_SetConfiguration)      (short, void *);
typedef void (*AT91PF_SetDescriptor)         (char, char, short, short, void *);
typedef void (*AT91PF_SetFeature)            (char, short, short, void *);
typedef void (*AT91PF_SetInterface)          (short, short, void *);
typedef void (*AT91PF_SynchFrame)            (short, void *);

/* *********************************************************************** */
/* Following functions are define in obj_usbdesc.c. They handle standard  */
/* request in order to match with USB spec. Rev. 1.1. Once the request has */
/* been checked according to the USB status, the request is transmitted to */
/* the application calling the application request handler.                */
/* *********************************************************************** */


/* ======================================================================= */
/* Following functions are used when a Setup packet has been sent to the   */
/* device. According to the request, they call the corresponding functions */
/* ======================================================================= */
extern AT91PS_UsbDesc AT91F_OpenUsbDesc(
	AT91PS_UsbDesc  pUsbDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UDP      pUdp,      /* Uregister structure */
	char            epId);     /* endpoint number */

/* usbDescDispatchRequest handle standart request or call */
/* USBDesc->dispatchVendorRequest() or                    */
/* USBDesc->dispatchClassRequest()                        */
extern void AT91F_UsbDescDispatchRequest(
	AT91PS_UsbDesc const pDesc,  /* pointer to application request handlers */
	AT91PS_UsbSetup  pSetup); /* Descriptor type */


/* ======================================================================= */
/* Following functions handle standard request they are called by the      */
/* application through usbDescDispatchRequest ().                          */
/* If this is a valid request, they transmit the request to the application*/
/* layer                                                                   */
/* ======================================================================= */

extern void AT91F_UsbDescClearFeature(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescGetConfiguration(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescGetDescriptor(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescGetInterface(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescGetStatus(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescSetAddress(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescSetConfiguration(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescSetDescriptor(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescSetFeature(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescSetInterface(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */
extern void AT91F_UsbDescSynchFrame(
	AT91PS_UsbDesc const pDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbSetup  pSetup);        /* Descriptor type */

// Small utility function to configure the UDP endpoint
// according to the endpoint descriptor
extern void AT91F_UdpConfigure(
	AT91PS_UsbDesc const pUsbDesc,  /* pointer to a AT91S_UsbDesc structure */
	AT91PS_UsbEndpoint const pEp);

/* ************************************ */
/* usbSendStatus                        */
/*                                      */
/* Arguments:                           */
/*     pPipe: pointer to default pipe   */
/*            handler                   */
/* Return:                              */
/*     Nothing                          */
/* Description:                         */
/*     Acknowledge a control write tx.  */
/*     Send a sero length packet        */
/* ************************************ */
//__inline void AT91F_UsbDescSendStatus(AT91PS_Pipe pPipe)
//{
//	/* Send a zero length packet */
//	pPipe->Write(pPipe, 0, 0);
//}

#endif /* obj_usbdesc_h */

⌨️ 快捷键说明

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