File nut/include/dev/usb_stm32/usb_core.h

(C) COPYRIGHT 2010 STMicroelectronics ******************** * File Name : usb_core.h * Author : MCD Application Team * Version : V3.1.1 * Date : 04/07/2010 * Description : Standard protocol processing functions prototypes ******************************************************************************** * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.


Included Files


Preprocessor definitions

#define __USB_CORE_H

#define __IO volatile

#define Type_Recipient

#define Usb_rLength Usb_wLength

#define Usb_rOffset Usb_wOffset

#define USBwValue

#define USBwValue0

#define USBwValue1

#define USBwIndex

#define USBwIndex0

#define USBwIndex1

#define USBwLength

#define USBwLength0

#define USBwLength1


Typedef CONTROL_STATE

typedef enum _CONTROL_STATE CONTROL_STATE
enum _CONTROL_STATE  
   {  
      WAIT_SETUP;  
      SETTING_UP;  
      IN_DATA;  
      OUT_DATA;  
      LAST_IN_DATA;  
      LAST_OUT_DATA;  
      WAIT_STATUS_IN;  
      WAIT_STATUS_OUT;  
      STALLED;  
      PAUSE;  
   }  

Typedef ONE_DESCRIPTOR

typedef struct OneDescriptor ONE_DESCRIPTOR
struct OneDescriptor  
   {  
      uint8_t* Descriptor;  
      uint16_t Descriptor_Size;  
   }  

Typedef PONE_DESCRIPTOR

typedef struct OneDescriptor* PONE_DESCRIPTOR
See: Typedef ONE_DESCRIPTOR

Typedef RESULT

typedef enum _RESULT RESULT
enum _RESULT  
   {  
      USB_SUCCESS;  
      USB_ERROR;  
      USB_UNSUPPORT;  
      USB_NOT_READY;  
   }  

Typedef ENDPOINT_INFO

typedef struct _ENDPOINT_INFO ENDPOINT_INFO
struct _ENDPOINT_INFO  
   {  
      uint16_t Usb_wLength;  
      uint16_t Usb_wOffset;  
      uint16_t PacketSize;  
      uint8_t* (*CopyData)(uint16_t Length);  
   }  

Typedef DEVICE

typedef struct _DEVICE DEVICE
struct _DEVICE  
   {  
      uint8_t Total_Endpoint;  
      uint8_t Total_Configuration;  
   }  

Type struct BW

struct BW
struct BW  
   {  
      uint8_t bb1;  
      uint8_t bb0;  
   }  

Typedef uint16_t_uint8_t

typedef union {...} uint16_t_uint8_t
union  
   {  
      uint16_t w;  
      struct BW  
        {  
            uint8_t bb1;  
            uint8_t bb0;  
        }  
     bw;  
   }  

Typedef DEVICE_INFO

typedef struct _DEVICE_INFO DEVICE_INFO
struct _DEVICE_INFO  
   {  
      uint8_t USBbmRequestType;  
      uint8_t USBbRequest;  
      uint16_t_uint8_t USBwValues;  
      uint16_t_uint8_t USBwIndexs;  
      uint16_t_uint8_t USBwLengths;  
      uint8_t ControlState;  
      uint8_t Current_Feature;  
      uint8_t Current_Configuration;  
      uint8_t Current_Interface;  
      uint8_t Current_AlternateSetting;  
      ENDPOINT_INFO Ctrl_Info;  
   }  

Typedef DEVICE_PROP

typedef struct _DEVICE_PROP DEVICE_PROP
struct _DEVICE_PROP  
   {  
      void (*Init)(void);  
      void (*Reset)(void);  
      void (*Process_Status_IN)(void);  
      void (*Process_Status_OUT)(void);  
      RESULT (*Class_Data_Setup)(uint8_t RequestNo);  
      RESULT (*Class_NoData_Setup)(uint8_t RequestNo);  
      RESULT (*Class_Get_Interface_Setting)(uint8_t Interface,uint8_t AlternateSetting);  
      uint8_t* (*GetDeviceDescriptor)(uint16_t Length);  
      uint8_t* (*GetConfigDescriptor)(uint16_t Length);  
      uint8_t* (*GetStringDescriptor)(uint16_t Length);  
      uint8_t* RxEP_buffer;  
      uint8_t MaxPacketSize;  
   }  

Typedef USER_STANDARD_REQUESTS

typedef struct _USER_STANDARD_REQUESTS USER_STANDARD_REQUESTS
struct _USER_STANDARD_REQUESTS  
   {  
      void (*User_GetConfiguration)(void);  
      void (*User_SetConfiguration)(void);  
      void (*User_GetInterface)(void);  
      void (*User_SetInterface)(void);  
      void (*User_GetStatus)(void);  
      void (*User_ClearFeature)(void);  
      void (*User_SetEndPointFeature)(void);  
      void (*User_SetDeviceFeature)(void);  
      void (*User_SetDeviceAddress)(void);  
   }  

External Variables

Device_Property
extern DEVICE_PROP Device_Property

User_Standard_Requests
extern USER_STANDARD_REQUESTS User_Standard_Requests

Device_Table
extern DEVICE Device_Table

Device_Info
extern DEVICE_INFO Device_Info

Defined in: nut/arch/cm3/dev/stm/stm32_usb_init.c

SaveRState
extern volatile uint16_t SaveRState

Defined in: nut/arch/cm3/dev/stm/stm32_otgd_fs_int.c

SaveTState
extern volatile uint16_t SaveTState

Defined in: nut/arch/cm3/dev/stm/stm32_otgd_fs_int.c