New USB stack
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 10 May 2012 10:01:01 +0000 (19:01 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 10 May 2012 10:01:01 +0000 (19:01 +0900)
56 files changed:
ChangeLog
NEWS
README
STM32_USB-FS-Device_Driver/inc/otgd_fs_cal.h [deleted file]
STM32_USB-FS-Device_Driver/inc/otgd_fs_dev.h [deleted file]
STM32_USB-FS-Device_Driver/inc/otgd_fs_int.h [deleted file]
STM32_USB-FS-Device_Driver/inc/otgd_fs_pcd.h [deleted file]
STM32_USB-FS-Device_Driver/inc/otgd_fs_regs.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_core.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_def.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_init.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_int.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_lib.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_mem.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_regs.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_sil.h [deleted file]
STM32_USB-FS-Device_Driver/inc/usb_type.h [deleted file]
STM32_USB-FS-Device_Driver/src/otgd_fs_cal.c [deleted file]
STM32_USB-FS-Device_Driver/src/otgd_fs_dev.c [deleted file]
STM32_USB-FS-Device_Driver/src/otgd_fs_int.c [deleted file]
STM32_USB-FS-Device_Driver/src/otgd_fs_pcd.c [deleted file]
STM32_USB-FS-Device_Driver/src/usb_core.c [deleted file]
STM32_USB-FS-Device_Driver/src/usb_init.c [deleted file]
STM32_USB-FS-Device_Driver/src/usb_int.c [deleted file]
STM32_USB-FS-Device_Driver/src/usb_mem.c [deleted file]
STM32_USB-FS-Device_Driver/src/usb_regs.c [deleted file]
STM32_USB-FS-Device_Driver/src/usb_sil.c [deleted file]
Virtual_COM_Port/hw_config.c [deleted file]
Virtual_COM_Port/hw_config.h [deleted file]
Virtual_COM_Port/platform.h [deleted file]
Virtual_COM_Port/platform_config.h [deleted file]
Virtual_COM_Port/usb_conf.h [deleted file]
Virtual_COM_Port/usb_desc.c [deleted file]
Virtual_COM_Port/usb_desc.h [deleted file]
Virtual_COM_Port/usb_endp.c [deleted file]
Virtual_COM_Port/usb_istr.c [deleted file]
Virtual_COM_Port/usb_istr.h [deleted file]
Virtual_COM_Port/usb_prop.c [deleted file]
Virtual_COM_Port/usb_prop.h [deleted file]
Virtual_COM_Port/usb_pwr.c [deleted file]
Virtual_COM_Port/usb_pwr.h [deleted file]
boards/common/hw_config.c
src/Makefile.in
src/main.c
src/stmusb.mk [deleted file]
src/usb-cdc-vport.c [deleted file]
src/usb-icc.c
src/usb_conf.h
src/usb_desc.c
src/usb_endp.c
src/usb_lld.c
src/usb_lld.h
src/usb_msc.c
src/usb_prop.c
src/usb_prop.h [deleted file]
src/vcomport.mk [deleted file]

index 98f0f26..239f3c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,139 @@
+2012-05-10  Niibe Yutaka  <gniibe@fsij.org>
+
+       * STM32_USB-FS-Device_Driver, Virtual_COM_Port: Remove.
+
+       * src/usb_lld.c (#include): Don't include usb_lib.h.
+       (RECIPIENT, REG_BASE PMA_ADDR, CNTR, ISTR, FNR, DADDR, BTABLE)
+       (ISTR_CTR, ISTR_DOVR, ISTR_ERR, ISTR_WKUP, ISTR_SUSP, ISTR_RESET)
+       (ISTR_SOF, ISTR_ESOF, ISTR_DIR, ISTR_EP_ID, CLR_CTR, CLR_DOVR)
+       (CLR_ERR, CLR_WKUP, CLR_SUSP, CLR_RESET, CLR_SOF, CLR_ESOF)
+       (CNTR_CTRM, CNTR_DOVRM, CNTR_ERRM, CNTR_WKUPM, CNTR_SUSPM)
+       (CNTR_RESETM, CNTR_SOFM, CNTR_ESOFM, CNTR_RESUME, CNTR_FSUSP)
+       (CNTR_LPMODE, CNTR_PDWN, CNTR_FRES, DADDR_EF, DADDR_ADD)
+       (EP_CTR_RX, EP_DTOG_RX, EPRX_STAT, EP_SETUP, EP_T_FIELD, EP_KIND)
+       (EP_CTR_TX, EP_DTOG_TX, EPTX_STAT, EPADDR_FIELD, EPREG_MASK)
+       (EP_TX_DIS, EP_TX_STALL, EP_TX_NAK, EP_TX_VALID, EPTX_DTOG1)
+       (EPTX_DTOG2, EP_RX_DIS, EP_RX_STALL, EP_RX_NAK, EP_RX_VALID)
+       (EPRX_DTOG1, EPRX_DTOG2): New. Compatible to ST's USB-FS-Device_Lib.
+       (CH_IRQ_HANDLER): Call usb_interrupt_handler (was: USB_Istr).
+       (EP1_IN_Callback, EP2_IN_Callback, EP3_IN_Callback)
+       (EP4_IN_Callback, EP5_IN_Callback, EP6_IN_Callback)
+       (EP7_IN_Callback, EP1_OUT_Callback, EP2_OUT_Callback)
+       (EP3_OUT_Callback, EP4_OUT_Callback, EP5_OUT_Callback)
+       (EP6_OUT_Callback, EP7_OUT_Callback): New.  Implement here.
+       Compatible to ST's USB-FS-Device_Lib.
+       (USB_MAX_PACKET_SIZE): New.
+       (GET_STATUS, CLEAR_FEATURE, RESERVED1, SET_FEATURE, RESERVED2)
+       (SET_ADDRESS, GET_DESCRIPTOR, SET_DESCRIPTOR, GET_CONFIGURATION)
+       (SET_CONFIGURATION, GET_INTERFACE, SET_INTERFACE)
+       (SYNCH_FRAME,TOTAL_REQUEST): New for USB control transfer.
+       (enum CONTROL_STATE): New for state machine of control pipe.
+       (enum FEATURE_SELECTOR): New.
+       (struct DATA_INFO, struct CONTROL_INFO, struct DEVICE_INFO): New.
+       (ctrl_p, dev_p, data_p, Control_Info, Device_Info, Data_Info):
+       New.
+       (usb_lld_stall_tx, usb_lld_stall_rx)
+       (usb_lld_tx_data_len, usb_lld_txcpy, usb_lld_tx_enable)
+       (usb_lld_write, usb_lld_rx_enable, usb_lld_rx_data_len)
+       (usb_lld_rxcpy): Move from usb_lld.h and not inline.
+       (usb_lld_reset, usb_lld_setup_endpoint)
+       (usb_lld_set_configuration, usb_lld_current_configuration)
+       (usb_lld_set_feature, usb_lld_set_data_to_send): New.
+       (usb_lld_to_pmabuf, usb_lld_from_pmabuf): Clean up.
+       (usb_lld_init): New implementation.
+       (st103_set_btable, st103_get_istr, st103_set_istr, st103_set_cntr)
+       (st103_set_daddr, st103_set_epreg, st103_get_epreg)
+       (st103_set_tx_addr, st103_get_tx_addr, st103_set_tx_count)
+       (st103_get_tx_count, st103_set_rx_addr, st103_get_rx_addr)
+       (st103_set_rx_buf_size, st103_get_rx_count, st103_ep_clear_ctr_rx)
+       (st103_ep_clear_ctr_tx, st103_ep_set_rxtx_status)
+       (st103_ep_set_rx_status, st103_ep_get_rx_status)
+       (st103_ep_set_tx_status, st103_ep_get_tx_status)
+       (st103_ep_clear_dtog_rx, st103_ep_clear_dtog_tx): New lower-level
+       functions for USB related registers access.
+       (usb_interrupt_handler, usb_handle_transfer)
+       (handle_datastage_out, handle_datastage_in, handle_setup0)
+       (handle_in0, handle_out0)
+       (std_none, std_get_status, std_clear_feature, std_set_feature,
+       std_set_address, std_get_descriptor, std_get_configuration,
+       std_set_configuration, std_get_interface, std_set_interface)
+       (std_request_handler): New USB stack implementation.
+
+       * src/usb_lld.h (usb_lld_stall_tx, usb_lld_stall_rx)
+       (usb_lld_tx_data_len, usb_lld_txcpy, usb_lld_tx_enable)
+       (usb_lld_write, usb_lld_rx_enable, usb_lld_rx_data_len)
+       (usb_lld_rxcpy): Those are not inline functions anymore.
+       (USB_DEVICE_DESCRIPTOR_TYPE, USB_CONFIGURATION_DESCRIPTOR_TYPE)
+       (USB_STRING_DESCRIPTOR_TYPE, USB_INTERFACE_DESCRIPTOR_TYPE)
+       (USB_ENDPOINT_DESCRIPTOR_TYPE, STANDARD_ENDPOINT_DESC_SIZE)
+       (ENDP0, ENDP1, ENDP2, ENDP3, ENDP4, ENDP5, ENDP6, ENDP7)
+       (EP_BULK, EP_CONTROL, EP_ISOCHRONOUS, EP_INTERRUPT)
+       (DEVICE_RECIPIENT, INTERFACE_RECIPIENT, ENDPOINT_RECIPIENT)
+       (ENDPOINT_RECIPIENT, OTHER_RECIPIENT)
+       (DEVICE_DESCRIPTOR, CONFIG_DESCRIPTOR, STRING_DESCRIPTOR)
+       (INTERFACE_DESCRIPTOR, ENDPOINT_DESCRIPTOR)
+       (REQUEST_TYPE, STANDARD_REQUEST, CLASS_REQUEST, VENDOR_REQUEST)
+       (USB_UNSUPPORT, USB_SUCCESS)
+       (USB_EVENT_RESET, USB_EVENT_ADDRESS, USB_EVENT_CONFIG)
+       (USB_EVENT_SUSPEND, USB_EVENT_WAKEUP, USB_EVENT_STALL)
+       (USB_SET_INTERFACE, USB_GET_INTERFACE, USB_QUERY_INTERFACE)
+       (UNCONNECTED, ATTACHED, POWERED, SUSPENDED, ADDRESSED)
+       (CONFIGURED, USB_Cable_Config): New.  Compatible to ST's
+       USB-FS-Device_Lib.
+       (struct Descriptor, struct usb_device_method)
+       (Device_Descriptor, Config_Descriptor, String_Descriptors)
+       (STM32_USB_IRQ_PRIORITY, bDeviceState, Device_Method)
+       (usb_lld_init, usb_lld_reset, usb_lld_setup_endpoint)
+       (usb_lld_set_configuration, usb_lld_current_configuration)
+       (usb_lld_set_feature, usb_lld_set_data_to_send): New API.
+
+       * src/usb_prop.c(#include): Only include usb_lld.h for USB.
+       (SetEPRxCount_allocated_size): Remove.
+       (struct line_coding, line_coding, Virtual_Com_Port_Data_Setup)
+       (Virtual_Com_Port_NoData_Setup): Add from usb-cdc-vport.c.
+       (gnuk_device_init, gnuk_device_reset, gnuk_setup_with_data)
+       (gnuk_setup_with_nodata): Follow the API change of USB stack.
+       (gnuk_setup_endpoints_for_interface, gnuk_get_descriptor)
+       (gnuk_usb_event, gnuk_interface): New.
+       (gnuk_device_SetConfiguration, gnuk_device_SetInterface)
+       (gnuk_device_SetDeviceAddress, gnuk_device_Status_In)
+       (gnuk_device_Status_Out, gnuk_device_GetDeviceDescriptor)
+       (gnuk_device_GetConfigDescriptor, gnuk_device_GetStringDescriptor)
+       (gnuk_device_Get_Interface_Setting, gnuk_clock_frequencies)
+       (gnuk_data_rates, msc_lun_info, Device_Table)
+       (User_Standard_Requests): Remove.
+       (Device_Method): Replace Device_Property.
+
+       * src/usb_msc.c (#include): Only include usb_lld.h for USB.
+
+       * src/usb_endp.c (#include): Only include usb_lld.h for USB.
+       (EP5_OUT_Callback): Follow the API change of USB stack.
+
+       * src/usb_desc.c (#include): Only include usb_lld.h for USB.
+       Add usb_conf.h.
+       (Device_Descriptor, Config_Descriptor): Follow the API change
+       of USB stack.
+       (String_Descriptors): New, rename from String_Descriptor.
+
+       * src/usb_conf.h (EP_NUM, BTABLE_ADDRESS, IMR_MSK): Remove.
+       (NUM_STRING_DESC): Add.
+
+       * src/usb-icc.c (#include): Only include usb_lld.h for USB.
+
+       * src/usb-cdc-vport.c, src/usb_prop.h: Remove.
+
+       * src/stmusb.mk, src/vcomport.mk: Remove.
+
+       * src/main.c (#include): Only include usb_lld.h for USB.
+       (main): Remove call to USB_Init.
+
+       * src/Makefile.in (include): Remove stmusb.mk, vcomport.mk.
+       (VCOMSRC) [ENABLE_VCOMPORT]: Add.
+       (INCDIR): Remove STMUSBINCDIR and VCOMDIR.
+
+       * boards/common/hw_config.c (Enter_LowPowerMode)
+       (Leave_LowPowerMode): Remove.
+
 2012-02-02  Niibe Yutaka  <gniibe@fsij.org>
 
        * Version 0.17.
diff --git a/NEWS b/NEWS
index 8293239..8c055cd 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,14 @@
 Gnuk NEWS - User visible changes
 
+* Major changes in Gnuk 0.18
+
+  Released 2012-05-XX, by NIIBE Yutaka
+
+** New USB stack
+Gnuk used to use USB stack of USB-FS-Device_Lib by ST.  Now, it has
+original implementation.  Hopefully, size and quality are improved.
+
+
 * Major changes in Gnuk 0.17
 
   Released 2012-02-02, by NIIBE Yutaka
diff --git a/README b/README
index 25ad9c5..227bd52 100644 (file)
--- a/README
+++ b/README
@@ -225,16 +225,6 @@ Gnuk is distributed with external source code.
   The file include/polarssl/bn_mul.h is heavily modified for ARM
   Cortex-M3.
 
-* STM32_USB-FS-Device_Driver/ -- a part of USB-FS-Device_Lib
-* Virtual_COM_Port/ -- a part of USB-FS-Device_Lib
-
-  STM32F10x USB Full Speed Device Library (USB-FS-Device_Lib)
-  is a STM32F10x library for USB functionality.
-
-  I took Libraries/STM32_USB-FS-Device_Driver and 
-  Project/Virtual_COM_Port in STM32_USB-FS-Device_Lib distribution.
-  See http://www.st.com/ for detail.
-
 
 Host Requirements
 =================
diff --git a/STM32_USB-FS-Device_Driver/inc/otgd_fs_cal.h b/STM32_USB-FS-Device_Driver/inc/otgd_fs_cal.h
deleted file mode 100644 (file)
index 17761d4..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otgd_fs_cal.h
-* Author             : STMicroelectronics
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Header of OTG FS Device Core Access Layer interface.
-********************************************************************************
-* THE PRESENT SOFTWARE 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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
-* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
-*******************************************************************************/
-#ifndef __OTG_CORE_H__
-#define __OTG_CORE_H__
-
-#ifdef STM32F10X_CL
-
-#include "stm32f10x.h"
-#include "usb_type.h"
-
-#if defined ( __CC_ARM   )
-  #define __packed        __packed                     /*!< packing keyword for ARM Compiler */
-#elif defined ( __ICCARM__ )
-  #define __packed        __packed                     /*!< packing keyword for IAR Compiler */
-#elif defined   (  __GNUC__  )
-  #define __packed        __attribute__ ((__packed__)) /*!< packing keyword for GNU Compiler */
-#elif defined   (  __TASKING__  )                      /*!< packing keyword for TASKING Compiler */
-  #define __packed   
-#endif /* __CC_ARM */
-
-/*******************************************************************************
-                                define and types
-*******************************************************************************/
-
-#define DEVICE_MODE_ENABLED
-
-#ifndef NULL
-#define NULL ((void *)0)
-#endif
-
-
-#define DEV_EP_TX_DIS       0x0000
-#define DEV_EP_TX_STALL     0x0010
-#define DEV_EP_TX_NAK       0x0020
-#define DEV_EP_TX_VALID     0x0030
-#define DEV_EP_RX_DIS       0x0000
-#define DEV_EP_RX_STALL     0x1000
-#define DEV_EP_RX_NAK       0x2000
-#define DEV_EP_RX_VALID     0x3000
-
-/*****************          GLOBAL DEFINES          ***************************/
-
-#define GAHBCFG_TXFEMPTYLVL_EMPTY              1
-#define GAHBCFG_TXFEMPTYLVL_HALFEMPTY          0
-
-#define GAHBCFG_GLBINT_ENABLE                  1
-#define GAHBCFG_INT_DMA_BURST_SINGLE           0
-#define GAHBCFG_INT_DMA_BURST_INCR             1
-#define GAHBCFG_INT_DMA_BURST_INCR4            3
-#define GAHBCFG_INT_DMA_BURST_INCR8            5
-#define GAHBCFG_INT_DMA_BURST_INCR16           7
-#define GAHBCFG_DMAENABLE                      1
-#define GAHBCFG_TXFEMPTYLVL_EMPTY              1
-#define GAHBCFG_TXFEMPTYLVL_HALFEMPTY          0
-
-#define GRXSTS_PKTSTS_IN                       2
-#define GRXSTS_PKTSTS_IN_XFER_COMP             3
-#define GRXSTS_PKTSTS_DATA_TOGGLE_ERR          5
-#define GRXSTS_PKTSTS_CH_HALTED                7
-
-#define DEVICE_MODE                            0
-#define HOST_MODE                              1
-
-/*****************           DEVICE DEFINES         ***************************/
-
-#define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ     0
-#define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ     1
-#define DSTS_ENUMSPD_LS_PHY_6MHZ               2
-#define DSTS_ENUMSPD_FS_PHY_48MHZ              3
-
-#define DCFG_FRAME_INTERVAL_80                 0
-#define DCFG_FRAME_INTERVAL_85                 1
-#define DCFG_FRAME_INTERVAL_90                 2
-#define DCFG_FRAME_INTERVAL_95                 3
-
-#define DEP0CTL_MPS_64                         0
-#define DEP0CTL_MPS_32                         1
-#define DEP0CTL_MPS_16                         2
-#define DEP0CTL_MPS_8                          3
-
-#define EP_SPEED_LOW                           0
-#define EP_SPEED_FULL                          1
-#define EP_SPEED_HIGH                          2
-
-#define EP_TYPE_CTRL                           0
-#define EP_TYPE_ISOC                           1
-#define EP_TYPE_BULK                           2
-#define EP_TYPE_INTR                           3
-
-#define STS_GOUT_NAK                           1
-#define STS_DATA_UPDT                          2
-#define STS_XFER_COMP                          3
-#define STS_SETUP_COMP                         4
-#define STS_SETUP_UPDT                         6
-
-
-
-
-typedef enum {
-
-  USB_OTG_OK,
-  USB_OTG_FAIL
-
-}USB_OTG_Status;
-
-typedef struct USB_OTG_hc
-{
-  uint8_t       hc_num;
-  uint8_t       dev_addr ;
-  uint8_t        ep_num;
-  uint8_t       ep_is_in;
-  uint8_t       speed;
-  uint8_t       ep_type;
-  uint16_t       max_packet;
-  uint8_t       data_pid;
-  uint16_t       multi_count;
-  uint8_t        *xfer_buff;
-  uint32_t       xfer_len;
-}
-USB_OTG_HC , *PUSB_OTG_HC;
-
-typedef struct USB_OTG_ep
-{
-  uint8_t        num;
-  uint8_t        is_in;
-  uint32_t       tx_fifo_num;
-  uint32_t       type;
-  uint8_t        data_pid_start;
-  uint8_t        even_odd_frame;
-  uint32_t       maxpacket;
-  uint8_t        *xfer_buff;
-  uint32_t       xfer_len;
-  uint32_t       xfer_count;
-}
-
-USB_OTG_EP , *PUSB_OTG_EP;
-
-/********************************************************************************
-                                      MACRO'S
-********************************************************************************/
-
-#define CLEAR_IN_EP_INTR(epnum,intr) \
-  diepint.d32=0; \
-  diepint.b.intr = 1; \
-  WRITE_REG32(&core_regs.inep_regs[epnum]->dev_in_ep_int,diepint.d32);
-
-#define CLEAR_OUT_EP_INTR(epnum,intr) \
-  doepint.d32=0; \
-  doepint.b.intr = 1; \
-  WRITE_REG32(&core_regs.outep_regs[epnum]->dev_out_ep_int,doepint.d32);
-
-
-#define READ_REG32(reg)  (*(__IO uint32_t *)reg)
-
-#define WRITE_REG32(reg,value) (*(__IO uint32_t *)reg = value)
-
-#define MODIFY_REG32(reg,clear_mask,set_mask) \
-  WRITE_REG32(reg, (((READ_REG32(reg)) & ~clear_mask) | set_mask ) )
-
-
-#define uDELAY(usec)  udelay(usec)
-#define mDELAY(msec)  uDELAY(msec * 1000)
-
-#define _OTGD_FS_GATE_PHYCLK     *(__IO uint32_t*)(0x50000E00) = 0x03
-#define _OTGD_FS_UNGATE_PHYCLK   *(__IO uint32_t*)(0x50000E00) = 0x00
-
-/*******************************************************************************
-                   this can be changed for real time base
-*******************************************************************************/
-static void udelay (const uint32_t usec)
-{
-  uint32_t count = 0;
-  const uint32_t utime = usec * 10;
-  do
-  {
-    if ( ++count > utime )
-    {
-      return ;
-    }
-  }
-  while (1);
-}
-/********************************************************************************
-                     EXPORTED FUNCTIONS FROM THE OTGD_FS_CAL LAYER
-********************************************************************************/
-USB_OTG_Status  OTGD_FS_CoreInit(void);
-USB_OTG_Status  OTGD_FS_SetAddress(uint32_t BaseAddress);
-USB_OTG_Status  OTGD_FS_EnableGlobalInt(void);
-USB_OTG_Status  OTGD_FS_DisableGlobalInt(void);
-
-USB_OTG_Status  USB_OTG_CoreInitHost(void);
-USB_OTG_Status  USB_OTG_EnableHostInt(void);
-USB_OTG_Status  USB_OTG_DisableHostInt(void);
-
-void*  OTGD_FS_ReadPacket(uint8_t *dest, uint16_t bytes);
-USB_OTG_Status OTGD_FS_WritePacket(uint8_t *src, uint8_t ch_ep_num, uint16_t bytes);
-
-USB_OTG_Status  USB_OTG_HcInit(USB_OTG_HC *hc);
-USB_OTG_Status  USB_OTG_StartXfer(USB_OTG_HC *hc);
-
-uint32_t USB_OTG_ResetPort( void);
-
-uint32_t USB_OTG_ReadHPRT0(void);
-uint32_t OTGD_FS_ReadDevAllInEPItr(void);
-uint32_t OTGD_FS_ReadCoreItr(void);
-uint32_t OTGD_FS_ReadOtgItr (void);
-uint32_t USB_OTG_ReadHostAllChannels_intr (void);
-uint8_t IsHostMode(void);
-uint8_t IsDeviceMode(void);
-USB_OTG_Status USB_OTG_HcInit(USB_OTG_HC *hc);
-USB_OTG_Status USB_OTG_HcHalt(uint8_t hc_num);
-
-USB_OTG_Status  OTGD_FS_FlushTxFifo (uint32_t num);
-USB_OTG_Status  OTGD_FS_FlushRxFifo (void);
-USB_OTG_Status  OTGD_FS_SetHostMode (void);
-
-USB_OTG_Status OTGD_FS_PhyInit(void);
-USB_OTG_Status USB_OTG_HcStartXfer(USB_OTG_HC *hc);
-
-USB_OTG_Status OTGD_FS_CoreInitDev (void);
-USB_OTG_Status  OTGD_FS_EnableDevInt(void);
-USB_OTG_Status  OTGD_FS_EP0Activate(void);
-USB_OTG_Status  OTGD_FS_EPActivate(USB_OTG_EP *ep);
-USB_OTG_Status  OTGD_FS_EPDeactivate(USB_OTG_EP *ep);
-
-USB_OTG_Status  OTGD_FS_EPStartXfer(USB_OTG_EP *ep);
-USB_OTG_Status OTGD_FS_EP0StartXfer(USB_OTG_EP *ep);
-
-USB_OTG_Status  OTGD_FS_EPSetStall(USB_OTG_EP *ep);
-USB_OTG_Status  OTGD_FS_EPClearStall(USB_OTG_EP *ep);
-uint32_t OTGD_FS_ReadDevAllOutEp_itr(void);
-uint32_t OTGD_FS_ReadDevOutEP_itr(USB_OTG_EP *ep);
-uint32_t OTGD_FS_ReadDevAllInEPItr(void);
-
-
-uint32_t OTGD_FS_Dev_GetEPStatus(USB_OTG_EP *ep);
-void OTGD_FS_Dev_SetEPStatus(USB_OTG_EP *ep, uint32_t Status);
-void OTGD_FS_Dev_SetRemoteWakeup(void);
-void OTGD_FS_Dev_ResetRemoteWakeup(void);
-
-#endif /* STM32F10X_CL */
-
-#endif
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
-
diff --git a/STM32_USB-FS-Device_Driver/inc/otgd_fs_dev.h b/STM32_USB-FS-Device_Driver/inc/otgd_fs_dev.h
deleted file mode 100644 (file)
index d0c7554..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otg_dev.h
-* Author             : STMicroelectronics
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : linking defines
-********************************************************************************
-* THE PRESENT SOFTWARE 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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
-* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __OTG_DEV_H__
-#define __OTG_DEV_H__
-
-#ifdef STM32F10X_CL
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f10x.h"
-#include "usb_type.h"
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-
-/* Endpoint types */
-#define OTG_DEV_EP_TYPE_CONTROL       0
-#define OTG_DEV_EP_TYPE_ISOC          1
-#define OTG_DEV_EP_TYPE_BULK          2
-#define OTG_DEV_EP_TYPE_INT           3
-
-/* Endpoint Addresses (w/direction) */
-#define EP0_OUT                    0x00  
-#define EP0_IN                     0x80  
-#define EP1_OUT                    0x01  
-#define EP1_IN                     0x81  
-#define EP2_OUT                    0x02  
-#define EP2_IN                     0x82  
-#define EP3_OUT                    0x03  
-#define EP3_IN                     0x83  
-
-
-/*-*-*-*-*-*-*-*-*-* Replace the usb_regs.h defines -*-*-*-*-*-*-*-*-*-*-*-*-*/
-/* endpoints enumeration */
-#define ENDP0   ((uint8_t)0)
-#define ENDP1   ((uint8_t)1)
-#define ENDP2   ((uint8_t)2)
-#define ENDP3   ((uint8_t)3)
-#define ENDP4   ((uint8_t)4)
-#define ENDP5   ((uint8_t)5)
-#define ENDP6   ((uint8_t)6)
-#define ENDP7   ((uint8_t)7)
-
-/* EP Transmit status defines */
-#define EP_TX_DIS              DEV_EP_TX_DIS)  /* EndPoint TX DISabled */
-#define EP_TX_STALL            DEV_EP_TX_STALL /* EndPoint TX STALLed */
-#define EP_TX_NAK              DEV_EP_TX_NAK   /* EndPoint TX NAKed */
-#define EP_TX_VALID            DEV_EP_TX_VALID /* EndPoint TX VALID */
-
-/* EP Transmit status defines */
-#define EP_RX_DIS              DEV_EP_RX_DIS   /* EndPoint RX DISabled */
-#define EP_RX_STALL            DEV_EP_RX_STALL /* EndPoint RX STALLed */
-#define EP_RX_NAK              DEV_EP_RX_NAK   /* EndPoint RX NAKed */
-#define EP_RX_VALID            DEV_EP_RX_VALID /* EndPoint RX VALID */
-/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-
-/* Exported macro ------------------------------------------------------------*/
-#define _GetEPTxStatus(bEpNum)        ((uint16_t)OTG_DEV_GetEPTxStatus(bEpNum))
-#define _GetEPRxStatus(bEpNum)        ((uint16_t)OTG_DEV_GetEPRxStatus(bEpNum))
-
-#define _SetEPTxStatus(bEpNum,wState) (OTG_DEV_SetEPTxStatus(bEpNum, wState))
-#define _SetEPRxStatus(bEpNum,wState) (OTG_DEV_SetEPRxStatus(bEpNum, wState))
-
-#define _SetEPTxValid(bEpNum)         (OTG_DEV_SetEPTxStatus(bEpNum, EP_TX_VALID))
-#define _SetEPRxValid(bEpNum)         (OTG_DEV_SetEPRxStatus(bEpNum, EP_RX_VALID))
-
-#define _GetTxStallStatus(bEpNum)     (OTG_DEV_GetEPTxStatus(bEpNum) == EP_TX_STALL)
-#define _GetRxStallStatus(bEpNum)     (OTG_DEV_GetEPRxStatus(bEpNum) == EP_RX_STALL) 
-
-/* Define the callbacks for updating the USB state machine */
-#define OTGD_FS_DEVICE_RESET              Device_Property.Reset()
-
-/* Exported define -----------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-void OTG_DEV_Init(void);
-void OTG_DEV_EP_Init(uint8_t bEpAdd, uint8_t bEpType, uint16_t wEpMaxPackSize);
-
-void OTG_DEV_SetEPRxStatus(uint8_t bEpnum, uint32_t status);
-void OTG_DEV_SetEPTxStatus(uint8_t bEpnum, uint32_t status); 
-uint32_t OTG_DEV_GetEPRxStatus(uint8_t bEpnum); 
-uint32_t OTG_DEV_GetEPTxStatus(uint8_t bEpnum); 
-
-void USB_DevDisconnect(void);
-void USB_DevConnect(void);
-
-
-/*-*-*-*-*-*-*-*-*-* Replace the usb_regs.h prototypes *-*-*-*-*-*-*-*-*-*-*-*/
-void SetEPTxStatus(uint8_t bEpNum, uint16_t wState);
-void SetEPRxStatus(uint8_t bEpNum, uint16_t wState);
-uint16_t GetEPTxStatus(uint8_t bEpNum);
-uint16_t GetEPRxStatus(uint8_t bEpNum);
-void SetEPTxValid(uint8_t bEpNum);
-void SetEPRxValid(uint8_t bEpNum);
-uint16_t GetTxStallStatus(uint8_t bEpNum);
-uint16_t GetRxStallStatus(uint8_t bEpNum);
-void SetEPTxCount(uint8_t bEpNum, uint16_t wCount);
-void SetEPRxCount(uint8_t bEpNum, uint16_t wCount);
-
-uint16_t ToWord(uint8_t, uint8_t);
-uint16_t ByteSwap(uint16_t);
-/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-
-#endif /* STM32F10X_CL */
-
-#endif /* __OTG_DEV_H__ */
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
-
diff --git a/STM32_USB-FS-Device_Driver/inc/otgd_fs_int.h b/STM32_USB-FS-Device_Driver/inc/otgd_fs_int.h
deleted file mode 100644 (file)
index b0b1281..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otgd_fs_int.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Endpoint interrupt's service routines 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_INT_H
-#define __USB_INT_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-#ifdef STM32F10X_CL
-
-/* Interrupt Handlers functions */
-uint32_t OTGD_FS_Handle_ModeMismatch_ISR(void);
-uint32_t OTGD_FS_Handle_Sof_ISR(void);
-uint32_t OTGD_FS_Handle_RxStatusQueueLevel_ISR(void);
-uint32_t OTGD_FS_Handle_NPTxFE_ISR(void);
-uint32_t OTGD_FS_Handle_GInNakEff_ISR(void);
-uint32_t OTGD_FS_Handle_GOutNakEff_ISR(void);
-uint32_t OTGD_FS_Handle_EarlySuspend_ISR(void);
-uint32_t OTGD_FS_Handle_USBSuspend_ISR(void);
-uint32_t OTGD_FS_Handle_UsbReset_ISR(void);
-uint32_t OTGD_FS_Handle_EnumDone_ISR(void);
-uint32_t OTGD_FS_Handle_IsoOutDrop_ISR(void);
-uint32_t OTGD_FS_Handle_EOPF_ISR(void);
-uint32_t OTGD_FS_Handle_EPMismatch_ISR(void);
-uint32_t OTGD_FS_Handle_InEP_ISR(void);
-uint32_t OTGD_FS_Handle_OutEP_ISR(void);
-uint32_t OTGD_FS_Handle_IncomplIsoIn_ISR(void);
-uint32_t OTGD_FS_Handle_IncomplIsoOut_ISR(void);
-uint32_t OTGD_FS_Handle_Wakeup_ISR(void);
-
-#endif /* STM32F10X_CL */
-
-/* External variables --------------------------------------------------------*/
-
-#endif /* __USB_INT_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/otgd_fs_pcd.h b/STM32_USB-FS-Device_Driver/inc/otgd_fs_pcd.h
deleted file mode 100644 (file)
index 5255737..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otgd_fs_pcd.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Header file of the High Layer device mode interface and 
-*                      wrapping layer
-********************************************************************************
-* THE PRESENT SOFTWARE 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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
-* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
-*******************************************************************************/
-
-#ifndef __USB_OTG_PCD_H__
-#define __USB_OTG_PCD_H__
-
-#include "otgd_fs_regs.h"
-
-#define MAX_EP0_SIZE                    0x40
-#define MAX_PACKET_SIZE                 0x400
-
-
-#define USB_ENDPOINT_XFER_CONTROL       0
-#define USB_ENDPOINT_XFER_ISOC          1
-#define USB_ENDPOINT_XFER_BULK          2
-#define USB_ENDPOINT_XFER_INT           3
-#define USB_ENDPOINT_XFERTYPE_MASK      3
-
-
-/********************************************************************************
-                              ENUMERATION TYPE
-********************************************************************************/
-enum usb_device_speed {
-  USB_SPEED_UNKNOWN = 0,
-  USB_SPEED_LOW, USB_SPEED_FULL,
-  USB_SPEED_HIGH
-};
-/********************************************************************************
-                              Data structure type
-********************************************************************************/
-typedef struct usb_ep_descriptor
-{
-  uint8_t  bLength;
-  uint8_t  bDescriptorType;
-  uint8_t  bEndpointAddress;
-  uint8_t  bmAttributes;
-  uint16_t wMaxPacketSize;
-  uint8_t  bInterval;
-}
-EP_DESCRIPTOR , *PEP_DESCRIPTOR;
-/********************************************************************************
-                     USBF LAYER UNION AND STRUCTURES
-********************************************************************************/
-typedef struct USB_OTG_USBF
-{
-
-  USB_OTG_EP ep0;
-  uint8_t     ep0state;
-  USB_OTG_EP in_ep[ MAX_TX_FIFOS - 1];
-  USB_OTG_EP out_ep[ MAX_TX_FIFOS - 1];
-}
-USB_OTG_PCD_DEV , *USB_OTG_PCD_PDEV;
-/********************************************************************************
-                     EXPORTED FUNCTION FROM THE USB_OTG LAYER
-********************************************************************************/
-void  OTGD_FS_PCD_Init(void);
-void  OTGD_FS_PCD_DevConnect (void);
-void  OTGD_FS_PCD_DevDisconnect (void);
-void  OTGD_FS_PCD_EP_SetAddress (uint8_t address);
-uint32_t   OTGD_FS_PCD_EP_Open(EP_DESCRIPTOR *epdesc);
-uint32_t   OTGD_FS_PCD_EP_Close  ( uint8_t  ep_addr);
-uint32_t   OTGD_FS_PCD_EP_Read  ( uint8_t  ep_addr, uint8_t  *pbuf, uint32_t   buf_len);
-uint32_t   OTGD_FS_PCD_EP_Write ( uint8_t  ep_addr, uint8_t  *pbuf, uint32_t   buf_len);
-uint32_t   OTGD_FS_PCD_EP_Stall (uint8_t   epnum);
-uint32_t   OTGD_FS_PCD_EP_ClrStall (uint8_t epnum);
-uint32_t   OTGD_FS_PCD_EP_Flush (uint8_t epnum);
-uint32_t   OTGD_FS_PCD_Handle_ISR(void);
-
-USB_OTG_EP* OTGD_FS_PCD_GetOutEP(uint32_t ep_num) ;
-USB_OTG_EP* OTGD_FS_PCD_GetInEP(uint32_t ep_num);
-void OTGD_FS_PCD_EP0_OutStart(void);
-
-#endif
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/otgd_fs_regs.h b/STM32_USB-FS-Device_Driver/inc/otgd_fs_regs.h
deleted file mode 100644 (file)
index d98bae0..0000000
+++ /dev/null
@@ -1,1592 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otgd_fs_regs.h
-* Author             : STMicroelectronics
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : USB OTG IP hardware registers.
-********************************************************************************
-* THE PRESENT SOFTWARE 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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
-* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
-*******************************************************************************/
-
-#ifndef __USB_OTG_REGS_H__
-#define __USB_OTG_REGS_H__
-
-#ifdef STM32F10X_CL
-
-#include "stm32f10x.h"
-#include "usb_type.h"
-
-#define USB_OTG_FS1_BASE_ADDR                0x50000000
-
-#define USB_OTG_CORE_GLOBAL_REGS_OFFSET      0x000
-#define USB_OTG_DEV_GLOBAL_REG_OFFSET        0x800
-#define USB_OTG_DEV_IN_EP_REG_OFFSET         0x900
-#define USB_OTG_EP_REG_OFFSET                0x20
-#define USB_OTG_DEV_OUT_EP_REG_OFFSET        0xB00
-#define USB_OTG_HOST_GLOBAL_REG_OFFSET       0x400
-#define USB_OTG_HOST_PORT_REGS_OFFSET        0x440
-#define USB_OTG_HOST_CHAN_REGS_OFFSET        0x500
-#define USB_OTG_CHAN_REGS_OFFSET             0x20
-#define USB_OTG_PCGCCTL_OFFSET               0xE00
-#define USB_OTG_DATA_FIFO_OFFSET             0x1000
-#define USB_OTG_DATA_FIFO_SIZE               0x1000
-
-#define MAX_PERIO_FIFOS                      8
-#define MAX_TX_FIFOS                         4
-#define MAX_EPS_CHANNELS                     8
-/*******************************************************************************
- * USB_OTG Core registers .
- * The USB_OTG_core_regs structure defines the size
- * and relative field offsets for the Core Global registers.
- ******************************************************************************/
-typedef struct _USB_OTG_common_regs  //000h
-{
-
-  __IO uint32_t otg_ctl;      /* USB_OTG Control and Status Register    000h*/
-  __IO uint32_t otg_int;      /* USB_OTG Interrupt Register             004h*/
-  __IO uint32_t ahb_cfg;      /* Core AHB Configuration Register    008h*/
-  __IO uint32_t usb_cfg;      /* Core USB Configuration Register    00Ch*/
-  __IO uint32_t rst_ctl;      /* Core Reset Register                010h*/
-  __IO uint32_t int_sts;      /* Core Interrupt Register            014h*/
-  __IO uint32_t int_msk;      /* Core Interrupt Mask Register       018h*/
-  __IO uint32_t rx_stsr;      /* Receive Sts Q Read Register        01Ch*/
-  __IO uint32_t rx_stsp;      /* Receive Sts Q Read & POP Register  020h*/
-  __IO uint32_t rx_fifo_siz;  /* Receive FIFO Size Register         024h*/
-  __IO uint32_t np_tx_fifo_siz;   /* Non Periodic Tx FIFO Size Register 028h*/
-  __IO uint32_t np_tx_sts;    /* Non Periodic Tx FIFO/Queue Sts reg 02Ch*/
-  __IO uint32_t i2c_ctl;      /* I2C Access Register                030h*/
-  __IO uint32_t phy_vnd_ctl;  /* PHY Vendor Control Register        034h*/
-  __IO uint32_t gpio;         /* General Purpose IO Register        038h*/
-  __IO uint32_t usr_id;       /* User ID Register                   03Ch*/
-  __IO uint32_t snps_id;      /* Synopsys ID Register               040h*/
-  __IO uint32_t hw_cfg1;      /* User HW Config1 Register (RO)      044h*/
-  __IO uint32_t hw_cfg2;      /* User HW Config2 Register (RO)      048h*/
-  __IO uint32_t hw_cfg3;      /* User HW Config3 Register (RO)      04Ch*/
-  __IO uint32_t hw_cfg4;      /* User HW Config4 Register (RO)      050h*/
-  uint32_t  reserved[43];          /* Reserved                      054h-0FFh*/
-  __IO uint32_t host_p_tx_fifo_siz; /* Host Periodic Tx FIFO Size Reg     100h*/
-  __IO uint32_t dev_p_tx_fsiz_dieptxf[15];/* dev Periodic Transmit FIFO */
-
-}
-USB_OTG_common_regs;
-
-/*******************************************************************************
- * dev Registers
- * dev Global Registers : Offsets 800h-BFFh
- * The following structures define the size and relative field offsets
- * for the dev Mode Registers.
- * These registers are visible only in dev mode and must not be
- * accessed in Host mode, as the results are unknown
- ******************************************************************************/
-typedef struct _USB_OTG_dev_regs // 800h
-{
-
-  __IO uint32_t dev_cfg;         /* dev Configuration Register   800h*/
-  __IO uint32_t dev_ctl;         /* dev Control Register         804h*/
-  __IO uint32_t dev_sts;         /* dev Status Register (RO)     808h*/
-  uint32_t reserved3;         /* Reserved                     80Ch*/
-  __IO uint32_t dev_in_ep_msk;   /* dev IN Endpoint Mask         810h*/
-  __IO uint32_t dev_out_ep_msk;  /* dev OUT Endpoint Mask        814h*/
-  __IO uint32_t dev_all_int;     /* dev All Endpoints Itr Reg    818h*/
-  __IO uint32_t dev_all_int_msk; /* dev All Endpoints Itr Mask   81Ch*/
-  uint32_t  Reserved8;       /* Reserved                     820h*/
-  __IO uint32_t Reserved9;       /* Reserved                     824h*/
-  __IO uint32_t dev_vbus_dis;    /* dev VBUS discharge Register  828h*/
-  __IO uint32_t dev_vbus_pulse;  /* dev VBUS Pulse Register      82Ch*/
-  __IO uint32_t dev_thr_ctl;     /* dev thr                      830h*/
-  __IO uint32_t dev_fifo_empty_msk; /* dev empty msk             834h*/
-
-}
-USB_OTG_dev_regs;
-/*******************************************************************************
- * dev Logical IN Endpoint-Specific Registers: Offsets 900h-AFCh
- * There will be one set of endpoint registers per logical endpointimplemented.
- * These registers are visible only in dev mode and must not be
- * accessed in Host mode, as the results are unknown
-*******************************************************************************/
-typedef struct _USB_OTG_dev_in_ep_regs
-{
-  __IO uint32_t dev_in_ep_ctl; /* dev IN Endpoint Control Reg 900h + (ep_num * 20h) + 00h*/
-  uint32_t reserved04;             /* Reserved                       900h + (ep_num * 20h) + 04h*/
-  __IO uint32_t dev_in_ep_int; /* dev IN Endpoint Itr Reg     900h + (ep_num * 20h) + 08h*/
-  uint32_t reserved0C;             /* Reserved                       900h + (ep_num * 20h) + 0Ch*/
-  __IO uint32_t dev_in_ep_txfer_siz; /* IN Endpoint Txfer Size   900h + (ep_num * 20h) + 10h*/
-  __IO uint32_t dev_in_ep_dma; /* IN Endpoint DMA Address Reg    900h + (ep_num * 20h) + 14h*/
-  __IO uint32_t dev_tx_fifo_sts;/*IN Endpoint Tx FIFO Status Reg 900h + (ep_num * 20h) + 18h*/
-  uint32_t reserved18;             /* Reserved  900h+(ep_num*20h)+1Ch-900h+ (ep_num * 20h) + 1Ch*/
-
-}
-USB_OTG_dev_in_ep_regs;
-
-/*******************************************************************************
- * dev Logical OUT Endpoint-Specific Registers Offsets: B00h-CFCh
- * There will be one set of endpoint registers per logical endpoint
- * implemented.
- * These registers are visible only in dev mode and must not be
- * accessed in Host mode, as the results are unknown
-******************************************************************************/
-typedef struct _USB_OTG_dev_out_ep_regs
-{
-  __IO uint32_t dev_out_ep_ctl;       /* dev OUT Endpoint Control Reg  B00h + (ep_num * 20h) + 00h*/
-  __IO uint32_t dev_out_ep_frm_nbr;   /* dev OUT Endpoint Frame number B00h + (ep_num * 20h) + 04h*/
-  __IO uint32_t dev_out_ep_int;              /* dev OUT Endpoint Itr Reg      B00h + (ep_num * 20h) + 08h*/
-  uint32_t reserved0C;                    /* Reserved                         B00h + (ep_num * 20h) + 0Ch*/
-  __IO uint32_t dev_out_ep_txfer_siz; /* dev OUT Endpoint Txfer Size   B00h + (ep_num * 20h) + 10h*/
-  __IO uint32_t dev_out_ep_dma;              /* dev OUT Endpoint DMA Address  B00h + (ep_num * 20h) + 14h*/
-  uint32_t reserved18[2];                 /* Reserved B00h + (ep_num * 20h) + 18h - B00h + (ep_num * 20h) + 1Ch*/
-
-}
-USB_OTG_dev_out_ep_regs;
-/*******************************************************************************
- * Host Mode Register Structures
- * The Host Global Registers structure defines the size and relative
- * field offsets for the Host Mode Global Registers.
- * Host Global Registers offsets 400h-7FFh.
-*******************************************************************************/
-typedef struct _USB_OTG_host_regs
-{
-  __IO uint32_t host_cfg;             /* Host Configuration Register    400h*/
-  __IO uint32_t host_frm_intrvl;      /* Host Frame Interval Register   404h*/
-  __IO uint32_t host_frm_nbr;         /* Host Frame Nbr/Frame Remaining 408h*/
-  uint32_t reserved40C;                   /* Reserved                       40Ch*/
-  __IO uint32_t host_p_tx_sts;   /* Host Periodic Tx FIFO/ Queue Status 410h*/
-  __IO uint32_t host_all_int;   /* Host All Channels Interrupt Register 414h*/
-  __IO uint32_t host_all_int_msk;   /* Host All Channels Interrupt Mask 418h*/
-
-}
-USB_OTG_host_regs;
-
-/*******************************************************************************
-* Host Channel Specific Registers 500h-5FCh
-*******************************************************************************/
-typedef struct _USB_OTG_hc_regs
-{
-
-  __IO uint32_t hc_char;
-  __IO uint32_t hc_split;
-  __IO uint32_t hc_int;
-  __IO uint32_t hc_int_msk;
-  __IO uint32_t hc_txfer_siz;
-  __IO uint32_t hc_dma;
-  uint32_t reserved[2];
-
-}
-USB_OTG_hc_regs;
-/*******************************************************************************
- * otg Core registers .
- * The USB_OTG_core_regs structure defines the size
- * and relative field offsets for the Core Global registers.
- ******************************************************************************/
-typedef struct USB_OTG_core_regs  //000h
-{
-  USB_OTG_common_regs         *common_regs;
-  USB_OTG_dev_regs            *dev_regs;
-  USB_OTG_host_regs           *host_regs;
-  USB_OTG_dev_in_ep_regs      *inep_regs[MAX_EPS_CHANNELS];
-  USB_OTG_dev_out_ep_regs     *outep_regs[MAX_EPS_CHANNELS];
-  USB_OTG_hc_regs             *hc_regs[MAX_EPS_CHANNELS];
-  __IO uint32_t                    *hprt0;
-  __IO uint32_t                    *data_fifo[MAX_EPS_CHANNELS];
-  __IO uint32_t                    *pcgcctl;
-
-}
-USB_OTG_CORE_REGS , *pUSB_OTG_CORE_REGS;
-/******************************************************************************/
-
-typedef union _USB_OTG_OTG_ctl_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t sesreqscs :
-    1;
-uint32_t sesreq :
-    1;
-uint32_t reserved2_7 :
-    6;
-uint32_t hstnegscs :
-    1;
-uint32_t hnpreq :
-    1;
-uint32_t hstsethnpen :
-    1;
-uint32_t devhnpen :
-    1;
-uint32_t reserved12_15 :
-    4;
-uint32_t conidsts :
-    1;
-uint32_t reserved17 :
-    1;
-uint32_t asesvld :
-    1;
-uint32_t bsesvld :
-    1;
-uint32_t currmod :
-    1;
-uint32_t reserved21_31 :
-    11;
-  }
-  b;
-} USB_OTG_OTG_ctl_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_OTG_int_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t reserved0_1 :
-    2;
-uint32_t sesenddet :
-    1;
-uint32_t reserved3_7 :
-    5;
-uint32_t sesreqsucstschng :
-    1;
-uint32_t hstnegsucstschng :
-    1;
-uint32_t reserver10_16 :
-    7;
-uint32_t hstnegdet :
-    1;
-uint32_t adevtoutchng :
-    1;
-uint32_t debdone :
-    1;
-uint32_t reserved31_20 :
-    12;
-  }
-  b;
-} USB_OTG_OTG_int_data;
-
-
-/******************************************************************************/
-
-
-typedef union _USB_OTG_ahb_cfg_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t glblintrmsk :
-    1;
-uint32_t hburstlen :
-    4;
-uint32_t dmaenable :
-    1;
-uint32_t reserved :
-    1;
-uint32_t nptxfemplvl_txfemplvl :
-    1;
-uint32_t ptxfemplvl :
-    1;
-uint32_t reserved9_31 :
-    23;
-  }
-  b;
-} USB_OTG_ahb_cfg_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_usb_cfg_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t toutcal :
-    3;
-uint32_t phyif :
-    1;
-uint32_t ulpi_utmi_sel :
-    1;
-uint32_t fsintf :
-    1;
-uint32_t physel :
-    1;
-uint32_t ddrsel :
-    1;
-uint32_t srpcap :
-    1;
-uint32_t hnpcap :
-    1;
-uint32_t usbtrdtim :
-    4;
-uint32_t nptxfrwnden :
-    1;
-uint32_t phylpwrclksel :
-    1;
-uint32_t otgutmifssel :
-    1;
-uint32_t ulpi_fsls :
-    1;
-uint32_t ulpi_auto_res :
-    1;
-uint32_t ulpi_clk_sus_m :
-    1;
-uint32_t ulpi_ext_vbus_drv :
-    1;
-uint32_t ulpi_int_vbus_indicator :
-    1;
-uint32_t term_sel_dl_pulse :
-    1;
-uint32_t reserved :
-    6;
-uint32_t force_host :
-    1;
-uint32_t force_dev :
-    1;
-uint32_t corrupt_tx :
-    1;
-  }
-  b;
-} USB_OTG_usb_cfg_data;
-/******************************************************************************/
-
-typedef union _USB_OTG_rst_ctl_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t csftrst :
-    1;
-uint32_t hsftrst :
-    1;
-uint32_t hstfrm :
-    1;
-uint32_t intknqflsh :
-    1;
-uint32_t rxfflsh :
-    1;
-uint32_t txfflsh :
-    1;
-uint32_t txfnum :
-    5;
-uint32_t reserved11_29 :
-    19;
-uint32_t dmareq :
-    1;
-uint32_t ahbidle :
-    1;
-  }
-  b;
-} USB_OTG_rst_ctl_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_int_msk_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t reserved0 :
-    1;
-uint32_t modemismatch :
-    1;
-uint32_t otgintr :
-    1;
-uint32_t sofintr :
-    1;
-uint32_t rxstsqlvl :
-    1;
-uint32_t nptxfempty :
-    1;
-uint32_t ginnakeff :
-    1;
-uint32_t goutnakeff :
-    1;
-uint32_t reserved8 :
-    1;
-uint32_t i2cintr :
-    1;
-uint32_t erlysuspend :
-    1;
-uint32_t usbsuspend :
-    1;
-uint32_t usbreset :
-    1;
-uint32_t enumdone :
-    1;
-uint32_t isooutdrop :
-    1;
-uint32_t eopframe :
-    1;
-uint32_t reserved16 :
-    1;
-uint32_t epmismatch :
-    1;
-uint32_t inepintr :
-    1;
-uint32_t outepintr :
-    1;
-uint32_t incomplisoin :
-    1;
-uint32_t incomplisoout :
-    1;
-uint32_t reserved22_23 :
-    2;
-uint32_t portintr :
-    1;
-uint32_t hcintr :
-    1;
-uint32_t ptxfempty :
-    1;
-uint32_t reserved27 :
-    1;
-uint32_t conidstschng :
-    1;
-uint32_t disconnect :
-    1;
-uint32_t sessreqintr :
-    1;
-uint32_t wkupintr :
-    1;
-  }
-  b;
-} USB_OTG_int_msk_data;
-
-/******************************************************************************/
-
-
-typedef union _USB_OTG_int_sts_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t curmode :
-    1;
-uint32_t modemismatch :
-    1;
-uint32_t otgintr :
-    1;
-uint32_t sofintr :
-    1;
-uint32_t rxstsqlvl :
-    1;
-uint32_t nptxfempty :
-    1;
-uint32_t ginnakeff :
-    1;
-uint32_t goutnakeff :
-    1;
-uint32_t reserved8 :
-    1;
-uint32_t i2cintr :
-    1;
-uint32_t erlysuspend :
-    1;
-uint32_t usbsuspend :
-    1;
-uint32_t usbreset :
-    1;
-uint32_t enumdone :
-    1;
-uint32_t isooutdrop :
-    1;
-uint32_t eopframe :
-    1;
-uint32_t intokenrx :
-    1;
-uint32_t epmismatch :
-    1;
-uint32_t inepint:
-    1;
-uint32_t outepintr :
-    1;
-uint32_t incomplisoin :
-    1;
-uint32_t incomplisoout :
-    1;
-uint32_t reserved22_23 :
-    2;
-uint32_t portintr :
-    1;
-uint32_t hcintr :
-    1;
-uint32_t ptxfempty :
-    1;
-uint32_t reserved27 :
-    1;
-uint32_t conidstschng :
-    1;
-uint32_t disconnect :
-    1;
-uint32_t sessreqintr :
-    1;
-uint32_t wkupintr :
-    1;
-  }
-  b;
-} USB_OTG_int_sts_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_dev_rx_sts_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t epnum :
-    4;
-uint32_t bcnt :
-    11;
-uint32_t dpid :
-    2;
-uint32_t pktsts :
-    4;
-uint32_t fn :
-    4;
-uint32_t reserved :
-    7;
-  }
-  b;
-} USB_OTG_dev_rx_sts_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_host_rx_sts_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t chnum :
-    4;
-uint32_t bcnt :
-    11;
-uint32_t dpid :
-    2;
-uint32_t pktsts :
-    4;
-uint32_t reserved :
-    11;
-  }
-  b;
-} USB_OTG_host_rx_sts_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_fifo_size_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t startaddr :
-    16;
-uint32_t depth :
-    16;
-  }
-  b;
-} USB_OTG_fifo_size_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_np_tx_sts_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t nptxfspcavail :
-    16;
-uint32_t nptxqspcavail :
-    8;
-uint32_t nptxqtop_terminate :
-    1;
-uint32_t nptxqtop_token :
-    2;
-uint32_t nptxqtop_chnep :
-    4;
-uint32_t reserved :
-    1;
-  }
-  b;
-} USB_OTG_np_tx_sts_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_tx_fifo_sts_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t txfspcavail :
-    16;
-uint32_t reserved :
-    16;
-  }
-  b;
-} USB_OTG_dev_tx_fifo_sts_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_i2c_ctl_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t rwdata :
-    8;
-uint32_t regaddr :
-    8;
-uint32_t addr :
-    7;
-uint32_t i2cen :
-    1;
-uint32_t ack :
-    1;
-uint32_t i2csuspctl :
-    1;
-uint32_t i2cdevaddr :
-    2;
-uint32_t dat_se0:
-    1;
-uint32_t reserved :
-    1;
-uint32_t rw :
-    1;
-uint32_t bsydne :
-    1;
-  }
-  b;
-} USB_OTG_i2c_ctl_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_gpio_data
-{
-
-  uint32_t d32;
-  struct
-  {
-    /* input */
-uint32_t ovrcur :
-    1;
-uint32_t otgid :
-    1;
-uint32_t reserved_in :
-    14;
-    /* Output */
-uint32_t pwdn :
-    1;
-uint32_t i2cifen :
-    1;
-uint32_t vbussensingA :
-    1;
-uint32_t vbussensingB :
-    1;
-uint32_t SOFouten :
-    1;
-uint32_t reserved_out :
-    11;
-  }
-  b;
-} USB_OTG_gpio_data;
-
-
-/******************************************************************************/
-
-typedef union _USB_OTG_hw_cfg1_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t ep_dir0 :
-    2;
-uint32_t ep_dir1 :
-    2;
-uint32_t ep_dir2 :
-    2;
-uint32_t ep_dir3 :
-    2;
-uint32_t ep_dir4 :
-    2;
-uint32_t ep_dir5 :
-    2;
-uint32_t ep_dir6 :
-    2;
-uint32_t ep_dir7 :
-    2;
-uint32_t ep_dir8 :
-    2;
-uint32_t ep_dir9 :
-    2;
-uint32_t ep_dir10 :
-    2;
-uint32_t ep_dir11 :
-    2;
-uint32_t ep_dir12 :
-    2;
-uint32_t ep_dir13 :
-    2;
-uint32_t ep_dir14 :
-    2;
-uint32_t ep_dir15 :
-    2;
-  }
-  b;
-} USB_OTG_hw_cfg1_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_hw_cfg2_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t op_mode :
-    3;
-uint32_t architecture :
-    2;
-uint32_t point2point :
-    1;
-uint32_t hs_phy_type :
-    2;
-uint32_t fs_phy_type :
-    2;
-uint32_t num_dev_ep :
-    4;
-uint32_t num_host_chan :
-    4;
-uint32_t perio_ep_supported :
-    1;
-uint32_t dynamic_fifo :
-    1;
-uint32_t rx_status_q_depth :
-    2;
-uint32_t nonperio_tx_q_depth :
-    2;
-uint32_t host_perio_tx_q_depth :
-    2;
-uint32_t dev_token_q_depth :
-    5;
-uint32_t reserved31 :
-    1;
-  }
-  b;
-} USB_OTG_hw_cfg2_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_hw_cfg3_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t xfer_size_cntr_width :
-    4;
-uint32_t packet_size_cntr_width :
-    3;
-uint32_t otg_func :
-    1;
-uint32_t i2c :
-    1;
-uint32_t vendor_ctrl_if :
-    1;
-uint32_t optional_features :
-    1;
-uint32_t synch_reset_type :
-    1;
-uint32_t ahb_phy_clock_synch :
-    1;
-uint32_t reserved15_13 :
-    3;
-uint32_t dfifo_depth :
-    16;
-  }
-  b;
-} USB_OTG_hw_cfg3_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_hw_cfg4_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t num_dev_perio_in_ep :
-    4;
-uint32_t power_optimiz :
-    1;
-uint32_t min_ahb_freq :
-    9;
-uint32_t utmi_phy_data_width :
-    2;
-uint32_t num_dev_mode_ctrl_ep :
-    4;
-uint32_t iddig_filt_en :
-    1;
-uint32_t vbus_valid_filt_en :
-    1;
-uint32_t a_valid_filt_en :
-    1;
-uint32_t b_valid_filt_en :
-    1;
-uint32_t session_end_filt_en :
-    1;
-uint32_t ded_fifo_en :
-    1;
-uint32_t num_in_eps :
-    4;
-uint32_t reserved31_30 :
-    2;
-  }
-  b;
-} USB_OTG_hw_cfg4_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_dev_cfg_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t devspd :
-    2;
-uint32_t nzstsouthshk :
-    1;
-uint32_t reserved3 :
-    1;
-uint32_t devaddr :
-    7;
-uint32_t perfrint :
-    2;
-uint32_t reserved13_17 :
-    5;
-uint32_t epmscnt :
-    4;
-  }
-  b;
-} USB_OTG_dev_cfg_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_ctl_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t rmtwkupsig :
-    1;
-uint32_t sftdiscon :
-    1;
-uint32_t gnpinnaksts :
-    1;
-uint32_t goutnaksts :
-    1;
-uint32_t tstctl :
-    3;
-uint32_t sgnpinnak :
-    1;
-uint32_t cgnpinnak :
-    1;
-uint32_t sgoutnak :
-    1;
-uint32_t cgoutnak :
-    1;
-uint32_t reserved :
-    21;
-  }
-  b;
-} USB_OTG_dev_ctl_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_dev_sts_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t suspsts :
-    1;
-uint32_t enumspd :
-    2;
-uint32_t errticerr :
-    1;
-uint32_t reserved4_7:
-    4;
-uint32_t soffn :
-    14;
-uint32_t reserved22_31 :
-    10;
-  }
-  b;
-} USB_OTG_dev_sts_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_in_ep_int_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t xfercompl :
-    1;
-uint32_t epdisabled :
-    1;
-uint32_t ahberr :
-    1;
-uint32_t timeout :
-    1;
-uint32_t intktxfemp :
-    1;
-uint32_t intknepmis :
-    1;
-uint32_t inepnakeff :
-    1;
-uint32_t emptyintr :
-    1;
-uint32_t txfifoundrn :
-    1;
-uint32_t reserved08_31 :
-    23;
-  }
-  b;
-} USB_OTG_dev_in_ep_int_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_in_ep_int_data  USB_OTG_dev_in_ep_msk_data;
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_out_ep_int_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t xfercompl :
-    1;
-uint32_t epdisabled :
-    1;
-uint32_t ahberr :
-    1;
-uint32_t setup :
-    1;
-uint32_t reserved04_31 :
-    28;
-  }
-  b;
-} USB_OTG_dev_out_ep_int_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_out_ep_int_data  USB_OTG_dev_out_ep_msk_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_dev_all_int_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t in :
-    16;
-uint32_t out :
-    16;
-  }
-  ep;
-  struct
-  {
-    /** IN Endpoint bits */
-uint32_t inep0  :
-    1;
-uint32_t inep1  :
-    1;
-uint32_t inep2  :
-    1;
-uint32_t inep3  :
-    1;
-uint32_t inep4  :
-    1;
-uint32_t inep5  :
-    1;
-uint32_t inep6  :
-    1;
-uint32_t inep7  :
-    1;
-uint32_t inep8  :
-    1;
-uint32_t inep9  :
-    1;
-uint32_t inep10 :
-    1;
-uint32_t inep11 :
-    1;
-uint32_t inep12 :
-    1;
-uint32_t inep13 :
-    1;
-uint32_t inep14 :
-    1;
-uint32_t inep15 :
-    1;
-    /** OUT Endpoint bits */
-uint32_t outep0  :
-    1;
-uint32_t outep1  :
-    1;
-uint32_t outep2  :
-    1;
-uint32_t outep3  :
-    1;
-uint32_t outep4  :
-    1;
-uint32_t outep5  :
-    1;
-uint32_t outep6  :
-    1;
-uint32_t outep7  :
-    1;
-uint32_t outep8  :
-    1;
-uint32_t outep9  :
-    1;
-uint32_t outep10 :
-    1;
-uint32_t outep11 :
-    1;
-uint32_t outep12 :
-    1;
-uint32_t outep13 :
-    1;
-uint32_t outep14 :
-    1;
-uint32_t outep15 :
-    1;
-  }
-  b;
-} USB_OTG_dev_all_int_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_token_qr1_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t intknwptr :
-    5;
-uint32_t reserved05_06 :
-    2;
-uint32_t wrap_bit :
-    1;
-uint32_t epnums0_5 :
-    24;
-  }
-  b;
-} USB_OTG_token_qr1_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_thr_ctl_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t non_iso_thr_en :
-    1;
-uint32_t iso_thr_en :
-    1;
-uint32_t tx_thr_len :
-    9;
-uint32_t reserved11_15 :
-    5;
-uint32_t rx_thr_en :
-    1;
-uint32_t rx_thr_len :
-    9;
-uint32_t reserved26_31 :
-    6;
-  }
-  b;
-} USB_OTG_dev_thr_ctl_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_dev_ep_ctl_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t mps :
-    11;
-uint32_t nextep :
-    4;
-uint32_t usbactep :
-    1;
-uint32_t dpid :
-    1;
-uint32_t naksts :
-    1;
-uint32_t eptype :
-    2;
-uint32_t snp :
-    1;
-uint32_t stall :
-    1;
-uint32_t txfnum :
-    4;
-uint32_t cnak :
-    1;
-uint32_t snak :
-    1;
-uint32_t setd0pid :
-    1;
-uint32_t setd1pid :
-    1;
-uint32_t epdis :
-    1;
-uint32_t epena :
-    1;
-  }
-  b;
-} USB_OTG_dev_ep_ctl_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_ep_txfer_siz_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t xfersize :
-    19;
-uint32_t pktcnt :
-    10;
-uint32_t mc :
-    2;
-uint32_t reserved :
-    1;
-  }
-  b;
-} USB_OTG_dev_ep_txfer_siz_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_dev_ep_txfer_size0_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t xfersize :
-    7;
-uint32_t reserved7_18 :
-    12;
-uint32_t pktcnt :
-    1;
-uint32_t reserved20_28 :
-    9;
-uint32_t supcnt :
-    2;
-    uint32_t reserved31;
-  }
-  b;
-} USB_OTG_dev_ep_txfer_size0_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_host_cfg_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t fslspclksel :
-    2;
-uint32_t fslssupp :
-    1;
-  }
-  b;
-} USB_OTG_host_cfg_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_Host_frm_intrvl_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t frint :
-    16;
-uint32_t reserved :
-    16;
-  }
-  b;
-} USB_OTG_Host_frm_intrvl_data;
-
-/******************************************************************************/
-#define HFNUM_MAX_FRNUM 0x3FFF
-typedef union _USB_OTG_host_frm_nbr_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t frnum :
-    16;
-uint32_t frrem :
-    16;
-  }
-  b;
-} USB_OTG_host_frm_nbr_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_host_perio_tx_sts_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t ptxfspcavail :
-    16;
-uint32_t ptxqspcavail :
-    8;
-uint32_t ptxqtop_terminate :
-    1;
-uint32_t ptxqtop_token :
-    2;
-uint32_t ptxqtop_chnum :
-    4;
-uint32_t ptxqtop_odd :
-    1;
-  }
-  b;
-} USB_OTG_host_perio_tx_sts_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_hprt0_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t prtconnsts :
-    1;
-uint32_t prtconndet :
-    1;
-uint32_t prtena :
-    1;
-uint32_t prtenchng :
-    1;
-uint32_t prtovrcurract :
-    1;
-uint32_t prtovrcurrchng :
-    1;
-uint32_t prtres :
-    1;
-uint32_t prtsusp :
-    1;
-uint32_t prtrst :
-    1;
-uint32_t reserved9 :
-    1;
-uint32_t prtlnsts :
-    2;
-uint32_t prtpwr :
-    1;
-uint32_t prttstctl :
-    4;
-uint32_t prtspd :
-    2;
-uint32_t reserved19_31 :
-    13;
-  }
-  b;
-} USB_OTG_hprt0_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_host_all_int_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t ch0 :
-    1;
-uint32_t ch1 :
-    1;
-uint32_t ch2 :
-    1;
-uint32_t ch3 :
-    1;
-uint32_t ch4 :
-    1;
-uint32_t ch5 :
-    1;
-uint32_t ch6 :
-    1;
-uint32_t ch7 :
-    1;
-uint32_t ch8 :
-    1;
-uint32_t ch9 :
-    1;
-uint32_t ch10 :
-    1;
-uint32_t ch11 :
-    1;
-uint32_t ch12 :
-    1;
-uint32_t ch13 :
-    1;
-uint32_t ch14 :
-    1;
-uint32_t ch15 :
-    1;
-uint32_t reserved :
-    16;
-  }
-  b;
-
-  struct
-  {
-uint32_t chint :
-    16;
-uint32_t reserved :
-    16;
-  }
-  b2;
-} USB_OTG_host_all_int_data;
-
-
-/******************************************************************************/
-
-typedef union _USB_OTG_host_all_int_msk_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t ch0 :
-    1;
-uint32_t ch1 :
-    1;
-uint32_t ch2 :
-    1;
-uint32_t ch3 :
-    1;
-uint32_t ch4 :
-    1;
-uint32_t ch5 :
-    1;
-uint32_t ch6 :
-    1;
-uint32_t ch7 :
-    1;
-uint32_t ch8 :
-    1;
-uint32_t ch9 :
-    1;
-uint32_t ch10 :
-    1;
-uint32_t ch11 :
-    1;
-uint32_t ch12 :
-    1;
-uint32_t ch13 :
-    1;
-uint32_t ch14 :
-    1;
-uint32_t ch15 :
-    1;
-uint32_t reserved :
-    16;
-  }
-  b;
-
-  struct
-  {
-uint32_t chint :
-    16;
-uint32_t reserved :
-    16;
-  }
-  b2;
-} USB_OTG_host_all_int_msk_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_hc_char_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t mps :
-    11;
-uint32_t epnum :
-    4;
-uint32_t epdir :
-    1;
-uint32_t reserved :
-    1;
-uint32_t lspddev :
-    1;
-uint32_t eptype :
-    2;
-uint32_t multicnt :
-    2;
-uint32_t devaddr :
-    7;
-uint32_t oddfrm :
-    1;
-uint32_t chdis :
-    1;
-uint32_t chen :
-    1;
-  }
-  b;
-} USB_OTG_hc_char_data;
-
-/******************************************************************************/
-typedef union _USB_OTG_hc_splt_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t prtaddr :
-    7;
-uint32_t hubaddr :
-    7;
-uint32_t xactpos :
-    2;
-uint32_t compsplt :
-    1;
-uint32_t reserved :
-    14;
-uint32_t spltena :
-    1;
-  }
-  b;
-} USB_OTG_hc_splt_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_hc_int_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t xfercomp :
-    1;
-uint32_t chhltd :
-    1;
-uint32_t ahberr :
-    1;
-uint32_t stall :
-    1;
-uint32_t nak :
-    1;
-uint32_t ack :
-    1;
-uint32_t nyet :
-    1;
-uint32_t xacterr :
-    1;
-uint32_t bblerr :
-    1;
-uint32_t frmovrun :
-    1;
-uint32_t datatglerr :
-    1;
-uint32_t reserved :
-    21;
-  }
-  b;
-} USB_OTG_hc_int_data;
-
-/******************************************************************************/
-
-
-typedef union _USB_OTG_hc_txfer_siz_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t xfersize :
-    19;
-uint32_t pktcnt :
-    10;
-uint32_t pid :
-    2;
-uint32_t dopng :
-    1;
-  }
-  b;
-} USB_OTG_hc_txfer_siz_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_hc_int_msk_data
-{
-
-  uint32_t d32;
-  struct
-  {
-uint32_t xfercompl :
-    1;
-uint32_t chhltd :
-    1;
-uint32_t ahberr :
-    1;
-uint32_t stall :
-    1;
-uint32_t nak :
-    1;
-uint32_t ack :
-    1;
-uint32_t nyet :
-    1;
-uint32_t xacterr :
-    1;
-uint32_t bblerr :
-    1;
-uint32_t frmovrun :
-    1;
-uint32_t datatglerr :
-    1;
-uint32_t reserved :
-    21;
-  }
-  b;
-} USB_OTG_hc_int_msk_data;
-
-/******************************************************************************/
-
-typedef union _USB_OTG_host_pcgcctl_data
-{
-  uint32_t d32;
-  struct
-  {
-uint32_t stoppclk :
-    1;
-uint32_t gatehclk :
-    1;
-uint32_t pwrclmp :
-    1;
-uint32_t rstpdwnmodule :
-    1;
-uint32_t physuspended :
-    1;
-uint32_t reserved :
-    27;
-  }
-  b;
-} USB_OTG_host_pcgcctl_data;
-
-#endif /* STM32F10X_CL */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
-
-#endif
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_core.h b/STM32_USB-FS-Device_Driver/inc/usb_core.h
deleted file mode 100644 (file)
index 0c62fcb..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/******************** (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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_CORE_H
-#define __USB_CORE_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-typedef enum _CONTROL_STATE
-{
-  WAIT_SETUP,       /* 0 */
-  SETTING_UP,       /* 1 */
-  IN_DATA,          /* 2 */
-  OUT_DATA,         /* 3 */
-  LAST_IN_DATA,     /* 4 */
-  LAST_OUT_DATA,    /* 5 */
-  WAIT_STATUS_IN,   /* 7 */
-  WAIT_STATUS_OUT,  /* 8 */
-  STALLED,          /* 9 */
-  PAUSE             /* 10 */
-} CONTROL_STATE;    /* The state machine states of a control pipe */
-
-typedef struct OneDescriptor
-{
-  uint8_t *Descriptor;
-  uint16_t Descriptor_Size;
-}
-ONE_DESCRIPTOR, *PONE_DESCRIPTOR;
-/* All the request process routines return a value of this type
-   If the return value is not SUCCESS or NOT_READY,
-   the software will STALL the correspond endpoint */
-typedef enum _RESULT
-{
-  USB_SUCCESS = 0,    /* Process sucessfully */
-  USB_ERROR,
-  USB_UNSUPPORT,
-  USB_NOT_READY       /* The process has not been finished, endpoint will be
-                         NAK to further rquest */
-} RESULT;
-
-
-/*-*-*-*-*-*-*-*-*-*-* Definitions for endpoint level -*-*-*-*-*-*-*-*-*-*-*-*/
-typedef struct _ENDPOINT_INFO
-{
-  /* When send data out of the device,
-   CopyData() is used to get data buffer 'Length' bytes data
-   if Length is 0,
-    CopyData() returns the total length of the data
-    if the request is not supported, returns 0
-    (NEW Feature )
-     if CopyData() returns -1, the calling routine should not proceed
-     further and will resume the SETUP process by the class device
-   if Length is not 0,
-    CopyData() returns a pointer to indicate the data location
-   Usb_wLength is the data remain to be sent,
-   Usb_wOffset is the Offset of original data
-  When receive data from the host,
-   CopyData() is used to get user data buffer which is capable
-   of Length bytes data to copy data from the endpoint buffer.
-   if Length is 0,
-    CopyData() returns the available data length,
-   if Length is not 0,
-    CopyData() returns user buffer address
-   Usb_rLength is the data remain to be received,
-   Usb_rPointer is the Offset of data buffer
-  */
-  uint16_t  Usb_wLength;
-  uint16_t  Usb_wOffset;
-  uint16_t  PacketSize;
-  uint8_t   *(*CopyData)(uint16_t Length);
-}ENDPOINT_INFO;
-
-/*-*-*-*-*-*-*-*-*-*-*-* Definitions for device level -*-*-*-*-*-*-*-*-*-*-*-*/
-
-typedef struct _DEVICE
-{
-  uint8_t Total_Endpoint;     /* Number of endpoints that are used */
-  uint8_t Total_Configuration;/* Number of configuration available */
-}
-DEVICE;
-
-typedef union
-{
-  uint16_t w;
-  struct BW
-  {
-    uint8_t bb1;
-    uint8_t bb0;
-  }
-  bw;
-} uint16_t_uint8_t;
-
-typedef struct _DEVICE_INFO
-{
-  uint8_t USBbmRequestType;       /* bmRequestType */
-  uint8_t USBbRequest;            /* bRequest */
-  uint16_t_uint8_t USBwValues;         /* wValue */
-  uint16_t_uint8_t USBwIndexs;         /* wIndex */
-  uint16_t_uint8_t USBwLengths;        /* wLength */
-
-  uint8_t ControlState;           /* of type CONTROL_STATE */
-  uint8_t Current_Feature;
-  uint8_t Current_Configuration;   /* Selected configuration */
-  uint8_t Current_Interface;       /* Selected interface of current configuration */
-  uint8_t Current_AlternateSetting;/* Selected Alternate Setting of current
-                                     interface*/
-
-  ENDPOINT_INFO Ctrl_Info;
-}DEVICE_INFO;
-
-typedef struct _DEVICE_PROP
-{
-  void (*Init)(void);        /* Initialize the device */
-  void (*Reset)(void);       /* Reset routine of this device */
-
-  /* Device dependent process after the status stage */
-  void (*Process_Status_IN)(void);
-  void (*Process_Status_OUT)(void);
-
-  /* Procedure of process on setup stage of a class specified request with data stage */
-  /* All class specified requests with data stage are processed in Class_Data_Setup
-   Class_Data_Setup()
-    responses to check all special requests and fills ENDPOINT_INFO
-    according to the request
-    If IN tokens are expected, then wLength & wOffset will be filled
-    with the total transferring bytes and the starting position
-    If OUT tokens are expected, then rLength & rOffset will be filled
-    with the total expected bytes and the starting position in the buffer
-
-    If the request is valid, Class_Data_Setup returns SUCCESS, else UNSUPPORT
-
-   CAUTION:
-    Since GET_CONFIGURATION & GET_INTERFACE are highly related to
-    the individual classes, they will be checked and processed here.
-  */
-  RESULT (*Class_Data_Setup)(uint8_t RequestNo);
-
-  /* Procedure of process on setup stage of a class specified request without data stage */
-  /* All class specified requests without data stage are processed in Class_NoData_Setup
-   Class_NoData_Setup
-    responses to check all special requests and perform the request
-
-   CAUTION:
-    Since SET_CONFIGURATION & SET_INTERFACE are highly related to
-    the individual classes, they will be checked and processed here.
-  */
-  RESULT (*Class_NoData_Setup)(uint8_t RequestNo);
-
-  /*Class_Get_Interface_Setting
-   This function is used by the file usb_core.c to test if the selected Interface
-   and Alternate Setting (uint8_t Interface, uint8_t AlternateSetting) are supported by
-   the application.
-   This function is writing by user. It should return "SUCCESS" if the Interface
-   and Alternate Setting are supported by the application or "UNSUPPORT" if they
-   are not supported. */
-
-  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;
-
-}DEVICE_PROP;
-
-typedef struct _USER_STANDARD_REQUESTS
-{
-  void (*User_GetConfiguration)(void);       /* Get Configuration */
-  void (*User_SetConfiguration)(void);       /* Set Configuration */
-  void (*User_GetInterface)(void);           /* Get Interface */
-  void (*User_SetInterface)(void);           /* Set Interface */
-  void (*User_GetStatus)(void);              /* Get Status */
-  void (*User_ClearFeature)(void);           /* Clear Feature */
-  void (*User_SetEndPointFeature)(void);     /* Set Endpoint Feature */
-  void (*User_SetDeviceFeature)(void);       /* Set Device Feature */
-  void (*User_SetDeviceAddress)(void);       /* Set Device Address */
-}
-USER_STANDARD_REQUESTS;
-
-/* Exported constants --------------------------------------------------------*/
-#define Type_Recipient (pInformation->USBbmRequestType & (REQUEST_TYPE | RECIPIENT))
-
-#define Usb_rLength Usb_wLength
-#define Usb_rOffset Usb_wOffset
-
-#define USBwValue USBwValues.w
-#define USBwValue0 USBwValues.bw.bb0
-#define USBwValue1 USBwValues.bw.bb1
-#define USBwIndex USBwIndexs.w
-#define USBwIndex0 USBwIndexs.bw.bb0
-#define USBwIndex1 USBwIndexs.bw.bb1
-#define USBwLength USBwLengths.w
-#define USBwLength0 USBwLengths.bw.bb0
-#define USBwLength1 USBwLengths.bw.bb1
-
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-uint8_t Setup0_Process(void);
-uint8_t Post0_Process(void);
-uint8_t Out0_Process(void);
-uint8_t In0_Process(void);
-
-RESULT Standard_SetEndPointFeature(void);
-RESULT Standard_SetDeviceFeature(void);
-
-uint8_t *Standard_GetConfiguration(uint16_t Length);
-RESULT Standard_SetConfiguration(void);
-uint8_t *Standard_GetInterface(uint16_t Length);
-RESULT Standard_SetInterface(void);
-uint8_t *Standard_GetDescriptorData(uint16_t Length, PONE_DESCRIPTOR pDesc);
-
-uint8_t *Standard_GetStatus(uint16_t Length);
-RESULT Standard_ClearFeature(void);
-void SetDeviceAddress(uint8_t);
-void NOP_Process(void);
-
-extern const DEVICE_PROP Device_Property;
-extern const USER_STANDARD_REQUESTS User_Standard_Requests;
-extern const DEVICE  Device_Table;
-extern DEVICE_INFO Device_Info;
-
-/* cells saving status during interrupt servicing */
-extern __IO uint16_t SaveRState;
-extern __IO uint16_t SaveTState;
-
-#endif /* __USB_CORE_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_def.h b/STM32_USB-FS-Device_Driver/inc/usb_def.h
deleted file mode 100644 (file)
index 292de68..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_def.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Definitions related to USB Core
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_DEF_H
-#define __USB_DEF_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-typedef enum _RECIPIENT_TYPE
-{
-  DEVICE_RECIPIENT,     /* Recipient device */
-  INTERFACE_RECIPIENT,  /* Recipient interface */
-  ENDPOINT_RECIPIENT,   /* Recipient endpoint */
-  OTHER_RECIPIENT
-} RECIPIENT_TYPE;
-
-
-typedef enum _STANDARD_REQUESTS
-{
-  GET_STATUS = 0,
-  CLEAR_FEATURE,
-  RESERVED1,
-  SET_FEATURE,
-  RESERVED2,
-  SET_ADDRESS,
-  GET_DESCRIPTOR,
-  SET_DESCRIPTOR,
-  GET_CONFIGURATION,
-  SET_CONFIGURATION,
-  GET_INTERFACE,
-  SET_INTERFACE,
-  TOTAL_sREQUEST,  /* Total number of Standard request */
-  SYNCH_FRAME = 12
-} STANDARD_REQUESTS;
-
-/* Definition of "USBwValue" */
-typedef enum _DESCRIPTOR_TYPE
-{
-  DEVICE_DESCRIPTOR = 1,
-  CONFIG_DESCRIPTOR,
-  STRING_DESCRIPTOR,
-  INTERFACE_DESCRIPTOR,
-  ENDPOINT_DESCRIPTOR
-} DESCRIPTOR_TYPE;
-
-/* Feature selector of a SET_FEATURE or CLEAR_FEATURE */
-typedef enum _FEATURE_SELECTOR
-{
-  ENDPOINT_STALL,
-  DEVICE_REMOTE_WAKEUP
-} FEATURE_SELECTOR;
-
-/* Exported constants --------------------------------------------------------*/
-/* Definition of "USBbmRequestType" */
-#define REQUEST_TYPE      0x60  /* Mask to get request type */
-#define STANDARD_REQUEST  0x00  /* Standard request */
-#define CLASS_REQUEST     0x20  /* Class request */
-#define VENDOR_REQUEST    0x40  /* Vendor request */
-
-#define RECIPIENT         0x1F  /* Mask to get recipient */
-
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-#endif /* __USB_DEF_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_init.h b/STM32_USB-FS-Device_Driver/inc/usb_init.h
deleted file mode 100644 (file)
index c570f8a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_init.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Initialization routines & global variables
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_INIT_H
-#define __USB_INIT_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-void USB_Init(void);
-
-/* External variables --------------------------------------------------------*/
-/*  The number of current endpoint, it will be used to specify an endpoint */
-extern uint8_t EPindex;
-/*  The number of current device, it is an index to the Device_Table */
-/*extern uint8_t       Device_no; */
-/*  Points to the DEVICE_INFO structure of current device */
-/*  The purpose of this register is to speed up the execution */
-extern DEVICE_INFO*    pInformation;
-/*  Points to the DEVICE_PROP structure of current device */
-/*  The purpose of this register is to speed up the execution */
-extern const DEVICE_PROP*      pProperty;
-/*  Temporary save the state of Rx & Tx status. */
-/*  Whenever the Rx or Tx state is changed, its value is saved */
-/*  in this variable first and will be set to the EPRB or EPRA */
-/*  at the end of interrupt process */
-extern const USER_STANDARD_REQUESTS *pUser_Standard_Requests;
-
-extern uint16_t        SaveState ;
-extern uint16_t wInterrupt_Mask;
-
-#endif /* __USB_INIT_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_int.h b/STM32_USB-FS-Device_Driver/inc/usb_int.h
deleted file mode 100644 (file)
index 617c88d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_int.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Endpoint CTR (Low and High) interrupt's service routines
-*                      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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_INT_H
-#define __USB_INT_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-void CTR_LP(void);
-void CTR_HP(void);
-
-/* External variables --------------------------------------------------------*/
-
-#endif /* __USB_INT_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_lib.h b/STM32_USB-FS-Device_Driver/inc/usb_lib.h
deleted file mode 100644 (file)
index 8d4d094..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_lib.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : USB library include files
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_LIB_H
-#define __USB_LIB_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f10x.h"
-#include "usb_type.h"
-#include "usb_regs.h"
-#include "usb_def.h"
-#include "usb_core.h"
-#include "usb_init.h"
-#ifndef STM32F10X_CL
- #include "usb_mem.h"
- #include "usb_int.h"
-#endif /* STM32F10X_CL */
-
-#include "usb_sil.h"
-
-#ifdef STM32F10X_CL
- #include "otgd_fs_cal.h"
- #include "otgd_fs_pcd.h"
- #include "otgd_fs_dev.h"
- #include "otgd_fs_int.h"
-#endif /* STM32F10X_CL */
-
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-/* External variables --------------------------------------------------------*/
-
-#endif /* __USB_LIB_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_mem.h b/STM32_USB-FS-Device_Driver/inc/usb_mem.h
deleted file mode 100644 (file)
index 6b906d9..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_mem.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Utility prototypes functions for memory/PMA transfers
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_MEM_H
-#define __USB_MEM_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-void UserToPMABufferCopy(uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
-void PMAToUserBufferCopy(uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
-
-/* External variables --------------------------------------------------------*/
-
-#endif  /*__USB_MEM_H*/
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_regs.h b/STM32_USB-FS-Device_Driver/inc/usb_regs.h
deleted file mode 100644 (file)
index e0ff108..0000000
+++ /dev/null
@@ -1,670 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_regs.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Interface prototype functions to USB cell registers
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_REGS_H
-#define __USB_REGS_H
-
-#ifndef STM32F10X_CL
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-typedef enum _EP_DBUF_DIR
-{
-  /* double buffered endpoint direction */
-  EP_DBUF_ERR,
-  EP_DBUF_OUT,
-  EP_DBUF_IN
-}EP_DBUF_DIR;
-
-/* endpoint buffer number */
-enum EP_BUF_NUM
-{
-  EP_NOBUF,
-  EP_BUF0,
-  EP_BUF1
-};
-
-/* Exported constants --------------------------------------------------------*/
-#define RegBase  (0x40005C00L)  /* USB_IP Peripheral Registers base address */
-#define PMAAddr  (0x40006000L)  /* USB_IP Packet Memory Area base address   */
-
-/******************************************************************************/
-/*                         General registers                                  */
-/******************************************************************************/
-
-/* Control register */
-#define CNTR    ((__IO unsigned *)(RegBase + 0x40))
-/* Interrupt status register */
-#define ISTR    ((__IO unsigned *)(RegBase + 0x44))
-/* Frame number register */
-#define FNR     ((__IO unsigned *)(RegBase + 0x48))
-/* Device address register */
-#define DADDR   ((__IO unsigned *)(RegBase + 0x4C))
-/* Buffer Table address register */
-#define BTABLE  ((__IO unsigned *)(RegBase + 0x50))
-/******************************************************************************/
-/*                         Endpoint registers                                 */
-/******************************************************************************/
-#define EP0REG  ((__IO unsigned *)(RegBase)) /* endpoint 0 register address */
-
-/* Endpoint Addresses (w/direction) */
-#define EP0_OUT     ((uint8_t)0x00)  
-#define EP0_IN      ((uint8_t)0x80) 
-#define EP1_OUT     ((uint8_t)0x01)  
-#define EP1_IN      ((uint8_t)0x81)  
-#define EP2_OUT     ((uint8_t)0x02)  
-#define EP2_IN      ((uint8_t)0x82)  
-#define EP3_OUT     ((uint8_t)0x03)  
-#define EP3_IN      ((uint8_t)0x83) 
-#define EP4_OUT     ((uint8_t)0x04)  
-#define EP4_IN      ((uint8_t)0x84)
-#define EP5_OUT     ((uint8_t)0x05)  
-#define EP5_IN      ((uint8_t)0x85)
-#define EP6_OUT     ((uint8_t)0x06)  
-#define EP6_IN      ((uint8_t)0x86)
-#define EP7_OUT     ((uint8_t)0x07)  
-#define EP7_IN      ((uint8_t)0x87)
-
-/* endpoints enumeration */
-#define ENDP0       ((uint8_t)0)
-#define ENDP1       ((uint8_t)1)
-#define ENDP2       ((uint8_t)2)
-#define ENDP3       ((uint8_t)3)
-#define ENDP4       ((uint8_t)4)
-#define ENDP5       ((uint8_t)5)
-#define ENDP6       ((uint8_t)6)
-#define ENDP7       ((uint8_t)7)
-
-/******************************************************************************/
-/*                       ISTR interrupt events                                */
-/******************************************************************************/
-#define ISTR_CTR    (0x8000) /* Correct TRansfer (clear-only bit) */
-#define ISTR_DOVR   (0x4000) /* DMA OVeR/underrun (clear-only bit) */
-#define ISTR_ERR    (0x2000) /* ERRor (clear-only bit) */
-#define ISTR_WKUP   (0x1000) /* WaKe UP (clear-only bit) */
-#define ISTR_SUSP   (0x0800) /* SUSPend (clear-only bit) */
-#define ISTR_RESET  (0x0400) /* RESET (clear-only bit) */
-#define ISTR_SOF    (0x0200) /* Start Of Frame (clear-only bit) */
-#define ISTR_ESOF   (0x0100) /* Expected Start Of Frame (clear-only bit) */
-
-
-#define ISTR_DIR    (0x0010)  /* DIRection of transaction (read-only bit)  */
-#define ISTR_EP_ID  (0x000F)  /* EndPoint IDentifier (read-only bit)  */
-
-#define CLR_CTR    (~ISTR_CTR)   /* clear Correct TRansfer bit */
-#define CLR_DOVR   (~ISTR_DOVR)  /* clear DMA OVeR/underrun bit*/
-#define CLR_ERR    (~ISTR_ERR)   /* clear ERRor bit */
-#define CLR_WKUP   (~ISTR_WKUP)  /* clear WaKe UP bit     */
-#define CLR_SUSP   (~ISTR_SUSP)  /* clear SUSPend bit     */
-#define CLR_RESET  (~ISTR_RESET) /* clear RESET bit      */
-#define CLR_SOF    (~ISTR_SOF)   /* clear Start Of Frame bit   */
-#define CLR_ESOF   (~ISTR_ESOF)  /* clear Expected Start Of Frame bit */
-
-/******************************************************************************/
-/*             CNTR control register bits definitions                         */
-/******************************************************************************/
-#define CNTR_CTRM   (0x8000) /* Correct TRansfer Mask */
-#define CNTR_DOVRM  (0x4000) /* DMA OVeR/underrun Mask */
-#define CNTR_ERRM   (0x2000) /* ERRor Mask */
-#define CNTR_WKUPM  (0x1000) /* WaKe UP Mask */
-#define CNTR_SUSPM  (0x0800) /* SUSPend Mask */
-#define CNTR_RESETM (0x0400) /* RESET Mask   */
-#define CNTR_SOFM   (0x0200) /* Start Of Frame Mask */
-#define CNTR_ESOFM  (0x0100) /* Expected Start Of Frame Mask */
-
-
-#define CNTR_RESUME (0x0010) /* RESUME request */
-#define CNTR_FSUSP  (0x0008) /* Force SUSPend */
-#define CNTR_LPMODE (0x0004) /* Low-power MODE */
-#define CNTR_PDWN   (0x0002) /* Power DoWN */
-#define CNTR_FRES   (0x0001) /* Force USB RESet */
-
-/******************************************************************************/
-/*                FNR Frame Number Register bit definitions                   */
-/******************************************************************************/
-#define FNR_RXDP (0x8000) /* status of D+ data line */
-#define FNR_RXDM (0x4000) /* status of D- data line */
-#define FNR_LCK  (0x2000) /* LoCKed */
-#define FNR_LSOF (0x1800) /* Lost SOF */
-#define FNR_FN  (0x07FF) /* Frame Number */
-/******************************************************************************/
-/*               DADDR Device ADDRess bit definitions                         */
-/******************************************************************************/
-#define DADDR_EF (0x80)
-#define DADDR_ADD (0x7F)
-/******************************************************************************/
-/*                            Endpoint register                               */
-/******************************************************************************/
-/* bit positions */
-#define EP_CTR_RX      (0x8000) /* EndPoint Correct TRansfer RX */
-#define EP_DTOG_RX     (0x4000) /* EndPoint Data TOGGLE RX */
-#define EPRX_STAT      (0x3000) /* EndPoint RX STATus bit field */
-#define EP_SETUP       (0x0800) /* EndPoint SETUP */
-#define EP_T_FIELD     (0x0600) /* EndPoint TYPE */
-#define EP_KIND        (0x0100) /* EndPoint KIND */
-#define EP_CTR_TX      (0x0080) /* EndPoint Correct TRansfer TX */
-#define EP_DTOG_TX     (0x0040) /* EndPoint Data TOGGLE TX */
-#define EPTX_STAT      (0x0030) /* EndPoint TX STATus bit field */
-#define EPADDR_FIELD   (0x000F) /* EndPoint ADDRess FIELD */
-
-/* EndPoint REGister MASK (no toggle fields) */
-#define EPREG_MASK     (EP_CTR_RX|EP_SETUP|EP_T_FIELD|EP_KIND|EP_CTR_TX|EPADDR_FIELD)
-
-/* EP_TYPE[1:0] EndPoint TYPE */
-#define EP_TYPE_MASK   (0x0600) /* EndPoint TYPE Mask */
-#define EP_BULK        (0x0000) /* EndPoint BULK */
-#define EP_CONTROL     (0x0200) /* EndPoint CONTROL */
-#define EP_ISOCHRONOUS (0x0400) /* EndPoint ISOCHRONOUS */
-#define EP_INTERRUPT   (0x0600) /* EndPoint INTERRUPT */
-#define EP_T_MASK      (~EP_T_FIELD & EPREG_MASK)
-
-
-/* EP_KIND EndPoint KIND */
-#define EPKIND_MASK    (~EP_KIND & EPREG_MASK)
-
-/* STAT_TX[1:0] STATus for TX transfer */
-#define EP_TX_DIS      (0x0000) /* EndPoint TX DISabled */
-#define EP_TX_STALL    (0x0010) /* EndPoint TX STALLed */
-#define EP_TX_NAK      (0x0020) /* EndPoint TX NAKed */
-#define EP_TX_VALID    (0x0030) /* EndPoint TX VALID */
-#define EPTX_DTOG1     (0x0010) /* EndPoint TX Data TOGgle bit1 */
-#define EPTX_DTOG2     (0x0020) /* EndPoint TX Data TOGgle bit2 */
-#define EPTX_DTOGMASK  (EPTX_STAT|EPREG_MASK)
-
-/* STAT_RX[1:0] STATus for RX transfer */
-#define EP_RX_DIS      (0x0000) /* EndPoint RX DISabled */
-#define EP_RX_STALL    (0x1000) /* EndPoint RX STALLed */
-#define EP_RX_NAK      (0x2000) /* EndPoint RX NAKed */
-#define EP_RX_VALID    (0x3000) /* EndPoint RX VALID */
-#define EPRX_DTOG1     (0x1000) /* EndPoint RX Data TOGgle bit1 */
-#define EPRX_DTOG2     (0x2000) /* EndPoint RX Data TOGgle bit1 */
-#define EPRX_DTOGMASK  (EPRX_STAT|EPREG_MASK)
-/* Exported macro ------------------------------------------------------------*/
-/* SetCNTR */
-#define _SetCNTR(wRegValue)  (*CNTR   = (uint16_t)wRegValue)
-
-/* SetISTR */
-#define _SetISTR(wRegValue)  (*ISTR   = (uint16_t)wRegValue)
-
-/* SetDADDR */
-#define _SetDADDR(wRegValue) (*DADDR  = (uint16_t)wRegValue)
-
-/* SetBTABLE */
-#define _SetBTABLE(wRegValue)(*BTABLE = (uint16_t)(wRegValue & 0xFFF8))
-
-/* GetCNTR */
-#define _GetCNTR()   ((uint16_t) *CNTR)
-
-/* GetISTR */
-#define _GetISTR()   ((uint16_t) *ISTR)
-
-/* GetFNR */
-#define _GetFNR()    ((uint16_t) *FNR)
-
-/* GetDADDR */
-#define _GetDADDR()  ((uint16_t) *DADDR)
-
-/* GetBTABLE */
-#define _GetBTABLE() ((uint16_t) *BTABLE)
-
-/* SetENDPOINT */
-#define _SetENDPOINT(bEpNum,wRegValue)  (*(EP0REG + bEpNum)= \
-    (uint16_t)wRegValue)
-
-/* GetENDPOINT */
-#define _GetENDPOINT(bEpNum)        ((uint16_t)(*(EP0REG + bEpNum)))
-
-/*******************************************************************************
-* Macro Name     : SetEPType
-* Description    : sets the type in the endpoint register(bits EP_TYPE[1:0])
-* Input          : bEpNum: Endpoint Number. 
-*                  wType                                                                                        
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPType(bEpNum,wType) (_SetENDPOINT(bEpNum,\
-                                  ((_GetENDPOINT(bEpNum) & EP_T_MASK) | wType )))
-
-/*******************************************************************************
-* Macro Name     : GetEPType
-* Description    : gets the type in the endpoint register(bits EP_TYPE[1:0]) 
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Endpoint Type
-*******************************************************************************/
-#define _GetEPType(bEpNum) (_GetENDPOINT(bEpNum) & EP_T_FIELD)
-
-/*******************************************************************************
-* Macro Name     : SetEPTxStatus
-* Description    : sets the status for tx transfer (bits STAT_TX[1:0]).
-* Input          : bEpNum: Endpoint Number. 
-*                  wState: new state
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPTxStatus(bEpNum,wState) {\
-    register uint16_t _wRegVal;       \
-    _wRegVal = _GetENDPOINT(bEpNum) & EPTX_DTOGMASK;\
-    /* toggle first bit ? */     \
-    if((EPTX_DTOG1 & wState)!= 0)      \
-      _wRegVal ^= EPTX_DTOG1;        \
-    /* toggle second bit ?  */         \
-    if((EPTX_DTOG2 & wState)!= 0)      \
-      _wRegVal ^= EPTX_DTOG2;        \
-    _SetENDPOINT(bEpNum, (_wRegVal | EP_CTR_RX|EP_CTR_TX));    \
-  } /* _SetEPTxStatus */
-
-/*******************************************************************************
-* Macro Name     : SetEPRxStatus
-* Description    : sets the status for rx transfer (bits STAT_TX[1:0])
-* Input          : bEpNum: Endpoint Number. 
-*                  wState: new state.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPRxStatus(bEpNum,wState) {\
-    register uint16_t _wRegVal;   \
-    \
-    _wRegVal = _GetENDPOINT(bEpNum) & EPRX_DTOGMASK;\
-    /* toggle first bit ? */  \
-    if((EPRX_DTOG1 & wState)!= 0) \
-      _wRegVal ^= EPRX_DTOG1;  \
-    /* toggle second bit ? */  \
-    if((EPRX_DTOG2 & wState)!= 0) \
-      _wRegVal ^= EPRX_DTOG2;  \
-    _SetENDPOINT(bEpNum, (_wRegVal | EP_CTR_RX|EP_CTR_TX)); \
-  } /* _SetEPRxStatus */
-
-/*******************************************************************************
-* Macro Name     : SetEPRxTxStatus
-* Description    : sets the status for rx & tx (bits STAT_TX[1:0] & STAT_RX[1:0])
-* Input          : bEpNum: Endpoint Number. 
-*                  wStaterx: new state.
-*                  wStatetx: new state.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPRxTxStatus(bEpNum,wStaterx,wStatetx) {\
-    register uint32_t _wRegVal;   \
-    \
-    _wRegVal = _GetENDPOINT(bEpNum) & (EPRX_DTOGMASK |EPTX_STAT) ;\
-    /* toggle first bit ? */  \
-    if((EPRX_DTOG1 & wStaterx)!= 0) \
-      _wRegVal ^= EPRX_DTOG1;  \
-    /* toggle second bit ? */  \
-    if((EPRX_DTOG2 & wStaterx)!= 0) \
-      _wRegVal ^= EPRX_DTOG2;  \
-    /* toggle first bit ? */     \
-    if((EPTX_DTOG1 & wStatetx)!= 0)      \
-      _wRegVal ^= EPTX_DTOG1;        \
-    /* toggle second bit ?  */         \
-    if((EPTX_DTOG2 & wStatetx)!= 0)      \
-      _wRegVal ^= EPTX_DTOG2;        \
-    _SetENDPOINT(bEpNum, _wRegVal | EP_CTR_RX|EP_CTR_TX);    \
-  } /* _SetEPRxTxStatus */
-/*******************************************************************************
-* Macro Name     : GetEPTxStatus / GetEPRxStatus 
-* Description    : gets the status for tx/rx transfer (bits STAT_TX[1:0]
-*                  /STAT_RX[1:0])
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : status .
-*******************************************************************************/
-#define _GetEPTxStatus(bEpNum) ((uint16_t)_GetENDPOINT(bEpNum) & EPTX_STAT)
-
-#define _GetEPRxStatus(bEpNum) ((uint16_t)_GetENDPOINT(bEpNum) & EPRX_STAT)
-
-/*******************************************************************************
-* Macro Name     : SetEPTxValid / SetEPRxValid 
-* Description    : sets directly the VALID tx/rx-status into the enpoint register
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPTxValid(bEpNum)     (_SetEPTxStatus(bEpNum, EP_TX_VALID))
-
-#define _SetEPRxValid(bEpNum)     (_SetEPRxStatus(bEpNum, EP_RX_VALID))
-
-/*******************************************************************************
-* Macro Name     : GetTxStallStatus / GetRxStallStatus.
-* Description    : checks stall condition in an endpoint.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : TRUE = endpoint in stall condition.
-*******************************************************************************/
-#define _GetTxStallStatus(bEpNum) (_GetEPTxStatus(bEpNum) \
-                                   == EP_TX_STALL)
-#define _GetRxStallStatus(bEpNum) (_GetEPRxStatus(bEpNum) \
-                                   == EP_RX_STALL)
-
-/*******************************************************************************
-* Macro Name     : SetEP_KIND / ClearEP_KIND.
-* Description    : set & clear EP_KIND bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEP_KIND(bEpNum)    (_SetENDPOINT(bEpNum, \
-                                (EP_CTR_RX|EP_CTR_TX|((_GetENDPOINT(bEpNum) | EP_KIND) & EPREG_MASK))))
-#define _ClearEP_KIND(bEpNum)  (_SetENDPOINT(bEpNum, \
-                                (EP_CTR_RX|EP_CTR_TX|(_GetENDPOINT(bEpNum) & EPKIND_MASK))))
-
-/*******************************************************************************
-* Macro Name     : Set_Status_Out / Clear_Status_Out.
-* Description    : Sets/clears directly STATUS_OUT bit in the endpoint register.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _Set_Status_Out(bEpNum)    _SetEP_KIND(bEpNum)
-#define _Clear_Status_Out(bEpNum)  _ClearEP_KIND(bEpNum)
-
-/*******************************************************************************
-* Macro Name     : SetEPDoubleBuff / ClearEPDoubleBuff.
-* Description    : Sets/clears directly EP_KIND bit in the endpoint register.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPDoubleBuff(bEpNum)   _SetEP_KIND(bEpNum)
-#define _ClearEPDoubleBuff(bEpNum) _ClearEP_KIND(bEpNum)
-
-/*******************************************************************************
-* Macro Name     : ClearEP_CTR_RX / ClearEP_CTR_TX.
-* Description    : Clears bit CTR_RX / CTR_TX in the endpoint register.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _ClearEP_CTR_RX(bEpNum)   (_SetENDPOINT(bEpNum,\
-                                   _GetENDPOINT(bEpNum) & 0x7FFF & EPREG_MASK))
-#define _ClearEP_CTR_TX(bEpNum)   (_SetENDPOINT(bEpNum,\
-                                   _GetENDPOINT(bEpNum) & 0xFF7F & EPREG_MASK))
-
-/*******************************************************************************
-* Macro Name     : ToggleDTOG_RX / ToggleDTOG_TX .
-* Description    : Toggles DTOG_RX / DTOG_TX bit in the endpoint register.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _ToggleDTOG_RX(bEpNum)    (_SetENDPOINT(bEpNum, \
-                                   EP_CTR_RX|EP_CTR_TX|EP_DTOG_RX | (_GetENDPOINT(bEpNum) & EPREG_MASK)))
-#define _ToggleDTOG_TX(bEpNum)    (_SetENDPOINT(bEpNum, \
-                                   EP_CTR_RX|EP_CTR_TX|EP_DTOG_TX | (_GetENDPOINT(bEpNum) & EPREG_MASK)))
-
-/*******************************************************************************
-* Macro Name     : ClearDTOG_RX / ClearDTOG_TX.
-* Description    : Clears DTOG_RX / DTOG_TX bit in the endpoint register.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _ClearDTOG_RX(bEpNum)  if((_GetENDPOINT(bEpNum) & EP_DTOG_RX) != 0)\
-    _ToggleDTOG_RX(bEpNum)
-#define _ClearDTOG_TX(bEpNum)  if((_GetENDPOINT(bEpNum) & EP_DTOG_TX) != 0)\
-    _ToggleDTOG_TX(bEpNum)
-/*******************************************************************************
-* Macro Name     : SetEPAddress.
-* Description    : Sets address in an endpoint register.
-* Input          : bEpNum: Endpoint Number.
-*                  bAddr: Address. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPAddress(bEpNum,bAddr) _SetENDPOINT(bEpNum,\
-    EP_CTR_RX|EP_CTR_TX|(_GetENDPOINT(bEpNum) & EPREG_MASK) | bAddr)
-
-/*******************************************************************************
-* Macro Name     : GetEPAddress.
-* Description    : Gets address in an endpoint register.
-* Input          : bEpNum: Endpoint Number.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _GetEPAddress(bEpNum) ((uint8_t)(_GetENDPOINT(bEpNum) & EPADDR_FIELD))
-
-#define _pEPTxAddr(bEpNum) ((uint32_t *)((_GetBTABLE()+bEpNum*8  )*2 + PMAAddr))
-#define _pEPTxCount(bEpNum) ((uint32_t *)((_GetBTABLE()+bEpNum*8+2)*2 + PMAAddr))
-#define _pEPRxAddr(bEpNum) ((uint32_t *)((_GetBTABLE()+bEpNum*8+4)*2 + PMAAddr))
-#define _pEPRxCount(bEpNum) ((uint32_t *)((_GetBTABLE()+bEpNum*8+6)*2 + PMAAddr))
-
-/*******************************************************************************
-* Macro Name     : SetEPTxAddr / SetEPRxAddr.
-* Description    : sets address of the tx/rx buffer.
-* Input          : bEpNum: Endpoint Number.
-*                  wAddr: address to be set (must be word aligned).
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPTxAddr(bEpNum,wAddr) (*_pEPTxAddr(bEpNum) = ((wAddr >> 1) << 1))
-#define _SetEPRxAddr(bEpNum,wAddr) (*_pEPRxAddr(bEpNum) = ((wAddr >> 1) << 1))
-
-/*******************************************************************************
-* Macro Name     : GetEPTxAddr / GetEPRxAddr.
-* Description    : Gets address of the tx/rx buffer.
-* Input          : bEpNum: Endpoint Number.
-* Output         : None.
-* Return         : address of the buffer.
-*******************************************************************************/
-#define _GetEPTxAddr(bEpNum) ((uint16_t)*_pEPTxAddr(bEpNum))
-#define _GetEPRxAddr(bEpNum) ((uint16_t)*_pEPRxAddr(bEpNum))
-
-/*******************************************************************************
-* Macro Name     : SetEPCountRxReg.
-* Description    : Sets counter of rx buffer with no. of blocks.
-* Input          : pdwReg: pointer to counter.
-*                  wCount: Counter.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _BlocksOf32(dwReg,wCount,wNBlocks) {\
-    wNBlocks = wCount >> 5;\
-    if((wCount & 0x1f) == 0)\
-      wNBlocks--;\
-    *pdwReg = (uint32_t)((wNBlocks << 10) | 0x8000);\
-  }/* _BlocksOf32 */
-
-#define _BlocksOf2(dwReg,wCount,wNBlocks) {\
-    wNBlocks = wCount >> 1;\
-    if((wCount & 0x1) != 0)\
-      wNBlocks++;\
-    *pdwReg = (uint32_t)(wNBlocks << 10);\
-  }/* _BlocksOf2 */
-
-#define _SetEPCountRxReg(dwReg,wCount)  {\
-    uint16_t wNBlocks;\
-    if(wCount > 62){_BlocksOf32(dwReg,wCount,wNBlocks);}\
-    else {_BlocksOf2(dwReg,wCount,wNBlocks);}\
-  }/* _SetEPCountRxReg */
-
-
-
-#define _SetEPRxDblBuf0Count(bEpNum,wCount) {\
-    uint32_t *pdwReg = _pEPTxCount(bEpNum); \
-    _SetEPCountRxReg(pdwReg, wCount);\
-  }
-/*******************************************************************************
-* Macro Name     : SetEPTxCount / SetEPRxCount.
-* Description    : sets counter for the tx/rx buffer.
-* Input          : bEpNum: endpoint number.
-*                  wCount: Counter value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPTxCount(bEpNum,wCount) (*_pEPTxCount(bEpNum) = wCount)
-#define _SetEPRxCount(bEpNum,wCount) {\
-    uint32_t *pdwReg = _pEPRxCount(bEpNum); \
-    _SetEPCountRxReg(pdwReg, wCount);\
-  }
-/*******************************************************************************
-* Macro Name     : GetEPTxCount / GetEPRxCount.
-* Description    : gets counter of the tx buffer.
-* Input          : bEpNum: endpoint number.
-* Output         : None.
-* Return         : Counter value.
-*******************************************************************************/
-#define _GetEPTxCount(bEpNum)((uint16_t)(*_pEPTxCount(bEpNum)) & 0x3ff)
-#define _GetEPRxCount(bEpNum)((uint16_t)(*_pEPRxCount(bEpNum)) & 0x3ff)
-
-/*******************************************************************************
-* Macro Name     : SetEPDblBuf0Addr / SetEPDblBuf1Addr.
-* Description    : Sets buffer 0/1 address in a double buffer endpoint.
-* Input          : bEpNum: endpoint number.
-*                : wBuf0Addr: buffer 0 address.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPDblBuf0Addr(bEpNum,wBuf0Addr) {_SetEPTxAddr(bEpNum, wBuf0Addr);}
-#define _SetEPDblBuf1Addr(bEpNum,wBuf1Addr) {_SetEPRxAddr(bEpNum, wBuf1Addr);}
-
-/*******************************************************************************
-* Macro Name     : SetEPDblBuffAddr.
-* Description    : Sets addresses in a double buffer endpoint.
-* Input          : bEpNum: endpoint number.
-*                : wBuf0Addr: buffer 0 address.
-*                : wBuf1Addr = buffer 1 address.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPDblBuffAddr(bEpNum,wBuf0Addr,wBuf1Addr) { \
-    _SetEPDblBuf0Addr(bEpNum, wBuf0Addr);\
-    _SetEPDblBuf1Addr(bEpNum, wBuf1Addr);\
-  } /* _SetEPDblBuffAddr */
-
-/*******************************************************************************
-* Macro Name     : GetEPDblBuf0Addr / GetEPDblBuf1Addr.
-* Description    : Gets buffer 0/1 address of a double buffer endpoint.
-* Input          : bEpNum: endpoint number.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _GetEPDblBuf0Addr(bEpNum) (_GetEPTxAddr(bEpNum))
-#define _GetEPDblBuf1Addr(bEpNum) (_GetEPRxAddr(bEpNum))
-
-/*******************************************************************************
-* Macro Name     : SetEPDblBuffCount / SetEPDblBuf0Count / SetEPDblBuf1Count.
-* Description    : Gets buffer 0/1 address of a double buffer endpoint.
-* Input          : bEpNum: endpoint number.
-*                : bDir: endpoint dir  EP_DBUF_OUT = OUT 
-*                                      EP_DBUF_IN  = IN 
-*                : wCount: Counter value    
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _SetEPDblBuf0Count(bEpNum, bDir, wCount)  { \
-    if(bDir == EP_DBUF_OUT)\
-      /* OUT endpoint */ \
-    {_SetEPRxDblBuf0Count(bEpNum,wCount);} \
-    else if(bDir == EP_DBUF_IN)\
-      /* IN endpoint */ \
-      *_pEPTxCount(bEpNum) = (uint32_t)wCount;  \
-  } /* SetEPDblBuf0Count*/
-
-#define _SetEPDblBuf1Count(bEpNum, bDir, wCount)  { \
-    if(bDir == EP_DBUF_OUT)\
-      /* OUT endpoint */ \
-    {_SetEPRxCount(bEpNum,wCount);}\
-    else if(bDir == EP_DBUF_IN)\
-      /* IN endpoint */\
-      *_pEPRxCount(bEpNum) = (uint32_t)wCount; \
-  } /* SetEPDblBuf1Count */
-
-#define _SetEPDblBuffCount(bEpNum, bDir, wCount) {\
-    _SetEPDblBuf0Count(bEpNum, bDir, wCount); \
-    _SetEPDblBuf1Count(bEpNum, bDir, wCount); \
-  } /* _SetEPDblBuffCount  */
-
-/*******************************************************************************
-* Macro Name     : GetEPDblBuf0Count / GetEPDblBuf1Count.
-* Description    : Gets buffer 0/1 rx/tx counter for double buffering.
-* Input          : bEpNum: endpoint number.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-#define _GetEPDblBuf0Count(bEpNum) (_GetEPTxCount(bEpNum))
-#define _GetEPDblBuf1Count(bEpNum) (_GetEPRxCount(bEpNum))
-
-
-/* External variables --------------------------------------------------------*/
-extern __IO uint16_t wIstr;  /* ISTR register last read value */
-
-/* Exported functions ------------------------------------------------------- */
-void SetCNTR(uint16_t /*wRegValue*/);
-void SetISTR(uint16_t /*wRegValue*/);
-void SetDADDR(uint16_t /*wRegValue*/);
-void SetBTABLE(uint16_t /*wRegValue*/);
-uint16_t GetCNTR(void);
-uint16_t GetISTR(void);
-uint16_t GetFNR(void);
-uint16_t GetDADDR(void);
-uint16_t GetBTABLE(void);
-void SetENDPOINT(uint8_t /*bEpNum*/, uint16_t /*wRegValue*/);
-uint16_t GetENDPOINT(uint8_t /*bEpNum*/);
-void SetEPType(uint8_t /*bEpNum*/, uint16_t /*wType*/);
-uint16_t GetEPType(uint8_t /*bEpNum*/);
-void SetEPTxStatus(uint8_t /*bEpNum*/, uint16_t /*wState*/);
-void SetEPRxStatus(uint8_t /*bEpNum*/, uint16_t /*wState*/);
-void SetDouBleBuffEPStall(uint8_t /*bEpNum*/, uint8_t bDir);
-uint16_t GetEPTxStatus(uint8_t /*bEpNum*/);
-uint16_t GetEPRxStatus(uint8_t /*bEpNum*/);
-void SetEPTxValid(uint8_t /*bEpNum*/);
-void SetEPRxValid(uint8_t /*bEpNum*/);
-uint16_t GetTxStallStatus(uint8_t /*bEpNum*/);
-uint16_t GetRxStallStatus(uint8_t /*bEpNum*/);
-void SetEP_KIND(uint8_t /*bEpNum*/);
-void ClearEP_KIND(uint8_t /*bEpNum*/);
-void Set_Status_Out(uint8_t /*bEpNum*/);
-void Clear_Status_Out(uint8_t /*bEpNum*/);
-void SetEPDoubleBuff(uint8_t /*bEpNum*/);
-void ClearEPDoubleBuff(uint8_t /*bEpNum*/);
-void ClearEP_CTR_RX(uint8_t /*bEpNum*/);
-void ClearEP_CTR_TX(uint8_t /*bEpNum*/);
-void ToggleDTOG_RX(uint8_t /*bEpNum*/);
-void ToggleDTOG_TX(uint8_t /*bEpNum*/);
-void ClearDTOG_RX(uint8_t /*bEpNum*/);
-void ClearDTOG_TX(uint8_t /*bEpNum*/);
-void SetEPAddress(uint8_t /*bEpNum*/, uint8_t /*bAddr*/);
-uint8_t GetEPAddress(uint8_t /*bEpNum*/);
-void SetEPTxAddr(uint8_t /*bEpNum*/, uint16_t /*wAddr*/);
-void SetEPRxAddr(uint8_t /*bEpNum*/, uint16_t /*wAddr*/);
-uint16_t GetEPTxAddr(uint8_t /*bEpNum*/);
-uint16_t GetEPRxAddr(uint8_t /*bEpNum*/);
-void SetEPCountRxReg(uint32_t * /*pdwReg*/, uint16_t /*wCount*/);
-void SetEPTxCount(uint8_t /*bEpNum*/, uint16_t /*wCount*/);
-void SetEPRxCount(uint8_t /*bEpNum*/, uint16_t /*wCount*/);
-uint16_t GetEPTxCount(uint8_t /*bEpNum*/);
-uint16_t GetEPRxCount(uint8_t /*bEpNum*/);
-void SetEPDblBuf0Addr(uint8_t /*bEpNum*/, uint16_t /*wBuf0Addr*/);
-void SetEPDblBuf1Addr(uint8_t /*bEpNum*/, uint16_t /*wBuf1Addr*/);
-void SetEPDblBuffAddr(uint8_t /*bEpNum*/, uint16_t /*wBuf0Addr*/, uint16_t /*wBuf1Addr*/);
-uint16_t GetEPDblBuf0Addr(uint8_t /*bEpNum*/);
-uint16_t GetEPDblBuf1Addr(uint8_t /*bEpNum*/);
-void SetEPDblBuffCount(uint8_t /*bEpNum*/, uint8_t /*bDir*/, uint16_t /*wCount*/);
-void SetEPDblBuf0Count(uint8_t /*bEpNum*/, uint8_t /*bDir*/, uint16_t /*wCount*/);
-void SetEPDblBuf1Count(uint8_t /*bEpNum*/, uint8_t /*bDir*/, uint16_t /*wCount*/);
-uint16_t GetEPDblBuf0Count(uint8_t /*bEpNum*/);
-uint16_t GetEPDblBuf1Count(uint8_t /*bEpNum*/);
-EP_DBUF_DIR GetEPDblBufDir(uint8_t /*bEpNum*/);
-void FreeUserBuffer(uint8_t bEpNum/*bEpNum*/, uint8_t bDir);
-uint16_t ToWord(uint8_t, uint8_t);
-uint16_t ByteSwap(uint16_t);
-
-#endif /* STM32F10X_CL */
-
-#endif /* __USB_REGS_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_sil.h b/STM32_USB-FS-Device_Driver/inc/usb_sil.h
deleted file mode 100644 (file)
index af4884f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_sil.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Simplified Interface Layer function 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_SIL_H
-#define __USB_SIL_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-uint32_t USB_SIL_Init(void);
-uint32_t USB_SIL_Write(uint8_t bEpAddr, uint8_t* pBufferPointer, uint32_t wBufferSize);
-uint32_t USB_SIL_Read(uint8_t bEpAddr, uint8_t* pBufferPointer);
-
-/* External variables --------------------------------------------------------*/
-
-#endif /* __USB_SIL_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/inc/usb_type.h b/STM32_USB-FS-Device_Driver/inc/usb_type.h
deleted file mode 100644 (file)
index 8b8bd25..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_type.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Type definitions used by the USB Library
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_TYPE_H
-#define __USB_TYPE_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_conf.h"
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-#ifndef NULL
-#define NULL ((void *)0)
-#endif
-
-#ifndef __STM32F10x_H
-
-typedef signed long      s32;
-typedef signed short     s16;
-typedef signed char      s8;
-
-typedef volatile signed long      vs32;
-typedef volatile signed short     vs16;
-typedef volatile signed char      vs8;
-
-typedef unsigned long       u32;
-typedef unsigned short      u16;
-typedef unsigned char       u8;
-
-typedef unsigned long  const    uc32;  /* Read Only */
-typedef unsigned short const    uc16;  /* Read Only */
-typedef unsigned char  const    uc8;   /* Read Only */
-
-typedef volatile unsigned long      vu32;
-typedef volatile unsigned short     vu16;
-typedef volatile unsigned char      vu8;
-
-typedef volatile unsigned long  const    vuc32;  /* Read Only */
-typedef volatile unsigned short const    vuc16;  /* Read Only */
-typedef volatile unsigned char  const    vuc8;   /* Read Only */
-
-
-typedef enum
-{
-  FALSE = 0, TRUE  = !FALSE
-}
-bool;
-
-typedef enum { RESET = 0, SET   = !RESET } FlagStatus, ITStatus;
-
-typedef enum { DISABLE = 0, ENABLE  = !DISABLE} FunctionalState;
-
-typedef enum { ERROR = 0, SUCCESS  = !ERROR} ErrorStatus;
-#endif
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-/* External variables --------------------------------------------------------*/
-
-#endif /* __USB_TYPE_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/otgd_fs_cal.c b/STM32_USB-FS-Device_Driver/src/otgd_fs_cal.c
deleted file mode 100644 (file)
index 7944cb7..0000000
+++ /dev/null
@@ -1,1334 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otgd_fs_cal.c
-* Author             : STMicroelectronics
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : OTG FS Device Core Access Layer interface.
-********************************************************************************
-* THE PRESENT SOFTWARE 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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
-* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
-*******************************************************************************/
-
-#ifdef STM32F10X_CL
-
-/* Includes ------------------------------------------------------------------*/
-#include "otgd_fs_cal.h"
-#include "usb_conf.h"
-#include "otgd_fs_regs.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-
-USB_OTG_CORE_REGS     core_regs;
-
-/* Private function prototypes -----------------------------------------------*/
-static uint32_t GetMode(void);
-static void EnableCommonInt(void);
-static USB_OTG_Status SetID(void);
-static USB_OTG_Status OTGD_FS_CoreReset(void);
-
-extern uint32_t STM32_USBH_OTG_ISR_Handler  (void);
-extern uint32_t STM32_PCD_OTG_ISR_Handler (void);
-extern uint32_t STM32_USBO_OTG_ISR_Handler (void);
-
-#ifdef HOST_MODE_ENABLED
-static void InitFSLSPClkSel(void);
-#endif
-
-
-/******************************************************************************/
-/*                           Common Core Layer                                */
-/******************************************************************************/
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PhyInit
-* Description    : Initialize the phy
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_PhyInit(void)
-{
-  USB_OTG_gpio_data    gpioctl;
-  USB_OTG_usb_cfg_data usbcfg;
-  USB_OTG_Status status = USB_OTG_OK;
-  
-  gpioctl.d32 = 0;
-  usbcfg.d32 = 0;
-  
-  /* Enable the I2C interface and deactivate the power down*/
-  gpioctl.d32 = 0;
-  gpioctl.b.vbussensingB = 1;
-  gpioctl.b.pwdn = 1;
-  gpioctl.b.i2cifen = 0;
-  WRITE_REG32 (&core_regs.common_regs->gpio, gpioctl.d32);
-  mDELAY(200);
-
-  /* Program GUSBCFG.OtgUtmifsSel to I2C*/
-  usbcfg.d32 = READ_REG32(&core_regs.common_regs->usb_cfg);
-  usbcfg.b.otgutmifssel = 0;
-  WRITE_REG32 (&core_regs.common_regs->usb_cfg, usbcfg.d32);
-
-  return status;
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_WritePacket
-* Description    : Writes a packet into the Tx FIFO associated with the EP
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_WritePacket(uint8_t *src, uint8_t ch_ep_num, uint16_t bytes)
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  uint32_t dword_count = 0 , i = 0;
-  __IO uint32_t *fifo;
-
-  /* Find the DWORD length, padded by extra bytes as neccessary if MPS
-   * is not a multiple of DWORD */
-  dword_count =  (bytes + 3) / 4;
-
-  fifo = core_regs.data_fifo[ch_ep_num];
-
-  for (i = 0; i < dword_count; i++, src += 4)
-  {
-    WRITE_REG32( fifo, *((__packed uint32_t *)src) );
-  }
-
-  return status;
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_ReadPacket
-* Description    : Reads a packet from the Rx FIFO
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-void* OTGD_FS_ReadPacket(uint8_t *dest, uint16_t bytes)
-{
-  uint32_t i = 0;
-  uint32_t word_count = (bytes + 3) / 4;
-
-  __IO uint32_t *fifo = core_regs.data_fifo[0];
-  uint32_t *data_buff = (uint32_t *)dest;
-
-  for (i = 0; i < word_count; i++, data_buff++)
-  {
-    *data_buff = READ_REG32(fifo);
-  }
-
-  /* Return the buffer pointer because if the transfer is composed of several packets,
-     the data of the next packet must be stored following the previous packet's data         */
-  return ((void *)data_buff);
-}
-/*******************************************************************************
-* Function Name  : EnableCommonInt
-* Description    : initializes the commmon interrupts, used in both device and
-                   host modes
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-static void EnableCommonInt(void)
-{
-
-  USB_OTG_int_msk_data int_mask;
-  
-  int_mask.d32 = 0;
-
-  /* Clear any pending USB_OTG Interrupts */
-  WRITE_REG32( &core_regs.common_regs->otg_int, 0xFFFFFFFF);
-
-  /* Clear any pending common interrupts */
-  WRITE_REG32( &core_regs.common_regs->int_sts, 0xFFFFFFFF);
-
-  WRITE_REG32( &core_regs.common_regs->int_msk, int_mask.d32);
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_SetAddress
-* Description    : Initialize core registers addresses.
-* Input          : BaseAddress
-* Output         : None
-* Return         : status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_SetAddress(uint32_t BaseAddress)
-{
-  uint32_t i = 0;
-  USB_OTG_Status status = USB_OTG_OK;
-  core_regs.common_regs = (USB_OTG_common_regs *)(BaseAddress + USB_OTG_CORE_GLOBAL_REGS_OFFSET);
-  core_regs.dev_regs =  (USB_OTG_dev_regs  *)  (BaseAddress + USB_OTG_DEV_GLOBAL_REG_OFFSET);
-
-  for (i = 0; i < MAX_EPS_CHANNELS; i++)
-  {
-    core_regs.inep_regs[i]  = (USB_OTG_dev_in_ep_regs *)  (BaseAddress + USB_OTG_DEV_IN_EP_REG_OFFSET + (i * USB_OTG_EP_REG_OFFSET));
-    core_regs.outep_regs[i] = (USB_OTG_dev_out_ep_regs *) (BaseAddress + USB_OTG_DEV_OUT_EP_REG_OFFSET + (i * USB_OTG_EP_REG_OFFSET));
-  }
-
-  core_regs.host_regs = (USB_OTG_host_regs *)(BaseAddress + USB_OTG_HOST_GLOBAL_REG_OFFSET);
-  core_regs.hprt0 = (uint32_t *)(BaseAddress + USB_OTG_HOST_PORT_REGS_OFFSET);
-
-  for (i = 0; i < MAX_EPS_CHANNELS; i++)
-  {
-    core_regs.hc_regs[i] = (USB_OTG_hc_regs *)(BaseAddress + USB_OTG_HOST_CHAN_REGS_OFFSET + (i * USB_OTG_CHAN_REGS_OFFSET));
-  }
-
-
-  for (i = 0; i < MAX_EPS_CHANNELS; i++)
-  {
-    core_regs.data_fifo[i] = (uint32_t *)(BaseAddress + USB_OTG_DATA_FIFO_OFFSET + (i * USB_OTG_DATA_FIFO_SIZE));
-  }
-
-  core_regs.pcgcctl = (uint32_t *)(BaseAddress + USB_OTG_PCGCCTL_OFFSET);
-
-  return status;
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_CoreInit
-* Description    : Initialize the USB_OTG controller registers and prepares the core
-                   for device mode or host mode operation.
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_CoreInit(void)
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_usb_cfg_data usbcfg;
-  
-  usbcfg.d32 = 0;
-
-  /* Reset the Controller */
-  OTGD_FS_CoreReset();
-
-  usbcfg.d32 = READ_REG32(&core_regs.common_regs->usb_cfg);
-  usbcfg.b.physel = 1;
-  WRITE_REG32 (&core_regs.common_regs->usb_cfg, usbcfg.d32);
-
-  /* init and configure the phy */
-  OTGD_FS_PhyInit();
-
-  /* Reset after a PHY select and set Host mode */
-  OTGD_FS_CoreReset();
-
-  /* Set Host or Device Mode */
-  SetID();
-
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_CoreReset
-* Description    : Soft reset of the core
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-static USB_OTG_Status OTGD_FS_CoreReset(void)
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  __IO USB_OTG_rst_ctl_data greset;
-  uint32_t count = 0;
-
-  greset.d32 = 0;
-  
-  /* Wait for AHB master IDLE state. */
-  do
-  {
-    uDELAY(3);
-    greset.d32 = READ_REG32(&core_regs.common_regs->rst_ctl);
-    if (++count > 200000)
-    {
-      return USB_OTG_OK;
-    }
-  }
-  while (greset.b.ahbidle == 0);
-
-  /* Core Soft Reset */
-  count = 0;
-  greset.b.csftrst = 1;
-  WRITE_REG32(&core_regs.common_regs->rst_ctl, greset.d32 );
-  
-  do
-  {
-    greset.d32 = READ_REG32(&core_regs.common_regs->rst_ctl);
-    if (++count > 200000)
-    {
-      break;
-    }
-  }
-  while (greset.b.csftrst == 1);
-
-  /* Wait for 3 PHY Clocks*/
-  uDELAY(10);
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_EnableGlobalInt
-* Description    : Enables the controller's Global Int in the AHB Config reg
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_EnableGlobalInt(void)
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_ahb_cfg_data ahb_cfg;
-
-  ahb_cfg.d32 = 0;
-  
-  ahb_cfg.b.glblintrmsk = 1; /* Enable interrupts */
-  MODIFY_REG32(&core_regs.common_regs->ahb_cfg, 0, ahb_cfg.d32);
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_DisableGlobalInt
-* Description    : Disables the controller's Global Int in the AHB Config reg
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_DisableGlobalInt(void)
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_ahb_cfg_data ahbcfg;
-
-  ahbcfg.d32 = 0;
-  ahbcfg.b.glblintrmsk = 1; /* Enable interrupts */
-  MODIFY_REG32(&core_regs.common_regs->ahb_cfg, ahbcfg.d32, 0);
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_FlushTxFifo
-* Description    : Flush a Tx FIFO
-* Input          : FIFO num
-* Output         : None
-* Return         : status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_FlushTxFifo (uint32_t num )
-{
-
-  USB_OTG_Status status = USB_OTG_OK;
-  __IO USB_OTG_rst_ctl_data greset;
-  uint32_t count = 0;
-
-  greset.d32 = 0;
-    
-  greset.b.txfflsh = 1;
-  greset.b.txfnum  = num;
-  WRITE_REG32( &core_regs.common_regs->rst_ctl, greset.d32 );
-
-  do
-  {
-    greset.d32 = READ_REG32( &core_regs.common_regs->rst_ctl);
-    if (++count > 200000)
-    {
-      break;
-    }
-  }
-  while (greset.b.txfflsh == 1);
-
-  /* Wait for 3 PHY Clocks*/
-  uDELAY(3);
-
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_FlushRxFifo
-* Description    : Flush a Rx FIFO
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_FlushRxFifo( void )
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  __IO USB_OTG_rst_ctl_data greset;
-  uint32_t count = 0;
-
-  greset.d32 = 0;
-  
-  greset.b.rxfflsh = 1;
-  WRITE_REG32( &core_regs.common_regs->rst_ctl, greset.d32 );
-
-  do
-  {
-    greset.d32 = READ_REG32( &core_regs.common_regs->rst_ctl);
-    if (++count > 200000)
-    {
-      break;
-    }
-  }
-  while (greset.b.rxfflsh == 1);
-
-  /* Wait for 3 PHY Clocks*/
-  uDELAY(3);
-
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : SetID
-* Description    : Set ID line
-* Input          : None
-* Output         : None
-* Return         : num_in_ep
-*******************************************************************************/
-USB_OTG_Status SetID(void)
-{
-
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_usb_cfg_data usbcfg ;
-  
-  usbcfg.d32 = 0;
-
-  usbcfg.d32 = READ_REG32(&core_regs.common_regs->usb_cfg);
-
-  usbcfg.b.force_dev = 1;
-
-  WRITE_REG32(&core_regs.common_regs->usb_cfg, usbcfg.d32);
-
-  mDELAY(50);
-
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : GetMode
-* Description    : Get current mode
-* Input          : None
-* Output         : None
-* Return         : current mode
-*******************************************************************************/
-static uint32_t GetMode(void)
-{
-  return (READ_REG32(&core_regs.common_regs->int_sts ) & 0x1);
-}
-
-/*******************************************************************************
-* Function Name  : IsDeviceMode
-* Description    : Check if it is device mode
-* Input          : None
-* Output         : None
-* Return         : num_in_ep
-*******************************************************************************/
-uint8_t IsDeviceMode(void)
-{
-  return (GetMode() != HOST_MODE);
-}
-
-/*******************************************************************************
-* Function Name  : IsHostMode
-* Description    : Check if it is host mode
-* Input          : None
-* Output         : None
-* Return         : num_in_ep
-*******************************************************************************/
-uint8_t IsHostMode(void)
-{
-  return (GetMode() == HOST_MODE);
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_ReadCoreItr
-* Description    : returns the Core Interrupt register
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-uint32_t OTGD_FS_ReadCoreItr(void)
-{
-  uint32_t v = 0;
-
-  v = READ_REG32(&core_regs.common_regs->int_sts);
-  v &= READ_REG32(&core_regs.common_regs->int_msk);
-
-  return v;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_ReadOtgItr
-* Description    : returns the USB_OTG Interrupt register
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-uint32_t OTGD_FS_ReadOtgItr (void)
-{
-  return (READ_REG32 (&core_regs.common_regs->otg_int));
-}
-
-/******************************************************************************/
-/*                           PCD Core Layer                                   */
-/******************************************************************************/
-
-/*******************************************************************************
-* Function Name  : InitDevSpeed
-* Description    : Initializes the DevSpd field of the DCFG register depending
-                   on the PHY type and the enumeration speed of the device.
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-static void InitDevSpeed(void)
-{
-  USB_OTG_dev_cfg_data  dcfg;
-
-  dcfg.d32 = 0;
-  
-  dcfg.d32 = READ_REG32(&core_regs.dev_regs->dev_cfg);
-  dcfg.b.devspd = 0x3;  /* Full speed PHY */
-  WRITE_REG32(&core_regs.dev_regs->dev_cfg, dcfg.d32);
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_CoreInitDev
-* Description    : Initialize the USB_OTG controller registers for device mode
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_CoreInitDev (void)
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_dev_ep_ctl_data   depctl;
-  USB_OTG_dev_cfg_data   dcfg;
-  USB_OTG_fifo_size_data nptxfifosize;
-  USB_OTG_fifo_size_data txfifosize;
-  USB_OTG_dev_in_ep_msk_data msk;
-  uint32_t i = 0;
-  
-  depctl.d32 = 0;
-  dcfg.d32 = 0;
-  nptxfifosize.d32 = 0;
-  txfifosize.d32 = 0;
-  msk.d32 = 0;
-  
-  /* Set device speed */
-  InitDevSpeed ();
-
-  /* Restart the Phy Clock */
-  WRITE_REG32(core_regs.pcgcctl, 0);
-
-  /* Device configuration register */
-  dcfg.d32 = READ_REG32( &core_regs.dev_regs->dev_cfg);
-  dcfg.b.perfrint = DCFG_FRAME_INTERVAL_80;
-  WRITE_REG32( &core_regs.dev_regs->dev_cfg, dcfg.d32 );
-  
-  /* set Rx FIFO size */
-  WRITE_REG32( &core_regs.common_regs->rx_fifo_siz, RX_FIFO_SIZE);
-
-  /* EP0 TX*/
-  nptxfifosize.b.depth     = TX0_FIFO_SIZE;
-  nptxfifosize.b.startaddr = RX_FIFO_SIZE;
-  WRITE_REG32( &core_regs.common_regs->np_tx_fifo_siz, nptxfifosize.d32 );
-
-  
-  /* EP1 TX*/
-  txfifosize.b.startaddr = nptxfifosize.b.startaddr + nptxfifosize.b.depth;
-  txfifosize.b.depth = TX1_FIFO_SIZE;
-  WRITE_REG32( &core_regs.common_regs->dev_p_tx_fsiz_dieptxf[0], txfifosize.d32 );
-
-    
-  /* EP2 TX*/
-  txfifosize.b.startaddr += txfifosize.b.depth;
-  txfifosize.b.depth = TX2_FIFO_SIZE;
-  WRITE_REG32( &core_regs.common_regs->dev_p_tx_fsiz_dieptxf[1], txfifosize.d32 );
-
-  
-  /* EP3 TX*/  
-  txfifosize.b.startaddr += txfifosize.b.depth;
-  txfifosize.b.depth = TX3_FIFO_SIZE;
-  WRITE_REG32( &core_regs.common_regs->dev_p_tx_fsiz_dieptxf[2], txfifosize.d32 );
-
-  
-  /* Flush the FIFOs */
-  OTGD_FS_FlushTxFifo(0x10); /* all Tx FIFOs */
-  OTGD_FS_FlushRxFifo();
-
-  /* Clear all pending Device Interrupts */
-  WRITE_REG32( &core_regs.dev_regs->dev_in_ep_msk, 0 );
-  WRITE_REG32( &core_regs.dev_regs->dev_out_ep_msk, 0 );
-  WRITE_REG32( &core_regs.dev_regs->dev_all_int, 0xFFFFFFFF );
-  WRITE_REG32( &core_regs.dev_regs->dev_all_int_msk, 0 );
-
-  for (i = 0; i <= MAX_TX_FIFOS; i++)
-  {
-    depctl.d32 = READ_REG32(&core_regs.inep_regs[i]->dev_in_ep_ctl);
-    if (depctl.b.epena)
-    {
-      depctl.d32 = 0;
-      depctl.b.epdis = 1;
-      depctl.b.snak = 1;
-    }
-    else
-    {
-      depctl.d32 = 0;
-    }
-
-    WRITE_REG32( &core_regs.inep_regs[i]->dev_in_ep_ctl, depctl.d32);
-
-
-    WRITE_REG32( &core_regs.inep_regs[i]->dev_in_ep_txfer_siz, 0);
-    WRITE_REG32( &core_regs.inep_regs[i]->dev_in_ep_int, 0xFF);
-  }
-
-  for (i = 0; i < 1/* NUM_OUT_EPS*/; i++)
-  {
-    depctl.d32 = READ_REG32(&core_regs.outep_regs[i]->dev_out_ep_ctl);
-    if (depctl.b.epena)
-    {
-      depctl.d32 = 0;
-      depctl.b.epdis = 1;
-      depctl.b.snak = 1;
-    }
-    else
-    {
-      depctl.d32 = 0;
-    }
-
-    WRITE_REG32( &core_regs.outep_regs[i]->dev_out_ep_ctl, depctl.d32);
-
-    WRITE_REG32( &core_regs.outep_regs[i]->dev_out_ep_txfer_siz, 0);
-    WRITE_REG32( &core_regs.outep_regs[i]->dev_out_ep_int, 0xFF);
-  }
-
-  msk.d32 = 0;
-  msk.b.txfifoundrn = 1;
-  MODIFY_REG32(&core_regs.dev_regs->dev_in_ep_msk, msk.d32, msk.d32);
-
-  OTGD_FS_EnableDevInt();
-
-  return status;
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_EnableDevInt
-* Description    : Enables the Device mode interrupts
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_EnableDevInt(void)
-{
-
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_int_msk_data intr_mask;
-  
-  intr_mask.d32 = 0;
-
-  /* Disable all interrupts. */
-  WRITE_REG32( &core_regs.common_regs->int_msk, 0);
-
-  /* Clear any pending interrupts */
-  WRITE_REG32( &core_regs.common_regs->int_sts, 0xFFFFFFFF);
-
-  /* Enable the common interrupts */
-  EnableCommonInt();
-  
-  /* Enable the defined interrupts*/
-#ifdef INTR_MODEMISMATCH
-  intr_mask.b.modemismatch = 1;
-#endif /* INTR_MODEMISMATCH */
-#ifdef INTR_SOFINTR
-  intr_mask.b.sofintr = 1;
-#endif /* INTR_SOFINTR */
-#ifdef INTR_RXSTSQLVL
-  intr_mask.b.rxstsqlvl = 1;
-#endif /* INTR_RXSTSQLVL */
-#ifdef INTR_NPTXFEMPTY
-  intr_mask.b.nptxfempty = 1;
-#endif /* INTR_NPTXFEMPTY */
-#ifdef INTR_GINNAKEFF
-  intr_mask.b.ginnakeff = 1;
-#endif /* INTR_GINNAKEFF */
-#ifdef INTR_GOUTNAKEFF
-  intr_mask.b.goutnakeff = 1;
-#endif /* INTR_GOUTNAKEFF */
-#ifdef INTR_ERLYSUSPEND
-  intr_mask.b.erlysuspend = 1;
-#endif /* INTR_ERLYSUSPEND */
-#ifdef INTR_USBSUSPEND
-  intr_mask.b.usbsuspend = 1;
-#endif /* INTR_USBSUSPEND */
-#ifdef INTR_USBRESET
-  intr_mask.b.usbreset = 1;
-#endif /* INTR_USBRESET */
-#ifdef INTR_ENUMDONE
-  intr_mask.b.enumdone = 1;
-#endif /* INTR_ENUMDONE */
-#ifdef INTR_ISOOUTDROP
-  intr_mask.b.isooutdrop = 1;
-#endif /* INTR_ISOOUTDROP */
-#ifdef INTR_EOPFRAME
-  intr_mask.b.eopframe = 1;
-#endif /* INTR_EOPFRAME */
-#ifdef INTR_EPMISMATCH
-  intr_mask.b.epmismatch = 1;
-#endif /* INTR_EPMISMATCH */
-#ifdef INTR_INEPINTR
-  intr_mask.b.inepintr = 1;
-#endif /* INTR_INEPINTR */
-#ifdef INTR_OUTEPINTR
-  intr_mask.b.outepintr = 1;
-#endif /* INTR_OUTEPINTR */
-#ifdef INTR_INCOMPLISOIN
-  intr_mask.b.incomplisoin = 1;
-#endif /* INTR_INCOMPLISOIN */
-#ifdef INTR_INCOMPLISOOUT
-  intr_mask.b.incomplisoout = 1;
-#endif /* INTR_INCOMPLISOOUT */
-#ifdef INTR_DISCONNECT
-  intr_mask.b.disconnect = 1;
-#endif /* INTR_DISCONNECT */
-#ifdef INTR_WKUPINTR
-  intr_mask.b.wkupintr = 1;
-#endif /* INTR_WKUPINTR */
-
-  MODIFY_REG32( &core_regs.common_regs->int_msk, intr_mask.d32, intr_mask.d32);
-  return status;
-  
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_EP0Activate
-* Description    : enables EP0 OUT to receive SETUP packets and configures EP0
-                   IN for transmitting packets
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-USB_OTG_Status  OTGD_FS_EP0Activate(void)
-{
-  USB_OTG_Status          status = USB_OTG_OK;
-  USB_OTG_dev_sts_data    dsts;
-  USB_OTG_dev_ep_ctl_data diepctl;
-  USB_OTG_dev_ctl_data    dctl;
-
-  dsts.d32 = 0;
-  diepctl.d32 = 0;
-  dctl.d32 = 0;
-  
-  /* Read the Device Status and Endpoint 0 Control registers */
-  dsts.d32 = READ_REG32(&core_regs.dev_regs->dev_sts);
-  diepctl.d32 = READ_REG32(&core_regs.inep_regs[0]->dev_in_ep_ctl);
-
-  /* Set the MPS of the IN EP based on the enumeration speed */
-  switch (dsts.b.enumspd)
-  {
-    case DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ:
-    case DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ:
-    case DSTS_ENUMSPD_FS_PHY_48MHZ:
-      diepctl.b.mps = DEP0CTL_MPS_64;
-      break;
-    case DSTS_ENUMSPD_LS_PHY_6MHZ:
-      diepctl.b.mps = DEP0CTL_MPS_8;
-      break;
-  }
-
-  WRITE_REG32(&core_regs.inep_regs[0]->dev_in_ep_ctl, diepctl.d32);
-  dctl.b.cgnpinnak = 1;
-  MODIFY_REG32(&core_regs.dev_regs->dev_ctl, dctl.d32, dctl.d32);
-  
-  return status;
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_EPActivate
-* Description    : Activates an EP
-* Input          : ep
-* Output         : None
-* Return         : num_in_ep
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_EPActivate(USB_OTG_EP *ep)
-{
-
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_dev_ep_ctl_data depctl;
-  __IO uint32_t *addr;
-  USB_OTG_dev_all_int_data daintmsk;
-
-  depctl.d32 = 0;
-  daintmsk.d32 = 0;
-  
-  /* Read DEPCTLn register */
-  if (ep->is_in == 1)
-  {
-    addr = &core_regs.inep_regs[ep->num]->dev_in_ep_ctl;
-    daintmsk.ep.in = 1 << ep->num;
-  }
-  else
-  {
-    addr = &core_regs.outep_regs[ep->num]->dev_out_ep_ctl;
-    daintmsk.ep.out = 1 << ep->num;
-  }
-
-  /* If the EP is already active don't change the EP Control
-   * register. */
-  depctl.d32 = READ_REG32(addr);
-  if (!depctl.b.usbactep)
-  {
-    depctl.b.mps    = ep->maxpacket;
-    depctl.b.eptype = ep->type;
-    depctl.b.txfnum = ep->tx_fifo_num;
-    depctl.b.setd0pid = 1;
-    depctl.b.usbactep = 1;
-    WRITE_REG32(addr, depctl.d32);
-  }
-
-  /* Enable the Interrupt for this EP */
-  MODIFY_REG32(&core_regs.dev_regs->dev_all_int_msk, 0, daintmsk.d32);
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_EPDeactivate
-* Description    : Deactivates an EP
-* Input          : ep
-* Output         : None
-* Return         : num_in_ep
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_EPDeactivate(USB_OTG_EP *ep)
-{
-
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_dev_ep_ctl_data depctl;
-  __IO uint32_t *addr;
-  USB_OTG_dev_all_int_data daintmsk;
-
-  depctl.d32 = 0;
-  daintmsk.d32 = 0;
-  
-  /* Read DEPCTLn register */
-  if (ep->is_in == 1)
-  {
-    addr = &core_regs.inep_regs[ep->num]->dev_in_ep_ctl;
-    daintmsk.ep.in = 1 << ep->num;
-  }
-  else
-  {
-    addr = &core_regs.outep_regs[ep->num]->dev_out_ep_ctl;
-    daintmsk.ep.out = 1 << ep->num;
-  }
-
-  depctl.b.usbactep = 0;
-  WRITE_REG32(addr, depctl.d32);
-
-  /* Disable the Interrupt for this EP */
-  MODIFY_REG32(&core_regs.dev_regs->dev_all_int_msk, daintmsk.d32, 0);
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_EPStartXfer
-* Description    : Handle the setup for data xfer for an EP and starts the xfer
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_EPStartXfer(USB_OTG_EP *ep)
-{
-
-  USB_OTG_Status status = USB_OTG_OK;
-  __IO USB_OTG_dev_ep_ctl_data depctl;
-  USB_OTG_dev_ep_txfer_siz_data deptsiz;
-
-  depctl.d32 = 0;
-  deptsiz.d32 = 0;
-  
-  /* IN endpoint */
-  if (ep->is_in == 1)
-  {
-
-    depctl.d32  = READ_REG32(&(core_regs.inep_regs[ep->num]->dev_in_ep_ctl));
-    deptsiz.d32 = READ_REG32(&(core_regs.inep_regs[ep->num]->dev_in_ep_txfer_siz));
-
-    /* Zero Length Packet? */
-    if (ep->xfer_len == 0)
-    {
-      deptsiz.b.xfersize = 0;
-      deptsiz.b.pktcnt = 1;
-
-    }
-    else
-    {
-      /* Program the transfer size and packet count
-       * as follows: xfersize = N * maxpacket +
-       * short_packet pktcnt = N + (short_packet
-       * exist ? 1 : 0)
-       */
-      deptsiz.b.xfersize = ep->xfer_len;
-      deptsiz.b.pktcnt = (ep->xfer_len - 1 + ep->maxpacket) / ep->maxpacket;
-    }
-    WRITE_REG32(&core_regs.inep_regs[ep->num]->dev_in_ep_txfer_siz, deptsiz.d32);
-
-    if (ep->type != EP_TYPE_ISOC)
-    {
-      /* Enable the Tx FIFO Empty Interrupt for this EP */
-      uint32_t fifoemptymsk = 0;
-      fifoemptymsk = 1 << ep->num;
-      MODIFY_REG32(&core_regs.dev_regs->dev_fifo_empty_msk, 0, fifoemptymsk);
-    }
-   
-    /* EP enable, IN data in FIFO */
-    depctl.b.cnak = 1;
-    depctl.b.epena = 1;
-    WRITE_REG32(&core_regs.inep_regs[ep->num]->dev_in_ep_ctl, depctl.d32);
-    
-    depctl.d32 = READ_REG32 (&core_regs.inep_regs[0]->dev_in_ep_ctl);
-    depctl.b.nextep = ep->num;
-    WRITE_REG32 (&core_regs.inep_regs[0]->dev_in_ep_ctl, depctl.d32);    
-  }
-  else
-  {
-    /* OUT endpoint */
-    depctl.d32  = READ_REG32(&(core_regs.outep_regs[ep->num]->dev_out_ep_ctl));
-    deptsiz.d32 = READ_REG32(&(core_regs.outep_regs[ep->num]->dev_out_ep_txfer_siz));
-
-    /* Program the transfer size and packet count as follows:
-     * pktcnt = N
-     * xfersize = N * maxpacket
-     */
-    if (ep->xfer_len == 0)
-    {
-      deptsiz.b.xfersize = ep->maxpacket;
-      deptsiz.b.pktcnt = 1;
-    }
-    else
-    {
-      deptsiz.b.pktcnt = (ep->xfer_len + (ep->maxpacket - 1)) / ep->maxpacket;
-      deptsiz.b.xfersize = deptsiz.b.pktcnt * ep->maxpacket;
-    }
-    WRITE_REG32(&core_regs.outep_regs[ep->num]->dev_out_ep_txfer_siz, deptsiz.d32);
-
-    if (ep->type == EP_TYPE_ISOC)
-    {
-
-      if (ep->even_odd_frame)
-      {
-        depctl.b.setd1pid = 1;
-      }
-      else
-      {
-        depctl.b.setd0pid = 1;
-      }
-    }
-
-    /* EP enable */
-    depctl.b.cnak = 1;
-    depctl.b.epena = 1;
-
-    WRITE_REG32(&core_regs.outep_regs[ep->num]->dev_out_ep_ctl, depctl.d32);
-
-  }
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_EP0StartXfer
-* Description    : Handle the setup for a data xfer for EP0 and starts the xfer
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_EP0StartXfer(USB_OTG_EP *ep)
-{
-
-  USB_OTG_Status                    status = USB_OTG_OK;
-  uint32_t                          fifoemptymsk = 0;
-  USB_OTG_dev_ep_ctl_data           depctl;
-  USB_OTG_dev_ep_txfer_size0_data   deptsiz;
-  USB_OTG_dev_in_ep_regs            *in_regs ;
-
-  depctl.d32 = 0;
-  deptsiz.d32 = 0;
-  
-  /* IN endpoint */
-  if (ep->is_in == 1)
-  {
-    in_regs = core_regs.inep_regs[0];
-    depctl.d32  = READ_REG32(&in_regs->dev_in_ep_ctl);
-    deptsiz.d32 = READ_REG32(&in_regs->dev_in_ep_txfer_siz);
-
-    /* Zero Length Packet? */
-    if (ep->xfer_len == 0)
-    {
-      deptsiz.b.xfersize = 0;
-      deptsiz.b.pktcnt = 1;
-    }
-    else
-    {
-      if (ep->xfer_len > ep->maxpacket)
-      {
-        ep->xfer_len = ep->maxpacket;
-        deptsiz.b.xfersize = ep->maxpacket;
-      }
-      else
-      {
-        deptsiz.b.xfersize = ep->xfer_len;
-      }
-      deptsiz.b.pktcnt = 1;
-
-    }
-    WRITE_REG32(&in_regs->dev_in_ep_txfer_siz, deptsiz.d32);
-
-    /* EP enable, IN data in FIFO */
-    depctl.b.cnak = 1;
-    depctl.b.epena = 1;
-    WRITE_REG32(&in_regs->dev_in_ep_ctl, depctl.d32);
-
-    /* Enable the Tx FIFO Empty Interrupt for this EP */
-    if (ep->xfer_len > 0)
-    {
-      fifoemptymsk |= 1 << ep->num;
-      MODIFY_REG32(&core_regs.dev_regs->dev_fifo_empty_msk, 0, fifoemptymsk);
-    }
-  }
-  else
-  {
-    /* OUT endpoint */
-    depctl.d32  = READ_REG32(&core_regs.outep_regs[ep->num]->dev_out_ep_ctl);
-    deptsiz.d32 = READ_REG32(&core_regs.outep_regs[ep->num]->dev_out_ep_txfer_siz);
-
-    /* Program the transfer size and packet count as follows:
-     * xfersize = N * (maxpacket + 4 - (maxpacket % 4))
-     * pktcnt = N           */
-    if (ep->xfer_len == 0)
-    {
-      deptsiz.b.xfersize = ep->maxpacket;
-      deptsiz.b.pktcnt = 1;
-    }
-    else
-    {
-      deptsiz.b.pktcnt = (ep->xfer_len + (ep->maxpacket - 1)) / ep->maxpacket;
-      deptsiz.b.xfersize = deptsiz.b.pktcnt * ep->maxpacket;
-    }
-
-    WRITE_REG32(&core_regs.outep_regs[ep->num]->dev_out_ep_txfer_siz, deptsiz.d32);
-
-    /* EP enable */
-    depctl.b.cnak = 1;
-    depctl.b.epena = 1;
-    WRITE_REG32 (&(core_regs.outep_regs[ep->num]->dev_out_ep_ctl), depctl.d32);
-  }
-  return status;
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_EPSetStall
-* Description    : Set the EP STALL
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_EPSetStall(USB_OTG_EP *ep)
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_dev_ep_ctl_data depctl; 
-  __IO uint32_t *depctl_addr;
-
-  depctl.d32 = 0;
-  
-  
-  if (ep->is_in == 1)
-  {
-    depctl_addr = &(core_regs.inep_regs[ep->num]->dev_in_ep_ctl);
-    depctl.d32 = READ_REG32(depctl_addr);
-
-    /* set the disable and stall bits */
-    if (depctl.b.epena)
-    {
-      depctl.b.epdis = 1;
-    }
-    depctl.b.stall = 1;
-    WRITE_REG32(depctl_addr, depctl.d32);
-  }
-  else
-  {
-    depctl_addr = &(core_regs.outep_regs[ep->num]->dev_out_ep_ctl);
-    depctl.d32 = READ_REG32(depctl_addr);
-
-    /* set the stall bit */
-    depctl.b.stall = 1;
-    WRITE_REG32(depctl_addr, depctl.d32);
-  }
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_EPClearStall
-* Description    : Clear the EP STALL
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-USB_OTG_Status OTGD_FS_EPClearStall(USB_OTG_EP *ep)
-{
-  USB_OTG_Status status = USB_OTG_OK;
-  USB_OTG_dev_ep_ctl_data depctl;
-  __IO uint32_t *depctl_addr;
-
-  
-  depctl.d32 = 0;
-  
-  if (ep->is_in == 1)
-  {
-    depctl_addr = &(core_regs.inep_regs[ep->num]->dev_in_ep_ctl);
-  }
-  else
-  {
-    depctl_addr = &(core_regs.outep_regs[ep->num]->dev_out_ep_ctl);
-  }
-
-  
-  depctl.d32 = READ_REG32(depctl_addr);
-   
-  /* clear the stall bits */
-  depctl.b.stall = 0;
-
-  if (ep->type == EP_TYPE_INTR || ep->type == EP_TYPE_BULK)
-  {
-    depctl.b.setd0pid = 1; /* DATA0 */
-  }
-
-  WRITE_REG32(depctl_addr, depctl.d32);
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_ReadDevAllOutEp_itr
-* Description    : returns the OUT endpoint interrupt bits
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-uint32_t OTGD_FS_ReadDevAllOutEp_itr(void)
-{
-  uint32_t v = 0;
-  
-  v  = READ_REG32(&core_regs.dev_regs->dev_all_int);
-  v &= READ_REG32(&core_regs.dev_regs->dev_all_int_msk);
-  return ((v & 0xffff0000) >> 16);
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_ReadDevOutEP_itr
-* Description    : returns the Device OUT EP Interrupt register
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-uint32_t OTGD_FS_ReadDevOutEP_itr(USB_OTG_EP *ep)
-{
-  uint32_t v = 0;
-  
-  v  = READ_REG32(&core_regs.outep_regs[ep->num]->dev_out_ep_int);
-  v &= READ_REG32(&core_regs.dev_regs->dev_out_ep_msk);
-  return v;
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_ReadDevAllInEPItr
-* Description    : Get int status register
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-uint32_t OTGD_FS_ReadDevAllInEPItr(void)
-{
-  uint32_t v = 0;
-  
-  v = READ_REG32(&core_regs.dev_regs->dev_all_int);
-  v &= READ_REG32(&core_regs.dev_regs->dev_all_int_msk);
-  return (v & 0xffff);
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Dev_GetEPStatus
-* Description    : returns the EP Status 
-* Input          : - ep: pointer to the EP structure
-* Output         : None
-* Return         : status: DEV_EP_TX_STALL, DEV_EP_TX_VALID, DEV_EP_TX_NAK, 
-*                  DEV_EP_RX_STALL, DEV_EP_RX_VALID or DEV_EP_RX_NAK,
-*******************************************************************************/
-uint32_t OTGD_FS_Dev_GetEPStatus(USB_OTG_EP *ep)
-{
-  USB_OTG_dev_ep_ctl_data depctl;
-  __IO uint32_t *depctl_addr;
-  uint32_t Status = 0;
-  
-  depctl.d32 = 0;
-
-  if (ep->is_in == 1)
-  {
-    depctl_addr = &(core_regs.inep_regs[ep->num]->dev_in_ep_ctl);
-  }
-  else
-  {
-    depctl_addr = &(core_regs.outep_regs[ep->num]->dev_out_ep_ctl);
-  }
-
-  depctl.d32 = READ_REG32(depctl_addr);
-
-  /* Process for IN endpoint */
-  if (ep->is_in == 1)
-  {
-    if (depctl.b.stall == 1)  
-      Status = DEV_EP_TX_STALL;
-    else if (depctl.b.naksts == 1)
-      Status = DEV_EP_TX_NAK;
-    else 
-      Status = DEV_EP_TX_VALID; 
-  } 
-  /* Process for OUT endpoint */
-  else 
-  {
-    if (depctl.b.stall == 1)  
-      Status = DEV_EP_RX_STALL;
-    else if (depctl.b.naksts == 1)
-      Status = DEV_EP_RX_NAK;
-    else 
-      Status = DEV_EP_RX_VALID; 
-  }
-  
-  /* Return the current status */
-  return Status;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Dev_SetEPStatus
-* Description    : Sets the EP Status 
-* Input          : - ep: pointer to the EP structure
-*                  - Status: new status to be set
-* Output         : None
-* Return         : None
-*******************************************************************************/
-void OTGD_FS_Dev_SetEPStatus(USB_OTG_EP *ep, uint32_t Status)
-{
-  USB_OTG_dev_ep_ctl_data depctl;
-  __IO uint32_t *depctl_addr;
-
-  depctl.d32 = 0;
-  
-  
-  if (ep->is_in == 1)
-  {
-    depctl_addr = &(core_regs.inep_regs[ep->num]->dev_in_ep_ctl);
-  }
-  else
-  {
-    depctl_addr = &(core_regs.outep_regs[ep->num]->dev_out_ep_ctl);
-  }
-
-  depctl.d32 = READ_REG32(depctl_addr);
-
-  /* Process for IN endpoint */
-  if (ep->is_in == 1)
-  {
-    if (Status == DEV_EP_TX_STALL)  
-    {
-      OTGD_FS_EPSetStall(ep); return;
-    }
-    else if (Status == DEV_EP_TX_NAK)
-      depctl.b.snak = 1;
-    else if (Status == DEV_EP_TX_VALID)
-    {
-      if (depctl.b.stall == 1)
-      {  
-        ep->even_odd_frame = 0;
-        OTGD_FS_EPClearStall(ep);
-        return;
-      }      
-      depctl.b.cnak = 1;
-      depctl.b.usbactep = 1; 
-      depctl.b.epena = 1;
-    }
-    else if (Status == DEV_EP_TX_DIS)
-      depctl.b.usbactep = 0;
-  } 
-  else /* Process for OUT endpoint */
-  {
-    if (Status == DEV_EP_RX_STALL)  
-      depctl.b.stall = 1;
-    else if (Status == DEV_EP_RX_NAK)
-      depctl.b.snak = 1;
-    else if (Status == DEV_EP_RX_VALID)
-    {
-      if (depctl.b.stall == 1)
-      {  
-        ep->even_odd_frame = 0;
-        OTGD_FS_EPClearStall(ep);
-        return;
-      }  
-      depctl.b.cnak = 1;
-      depctl.b.usbactep = 1;    
-      depctl.b.epena = 1;
-    }
-    else if (Status == DEV_EP_RX_DIS)
-    {
-      depctl.b.usbactep = 0;    
-    }
-  }
-
-  if (ep->type == EP_TYPE_INTR || ep->type == EP_TYPE_BULK)
-  {
-    depctl.b.setd0pid = 1; /* DATA0 */
-  }
-
-  WRITE_REG32(depctl_addr, depctl.d32); 
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Dev_SetRemoteWakeup
-* Description    : Enable Remote wakeup signaling
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-void OTGD_FS_Dev_SetRemoteWakeup()
-{
- USB_OTG_dev_ctl_data devctl;
- __IO uint32_t *dctl_addr;
- devctl.d32 = 0;
- dctl_addr = &(core_regs.dev_regs->dev_ctl);
- devctl.d32 = READ_REG32( dctl_addr);
- /* Enable the Remote Wakeup signal */
- devctl.b.rmtwkupsig = 1;
- WRITE_REG32(dctl_addr, devctl.d32);
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Dev_ResetRemoteWakeup
-* Description    : Disable Remote wakeup signaling
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-void OTGD_FS_Dev_ResetRemoteWakeup()
-{
- USB_OTG_dev_ctl_data devctl;
- __IO uint32_t *dctl_addr;
- devctl.d32 = 0;
- dctl_addr = &(core_regs.dev_regs->dev_ctl);
- devctl.d32 = READ_REG32( dctl_addr);
- /* Disable the Remote Wakeup signal */
- devctl.b.rmtwkupsig = 0;
- WRITE_REG32(dctl_addr, devctl.d32);
-}
-#endif /* STM32F10X_CL */
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/otgd_fs_dev.c b/STM32_USB-FS-Device_Driver/src/otgd_fs_dev.c
deleted file mode 100644 (file)
index 9b518e8..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otgd_fs_dev.c
-* Author             : STMicroelectronics
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : High Layer device mode interface and wrapping layer.
-********************************************************************************
-* THE PRESENT SOFTWARE 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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
-* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
-*******************************************************************************/
-
-#ifdef STM32F10X_CL
-
-/* Includes ------------------------------------------------------------------*/
-#include "otgd_fs_dev.h"
-#include "usb_regs.h"
-#include "otgd_fs_cal.h"
-#include "otgd_fs_pcd.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : OTG_DEV_Init
-* Description    : Initialize the OTG Device IP and EP0.
-* Input          : None.
-* Output         : None.
-* Return         : None. 
-*******************************************************************************/
-void OTG_DEV_Init(void)
-{
-  EP_DESCRIPTOR ep_descriptor;
-  USB_OTG_EP *ep;
-  
-  /* Set the OTG_USB base registers address */
-  OTGD_FS_SetAddress(USB_OTG_FS1_BASE_ADDR);
-  
-  /* Disable all global interrupts */
-  OTGD_FS_DisableGlobalInt();
-
-  /*Init the Core (common init.) */
-  OTGD_FS_CoreInit();
-
-  /* Init Device */
-  OTGD_FS_CoreInitDev();
-
-  /* Init internal driver structure */
-  OTGD_FS_PCD_Init();
-  
-  /* Configure and open the IN control EP0 */ 
-  ep_descriptor.bEndpointAddress = 0x80;
-  ep_descriptor.wMaxPacketSize = 64;  
-  ep_descriptor.bmAttributes = USB_ENDPOINT_XFER_CONTROL; 
-  OTGD_FS_PCD_EP_Open(&ep_descriptor);
-  
-  /* Configure and open the OUT control EP0 */ 
-  ep_descriptor.bEndpointAddress = 0x00;
-  OTGD_FS_PCD_EP_Open(&ep_descriptor);    
-
-
-  ep = OTGD_FS_PCD_GetOutEP(0);
-  OTGD_FS_EPStartXfer(ep);
-  
-  /* Enable EP0 to start receiving setup packets */  
-  OTGD_FS_PCD_EP0_OutStart();  
-  
-  /* Enable USB Global interrupt */
-  OTGD_FS_EnableGlobalInt();     
-}
-
-
-/*******************************************************************************
-* Function Name  : OTG_DEV_EP_Init
-* Description    : Initialize the selected endpoint parameters
-* Input          : - bEpAdd: address of the endpoint (epnum|epdir) 
-*                     expample: EP1 OUT -> 0x01 and EP1 IN 0x81.
-*                  - bEpType: OTG_DEV_EP_TYPE_CONTROL, OTG_DEV_EP_TYPE_ISOC, 
-*                     OTG_DEV_EP_TYPE_BULK, OTG_DEV_EP_TYPE_INT
-*                  - wEpMaxPackSize: The EP max packet size.
-* Output         : None.
-* Return         : Status: New status to be set for the endpoint: 
-*******************************************************************************/
-void OTG_DEV_EP_Init(uint8_t bEpAdd, uint8_t bEpType, uint16_t wEpMaxPackSize)
-{
-  EP_DESCRIPTOR ep_descriptor;
-  USB_OTG_EP *ep;
-  
-  /* Set the EP parameters in a structure */
-  ep_descriptor.bEndpointAddress = bEpAdd;
-  ep_descriptor.bmAttributes = bEpType; 
-  ep_descriptor.wMaxPacketSize = wEpMaxPackSize;
-
-  OTGD_FS_PCD_EP_Flush(bEpAdd);
-  
-  /* Open the EP with entered parameters */   
-  OTGD_FS_PCD_EP_Open(&ep_descriptor); 
-  
-  /* Activate the EP if it is an OUT EP */
-  if ((bEpAdd & 0x80) == 0)
-  {
-    ep = OTGD_FS_PCD_GetOutEP(bEpAdd & 0x7F);
-    OTGD_FS_EPStartXfer(ep);
-  } 
-  else
-  {
-    ep = OTGD_FS_PCD_GetInEP(bEpAdd & 0x7F);
-    ep->even_odd_frame = 0;    
-    OTG_DEV_SetEPTxStatus(bEpAdd, DEV_EP_TX_NAK);
-  }
-  
-}
-
-/*******************************************************************************
-* Function Name  : OTG_DEV_GetEPTxStatus
-* Description    : Set the related endpoint status.
-* Input          : Number of the endpoint.
-* Output         : None.
-* Return         : Status: New status to be set for the endpoint: 
-*******************************************************************************/
-uint32_t OTG_DEV_GetEPTxStatus(uint8_t bEpnum) 
-{
-  USB_OTG_EP *ep;
-  uint32_t status = 0;
-  
-  ep = OTGD_FS_PCD_GetInEP(bEpnum & 0x7F); 
-  
-  status = OTGD_FS_Dev_GetEPStatus(ep); 
-  
-  return status; 
-}
-
-/*******************************************************************************
-* Function Name  : OTG_DEV_GetEPRxStatus
-* Description    : returns the related endpoint status.
-* Input          : Number of the endpoint.
-* Output         : None.
-* Return         : Status: New status to be set for the endpoint: 
-*******************************************************************************/
-uint32_t OTG_DEV_GetEPRxStatus(uint8_t bEpnum)
-{
-  USB_OTG_EP *ep;
-  uint32_t status = 0;
-  
-  ep = OTGD_FS_PCD_GetOutEP(bEpnum & 0x7F); 
-  
-  status = OTGD_FS_Dev_GetEPStatus(ep); 
-  
-  return status;
-}
-
-/*******************************************************************************
-* Function Name  : OTG_DEV_SetEPTxStatus
-* Description    : Sets the related endpoint status.
-* Input          : - bEpnum: Number of the endpoint.
-*                  - Status: New status to be set for the endpoint. It can be
-*                    DEV_EP_TX_VALID, DEV_EP_TX_STALL, DEV_EP_TX_NAK or 
-*                    DEV_EP_TX_DISABLE.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void OTG_DEV_SetEPTxStatus(uint8_t bEpnum, uint32_t Status) 
-{
-  USB_OTG_EP *ep;
-   
-  ep = OTGD_FS_PCD_GetInEP(bEpnum & 0x7F); 
-  
-  if ((bEpnum == 0x80) && (Status == DEV_EP_TX_STALL))
-  {
-    ep->is_in = 1;
-  }
-  
-  OTGD_FS_Dev_SetEPStatus(ep, Status); 
-}
-
-/*******************************************************************************
-* Function Name  : OTG_DEV_SetEPRxStatus
-* Description    : Sets the related endpoint status.
-* Input          : - bEpnum: Number of the endpoint.
-*                  - Status: New status to be set for the endpoint. It can be
-*                    DEV_EP_RX_VALID, DEV_EP_RX_STALL, DEV_EP_RX_NAK or 
-*                    DEV_EP_RX_DISABLE.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void OTG_DEV_SetEPRxStatus(uint8_t bEpnum, uint32_t Status)                           
-{
-  USB_OTG_EP *ep;
-  ep = OTGD_FS_PCD_GetOutEP(bEpnum & 0x7F); 
-  
-  OTGD_FS_Dev_SetEPStatus(ep, Status); 
-}
-
-/*******************************************************************************
-* Function Name  : USB_DevDisconnect
-* Description    : Disconnect the Pullup resist.
-* Input          : bEpNum: Endpoint Number. 
-*                  wState: new state.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void USB_DevDisconnect(void)
-{
-  OTGD_FS_PCD_DevDisconnect();
-}
-
-/*******************************************************************************
-* Function Name  : USB_DevConnect
-* Description    : Disconnect the .
-* Input          : bEpNum: Endpoint Number. 
-*                  wState: new state.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void USB_DevConnect(void)
-{
-  OTGD_FS_PCD_DevConnect();
-}
-
-/*-*-*-*-*-*-*-*-*-* Replace the usb_regs.h defines -*-*-*-*-*-*-*-*-*-*-*-*-*/
-
-/*******************************************************************************
-* Function Name  : SetEPTxStatus
-* Description    : Set the status of Tx endpoint.
-* Input          : bEpNum: Endpoint Number. 
-*                  wState: new state.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPTxStatus(uint8_t bEpNum, uint16_t wState)
-{
-  _SetEPTxStatus(bEpNum, wState);
-}
-
-/*******************************************************************************
-* Function Name  : SetEPRxStatus
-* Description    : Set the status of Rx endpoint.
-* Input          : bEpNum: Endpoint Number. 
-*                  wState: new state.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPRxStatus(uint8_t bEpNum, uint16_t wState)
-{
-  _SetEPRxStatus(bEpNum, wState);
-}
-
-/*******************************************************************************
-* Function Name  : GetEPTxStatus
-* Description    : Returns the endpoint Tx status.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Endpoint TX Status
-*******************************************************************************/
-uint16_t GetEPTxStatus(uint8_t bEpNum) 
-{
-  return(_GetEPTxStatus(bEpNum));
-}
-
-/*******************************************************************************
-* Function Name  : GetEPRxStatus
-* Description    : Returns the endpoint Rx status.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Endpoint RX Status
-*******************************************************************************/
-uint16_t GetEPRxStatus(uint8_t bEpNum) 
-{
-  return(_GetEPRxStatus(bEpNum));
-}
-
-/*******************************************************************************
-* Function Name  : SetEPTxValid
-* Description    : Valid the endpoint Tx Status.
-* Input          : bEpNum: Endpoint Number.  
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPTxValid(uint8_t bEpNum)
-{
-  _SetEPTxStatus(bEpNum, EP_TX_VALID);
-}
-
-/*******************************************************************************
-* Function Name  : SetEPRxValid
-* Description    : Valid the endpoint Rx Status.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPRxValid(uint8_t bEpNum)
-{
-  _SetEPRxStatus(bEpNum, EP_RX_VALID);
-}
-
-/*******************************************************************************
-* Function Name  : GetTxStallStatus
-* Description    : Returns the Stall status of the Tx endpoint.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Tx Stall status.
-*******************************************************************************/
-uint16_t GetTxStallStatus(uint8_t bEpNum)
-{
-  return(_GetTxStallStatus(bEpNum));
-}
-
-/*******************************************************************************
-* Function Name  : GetRxStallStatus
-* Description    : Returns the Stall status of the Rx endpoint. 
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Rx Stall status.
-*******************************************************************************/
-uint16_t GetRxStallStatus(uint8_t bEpNum)
-{
-  return(_GetRxStallStatus(bEpNum));
-}
-
-/*******************************************************************************
-* Function Name  : SetEPTxCount.
-* Description    : Set the Tx count.
-* Input          : bEpNum: Endpoint Number.
-*                  wCount: new count value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPTxCount(uint8_t bEpNum, uint16_t wCount)
-{
-}
-
-/*******************************************************************************
-* Function Name  : SetEPRxCount
-* Description    : Set the Rx count.
-* Input          : bEpNum: Endpoint Number. 
-*                  wCount: the new count value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPRxCount(uint8_t bEpNum, uint16_t wCount)
-{ 
-}
-
-/*******************************************************************************
-* Function Name  : ToWord
-* Description    : merge two byte in a word.
-* Input          : bh: byte high, bl: bytes low.
-* Output         : None.
-* Return         : resulted word.
-*******************************************************************************/
-uint16_t ToWord(uint8_t bh, uint8_t bl)
-{
-  uint16_t wRet = 0;
-  wRet = (uint16_t)bl | ((uint16_t)bh << 8);
-  return(wRet);
-}
-
-/*******************************************************************************
-* Function Name  : ByteSwap
-* Description    : Swap two byte in a word.
-* Input          : wSwW: word to Swap.
-* Output         : None.
-* Return         : resulted word.
-*******************************************************************************/
-uint16_t ByteSwap(uint16_t wSwW)
-{
-  uint8_t bTemp = 0;
-  uint16_t wRet = 0;
-  
-  bTemp = (uint8_t)(wSwW & 0xff);
-  wRet =  (wSwW >> 8) | ((uint16_t)bTemp << 8);
-  return(wRet);
-}
-
-#endif /* STM32F10X_CL */
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/otgd_fs_int.c b/STM32_USB-FS-Device_Driver/src/otgd_fs_int.c
deleted file mode 100644 (file)
index 6120a4e..0000000
+++ /dev/null
@@ -1,874 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otgd_fs_int.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Endpoint interrupt's service routines.
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-#ifdef STM32F10X_CL
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f10x.h"
-#include "usb_type.h"
-#include "otgd_fs_int.h"
-#include "usb_lib.h"
-#include "usb_istr.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Max size of the received OUT Non periodic packet */
-#define MAX_OUT_PKT_SIZE    160
-
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-
-uint8_t USBD_Data_Buffer  [MAX_OUT_PKT_SIZE];
-__IO uint8_t IsocBuff [(ISOC_BUFFER_SZE * NUM_SUB_BUFFERS)];
-__IO uint32_t IsocBufferIdx = 0;
-
-extern USB_OTG_CORE_REGS  core_regs;
-
-__IO uint16_t SaveRState;
-__IO uint16_t SaveTState;
-
-/* Extern variables ----------------------------------------------------------*/
-extern void (*pEpInt_IN[7])(void);    /*  Handles IN  interrupts   */
-extern void (*pEpInt_OUT[7])(void);   /*  Handles OUT interrupts   */
-
-/* Private function prototypes -----------------------------------------------*/
-static uint32_t OTGD_FS_PCD_ReadDevInEP( USB_OTG_EP *ep);
-static enum usb_device_speed OTGD_FS_PCD_GetDeviceSpeed(void);
-static uint32_t OTGD_FS_PCD_WriteEmptyTxFifo(uint32_t epnum);
-
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_ModeMismatch_ISR
-* Description    : Handles the Mode Mismatch error interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_ModeMismatch_ISR(void)
-{
-  USB_OTG_int_sts_data gintsts;
-  gintsts.d32 = 0 ;
-  
-  INTR_MODEMISMATCH_Callback();
-  
-  /* Clear interrupt */
-  gintsts.b.modemismatch = 1;
-  WRITE_REG32(&core_regs.common_regs->int_sts, gintsts.d32);
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_Sof_ISR
-* Description    : Handles the Start Of Frame detected interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_Sof_ISR(void)
-{
-  USB_OTG_int_sts_data int_sts ;
-  int_sts.d32 = 0;
-  
-  /* Call user function */
-  INTR_SOFINTR_Callback();
-    
-  /* Clear interrupt */
-  int_sts.b.sofintr = 1;
-  WRITE_REG32 (&core_regs.common_regs->int_sts, int_sts.d32);
-
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_RxStatusQueueLevel_ISR
-* Description    : Handles the Rx Status Queue Level Interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_RxStatusQueueLevel_ISR(void)
-{
-  USB_OTG_int_msk_data int_mask;
-  USB_OTG_dev_rx_sts_data status;
-  USB_OTG_EP *ep;
-
-  int_mask.d32 = 0;
-  status.d32 = 0;
-  
-  /* Disable the Rx Status Queue Level interrupt */
-  int_mask.b.rxstsqlvl = 1;
-  MODIFY_REG32( &core_regs.common_regs->int_msk, int_mask.d32, 0);
-
-  /* Get the Status from the top of the FIFO */
-  status.d32 = READ_REG32( &core_regs.common_regs->rx_stsp );
-
-  /* Get the related endpoint structure */
-  ep = OTGD_FS_PCD_GetOutEP(status.b.epnum);
-
-  switch (status.b.pktsts)
-  {
-    case STS_GOUT_NAK:
-      break;
-    case STS_DATA_UPDT:
-      if (status.b.bcnt)
-      {
-        if (ep->type == EP_TYPE_ISOC)
-        {
-          /* Call user function */
-          INTR_RXSTSQLVL_ISODU_Callback();         
-          
-          /* Copy the received buffer to the RAM */
-          OTGD_FS_ReadPacket((uint8_t*)(IsocBuff + (ISOC_BUFFER_SZE * IsocBufferIdx)), status.b.bcnt);
-          ep->xfer_buff = (uint8_t*)(IsocBuff + (ISOC_BUFFER_SZE * IsocBufferIdx));  
-          
-          /* Check if the end of the global buffer has been reached */
-          if (IsocBufferIdx == (NUM_SUB_BUFFERS - 1))
-          {
-            /* Reset the buffer index */
-            IsocBufferIdx = 0;                         
-          }
-          else
-          {
-            /* Increment the buffer index */
-            IsocBufferIdx ++;
-          }          
-        }
-        else
-        {
-          /* Copy the received buffer to the RAM */
-          OTGD_FS_ReadPacket(USBD_Data_Buffer, status.b.bcnt);
-          ep->xfer_buff = USBD_Data_Buffer;
-        }
-        
-        /* Update the endpoint structure */
-        ep->xfer_len  = status.b.bcnt;
-        ep->xfer_count += status.b.bcnt;        
-      }
-      break;
-    case STS_XFER_COMP:
-      break;
-    case STS_SETUP_COMP:
-      break;
-    case STS_SETUP_UPDT:
-      /* Copy the setup packet received in Fifo into the setup buffer in RAM */
-      OTGD_FS_ReadPacket(USBD_Data_Buffer, 8); 
-      ep->xfer_buff = USBD_Data_Buffer;
-      ep->xfer_count += status.b.bcnt;
-      ep->xfer_len  = status.b.bcnt;
-      break;
-    default:
-      break;
-  }
-
-  /* Call the user function */
-  INTR_RXSTSQLVL_Callback();
-  
-  /* Enable the Rx Status Queue Level interrupt */
-  MODIFY_REG32( &core_regs.common_regs->int_msk, 0, int_mask.d32);
-  
-  /* Clear interrupt: this is a read only bit, it cannot be cleared by register 
-     access */
-
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_NPTxFE_ISR
-* Description    : Handles the Non Periodic Tx FIFO Empty interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_NPTxFE_ISR(void )
-{
-  USB_OTG_int_msk_data gintmsk;
-  gintmsk.d32 = 0; 
-  
-  /* Call the user function */
-  INTR_NPTXFEMPTY_Callback();
-  
-  gintmsk.b.nptxfempty = 1;
-  MODIFY_REG32(&core_regs.common_regs->int_msk, gintmsk.d32, 0 );
-  
-  /* Clear interrupt: This bit is a read only bit, cannot be cleared 
-     by register access */
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_GInNakEff_ISR
-* Description    : Handles the Global IN Endpoints NAK Effective interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_GInNakEff_ISR(void)
-{
-  /* Call user function */
-  INTR_GINNAKEFF_Callback();
-  
-  /* Clear interrupt: This is a read only bit, it cannot be cleared by register 
-     access */
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_GOutNakEff_ISR
-* Description    : Handles the Global OUT Endpoints NAK Effective interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_GOutNakEff_ISR(void)
-{
-  /* Call user function */
-  INTR_GOUTNAKEFF_Callback();  
-  
-  /* Clear interrupt: This is a read only bit, it cannot be cleared by register 
-     access */
-
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_EarlySuspend_ISR
-* Description    : Handles the Early Suspend detected interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_EarlySuspend_ISR(void )
-{
-  USB_OTG_int_sts_data gintsts;
-  USB_OTG_int_msk_data gintmsk;
-
-  gintsts.d32 = 0;
-  gintmsk.d32 = 0;
-  
-  
-  /* Call user function */
-  INTR_ERLYSUSPEND_Callback();  
-  
-  gintmsk.b.erlysuspend = 1;
-  MODIFY_REG32(&core_regs.common_regs->int_msk, gintmsk.d32, 0 );
-
-  /* Clear interrupt */
-  gintsts.b.erlysuspend = 1;
-  WRITE_REG32(&core_regs.common_regs->int_sts, gintsts.d32);
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_USBSuspend_ISR
-* Description    : Handles the Suspend condition detected interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_USBSuspend_ISR(void)
-{
-  USB_OTG_int_sts_data gintsts;  
-  
-  gintsts.d32 = 0;
-  /* Call user function */
-  INTR_USBSUSPEND_Callback();
-  
-  /* Clear interrupt */
-  gintsts.b.usbsuspend = 1;
-  WRITE_REG32(&core_regs.common_regs->int_sts, gintsts.d32);
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_UsbReset_ISR
-* Description    : This interrupt occurs when a USB Reset is detected.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_UsbReset_ISR(void)
-{
-  USB_OTG_dev_all_int_data daintmsk;
-  USB_OTG_dev_out_ep_msk_data doepmsk;
-  USB_OTG_dev_in_ep_msk_data diepmsk;
-  USB_OTG_dev_cfg_data dcfg;
-  USB_OTG_dev_ctl_data dctl;
-  USB_OTG_int_sts_data gintsts;
-  
-  daintmsk.d32 = 0;
-  doepmsk.d32 = 0;
-  diepmsk.d32 = 0;
-  dcfg.d32 =0;
-  dctl.d32 = 0;
-  gintsts.d32 = 0;
-
-  /* Clear the Remote Wakeup Signalling */
-  dctl.b.rmtwkupsig = 1;
-  MODIFY_REG32(&core_regs.dev_regs->dev_ctl, dctl.d32, 0 );
-
-  /* Flush the NP Tx FIFO */
-  OTGD_FS_FlushTxFifo( 0 );
-
-  daintmsk.b.inep0 = 1;
-  daintmsk.b.outep0 = 1;
-  WRITE_REG32( &core_regs.dev_regs->dev_all_int_msk, daintmsk.d32 );
-
-  doepmsk.b.setup = 1;
-  doepmsk.b.xfercompl = 1;
-  doepmsk.b.ahberr = 1;
-  doepmsk.b.epdisabled = 1;
-  WRITE_REG32( &core_regs.dev_regs->dev_out_ep_msk, doepmsk.d32 );
-
-  diepmsk.b.xfercompl = 1;
-  diepmsk.b.timeout = 1;
-  diepmsk.b.epdisabled = 1;
-  diepmsk.b.ahberr = 1;
-  diepmsk.b.intknepmis = 1;
-  WRITE_REG32( &core_regs.dev_regs->dev_in_ep_msk, diepmsk.d32 );
-
-  /* Reset Device Address */
-  dcfg.d32 = READ_REG32( &core_regs.dev_regs->dev_cfg);
-  dcfg.b.devaddr = 0;
-  WRITE_REG32( &core_regs.dev_regs->dev_cfg, dcfg.d32);
-
-  /* setup EP0 to receive SETUP packets */
-  OTGD_FS_PCD_EP0_OutStart();
-
-  /* Clear interrupt */
-  gintsts.d32 = 0;
-  gintsts.b.usbreset = 1;
-  WRITE_REG32 (&core_regs.common_regs->int_sts, gintsts.d32);
-
-  /* Call the user reset function */
-  OTGD_FS_DEVICE_RESET; 
-  
-  /* Call user function */
-  INTR_USBRESET_Callback();  
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_EnumDone_ISR
-* Description    : Reads the device status register and set the device speed
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_EnumDone_ISR(void)
-{
-  USB_OTG_int_sts_data gintsts;
-  USB_OTG_usb_cfg_data gusbcfg;
-
-  gintsts.d32 = 0;
-  gusbcfg.d32 = 0;
-  
-  OTGD_FS_EP0Activate();
-
-  /* Set USB turnaround time based on device speed and PHY interface. */
-  gusbcfg.d32 = READ_REG32(&core_regs.common_regs->usb_cfg);
-
-  /* Full or low speed */
-  if ( OTGD_FS_PCD_GetDeviceSpeed() == USB_SPEED_FULL)
-  {
-    gusbcfg.b.usbtrdtim = 9;
-  }
-  WRITE_REG32(&core_regs.common_regs->usb_cfg, gusbcfg.d32);
-
-  /* Call user function */
-  INTR_ENUMDONE_Callback();
-  
-  /* Clear interrupt */
-  gintsts.b.enumdone = 1;
-  WRITE_REG32( &core_regs.common_regs->int_sts, gintsts.d32 );
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_IsoOutDrop_ISR
-* Description    : Handles the Isochrounous Out packet Dropped interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_IsoOutDrop_ISR(void)
-{
-  USB_OTG_int_sts_data gintsts;  
-
-  gintsts.d32 = 0;
-  /* Call user function */
-  INTR_ISOOUTDROP_Callback();
-  
-  /* Clear interrupt */
-  gintsts.b.isooutdrop = 1;
-  WRITE_REG32(&core_regs.common_regs->int_sts, gintsts.d32);
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_EOPF_ISR
-* Description    : Handles the Expexted End Of Periodic Frame interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_EOPF_ISR(void )
-{
-  USB_OTG_int_sts_data gintsts;
-  USB_OTG_int_msk_data gintmsk;
-  
-  gintsts.d32 = 0;
-  gintmsk.d32 = 0;
-  
-  gintmsk.b.eopframe = 1;
-  MODIFY_REG32(&core_regs.common_regs->int_msk, gintmsk.d32, 0 );
-
-  /* Call user function */
-  INTR_EOPFRAME_Callback();
-  
-  /* Clear interrupt */
-  gintsts.b.eopframe = 1;
-  WRITE_REG32(&core_regs.common_regs->int_sts, gintsts.d32);
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_EPMismatch_ISR
-* Description    : Handles the Endpoint Mismatch error interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_EPMismatch_ISR(void)
-{
-  USB_OTG_int_sts_data gintsts;  
-  
-  gintsts.d32 = 0;
-  
-  /* Call user function */
-  INTR_EPMISMATCH_Callback();
-  
-  /* Clear interrupt */
-  gintsts.b.epmismatch = 1;
-  WRITE_REG32(&core_regs.common_regs->int_sts, gintsts.d32);
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_InEP_ISR
-* Description    : Handles all IN endpoints interrupts.
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_InEP_ISR(void)
-{
-  USB_OTG_dev_in_ep_int_data diepint;
-
-  uint32_t ep_intr = 0;
-  uint32_t epnum = 0;
-  USB_OTG_EP *ep;
-  uint32_t fifoemptymsk = 0;
-
-  diepint.d32 = 0;  
-  ep_intr = OTGD_FS_ReadDevAllInEPItr();
-  while ( ep_intr )
-  {
-    if (ep_intr&0x1) /* In ITR */
-    {
-      ep = OTGD_FS_PCD_GetInEP(epnum);
-      diepint.d32 = OTGD_FS_PCD_ReadDevInEP(ep); /* Get In ITR status */
-      if ( diepint.b.xfercompl )
-      {
-        fifoemptymsk = 0x1 << ep->num;
-        MODIFY_REG32(&core_regs.dev_regs->dev_fifo_empty_msk, fifoemptymsk, 0);
-
-        /* Clear the Interrupt flag */ 
-        CLEAR_IN_EP_INTR(epnum, xfercompl);
-        
-        if (epnum == 0)  
-        {        
-          /* Call the core IN process for EP0 */ 
-          In0_Process();
-          
-          /* before terminate set Tx & Rx status */
-          OTG_DEV_SetEPRxStatus(epnum, SaveRState);
-          OTG_DEV_SetEPTxStatus(epnum, SaveTState);
-        }
-        else
-        {
-          OTG_DEV_SetEPTxStatus((epnum | 0x80 ), DEV_EP_TX_NAK);
-
-          (*pEpInt_IN[epnum -1])();
-          
-          /* Toggle Endpoint frame ID */
-          if (ep->even_odd_frame == 0)
-            ep->even_odd_frame = 1;
-          else
-            ep->even_odd_frame = 0;
-        } 
-      }
-      if ( diepint.b.ahberr )
-      {
-        CLEAR_IN_EP_INTR(epnum, ahberr);
-      }
-      if ( diepint.b.timeout )
-      {
-        CLEAR_IN_EP_INTR(epnum, timeout);
-      }
-      if (diepint.b.intktxfemp)
-      {
-        CLEAR_IN_EP_INTR(epnum, intktxfemp);
-      }
-      if (diepint.b.intknepmis)
-      {
-        CLEAR_IN_EP_INTR(epnum, intknepmis);
-      }
-      if (diepint.b.inepnakeff)
-      {
-        CLEAR_IN_EP_INTR(epnum, inepnakeff);
-      }
-      if (diepint.b.emptyintr)
-      {      
-         if ((epnum == 0) || (OTG_DEV_GetEPTxStatus(epnum) == DEV_EP_TX_VALID))
-        {
-          OTGD_FS_PCD_WriteEmptyTxFifo(epnum);          
-        }
-
-        CLEAR_IN_EP_INTR(epnum, emptyintr);          
-      }
-      if ( diepint.b.epdisabled )
-      { 
-        /* Reset Endpoint Frame ID to 0 */
-        ep->even_odd_frame = 0;
-
-        CLEAR_IN_EP_INTR(epnum, epdisabled);
-      }      
-    }
-    epnum++;
-    ep_intr >>= 1;
-  }
-
-  /* Call user function */
-  INTR_INEPINTR_Callback();
-  
-  return 1;
-}
-
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_OutEP_ISR
-* Description    : Handles all OUT endpoints interrupts.
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_OutEP_ISR(void)
-{
-  uint32_t ep_intr = 0;
-  USB_OTG_dev_out_ep_int_data doepint;
-  uint32_t epnum = 0;
-  USB_OTG_EP *ep;
-  
-  doepint.d32 = 0;
-
-  /* Read in the device interrupt bits */
-  ep_intr = OTGD_FS_ReadDevAllOutEp_itr();
-  
-  while ( ep_intr )
-  {
-    if (ep_intr&0x1)
-    {
-      /* Get EP pointer */
-      ep = OTGD_FS_PCD_GetOutEP(epnum);
-      doepint.d32 = OTGD_FS_ReadDevOutEP_itr(ep);
-
-      /* Transfer complete */
-      if ( doepint.b.xfercompl )
-      {
-        /* Clear the bit in DOEPINTn for this interrupt */
-        CLEAR_OUT_EP_INTR(epnum, xfercompl);
-        
-        if (epnum == 0)  
-        { 
-          /* Call the OUT process for the EP0 */
-          Out0_Process();
-        }
-        else
-        {
-          (*pEpInt_OUT[epnum-1])();
-        }
-      }
-      /* Endpoint disable  */
-      if ( doepint.b.epdisabled )
-      {
-        /* Clear the bit in DOEPINTn for this interrupt */
-        CLEAR_OUT_EP_INTR(epnum, epdisabled);
-      }
-      /* AHB Error */
-      if ( doepint.b.ahberr )
-      {
-        CLEAR_OUT_EP_INTR(epnum, ahberr);
-      }
-      /* Setup Phase Done (control EPs) */
-      if ( doepint.b.setup )
-      {
-        if (epnum == 0)  
-        {        
-          /* Call the SETUP process for the EP0 */
-          Setup0_Process();  
-
-          /* Before exit, update the Tx status */
-          OTG_DEV_SetEPTxStatus(0x80, SaveTState);  
-        }
-        else
-        {
-          /* Other control endpoints */
-        }  
-        
-        /* Clear the EP Interrupt */
-        CLEAR_OUT_EP_INTR(epnum, setup);
-      }
-    }
-    epnum++;
-    ep_intr >>= 1;
-  }
-
-  /* Call user function */
-  INTR_OUTEPINTR_Callback();  
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_IncomplIsoIn_ISR
-* Description    : Handles the Incomplete Isochrous IN tranfer error interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_IncomplIsoIn_ISR(void)
-{
-  USB_OTG_int_sts_data gintsts;  
-  
-  gintsts.d32 = 0;
-
-  /* Call user function */
-  INTR_INCOMPLISOIN_Callback(); 
-  
-  /* Clear interrupt */
-  gintsts.b.incomplisoin = 1;
-  WRITE_REG32(&core_regs.common_regs->int_sts, gintsts.d32);
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_IncomplIsoOut_ISR
-* Description    : Handles the Incomplete Isochrous OUT tranfer error interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_IncomplIsoOut_ISR(void)
-{
-  USB_OTG_int_sts_data gintsts;  
-
-  gintsts.d32 = 0;
-  
-  /* Call user function */
-  INTR_INCOMPLISOOUT_Callback();
-  
-  /* Clear interrupt */
-  gintsts.b.outepintr = 1;
-  WRITE_REG32(&core_regs.common_regs->int_sts, gintsts.d32);
-  
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_Handle_Wakeup_ISR
-* Description    : Handles the Wakeup or Remote Wakeup detected interrupt.
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_Handle_Wakeup_ISR(void)
-{
-  USB_OTG_int_sts_data gintsts;
-
-  gintsts.d32 = 0;
-  /* Call user function */
-  INTR_WKUPINTR_Callback();
-  
-  /* Clear interrupt */
-  gintsts.b.wkupintr = 1;
-  WRITE_REG32 (&core_regs.common_regs->int_sts, gintsts.d32);
-
-  return 1;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_GetDeviceSpeed
-* Description    : Get the device speed from the device status register
-* Input          : None
-* Output         : None
-* Return         : The Device speed value.
-*******************************************************************************/
-static enum usb_device_speed OTGD_FS_PCD_GetDeviceSpeed(void)
-{
-  USB_OTG_dev_sts_data dsts;
-  enum usb_device_speed speed = USB_SPEED_UNKNOWN;
-    
-  dsts.d32 = 0;
-    
-  dsts.d32 = READ_REG32(&core_regs.dev_regs->dev_sts);
-
-  switch (dsts.b.enumspd)
-  {
-    case DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ:
-      speed = USB_SPEED_HIGH;
-      break;
-    case DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ:
-    case DSTS_ENUMSPD_FS_PHY_48MHZ:
-      speed = USB_SPEED_FULL;
-      break;
-
-    case DSTS_ENUMSPD_LS_PHY_6MHZ:
-      speed = USB_SPEED_LOW;
-      break;
-  }
-
-  return speed;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_ReadDevInEP
-* Description    : Reads all the Endpoints flags.
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-static uint32_t OTGD_FS_PCD_ReadDevInEP( USB_OTG_EP *ep)
-{
-  uint32_t v = 0, msk = 0, emp=0;
-  
-  msk = READ_REG32(&core_regs.dev_regs->dev_in_ep_msk);
-  emp = READ_REG32(&core_regs.dev_regs->dev_fifo_empty_msk);
-  msk |= ((emp >> ep->num) & 0x1) << 7;
-  v = READ_REG32(&core_regs.inep_regs[ep->num]->dev_in_ep_int) & msk;
-  
-  return v;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_WriteEmptyTxFifo
-* Description    : Checks Fifo for the next packet to be loaded.
-* Input          : None
-* Output         : None
-* Return         : Status
-*******************************************************************************/
-static uint32_t OTGD_FS_PCD_WriteEmptyTxFifo(uint32_t epnum)
-{
-  USB_OTG_dev_tx_fifo_sts_data txstatus;
-  USB_OTG_EP *ep;
-  uint32_t len = 0;
-  uint32_t dwords = 0;
-  USB_OTG_dev_ep_ctl_data  depctl;
-  
-  
-  txstatus.d32 = 0;
-  depctl.d32 = 0;
-  
-  ep = OTGD_FS_PCD_GetInEP(epnum); 
-  
-  len = ep->xfer_len - ep->xfer_count;
-
-  if (len > ep->maxpacket)
-  {
-    len = ep->maxpacket;
-  }
-  
-  dwords = (len + 3) / 4;
-  txstatus.d32 = READ_REG32( &core_regs.inep_regs[epnum]->dev_tx_fifo_sts);
-
-  /* Manage the case of 0-length data packets toggling data PID */
-  if ((ep->xfer_len == 0) && (ep->xfer_count == 0))
-  {
-    if (ep->num > 0)
-    {
-      depctl.d32 = READ_REG32( &core_regs.inep_regs[epnum]->dev_in_ep_ctl);      
-      if (ep->even_odd_frame == 1)
-      {
-        depctl.b.setd0pid = 0;
-        depctl.b.setd1pid = 1;
-      }
-      else
-      {
-        depctl.b.setd0pid = 1;
-        depctl.b.setd1pid = 0;
-      }      
-      WRITE_REG32( &core_regs.inep_regs[epnum]->dev_in_ep_ctl, depctl.d32);           
-    }
-  }
-
-  
-  while  ((txstatus.b.txfspcavail > dwords) &&
-          (ep->xfer_count < ep->xfer_len) &&
-          (ep->xfer_len) != 0)
-  {
-    if (ep->num > 0)
-    {
-      depctl.d32 = READ_REG32( &core_regs.inep_regs[epnum]->dev_in_ep_ctl);      
-      if (ep->even_odd_frame == 0)
-      {
-        depctl.b.setd0pid = 1;
-        depctl.b.setd1pid = 0;
-      }
-      else
-      {
-        depctl.b.setd0pid = 0;
-        depctl.b.setd1pid = 1;
-      }      
-      WRITE_REG32( &core_regs.inep_regs[epnum]->dev_in_ep_ctl, depctl.d32);           
-    }
-    
-    /* Write the FIFO */
-    len = ep->xfer_len - ep->xfer_count;
-
-    if (len > ep->maxpacket)
-    {
-      len = ep->maxpacket;
-    }
-    dwords = (len + 3) / 4;
-
-    OTGD_FS_WritePacket(ep->xfer_buff, epnum, len);    
-    
-    ep->xfer_count += len;
-    ep->xfer_buff += len; 
-
-    txstatus.d32 = READ_REG32(&core_regs.inep_regs[epnum]->dev_tx_fifo_sts);   
-  }
-  
-  return 1;
-}
-#endif  /* STM32F10X_CL */
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/otgd_fs_pcd.c b/STM32_USB-FS-Device_Driver/src/otgd_fs_pcd.c
deleted file mode 100644 (file)
index c838757..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : otgd_fs_pcd.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Peripheral Device Interface low layer.
-********************************************************************************
-* THE PRESENT SOFTWARE 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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
-* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
-*******************************************************************************/
-
-#ifdef STM32F10X_CL
-
-#include "usb_lib.h"
-#include "otgd_fs_cal.h"
-#include "otgd_fs_pcd.h"
-
-USB_OTG_PCD_DEV USB_OTG_PCD_dev;
-
-extern USB_OTG_CORE_REGS     core_regs;
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_Init
-* Description    : Initialize the USB Device portion of the driver.
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-void OTGD_FS_PCD_Init(void)
-{
-  uint32_t i = 0;
-  USB_OTG_EP *ep;
-
-  ep = &USB_OTG_PCD_dev.ep0;
-  USB_OTG_PCD_dev.ep0state = 0;
-
-  /* Init ep structure */
-  ep->num = 0;
-  ep->tx_fifo_num = 0;
-
-  /* Control until ep is actvated */
-  ep->type = EP_TYPE_CTRL;
-  ep->maxpacket = MAX_PACKET_SIZE;
-
-  ep->xfer_buff = 0;
-  ep->xfer_len = 0;
-
-  for (i = 1; i < MAX_TX_FIFOS ; i++)
-  {
-    ep = &USB_OTG_PCD_dev.in_ep[i-1];
-
-    /* Init ep structure */
-    ep->is_in = 1;
-    ep->num = i;
-    ep->tx_fifo_num = i;
-
-    /* Control until ep is actvated */
-    ep->type = EP_TYPE_CTRL;
-    ep->maxpacket = MAX_PACKET_SIZE;
-    ep->xfer_buff = 0;
-    ep->xfer_len = 0;
-  }
-
-  for (i = 1; i < MAX_TX_FIFOS; i++)
-  {
-    ep = &USB_OTG_PCD_dev.out_ep[i-1];
-
-    /* Init ep structure */
-    ep->is_in = 0;
-    ep->num = i;
-    ep->tx_fifo_num = i;
-
-    /* Control until ep is activated */
-    ep->type = EP_TYPE_CTRL;
-    ep->maxpacket = MAX_PACKET_SIZE;
-    ep->xfer_buff = 0;
-    ep->xfer_len = 0;
-  }
-
-  USB_OTG_PCD_dev.ep0.maxpacket = MAX_EP0_SIZE;
-  USB_OTG_PCD_dev.ep0.type = EP_TYPE_CTRL;
-
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_EP_Open
-* Description    : Configure an Endpoint
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_PCD_EP_Open(EP_DESCRIPTOR *epdesc)
-{
-  USB_OTG_EP *ep;
-
-
-  if ((0x80 & epdesc->bEndpointAddress) != 0)
-  {
-    ep = OTGD_FS_PCD_GetInEP(epdesc->bEndpointAddress & 0x7F);
-    ep->is_in = 1;
-  }
-  else
-  {
-    ep = OTGD_FS_PCD_GetOutEP(epdesc->bEndpointAddress & 0x7F);
-    ep->is_in = 0;
-  }
-
-  ep->num   = epdesc->bEndpointAddress & 0x7F;
-  ep->maxpacket = epdesc->wMaxPacketSize;
-  ep->type = epdesc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
-
-  if (ep->is_in)
-  {
-    /* Assign a Tx FIFO */
-    ep->tx_fifo_num = ep->num;
-  }
-  
-  /* Set initial data PID. */
-  if ((epdesc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK )
-  {
-    ep->data_pid_start = 0;
-  }
-
-  OTGD_FS_EPActivate(ep );
-
-  return 0;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_EP_Close
-* Description    : Called when an EP is disabled
-* Input          : Endpoint address.
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_PCD_EP_Close(uint8_t  ep_addr)
-{
-
-  USB_OTG_EP *ep;
-
-  if ((0x80 & ep_addr) != 0)
-  {
-    ep = OTGD_FS_PCD_GetInEP(ep_addr & 0x7F);
-  }
-  else
-  {
-    ep = OTGD_FS_PCD_GetOutEP(ep_addr & 0x7F);
-  }
-
-  ep->num   = ep_addr & 0x7F;
-  ep->is_in = (0x80 & ep_addr) != 0;
-
-  OTGD_FS_EPDeactivate(ep );
-  return 0;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_EP_Read
-* Description    : Read data from Fifo
-* Input          : Endpoint address.
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t OTGD_FS_PCD_EP_Read (uint8_t ep_addr, uint8_t *pbuf, uint32_t buf_len)
-{
-  USB_OTG_EP *ep;
-  uint32_t i = 0;
-
-  ep = OTGD_FS_PCD_GetOutEP(ep_addr & 0x7F);
-
-  /* copy received data into application buffer */
-  for (i = 0 ; i < buf_len ; i++)
-  {
-    pbuf[i] = ep->xfer_buff[i];
-  }
-
-  /*setup and start the Xfer */
-  ep->xfer_buff = pbuf;
-  ep->xfer_len = buf_len;
-  ep->xfer_count = 0;
-  ep->is_in = 0;
-  ep->num = ep_addr & 0x7F;
-
-  if ( ep->num == 0 )
-  {
-    OTGD_FS_EP0StartXfer(ep);
-  }
-  else if (USB_OTG_PCD_dev.ep0state == 0)
-  {
-    OTGD_FS_EPStartXfer( ep );
-  }
-
-  return 0;
-}
-
-/*******************************************************************************
-* Function Name  : USBF_EP_Write
-* Description    : Read data from Fifo
-* Input          : ep
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t  OTGD_FS_PCD_EP_Write (uint8_t ep_addr, uint8_t *pbuf, uint32_t buf_len)
-{
-  USB_OTG_EP *ep;
-
-  ep = OTGD_FS_PCD_GetInEP(ep_addr & 0x7f);
-
-  /* assign data to EP structure buffer */
-  ep->xfer_buff = pbuf;
-
-  /* Setup and start the Transfer */
-  ep->xfer_count = 0;
-  ep->xfer_len = buf_len;
-  ep->is_in = 1;
-  ep->num = ep_addr & 0x7F;
-  
-  if ( ep->num == 0 )
-  {
-    OTGD_FS_EP0StartXfer(ep);
-  }
-  else if (USB_OTG_PCD_dev.ep0state == 0)
-  {
-    OTGD_FS_EPStartXfer( ep );
-  }
-
-  return 0;
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_EP_Stall
-* Description    : Stall an endpoint.
-* Input          : Endpoint Address.
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t  OTGD_FS_PCD_EP_Stall (uint8_t ep_addr)
-{
-  USB_OTG_EP *ep;
-
-  if ((0x80 & ep_addr) != 0)
-  {
-    ep = OTGD_FS_PCD_GetInEP(ep_addr & 0x7F);
-  }
-  else
-  {
-    ep = OTGD_FS_PCD_GetOutEP(ep_addr & 0x7F);
-  }
-
-  ep->num   = ep_addr & 0x7F;
-  ep->is_in = ((ep_addr & 0x80) == 0x80) ? 1 : 0;
-
-  OTGD_FS_EPSetStall(ep);
-  return (0);
-}
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_EP_ClrStall
-* Description    : Clear stall condition on endpoints.
-* Input          : Endpoint Address.
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t  OTGD_FS_PCD_EP_ClrStall (uint8_t ep_addr)
-{
-
-  USB_OTG_EP *ep;
-
-  if ((0x80 & ep_addr) != 0)
-  {
-    ep = OTGD_FS_PCD_GetInEP(ep_addr & 0x7F);
-  }
-  else
-  {
-    ep = OTGD_FS_PCD_GetOutEP(ep_addr & 0x7F);
-  }
-
-  ep->num   = ep_addr & 0x7F;
-  ep->is_in = ((ep_addr & 0x80) == 0x80) ? 1 : 0;
-
-  OTGD_FS_EPClearStall(ep);
-
-  return (0);
-}
-
-/*******************************************************************************
-* Function Name  : USBF_FCD_EP_Flush()
-* Description    : This Function flushes the buffer.
-* Input          : Endpoint Address.
-* Output         : None
-* Return         : status
-*******************************************************************************/
-uint32_t  OTGD_FS_PCD_EP_Flush (uint8_t ep_addr)
-{
-
-  uint8_t  is_out = 0;
-  uint8_t  ep_nbr = 0;
-
-  ep_nbr   = ep_addr & 0x7F;
-  is_out = ((ep_addr & 0x80) == 0x80) ? 0 : 1;
-
-  if (is_out == 0)
-  {
-    OTGD_FS_FlushTxFifo(ep_nbr);
-  }
-  else
-  {
-    OTGD_FS_FlushRxFifo();
-  }
-  OTGD_FS_PCD_EP_ClrStall(ep_addr);
-  return (0);
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_EP_SetAddress
-* Description    : This Function set USB device address
-* Input          : The new device Address to be set.
-* Output         : None
-* Return         : status
-*******************************************************************************/
-void  OTGD_FS_PCD_EP_SetAddress (uint8_t address)
-{
-
-  USB_OTG_dev_cfg_data dcfg;
-
-  dcfg.d32 = 0;
-  
-  dcfg.b.devaddr = address;
-  MODIFY_REG32( &core_regs.dev_regs->dev_cfg, 0, dcfg.d32);
-}
-
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_GetInEP
-* Description    : This function returns pointer to IN EP struct with number ep_num
-* Input          : Endpoint Number.
-* Output         : None
-* Return         : status
-*******************************************************************************/
-USB_OTG_EP* OTGD_FS_PCD_GetInEP(uint32_t ep_num)
-{
-  uint32_t i = 0;
-  
-  if (ep_num == 0)
-  {
-    return &USB_OTG_PCD_dev.ep0;
-  }
-  else
-  {
-    for (i = 0; i < MAX_TX_FIFOS; ++i)
-    {
-      if (USB_OTG_PCD_dev.in_ep[i].num == ep_num)
-        return &USB_OTG_PCD_dev.in_ep[i];
-    }
-    return 0;
-  }
-}
-/*******************************************************************************
-* Function Name  : USBF_GetOutEP
-* Description    : returns pointer to OUT EP struct with number ep_num
-* Input          : Endpoint Number.
-* Output         : None
-* Return         : USBF_EP
-*******************************************************************************/
-USB_OTG_EP* OTGD_FS_PCD_GetOutEP(uint32_t ep_num)
-{
-  uint32_t i = 0;
-  
-  if (ep_num == 0)
-  {
-    return &USB_OTG_PCD_dev.ep0;
-  }
-  else
-  {
-    for (i = 0; i < MAX_TX_FIFOS; ++i)
-    {
-      if (USB_OTG_PCD_dev.out_ep[i].num == ep_num)
-        return &USB_OTG_PCD_dev.out_ep[i];
-    }
-    return 0;
-  }
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_DevConnect
-* Description    : Connect device
-* Input         : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-void  OTGD_FS_PCD_DevConnect(void)
-{
-
-  USB_OTG_dev_ctl_data dctl;
-  
-  dctl.d32 = 0;
-
-  dctl.d32 = READ_REG32(&core_regs.dev_regs->dev_ctl);
-
-  /* Connect device */
-  dctl.b.sftdiscon  = 0;
-  WRITE_REG32(&core_regs.dev_regs->dev_ctl, dctl.d32);
-  mDELAY(25);
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_DevDisconnect
-* Description    : Disconnect device
-* Input         : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-void  OTGD_FS_PCD_DevDisconnect (void)
-{
-
-  USB_OTG_dev_ctl_data dctl;
-
-  dctl.d32 = 0;
-  
-  dctl.d32 = READ_REG32(&core_regs.dev_regs->dev_ctl);
-
-  /* Disconnect device for 20ms */
-  dctl.b.sftdiscon  = 1;
-  WRITE_REG32(&core_regs.dev_regs->dev_ctl, dctl.d32);
-  mDELAY(25);
-}
-
-/*******************************************************************************
-* Function Name  : OTGD_FS_PCD_EP0_OutStart
-* Description    : Configures EPO to receive SETUP packets.
-* Input          : None
-* Output         : None
-* Return         : None
-*******************************************************************************/
-void OTGD_FS_PCD_EP0_OutStart(void)
-{
-
-  USB_OTG_dev_ep_txfer_size0_data doeptsize0;
-  doeptsize0.d32 = 0;
-  
-  
-  doeptsize0.b.supcnt = 3;
-  doeptsize0.b.pktcnt = 1;
-  doeptsize0.b.xfersize = 8 * 3;
-
-  WRITE_REG32( &core_regs.outep_regs[0]->dev_out_ep_txfer_siz, doeptsize0.d32 );
-
-}
-
-#endif /* STM32F10X_CL */
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
-
diff --git a/STM32_USB-FS-Device_Driver/src/usb_core.c b/STM32_USB-FS-Device_Driver/src/usb_core.c
deleted file mode 100644 (file)
index 24ee765..0000000
+++ /dev/null
@@ -1,1088 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_core.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Standard protocol processing (USB v2.0)
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-extern void usb_lld_to_pmabuf (const void *src, uint16_t addr, uint32_t n);
-extern void usb_lld_from_pmabuf (void *dst, uint16_t addr, uint32_t n);
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-#define ValBit(VAR,Place)    (VAR & (1 << Place))
-#define SetBit(VAR,Place)    (VAR |= (1 << Place))
-#define ClrBit(VAR,Place)    (VAR &= ((1 << Place) ^ 255))
-
-#ifdef STM32F10X_CL
- #define Send0LengthData()  {OTGD_FS_PCD_EP_Write (0, 0, 0) ; vSetEPTxStatus(EP_TX_VALID);}
-#else
-#define Send0LengthData() { _SetEPTxCount(ENDP0, 0); \
-    vSetEPTxStatus(EP_TX_VALID); \
-  }
-#endif /* STM32F10X_CL */
-
-#define vSetEPRxStatus(st) (SaveRState = st)
-#define vSetEPTxStatus(st) (SaveTState = st)
-
-#define USB_StatusIn() Send0LengthData()
-#define USB_StatusOut() vSetEPRxStatus(EP_RX_VALID)
-
-#define StatusInfo0 StatusInfo.bw.bb1 /* Reverse bb0 & bb1 */
-#define StatusInfo1 StatusInfo.bw.bb0
-
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-uint16_t_uint8_t StatusInfo;
-
-bool Data_Mul_MaxPacketSize = FALSE;
-/* Private function prototypes -----------------------------------------------*/
-static void DataStageOut(void);
-static void DataStageIn(void);
-static void NoData_Setup0(void);
-static void Data_Setup0(void);
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : Standard_GetConfiguration.
-* Description    : Return the current configuration variable address.
-* Input          : Length - How many bytes are needed.
-* Output         : None.
-* Return         : Return 1 , if the request is invalid when "Length" is 0.
-*                  Return "Buffer" if the "Length" is not 0.
-*******************************************************************************/
-uint8_t *Standard_GetConfiguration(uint16_t Length)
-{
-  if (Length == 0)
-  {
-    pInformation->Ctrl_Info.Usb_wLength =
-      sizeof(pInformation->Current_Configuration);
-    return 0;
-  }
-  pUser_Standard_Requests->User_GetConfiguration();
-  return (uint8_t *)&pInformation->Current_Configuration;
-}
-
-/*******************************************************************************
-* Function Name  : Standard_SetConfiguration.
-* Description    : This routine is called to set the configuration value
-*                  Then each class should configure device themself.
-* Input          : None.
-* Output         : None.
-* Return         : Return USB_SUCCESS, if the request is performed.
-*                  Return USB_UNSUPPORT, if the request is invalid.
-*******************************************************************************/
-RESULT Standard_SetConfiguration(void)
-{
-
-  if ((pInformation->USBwValue0 <=
-      Device_Table.Total_Configuration) && (pInformation->USBwValue1 == 0)
-      && (pInformation->USBwIndex == 0)) /*call Back usb spec 2.0*/
-  {
-    pInformation->Current_Configuration = pInformation->USBwValue0;
-    pUser_Standard_Requests->User_SetConfiguration();
-    return USB_SUCCESS;
-  }
-  else
-  {
-    return USB_UNSUPPORT;
-  }
-}
-
-/*******************************************************************************
-* Function Name  : Standard_GetInterface.
-* Description    : Return the Alternate Setting of the current interface.
-* Input          : Length - How many bytes are needed.
-* Output         : None.
-* Return         : Return 0, if the request is invalid when "Length" is 0.
-*                  Return "Buffer" if the "Length" is not 0.
-*******************************************************************************/
-uint8_t *Standard_GetInterface(uint16_t Length)
-{
-  if (Length == 0)
-  {
-    pInformation->Ctrl_Info.Usb_wLength =
-      sizeof(pInformation->Current_AlternateSetting);
-    return 0;
-  }
-  pUser_Standard_Requests->User_GetInterface();
-  return (uint8_t *)&pInformation->Current_AlternateSetting;
-}
-
-/*******************************************************************************
-* Function Name  : Standard_SetInterface.
-* Description    : This routine is called to set the interface.
-*                  Then each class should configure the interface them self.
-* Input          : None.
-* Output         : None.
-* Return         : - Return USB_SUCCESS, if the request is performed.
-*                  - Return USB_UNSUPPORT, if the request is invalid.
-*******************************************************************************/
-RESULT Standard_SetInterface(void)
-{
-  RESULT Re;
-  /*Test if the specified Interface and Alternate Setting are supported by
-    the application Firmware*/
-  Re = (*pProperty->Class_Get_Interface_Setting)(pInformation->USBwIndex0, pInformation->USBwValue0);
-
-  if (pInformation->Current_Configuration != 0)
-  {
-    if ((Re != USB_SUCCESS) || (pInformation->USBwIndex1 != 0)
-        || (pInformation->USBwValue1 != 0))
-    {
-      return  USB_UNSUPPORT;
-    }
-    else if (Re == USB_SUCCESS)
-    {
-      pUser_Standard_Requests->User_SetInterface();
-      pInformation->Current_Interface = pInformation->USBwIndex0;
-      pInformation->Current_AlternateSetting = pInformation->USBwValue0;
-      return USB_SUCCESS;
-    }
-
-  }
-
-  return USB_UNSUPPORT;
-}
-
-/*******************************************************************************
-* Function Name  : Standard_GetStatus.
-* Description    : Copy the device request data to "StatusInfo buffer".
-* Input          : - Length - How many bytes are needed.
-* Output         : None.
-* Return         : Return 0, if the request is at end of data block,
-*                  or is invalid when "Length" is 0.
-*******************************************************************************/
-uint8_t *Standard_GetStatus(uint16_t Length)
-{
-  if (Length == 0)
-  {
-    pInformation->Ctrl_Info.Usb_wLength = 2;
-    return 0;
-  }
-
-  /* Reset Status Information */
-  StatusInfo.w = 0;
-
-  if (Type_Recipient == (STANDARD_REQUEST | DEVICE_RECIPIENT))
-  {
-    /*Get Device Status */
-    uint8_t Feature = pInformation->Current_Feature;
-
-    /* Remote Wakeup enabled */
-    if (ValBit(Feature, 5))
-    {
-      SetBit(StatusInfo0, 1);
-    }
-    else
-    {
-      ClrBit(StatusInfo0, 1);
-    }      
-
-    /* Bus-powered */
-    if (ValBit(Feature, 6))
-    {
-      SetBit(StatusInfo0, 0);
-    }
-    else /* Self-powered */
-    {
-      ClrBit(StatusInfo0, 0);
-    }
-  }
-  /*Interface Status*/
-  else if (Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))
-  {
-    return (uint8_t *)&StatusInfo;
-  }
-  /*Get EndPoint Status*/
-  else if (Type_Recipient == (STANDARD_REQUEST | ENDPOINT_RECIPIENT))
-  {
-    uint8_t Related_Endpoint;
-    uint8_t wIndex0 = pInformation->USBwIndex0;
-
-    Related_Endpoint = (wIndex0 & 0x0f);
-    if (ValBit(wIndex0, 7))
-    {
-      /* IN endpoint */
-      if (_GetTxStallStatus(Related_Endpoint))
-      {
-        SetBit(StatusInfo0, 0); /* IN Endpoint stalled */
-      }
-    }
-    else
-    {
-      /* OUT endpoint */
-      if (_GetRxStallStatus(Related_Endpoint))
-      {
-        SetBit(StatusInfo0, 0); /* OUT Endpoint stalled */
-      }
-    }
-
-  }
-  else
-  {
-    return NULL;
-  }
-  pUser_Standard_Requests->User_GetStatus();
-  return (uint8_t *)&StatusInfo;
-}
-
-/*******************************************************************************
-* Function Name  : Standard_ClearFeature.
-* Description    : Clear or disable a specific feature.
-* Input          : None.
-* Output         : None.
-* Return         : - Return USB_SUCCESS, if the request is performed.
-*                  - Return USB_UNSUPPORT, if the request is invalid.
-*******************************************************************************/
-RESULT Standard_ClearFeature(void)
-{
-  uint32_t     Type_Rec = Type_Recipient;
-  uint32_t     Status;
-
-
-  if (Type_Rec == (STANDARD_REQUEST | DEVICE_RECIPIENT))
-  {/*Device Clear Feature*/
-    ClrBit(pInformation->Current_Feature, 5);
-    return USB_SUCCESS;
-  }
-  else if (Type_Rec == (STANDARD_REQUEST | ENDPOINT_RECIPIENT))
-  {/*EndPoint Clear Feature*/
-    const DEVICE* pDev;
-    uint32_t Related_Endpoint;
-    uint32_t wIndex0;
-    uint32_t rEP;
-
-    if ((pInformation->USBwValue != ENDPOINT_STALL)
-        || (pInformation->USBwIndex1 != 0))
-    {
-      return USB_UNSUPPORT;
-    }
-
-    pDev = &Device_Table;
-    wIndex0 = pInformation->USBwIndex0;
-    rEP = wIndex0 & ~0x80;
-    Related_Endpoint = ENDP0 + rEP;
-
-    if (ValBit(pInformation->USBwIndex0, 7))
-    {
-      /*Get Status of endpoint & stall the request if the related_ENdpoint
-      is Disabled*/
-      Status = _GetEPTxStatus(Related_Endpoint);
-    }
-    else
-    {
-      Status = _GetEPRxStatus(Related_Endpoint);
-    }
-
-    if ((rEP >= pDev->Total_Endpoint) || (Status == 0)
-        || (pInformation->Current_Configuration == 0))
-    {
-      return USB_UNSUPPORT;
-    }
-
-
-    if (wIndex0 & 0x80)
-    {
-      /* IN endpoint */
-      if (_GetTxStallStatus(Related_Endpoint ))
-      {
-      #ifndef STM32F10X_CL
-        ClearDTOG_TX(Related_Endpoint);
-      #endif /* STM32F10X_CL */
-        SetEPTxStatus(Related_Endpoint, EP_TX_VALID);
-      }
-    }
-    else
-    {
-      /* OUT endpoint */
-      if (_GetRxStallStatus(Related_Endpoint))
-      {
-        if (Related_Endpoint == ENDP0)
-        {
-          /* After clear the STALL, enable the default endpoint receiver */
-          _SetEPRxStatus(Related_Endpoint, EP_RX_VALID);
-        }
-        else
-        {
-        #ifndef STM32F10X_CL
-          ClearDTOG_RX(Related_Endpoint);
-        #endif /* STM32F10X_CL */
-          _SetEPRxStatus(Related_Endpoint, EP_RX_VALID);
-        }
-      }
-    }
-    pUser_Standard_Requests->User_ClearFeature();
-    return USB_SUCCESS;
-  }
-
-  return USB_UNSUPPORT;
-}
-
-/*******************************************************************************
-* Function Name  : Standard_SetEndPointFeature
-* Description    : Set or enable a specific feature of EndPoint
-* Input          : None.
-* Output         : None.
-* Return         : - Return USB_SUCCESS, if the request is performed.
-*                  - Return USB_UNSUPPORT, if the request is invalid.
-*******************************************************************************/
-RESULT Standard_SetEndPointFeature(void)
-{
-  uint32_t    wIndex0;
-  uint32_t    Related_Endpoint;
-  uint32_t    rEP;
-  uint32_t    Status;
-
-  wIndex0 = pInformation->USBwIndex0;
-  rEP = wIndex0 & ~0x80;
-  Related_Endpoint = ENDP0 + rEP;
-
-  if (ValBit(pInformation->USBwIndex0, 7))
-  {
-    /* get Status of endpoint & stall the request if the related_ENdpoint
-    is Disabled*/
-    Status = _GetEPTxStatus(Related_Endpoint);
-  }
-  else
-  {
-    Status = _GetEPRxStatus(Related_Endpoint);
-  }
-
-  if (Related_Endpoint >= Device_Table.Total_Endpoint
-      || pInformation->USBwValue != 0 || Status == 0
-      || pInformation->Current_Configuration == 0)
-  {
-    return USB_UNSUPPORT;
-  }
-  else
-  {
-    if (wIndex0 & 0x80)
-    {
-      /* IN endpoint */
-      _SetEPTxStatus(Related_Endpoint, EP_TX_STALL);
-    }
-
-    else
-    {
-      /* OUT endpoint */
-      _SetEPRxStatus(Related_Endpoint, EP_RX_STALL);
-    }
-  }
-  pUser_Standard_Requests->User_SetEndPointFeature();
-  return USB_SUCCESS;
-}
-
-/*******************************************************************************
-* Function Name  : Standard_SetDeviceFeature.
-* Description    : Set or enable a specific feature of Device.
-* Input          : None.
-* Output         : None.
-* Return         : - Return USB_SUCCESS, if the request is performed.
-*                  - Return USB_UNSUPPORT, if the request is invalid.
-*******************************************************************************/
-RESULT Standard_SetDeviceFeature(void)
-{
-  SetBit(pInformation->Current_Feature, 5);
-  pUser_Standard_Requests->User_SetDeviceFeature();
-  return USB_SUCCESS;
-}
-
-/*******************************************************************************
-* Function Name  : Standard_GetDescriptorData.
-* Description    : Standard_GetDescriptorData is used for descriptors transfer.
-*                : This routine is used for the descriptors resident in Flash
-*                  or RAM
-*                  pDesc can be in either Flash or RAM
-*                  The purpose of this routine is to have a versatile way to
-*                  response descriptors request. It allows user to generate
-*                  certain descriptors with software or read descriptors from
-*                  external storage part by part.
-* Input          : - Length - Length of the data in this transfer.
-*                  - pDesc - A pointer points to descriptor struct.
-*                  The structure gives the initial address of the descriptor and
-*                  its original size.
-* Output         : None.
-* Return         : Address of a part of the descriptor pointed by the Usb_
-*                  wOffset The buffer pointed by this address contains at least
-*                  Length bytes.
-*******************************************************************************/
-uint8_t *Standard_GetDescriptorData(uint16_t Length, ONE_DESCRIPTOR *pDesc)
-{
-  uint32_t  wOffset;
-
-  wOffset = pInformation->Ctrl_Info.Usb_wOffset;
-  if (Length == 0)
-  {
-    pInformation->Ctrl_Info.Usb_wLength = pDesc->Descriptor_Size - wOffset;
-    return 0;
-  }
-
-  return pDesc->Descriptor + wOffset;
-}
-
-/*******************************************************************************
-* Function Name  : DataStageOut.
-* Description    : Data stage of a Control Write Transfer.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void DataStageOut(void)
-{
-  ENDPOINT_INFO *pEPinfo = &pInformation->Ctrl_Info;
-  uint32_t save_rLength;
-
-  save_rLength = pEPinfo->Usb_rLength;
-
-  if (pEPinfo->CopyData && save_rLength)
-  {
-    uint8_t *Buffer;
-    uint32_t Length;
-
-    Length = pEPinfo->PacketSize;
-    if (Length > save_rLength)
-    {
-      Length = save_rLength;
-    }
-
-    Buffer = (*pEPinfo->CopyData)(Length);
-    pEPinfo->Usb_rLength -= Length;
-    pEPinfo->Usb_rOffset += Length;
-
-  #ifdef STM32F10X_CL  
-    OTGD_FS_PCD_EP_Read(ENDP0, Buffer, Length); 
-  #else  
-    usb_lld_from_pmabuf (Buffer, GetEPRxAddr(ENDP0), Length);
-  #endif  /* STM32F10X_CL */
-  }
-
-  if (pEPinfo->Usb_rLength != 0)
-  {
-    vSetEPRxStatus(EP_RX_VALID);/* re-enable for next data reception */
-    SetEPTxCount(ENDP0, 0);
-    vSetEPTxStatus(EP_TX_VALID);/* Expect the host to abort the data OUT stage */
-  }
-  /* Set the next State*/
-  if (pEPinfo->Usb_rLength >= pEPinfo->PacketSize)
-  {
-    pInformation->ControlState = OUT_DATA;
-  }
-  else
-  {
-    if (pEPinfo->Usb_rLength > 0)
-    {
-      pInformation->ControlState = LAST_OUT_DATA;
-    }
-    else if (pEPinfo->Usb_rLength == 0)
-    {
-      pInformation->ControlState = WAIT_STATUS_IN;
-      USB_StatusIn();
-    }
-  }
-}
-
-/*******************************************************************************
-* Function Name  : DataStageIn.
-* Description    : Data stage of a Control Read Transfer.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void DataStageIn(void)
-{
-  ENDPOINT_INFO *pEPinfo = &pInformation->Ctrl_Info;
-  uint32_t save_wLength = pEPinfo->Usb_wLength;
-  uint32_t ControlState = pInformation->ControlState;
-
-  uint8_t *DataBuffer;
-  uint32_t Length;
-
-  if ((save_wLength == 0) && (ControlState == LAST_IN_DATA))
-  {
-    if(Data_Mul_MaxPacketSize == TRUE)
-    {
-      /* No more data to send and empty packet */
-      Send0LengthData();
-      ControlState = LAST_IN_DATA;
-      Data_Mul_MaxPacketSize = FALSE;
-    }
-    else 
-    {
-      /* No more data to send so STALL the TX Status*/
-      ControlState = WAIT_STATUS_OUT;
-
-    #ifdef STM32F10X_CL      
-      OTGD_FS_PCD_EP_Read (ENDP0, 0, 0);
-    #endif  /* STM32F10X_CL */ 
-    
-    #ifndef STM32F10X_CL 
-      vSetEPTxStatus(EP_TX_STALL);
-    #endif  /* STM32F10X_CL */ 
-    }
-    
-    goto Expect_Status_Out;
-  }
-
-  Length = pEPinfo->PacketSize;
-  ControlState = (save_wLength <= Length) ? LAST_IN_DATA : IN_DATA;
-
-  if (Length > save_wLength)
-  {
-    Length = save_wLength;
-  }
-
-  DataBuffer = (*pEPinfo->CopyData)(Length);
-
-#ifdef STM32F10X_CL
-  OTGD_FS_PCD_EP_Write (ENDP0, DataBuffer, Length);
-#else   
-  usb_lld_to_pmabuf (DataBuffer, GetEPTxAddr(ENDP0), Length);
-#endif /* STM32F10X_CL */ 
-
-  SetEPTxCount(ENDP0, Length);
-
-  pEPinfo->Usb_wLength -= Length;
-  pEPinfo->Usb_wOffset += Length;
-  vSetEPTxStatus(EP_TX_VALID);
-
-  USB_StatusOut();/* Expect the host to abort the data IN stage */
-
-Expect_Status_Out:
-  pInformation->ControlState = ControlState;
-}
-
-/*******************************************************************************
-* Function Name  : NoData_Setup0.
-* Description    : Proceed the processing of setup request without data stage.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void NoData_Setup0(void)
-{
-  RESULT Result = USB_UNSUPPORT;
-  uint32_t RequestNo = pInformation->USBbRequest;
-  uint32_t ControlState;
-
-  if (Type_Recipient == (STANDARD_REQUEST | DEVICE_RECIPIENT))
-  {
-    /* Device Request*/
-    /* SET_CONFIGURATION*/
-    if (RequestNo == SET_CONFIGURATION)
-    {
-      Result = Standard_SetConfiguration();
-    }
-
-    /*SET ADDRESS*/
-    else if (RequestNo == SET_ADDRESS)
-    {
-      if ((pInformation->USBwValue0 > 127) || (pInformation->USBwValue1 != 0)
-          || (pInformation->USBwIndex != 0)
-          || (pInformation->Current_Configuration != 0))
-        /* Device Address should be 127 or less*/
-      {
-        ControlState = STALLED;
-        goto exit_NoData_Setup0;
-      }
-      else
-      {
-        Result = USB_SUCCESS;
-
-      #ifdef STM32F10X_CL
-         SetDeviceAddress(pInformation->USBwValue0);
-      #endif  /* STM32F10X_CL */
-      }
-    }
-    /*SET FEATURE for Device*/
-    else if (RequestNo == SET_FEATURE)
-    {
-      if ((pInformation->USBwValue0 == DEVICE_REMOTE_WAKEUP)
-          && (pInformation->USBwIndex == 0)
-          && (ValBit(pInformation->Current_Feature, 5)))
-      {
-        Result = Standard_SetDeviceFeature();
-      }
-      else
-      {
-        Result = USB_UNSUPPORT;
-      }
-    }
-    /*Clear FEATURE for Device */
-    else if (RequestNo == CLEAR_FEATURE)
-    {
-      if (pInformation->USBwValue0 == DEVICE_REMOTE_WAKEUP
-          && pInformation->USBwIndex == 0
-          && ValBit(pInformation->Current_Feature, 5))
-      {
-        Result = Standard_ClearFeature();
-      }
-      else
-      {
-        Result = USB_UNSUPPORT;
-      }
-    }
-
-  }
-
-  /* Interface Request*/
-  else if (Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))
-  {
-    /*SET INTERFACE*/
-    if (RequestNo == SET_INTERFACE)
-    {
-      Result = Standard_SetInterface();
-    }
-  }
-
-  /* EndPoint Request*/
-  else if (Type_Recipient == (STANDARD_REQUEST | ENDPOINT_RECIPIENT))
-  {
-    /*CLEAR FEATURE for EndPoint*/
-    if (RequestNo == CLEAR_FEATURE)
-    {
-      Result = Standard_ClearFeature();
-    }
-    /* SET FEATURE for EndPoint*/
-    else if (RequestNo == SET_FEATURE)
-    {
-      Result = Standard_SetEndPointFeature();
-    }
-  }
-  else
-  {
-    Result = USB_UNSUPPORT;
-  }
-
-
-  if (Result != USB_SUCCESS)
-  {
-    Result = (*pProperty->Class_NoData_Setup)(RequestNo);
-    if (Result == USB_NOT_READY)
-    {
-      ControlState = PAUSE;
-      goto exit_NoData_Setup0;
-    }
-  }
-
-  if (Result != USB_SUCCESS)
-  {
-    ControlState = STALLED;
-    goto exit_NoData_Setup0;
-  }
-
-  ControlState = WAIT_STATUS_IN;/* After no data stage SETUP */
-
-  USB_StatusIn();
-
-exit_NoData_Setup0:
-  pInformation->ControlState = ControlState;
-  return;
-}
-
-/*******************************************************************************
-* Function Name  : Data_Setup0.
-* Description    : Proceed the processing of setup request with data stage.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Data_Setup0(void)
-{
-  uint8_t *(*CopyRoutine)(uint16_t);
-  RESULT Result;
-  uint32_t Request_No = pInformation->USBbRequest;
-
-  uint32_t Related_Endpoint, Reserved;
-  uint32_t wOffset, Status;
-
-
-
-  CopyRoutine = NULL;
-  wOffset = 0;
-
-  /*GET DESCRIPTOR*/
-  if (Request_No == GET_DESCRIPTOR)
-  {
-    if (Type_Recipient == (STANDARD_REQUEST | DEVICE_RECIPIENT))
-    {
-      uint8_t wValue1 = pInformation->USBwValue1;
-      if (wValue1 == DEVICE_DESCRIPTOR)
-      {
-        CopyRoutine = pProperty->GetDeviceDescriptor;
-      }
-      else if (wValue1 == CONFIG_DESCRIPTOR)
-      {
-        CopyRoutine = pProperty->GetConfigDescriptor;
-      }
-      else if (wValue1 == STRING_DESCRIPTOR)
-      {
-        CopyRoutine = pProperty->GetStringDescriptor;
-      }  /* End of GET_DESCRIPTOR */
-    }
-  }
-
-  /*GET STATUS*/
-  else if ((Request_No == GET_STATUS) && (pInformation->USBwValue == 0)
-           && (pInformation->USBwLength == 0x0002)
-           && (pInformation->USBwIndex1 == 0))
-  {
-    /* GET STATUS for Device*/
-    if ((Type_Recipient == (STANDARD_REQUEST | DEVICE_RECIPIENT))
-        && (pInformation->USBwIndex == 0))
-    {
-      CopyRoutine = Standard_GetStatus;
-    }
-
-    /* GET STATUS for Interface*/
-    else if (Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))
-    {
-      if (((*pProperty->Class_Get_Interface_Setting)(pInformation->USBwIndex0, 0) == USB_SUCCESS)
-          && (pInformation->Current_Configuration != 0))
-      {
-        CopyRoutine = Standard_GetStatus;
-      }
-    }
-
-    /* GET STATUS for EndPoint*/
-    else if (Type_Recipient == (STANDARD_REQUEST | ENDPOINT_RECIPIENT))
-    {
-      Related_Endpoint = (pInformation->USBwIndex0 & 0x0f);
-      Reserved = pInformation->USBwIndex0 & 0x70;
-
-      if (ValBit(pInformation->USBwIndex0, 7))
-      {
-        /*Get Status of endpoint & stall the request if the related_ENdpoint
-        is Disabled*/
-        Status = _GetEPTxStatus(Related_Endpoint);
-      }
-      else
-      {
-        Status = _GetEPRxStatus(Related_Endpoint);
-      }
-
-      if ((Related_Endpoint < Device_Table.Total_Endpoint) && (Reserved == 0)
-          && (Status != 0))
-      {
-        CopyRoutine = Standard_GetStatus;
-      }
-    }
-
-  }
-
-  /*GET CONFIGURATION*/
-  else if (Request_No == GET_CONFIGURATION)
-  {
-    if (Type_Recipient == (STANDARD_REQUEST | DEVICE_RECIPIENT))
-    {
-      CopyRoutine = Standard_GetConfiguration;
-    }
-  }
-  /*GET INTERFACE*/
-  else if (Request_No == GET_INTERFACE)
-  {
-    if ((Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))
-        && (pInformation->Current_Configuration != 0) && (pInformation->USBwValue == 0)
-        && (pInformation->USBwIndex1 == 0) && (pInformation->USBwLength == 0x0001)
-        && ((*pProperty->Class_Get_Interface_Setting)(pInformation->USBwIndex0, 0) == USB_SUCCESS))
-    {
-      CopyRoutine = Standard_GetInterface;
-    }
-
-  }
-  
-  if (CopyRoutine)
-  {
-    pInformation->Ctrl_Info.Usb_wOffset = wOffset;
-    pInformation->Ctrl_Info.CopyData = CopyRoutine;
-    /* sb in the original the cast to word was directly */
-    /* now the cast is made step by step */
-    (*CopyRoutine)(0);
-    Result = USB_SUCCESS;
-  }
-  else
-  {
-    Result = (*pProperty->Class_Data_Setup)(pInformation->USBbRequest);
-    if (Result == USB_NOT_READY)
-    {
-      pInformation->ControlState = PAUSE;
-      return;
-    }
-  }
-
-  if (pInformation->Ctrl_Info.Usb_wLength == 0xFFFF)
-  {
-    /* Data is not ready, wait it */
-    pInformation->ControlState = PAUSE;
-    return;
-  }
-  if ((Result == USB_UNSUPPORT) || (pInformation->Ctrl_Info.Usb_wLength == 0))
-  {
-    /* Unsupported request */
-    pInformation->ControlState = STALLED;
-    return;
-  }
-
-
-  if (ValBit(pInformation->USBbmRequestType, 7))
-  {
-    /* Device ==> Host */
-    __IO uint32_t wLength = pInformation->USBwLength;
-     
-    /* Restrict the data length to be the one host asks for */
-    if (pInformation->Ctrl_Info.Usb_wLength > wLength)
-    {
-      pInformation->Ctrl_Info.Usb_wLength = wLength;
-    }
-    
-    else if (pInformation->Ctrl_Info.Usb_wLength < pInformation->USBwLength)
-    {
-      if (pInformation->Ctrl_Info.Usb_wLength < pProperty->MaxPacketSize)
-      {
-        Data_Mul_MaxPacketSize = FALSE;
-      }
-      else if ((pInformation->Ctrl_Info.Usb_wLength % pProperty->MaxPacketSize) == 0)
-      {
-        Data_Mul_MaxPacketSize = TRUE;
-      }
-    }   
-
-    pInformation->Ctrl_Info.PacketSize = pProperty->MaxPacketSize;
-    DataStageIn();
-  }
-  else
-  {
-    pInformation->ControlState = OUT_DATA;
-    vSetEPRxStatus(EP_RX_VALID); /* enable for next data reception */
-  }
-
-  return;
-}
-
-/*******************************************************************************
-* Function Name  : Setup0_Process
-* Description    : Get the device request data and dispatch to individual process.
-* Input          : None.
-* Output         : None.
-* Return         : Post0_Process.
-*******************************************************************************/
-uint8_t Setup0_Process(void)
-{
-
-  union
-  {
-    uint8_t* b;
-    uint16_t* w;
-  } pBuf;
-
-#ifdef STM32F10X_CL
-  USB_OTG_EP *ep;
-  uint16_t offset = 0;
-  ep = OTGD_FS_PCD_GetOutEP(ENDP0);
-  pBuf.b = ep->xfer_buff;
-  
-  OTGD_FS_EP0StartXfer(ep);
-#else  
-  uint16_t offset = 1;
-  
-  pBuf.b = PMAAddr + (uint8_t *)(_GetEPRxAddr(ENDP0) * 2); /* *2 for 32 bits addr */
-#endif /* STM32F10X_CL */
-
-  if (pInformation->ControlState != PAUSE)
-  {
-    pInformation->USBbmRequestType = *pBuf.b++; /* bmRequestType */
-    pInformation->USBbRequest = *pBuf.b++; /* bRequest */
-    pBuf.w += offset;  /* word not accessed because of 32 bits addressing */
-    pInformation->USBwValue = ByteSwap(*pBuf.w++); /* wValue */
-    pBuf.w += offset;  /* word not accessed because of 32 bits addressing */
-    pInformation->USBwIndex  = ByteSwap(*pBuf.w++); /* wIndex */
-    pBuf.w += offset;  /* word not accessed because of 32 bits addressing */
-    pInformation->USBwLength = *pBuf.w; /* wLength */
-  }
-
-  pInformation->ControlState = SETTING_UP;
-  if (pInformation->USBwLength == 0)
-  {
-    /* Setup with no data stage */
-    NoData_Setup0();
-  }
-  else
-  {
-    /* Setup with data stage */
-    Data_Setup0();
-  }
-  return Post0_Process();
-}
-
-/*******************************************************************************
-* Function Name  : In0_Process
-* Description    : Process the IN token on all default endpoint.
-* Input          : None.
-* Output         : None.
-* Return         : Post0_Process.
-*******************************************************************************/
-uint8_t In0_Process(void)
-{
-  uint32_t ControlState = pInformation->ControlState;
-
-  if ((ControlState == IN_DATA) || (ControlState == LAST_IN_DATA))
-  {
-    DataStageIn();
-    /* ControlState may be changed outside the function */
-    ControlState = pInformation->ControlState;
-  }
-
-  else if (ControlState == WAIT_STATUS_IN)
-  {
-    if ((pInformation->USBbRequest == SET_ADDRESS) &&
-        (Type_Recipient == (STANDARD_REQUEST | DEVICE_RECIPIENT)))
-    {
-      SetDeviceAddress(pInformation->USBwValue0);
-      pUser_Standard_Requests->User_SetDeviceAddress();
-    }
-    (*pProperty->Process_Status_IN)();
-    ControlState = STALLED;
-  }
-
-  else
-  {
-    ControlState = STALLED;
-  }
-
-  pInformation->ControlState = ControlState;
-
-  return Post0_Process();
-}
-
-/*******************************************************************************
-* Function Name  : Out0_Process
-* Description    : Process the OUT token on all default endpoint.
-* Input          : None.
-* Output         : None.
-* Return         : Post0_Process.
-*******************************************************************************/
-uint8_t Out0_Process(void)
-{
-  uint32_t ControlState = pInformation->ControlState;
-
-  if ((ControlState == IN_DATA) || (ControlState == LAST_IN_DATA))
-  {
-    /* host aborts the transfer before finish */
-    ControlState = STALLED;
-  }
-  else if ((ControlState == OUT_DATA) || (ControlState == LAST_OUT_DATA))
-  {
-    DataStageOut();
-    ControlState = pInformation->ControlState; /* may be changed outside the function */
-  }
-
-  else if (ControlState == WAIT_STATUS_OUT)
-  {
-    (*pProperty->Process_Status_OUT)();
-  #ifndef STM32F10X_CL
-    ControlState = STALLED;
-  #endif /* STM32F10X_CL */
-  }
-
-
-  /* Unexpect state, STALL the endpoint */
-  else
-  {
-    ControlState = STALLED;
-  }
-
-  pInformation->ControlState = ControlState;
-
-  return Post0_Process();
-}
-
-/*******************************************************************************
-* Function Name  : Post0_Process
-* Description    : Stall the Endpoint 0 in case of error.
-* Input          : None.
-* Output         : None.
-* Return         : - 0 if the control State is in PAUSE
-*                  - 1 if not.
-*******************************************************************************/
-uint8_t Post0_Process(void)
-{
-#ifdef STM32F10X_CL  
-  USB_OTG_EP *ep;
-#endif /* STM32F10X_CL */
-      
-  if (pInformation->ControlState == STALLED)
-  {
-    vSetEPRxStatus(EP_RX_STALL);
-    vSetEPTxStatus(EP_TX_STALL);
-  }
-
-#ifdef STM32F10X_CL
-  else if ((pInformation->ControlState == OUT_DATA) ||
-      (pInformation->ControlState == WAIT_STATUS_OUT))
-  {
-    ep = OTGD_FS_PCD_GetInEP(0);
-    ep->is_in = 0;
-    OTGD_FS_EP0StartXfer(ep);
-    
-    vSetEPTxStatus(EP_TX_VALID);
-  }
-  
-  else if ((pInformation->ControlState == IN_DATA) || 
-      (pInformation->ControlState == WAIT_STATUS_IN))
-  {
-    ep = OTGD_FS_PCD_GetInEP(0);
-    ep->is_in = 1;
-    OTGD_FS_EP0StartXfer(ep);    
-  }  
-#endif /* STM32F10X_CL */
-
-  return (pInformation->ControlState == PAUSE);
-}
-
-/*******************************************************************************
-* Function Name  : SetDeviceAddress.
-* Description    : Set the device and all the used Endpoints addresses.
-* Input          : - Val: device adress.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetDeviceAddress(uint8_t Val)
-{
-#ifdef STM32F10X_CL 
-  OTGD_FS_PCD_EP_SetAddress ((uint8_t)Val);
-#else 
-  uint32_t i;
-  uint32_t nEP = Device_Table.Total_Endpoint;
-
-  /* set address in every used endpoint */
-  for (i = 0; i < nEP; i++)
-  {
-    _SetEPAddress((uint8_t)i, (uint8_t)i);
-  } /* for */
-  _SetDADDR(Val | DADDR_EF); /* set device address and enable function */
-#endif  /* STM32F10X_CL */  
-}
-
-/*******************************************************************************
-* Function Name  : NOP_Process
-* Description    : No operation function.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void NOP_Process(void)
-{
-}
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/usb_init.c b/STM32_USB-FS-Device_Driver/src/usb_init.c
deleted file mode 100644 (file)
index d318106..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_init.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Initialization routines & global variables
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/*  The number of current endpoint, it will be used to specify an endpoint */
- uint8_t       EPindex;
-/*  The number of current device, it is an index to the Device_Table */
-/* uint8_t     Device_no; */
-/*  Points to the DEVICE_INFO structure of current device */
-/*  The purpose of this register is to speed up the execution */
-DEVICE_INFO *pInformation;
-/*  Points to the DEVICE_PROP structure of current device */
-/*  The purpose of this register is to speed up the execution */
-const DEVICE_PROP *pProperty;
-/*  Temporary save the state of Rx & Tx status. */
-/*  Whenever the Rx or Tx state is changed, its value is saved */
-/*  in this variable first and will be set to the EPRB or EPRA */
-/*  at the end of interrupt process */
-uint16_t       SaveState ;
-uint16_t  wInterrupt_Mask;
-DEVICE_INFO    Device_Info;
-const USER_STANDARD_REQUESTS  *pUser_Standard_Requests;
-
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : USB_Init
-* Description    : USB system initialization
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void USB_Init(void)
-{
-  pInformation = &Device_Info;
-  pInformation->ControlState = 2;
-  pProperty = &Device_Property;
-  pUser_Standard_Requests = &User_Standard_Requests;
-  /* Initialize devices one by one */
-  pProperty->Init();
-}
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/usb_int.c b/STM32_USB-FS-Device_Driver/src/usb_int.c
deleted file mode 100644 (file)
index 00b9838..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_int.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Endpoint CTR (Low and High) interrupt's service routines
-********************************************************************************
-* 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.
-*******************************************************************************/
-#ifndef STM32F10X_CL
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-__IO uint16_t SaveRState;
-__IO uint16_t SaveTState;
-
-/* Extern variables ----------------------------------------------------------*/
-extern void (*pEpInt_IN[7])(void);    /*  Handles IN  interrupts   */
-extern void (*pEpInt_OUT[7])(void);   /*  Handles OUT interrupts   */
-
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : CTR_LP.
-* Description    : Low priority Endpoint Correct Transfer interrupt's service
-*                  routine.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void CTR_LP(void)
-{
-  __IO uint16_t wEPVal = 0;
-  /* stay in loop while pending ints */
-  while (((wIstr = _GetISTR()) & ISTR_CTR) != 0)
-  {
-    /* extract highest priority endpoint number */
-    EPindex = (uint8_t)(wIstr & ISTR_EP_ID);
-    if (EPindex == 0)
-    {
-      /* Decode and service control endpoint interrupt */
-      /* calling related service routine */
-      /* (Setup0_Process, In0_Process, Out0_Process) */
-
-      /* save RX & TX status */
-      /* and set both to NAK */
-
-
-           SaveRState = _GetENDPOINT(ENDP0);
-           SaveTState = SaveRState & EPTX_STAT;
-           SaveRState &=  EPRX_STAT;   
-
-           _SetEPRxTxStatus(ENDP0,EP_RX_NAK,EP_TX_NAK);
-
-      /* DIR bit = origin of the interrupt */
-
-      if ((wIstr & ISTR_DIR) == 0)
-      {
-        /* DIR = 0 */
-
-        /* DIR = 0      => IN  int */
-        /* DIR = 0 implies that (EP_CTR_TX = 1) always  */
-
-
-        _ClearEP_CTR_TX(ENDP0);
-        In0_Process();
-
-           /* before terminate set Tx & Rx status */
-
-            _SetEPRxTxStatus(ENDP0,SaveRState,SaveTState);
-                 return;
-      }
-      else
-      {
-        /* DIR = 1 */
-
-        /* DIR = 1 & CTR_RX       => SETUP or OUT int */
-        /* DIR = 1 & (CTR_TX | CTR_RX) => 2 int pending */
-
-        wEPVal = _GetENDPOINT(ENDP0);
-        
-        if ((wEPVal &EP_SETUP) != 0)
-        {
-          _ClearEP_CTR_RX(ENDP0); /* SETUP bit kept frozen while CTR_RX = 1 */
-          Setup0_Process();
-          /* before terminate set Tx & Rx status */
-
-                     _SetEPRxTxStatus(ENDP0,SaveRState,SaveTState);
-          return;
-        }
-
-        else if ((wEPVal & EP_CTR_RX) != 0)
-        {
-          _ClearEP_CTR_RX(ENDP0);
-          Out0_Process();
-          /* before terminate set Tx & Rx status */
-     
-                    _SetEPRxTxStatus(ENDP0,SaveRState,SaveTState);
-          return;
-        }
-      }
-    }/* if(EPindex == 0) */
-    else
-    {
-      /* Decode and service non control endpoints interrupt  */
-
-      /* process related endpoint register */
-      wEPVal = _GetENDPOINT(EPindex);
-      if ((wEPVal & EP_CTR_RX) != 0)
-      {
-        /* clear int flag */
-        _ClearEP_CTR_RX(EPindex);
-
-        /* call OUT service function */
-        (*pEpInt_OUT[EPindex-1])();
-
-      } /* if((wEPVal & EP_CTR_RX) */
-
-      if ((wEPVal & EP_CTR_TX) != 0)
-      {
-        /* clear int flag */
-        _ClearEP_CTR_TX(EPindex);
-
-        /* call IN service function */
-        (*pEpInt_IN[EPindex-1])();
-      } /* if((wEPVal & EP_CTR_TX) != 0) */
-
-    }/* if(EPindex == 0) else */
-
-  }/* while(...) */
-}
-
-/*******************************************************************************
-* Function Name  : CTR_HP.
-* Description    : High Priority Endpoint Correct Transfer interrupt's service 
-*                  routine.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void CTR_HP(void)
-{
-  uint32_t wEPVal = 0;
-
-  while (((wIstr = _GetISTR()) & ISTR_CTR) != 0)
-  {
-    _SetISTR((uint16_t)CLR_CTR); /* clear CTR flag */
-    /* extract highest priority endpoint number */
-    EPindex = (uint8_t)(wIstr & ISTR_EP_ID);
-    /* process related endpoint register */
-    wEPVal = _GetENDPOINT(EPindex);
-    if ((wEPVal & EP_CTR_RX) != 0)
-    {
-      /* clear int flag */
-      _ClearEP_CTR_RX(EPindex);
-
-      /* call OUT service function */
-      (*pEpInt_OUT[EPindex-1])();
-
-    } /* if((wEPVal & EP_CTR_RX) */
-    else if ((wEPVal & EP_CTR_TX) != 0)
-    {
-      /* clear int flag */
-      _ClearEP_CTR_TX(EPindex);
-
-      /* call IN service function */
-      (*pEpInt_IN[EPindex-1])();
-
-
-    } /* if((wEPVal & EP_CTR_TX) != 0) */
-
-  }/* while(...) */
-}
-
-#endif  /* STM32F10X_CL */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/usb_mem.c b/STM32_USB-FS-Device_Driver/src/usb_mem.c
deleted file mode 100644 (file)
index cdffaa9..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_mem.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Utility functions for memory transfers to/from PMA
-********************************************************************************
-* 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.
-*******************************************************************************/
-#ifndef STM32F10X_CL
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-/*******************************************************************************
-* Function Name  : UserToPMABufferCopy
-* Description    : Copy a buffer from user memory area to packet memory area (PMA)
-* Input          : - pbUsrBuf: pointer to user memory area.
-*                  - wPMABufAddr: address into PMA.
-*                  - wNBytes: no. of bytes to be copied.
-* Output         : None.
-* Return         : None        .
-*******************************************************************************/
-void UserToPMABufferCopy(uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes)
-{
-  uint32_t n = (wNBytes + 1) >> 1;   /* n = (wNBytes + 1) / 2 */
-  uint32_t i, temp1, temp2;
-  uint16_t *pdwVal;
-  pdwVal = (uint16_t *)(wPMABufAddr * 2 + PMAAddr);
-  for (i = n; i != 0; i--)
-  {
-    temp1 = (uint16_t) * pbUsrBuf;
-    pbUsrBuf++;
-    temp2 = temp1 | (uint16_t) * pbUsrBuf << 8;
-    *pdwVal++ = temp2;
-    pdwVal++;
-    pbUsrBuf++;
-  }
-}
-/*******************************************************************************
-* Function Name  : PMAToUserBufferCopy
-* Description    : Copy a buffer from user memory area to packet memory area (PMA)
-* Input          : - pbUsrBuf    = pointer to user memory area.
-*                  - wPMABufAddr = address into PMA.
-*                  - wNBytes     = no. of bytes to be copied.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void PMAToUserBufferCopy(uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes)
-{
-  uint32_t n = (wNBytes + 1) >> 1;/* /2*/
-  uint32_t i;
-  uint32_t *pdwVal;
-  pdwVal = (uint32_t *)(wPMABufAddr * 2 + PMAAddr);
-  for (i = n; i != 0; i--)
-  {
-    *(uint16_t*)pbUsrBuf++ = *pdwVal++;
-    pbUsrBuf++;
-  }
-}
-
-#endif /* STM32F10X_CL */
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/usb_regs.c b/STM32_USB-FS-Device_Driver/src/usb_regs.c
deleted file mode 100644 (file)
index a2e923e..0000000
+++ /dev/null
@@ -1,750 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_regs.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Interface functions to USB cell registers
-********************************************************************************
-* 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.
-*******************************************************************************/
-#ifndef STM32F10X_CL
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : SetCNTR.
-* Description    : Set the CNTR register value.
-* Input          : wRegValue: new register value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetCNTR(uint16_t wRegValue)
-{
-  _SetCNTR(wRegValue);
-}
-
-/*******************************************************************************
-* Function Name  : GetCNTR.
-* Description    : returns the CNTR register value.
-* Input          : None.
-* Output         : None.
-* Return         : CNTR register Value.
-*******************************************************************************/
-uint16_t GetCNTR(void)
-{
-  return(_GetCNTR());
-}
-
-/*******************************************************************************
-* Function Name  : SetISTR.
-* Description    : Set the ISTR register value.
-* Input          : wRegValue: new register value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetISTR(uint16_t wRegValue)
-{
-  _SetISTR(wRegValue);
-}
-
-/*******************************************************************************
-* Function Name  : GetISTR
-* Description    : Returns the ISTR register value.
-* Input          : None.
-* Output         : None.
-* Return         : ISTR register Value
-*******************************************************************************/
-uint16_t GetISTR(void)
-{
-  return(_GetISTR());
-}
-
-/*******************************************************************************
-* Function Name  : GetFNR
-* Description    : Returns the FNR register value.
-* Input          : None.
-* Output         : None.
-* Return         : FNR register Value
-*******************************************************************************/
-uint16_t GetFNR(void)
-{
-  return(_GetFNR());
-}
-
-/*******************************************************************************
-* Function Name  : SetDADDR
-* Description    : Set the DADDR register value.
-* Input          : wRegValue: new register value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetDADDR(uint16_t wRegValue)
-{
-  _SetDADDR(wRegValue);
-}
-
-/*******************************************************************************
-* Function Name  : GetDADDR
-* Description    : Returns the DADDR register value.
-* Input          : None.
-* Output         : None.
-* Return         : DADDR register Value
-*******************************************************************************/
-uint16_t GetDADDR(void)
-{
-  return(_GetDADDR());
-}
-
-/*******************************************************************************
-* Function Name  : SetBTABLE
-* Description    : Set the BTABLE.
-* Input          : wRegValue: New register value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetBTABLE(uint16_t wRegValue)
-{
-  _SetBTABLE(wRegValue);
-}
-
-/*******************************************************************************
-* Function Name  : GetBTABLE.
-* Description    : Returns the BTABLE register value.
-* Input          : None. 
-* Output         : None.
-* Return         : BTABLE address.
-*******************************************************************************/
-uint16_t GetBTABLE(void)
-{
-  return(_GetBTABLE());
-}
-
-/*******************************************************************************
-* Function Name  : SetENDPOINT
-* Description    : Setthe Endpoint register value.
-* Input          : bEpNum: Endpoint Number. 
-*                  wRegValue.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetENDPOINT(uint8_t bEpNum, uint16_t wRegValue)
-{
-  _SetENDPOINT(bEpNum, wRegValue);
-}
-
-/*******************************************************************************
-* Function Name  : GetENDPOINT
-* Description    : Return the Endpoint register value.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Endpoint register value.
-*******************************************************************************/
-uint16_t GetENDPOINT(uint8_t bEpNum)
-{
-  return(_GetENDPOINT(bEpNum));
-}
-
-/*******************************************************************************
-* Function Name  : SetEPType
-* Description    : sets the type in the endpoint register.
-* Input          : bEpNum: Endpoint Number. 
-*                  wType: type definition.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPType(uint8_t bEpNum, uint16_t wType)
-{
-  _SetEPType(bEpNum, wType);
-}
-
-/*******************************************************************************
-* Function Name  : GetEPType
-* Description    : Returns the endpoint type.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Endpoint Type
-*******************************************************************************/
-uint16_t GetEPType(uint8_t bEpNum)
-{
-  return(_GetEPType(bEpNum));
-}
-
-/*******************************************************************************
-* Function Name  : SetEPTxStatus
-* Description    : Set the status of Tx endpoint.
-* Input          : bEpNum: Endpoint Number. 
-*                  wState: new state.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPTxStatus(uint8_t bEpNum, uint16_t wState)
-{
-  _SetEPTxStatus(bEpNum, wState);
-}
-
-/*******************************************************************************
-* Function Name  : SetEPRxStatus
-* Description    : Set the status of Rx endpoint.
-* Input          : bEpNum: Endpoint Number. 
-*                  wState: new state.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPRxStatus(uint8_t bEpNum, uint16_t wState)
-{
-  _SetEPRxStatus(bEpNum, wState);
-}
-
-/*******************************************************************************
-* Function Name  : SetDouBleBuffEPStall
-* Description    : sets the status for Double Buffer Endpoint to STALL
-* Input          : bEpNum: Endpoint Number. 
-*                  bDir: Endpoint direction.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetDouBleBuffEPStall(uint8_t bEpNum, uint8_t bDir)
-{
-  uint16_t Endpoint_DTOG_Status;
-  Endpoint_DTOG_Status = GetENDPOINT(bEpNum);
-  if (bDir == EP_DBUF_OUT)
-  { /* OUT double buffered endpoint */
-    _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPRX_DTOG1);
-  }
-  else if (bDir == EP_DBUF_IN)
-  { /* IN double buffered endpoint */
-    _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPTX_DTOG1);
-  }
-}
-
-/*******************************************************************************
-* Function Name  : GetEPTxStatus
-* Description    : Returns the endpoint Tx status.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Endpoint TX Status
-*******************************************************************************/
-uint16_t GetEPTxStatus(uint8_t bEpNum)
-{
-  return(_GetEPTxStatus(bEpNum));
-}
-
-/*******************************************************************************
-* Function Name  : GetEPRxStatus
-* Description    : Returns the endpoint Rx status.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Endpoint RX Status
-*******************************************************************************/
-uint16_t GetEPRxStatus(uint8_t bEpNum)
-{
-  return(_GetEPRxStatus(bEpNum));
-}
-
-/*******************************************************************************
-* Function Name  : SetEPTxValid
-* Description    : Valid the endpoint Tx Status.
-* Input          : bEpNum: Endpoint Number.  
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPTxValid(uint8_t bEpNum)
-{
-  _SetEPTxStatus(bEpNum, EP_TX_VALID);
-}
-
-/*******************************************************************************
-* Function Name  : SetEPRxValid
-* Description    : Valid the endpoint Rx Status.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPRxValid(uint8_t bEpNum)
-{
-  _SetEPRxStatus(bEpNum, EP_RX_VALID);
-}
-
-/*******************************************************************************
-* Function Name  : SetEP_KIND
-* Description    : Clear the EP_KIND bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEP_KIND(uint8_t bEpNum)
-{
-  _SetEP_KIND(bEpNum);
-}
-
-/*******************************************************************************
-* Function Name  : ClearEP_KIND
-* Description    : set the  EP_KIND bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void ClearEP_KIND(uint8_t bEpNum)
-{
-  _ClearEP_KIND(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : Clear_Status_Out
-* Description    : Clear the Status Out of the related Endpoint
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Clear_Status_Out(uint8_t bEpNum)
-{
-  _ClearEP_KIND(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : Set_Status_Out
-* Description    : Set the Status Out of the related Endpoint
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Set_Status_Out(uint8_t bEpNum)
-{
-  _SetEP_KIND(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : SetEPDoubleBuff
-* Description    : Enable the double buffer feature for the endpoint. 
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPDoubleBuff(uint8_t bEpNum)
-{
-  _SetEP_KIND(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : ClearEPDoubleBuff
-* Description    : Disable the double buffer feature for the endpoint. 
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void ClearEPDoubleBuff(uint8_t bEpNum)
-{
-  _ClearEP_KIND(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : GetTxStallStatus
-* Description    : Returns the Stall status of the Tx endpoint.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Tx Stall status.
-*******************************************************************************/
-uint16_t GetTxStallStatus(uint8_t bEpNum)
-{
-  return(_GetTxStallStatus(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : GetRxStallStatus
-* Description    : Returns the Stall status of the Rx endpoint. 
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Rx Stall status.
-*******************************************************************************/
-uint16_t GetRxStallStatus(uint8_t bEpNum)
-{
-  return(_GetRxStallStatus(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : ClearEP_CTR_RX
-* Description    : Clear the CTR_RX bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void ClearEP_CTR_RX(uint8_t bEpNum)
-{
-  _ClearEP_CTR_RX(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : ClearEP_CTR_TX
-* Description    : Clear the CTR_TX bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void ClearEP_CTR_TX(uint8_t bEpNum)
-{
-  _ClearEP_CTR_TX(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : ToggleDTOG_RX
-* Description    : Toggle the DTOG_RX bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void ToggleDTOG_RX(uint8_t bEpNum)
-{
-  _ToggleDTOG_RX(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : ToggleDTOG_TX
-* Description    : Toggle the DTOG_TX bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void ToggleDTOG_TX(uint8_t bEpNum)
-{
-  _ToggleDTOG_TX(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : ClearDTOG_RX.
-* Description    : Clear the DTOG_RX bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void ClearDTOG_RX(uint8_t bEpNum)
-{
-  _ClearDTOG_RX(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : ClearDTOG_TX.
-* Description    : Clear the DTOG_TX bit.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void ClearDTOG_TX(uint8_t bEpNum)
-{
-  _ClearDTOG_TX(bEpNum);
-}
-/*******************************************************************************
-* Function Name  : SetEPAddress
-* Description    : Set the endpoint address.
-* Input          : bEpNum: Endpoint Number.
-*                  bAddr: New endpoint address.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPAddress(uint8_t bEpNum, uint8_t bAddr)
-{
-  _SetEPAddress(bEpNum, bAddr);
-}
-/*******************************************************************************
-* Function Name  : GetEPAddress
-* Description    : Get the endpoint address.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Endpoint address.
-*******************************************************************************/
-uint8_t GetEPAddress(uint8_t bEpNum)
-{
-  return(_GetEPAddress(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : SetEPTxAddr
-* Description    : Set the endpoint Tx buffer address.
-* Input          : bEpNum: Endpoint Number.
-*                  wAddr: new address. 
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPTxAddr(uint8_t bEpNum, uint16_t wAddr)
-{
-  _SetEPTxAddr(bEpNum, wAddr);
-}
-/*******************************************************************************
-* Function Name  : SetEPRxAddr
-* Description    : Set the endpoint Rx buffer address.
-* Input          : bEpNum: Endpoint Number.
-*                  wAddr: new address.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPRxAddr(uint8_t bEpNum, uint16_t wAddr)
-{
-  _SetEPRxAddr(bEpNum, wAddr);
-}
-/*******************************************************************************
-* Function Name  : GetEPTxAddr
-* Description    : Returns the endpoint Tx buffer address.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Rx buffer address. 
-*******************************************************************************/
-uint16_t GetEPTxAddr(uint8_t bEpNum)
-{
-  return(_GetEPTxAddr(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : GetEPRxAddr.
-* Description    : Returns the endpoint Rx buffer address.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Rx buffer address.
-*******************************************************************************/
-uint16_t GetEPRxAddr(uint8_t bEpNum)
-{
-  return(_GetEPRxAddr(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : SetEPTxCount.
-* Description    : Set the Tx count.
-* Input          : bEpNum: Endpoint Number.
-*                  wCount: new count value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPTxCount(uint8_t bEpNum, uint16_t wCount)
-{
-  _SetEPTxCount(bEpNum, wCount);
-}
-/*******************************************************************************
-* Function Name  : SetEPCountRxReg.
-* Description    : Set the Count Rx Register value.
-* Input          : *pdwReg: point to the register.
-*                  wCount: the new register value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPCountRxReg(uint32_t *pdwReg, uint16_t wCount)
-{
-  _SetEPCountRxReg(dwReg, wCount);
-}
-/*******************************************************************************
-* Function Name  : SetEPRxCount
-* Description    : Set the Rx count.
-* Input          : bEpNum: Endpoint Number. 
-*                  wCount: the new count value.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPRxCount(uint8_t bEpNum, uint16_t wCount)
-{
-  _SetEPRxCount(bEpNum, wCount);
-}
-/*******************************************************************************
-* Function Name  : GetEPTxCount
-* Description    : Get the Tx count.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None
-* Return         : Tx count value.
-*******************************************************************************/
-uint16_t GetEPTxCount(uint8_t bEpNum)
-{
-  return(_GetEPTxCount(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : GetEPRxCount
-* Description    : Get the Rx count.
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : Rx count value.
-*******************************************************************************/
-uint16_t GetEPRxCount(uint8_t bEpNum)
-{
-  return(_GetEPRxCount(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : SetEPDblBuffAddr
-* Description    : Set the addresses of the buffer 0 and 1.
-* Input          : bEpNum: Endpoint Number.  
-*                  wBuf0Addr: new address of buffer 0. 
-*                  wBuf1Addr: new address of buffer 1.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPDblBuffAddr(uint8_t bEpNum, uint16_t wBuf0Addr, uint16_t wBuf1Addr)
-{
-  _SetEPDblBuffAddr(bEpNum, wBuf0Addr, wBuf1Addr);
-}
-/*******************************************************************************
-* Function Name  : SetEPDblBuf0Addr
-* Description    : Set the Buffer 1 address.
-* Input          : bEpNum: Endpoint Number
-*                  wBuf0Addr: new address.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPDblBuf0Addr(uint8_t bEpNum, uint16_t wBuf0Addr)
-{
-  _SetEPDblBuf0Addr(bEpNum, wBuf0Addr);
-}
-/*******************************************************************************
-* Function Name  : SetEPDblBuf1Addr
-* Description    : Set the Buffer 1 address.
-* Input          : bEpNum: Endpoint Number
-*                  wBuf1Addr: new address.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPDblBuf1Addr(uint8_t bEpNum, uint16_t wBuf1Addr)
-{
-  _SetEPDblBuf1Addr(bEpNum, wBuf1Addr);
-}
-/*******************************************************************************
-* Function Name  : GetEPDblBuf0Addr
-* Description    : Returns the address of the Buffer 0.
-* Input          : bEpNum: Endpoint Number.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-uint16_t GetEPDblBuf0Addr(uint8_t bEpNum)
-{
-  return(_GetEPDblBuf0Addr(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : GetEPDblBuf1Addr
-* Description    : Returns the address of the Buffer 1.
-* Input          : bEpNum: Endpoint Number.
-* Output         : None.
-* Return         : Address of the Buffer 1.
-*******************************************************************************/
-uint16_t GetEPDblBuf1Addr(uint8_t bEpNum)
-{
-  return(_GetEPDblBuf1Addr(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : SetEPDblBuffCount
-* Description    : Set the number of bytes for a double Buffer 
-*                  endpoint.
-* Input          : bEpNum,bDir, wCount
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPDblBuffCount(uint8_t bEpNum, uint8_t bDir, uint16_t wCount)
-{
-  _SetEPDblBuffCount(bEpNum, bDir, wCount);
-}
-/*******************************************************************************
-* Function Name  : SetEPDblBuf0Count
-* Description    : Set the number of bytes in the buffer 0 of a double Buffer 
-*                  endpoint.
-* Input          : bEpNum, bDir,  wCount
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPDblBuf0Count(uint8_t bEpNum, uint8_t bDir, uint16_t wCount)
-{
-  _SetEPDblBuf0Count(bEpNum, bDir, wCount);
-}
-/*******************************************************************************
-* Function Name  : SetEPDblBuf1Count
-* Description    : Set the number of bytes in the buffer 0 of a double Buffer 
-*                  endpoint.
-* Input          : bEpNum,  bDir,  wCount
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void SetEPDblBuf1Count(uint8_t bEpNum, uint8_t bDir, uint16_t wCount)
-{
-  _SetEPDblBuf1Count(bEpNum, bDir, wCount);
-}
-/*******************************************************************************
-* Function Name  : GetEPDblBuf0Count
-* Description    : Returns the number of byte received in the buffer 0 of a double
-*                  Buffer endpoint.
-* Input          : bEpNum: Endpoint Number.
-* Output         : None.
-* Return         : Endpoint Buffer 0 count
-*******************************************************************************/
-uint16_t GetEPDblBuf0Count(uint8_t bEpNum)
-{
-  return(_GetEPDblBuf0Count(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : GetEPDblBuf1Count
-* Description    : Returns the number of data received in the buffer 1 of a double
-*                  Buffer endpoint.
-* Input          : bEpNum: Endpoint Number.
-* Output         : None.
-* Return         : Endpoint Buffer 1 count.
-*******************************************************************************/
-uint16_t GetEPDblBuf1Count(uint8_t bEpNum)
-{
-  return(_GetEPDblBuf1Count(bEpNum));
-}
-/*******************************************************************************
-* Function Name  : GetEPDblBufDir
-* Description    : gets direction of the double buffered endpoint
-* Input          : bEpNum: Endpoint Number. 
-* Output         : None.
-* Return         : EP_DBUF_OUT, EP_DBUF_IN,
-*                  EP_DBUF_ERR if the endpoint counter not yet programmed.
-*******************************************************************************/
-EP_DBUF_DIR GetEPDblBufDir(uint8_t bEpNum)
-{
-  if ((uint16_t)(*_pEPRxCount(bEpNum) & 0xFC00) != 0)
-    return(EP_DBUF_OUT);
-  else if (((uint16_t)(*_pEPTxCount(bEpNum)) & 0x03FF) != 0)
-    return(EP_DBUF_IN);
-  else
-    return(EP_DBUF_ERR);
-}
-/*******************************************************************************
-* Function Name  : FreeUserBuffer
-* Description    : free buffer used from the application realizing it to the line
-                   toggles bit SW_BUF in the double buffered endpoint register
-* Input          : bEpNum, bDir
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void FreeUserBuffer(uint8_t bEpNum, uint8_t bDir)
-{
-  if (bDir == EP_DBUF_OUT)
-  { /* OUT double buffered endpoint */
-    _ToggleDTOG_TX(bEpNum);
-  }
-  else if (bDir == EP_DBUF_IN)
-  { /* IN double buffered endpoint */
-    _ToggleDTOG_RX(bEpNum);
-  }
-}
-
-/*******************************************************************************
-* Function Name  : ToWord
-* Description    : merge two byte in a word.
-* Input          : bh: byte high, bl: bytes low.
-* Output         : None.
-* Return         : resulted word.
-*******************************************************************************/
-uint16_t ToWord(uint8_t bh, uint8_t bl)
-{
-  uint16_t wRet;
-  wRet = (uint16_t)bl | ((uint16_t)bh << 8);
-  return(wRet);
-}
-/*******************************************************************************
-* Function Name  : ByteSwap
-* Description    : Swap two byte in a word.
-* Input          : wSwW: word to Swap.
-* Output         : None.
-* Return         : resulted word.
-*******************************************************************************/
-uint16_t ByteSwap(uint16_t wSwW)
-{
-  uint8_t bTemp;
-  uint16_t wRet;
-  bTemp = (uint8_t)(wSwW & 0xff);
-  wRet =  (wSwW >> 8) | ((uint16_t)bTemp << 8);
-  return(wRet);
-}
-
-#endif /* STM32F10X_CL */
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/STM32_USB-FS-Device_Driver/src/usb_sil.c b/STM32_USB-FS-Device_Driver/src/usb_sil.c
deleted file mode 100644 (file)
index 1c290da..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_sil.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Simplified Interface Layer for Global Initialization and 
-*                      Endpoint Rea/Write operations.
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : USB_SIL_Init
-* Description    : Initialize the USB Device IP and the Endpoint 0.
-* Input          : None.
-* Output         : None.
-* Return         : Status.
-*******************************************************************************/
-uint32_t USB_SIL_Init(void)
-{
-#ifndef STM32F10X_CL
-  
-  /* USB interrupts initialization */
-  /* clear pending interrupts */
-  _SetISTR(0);
-  wInterrupt_Mask = IMR_MSK;
-  /* set interrupts mask */
-  _SetCNTR(wInterrupt_Mask);
-  
-#else
-  
-  /* Perform OTG Device initialization procedure (including EP0 init) */
-  OTG_DEV_Init();
-  
-#endif /* STM32F10X_CL */
-
-  return 0;
-}
-
-/*******************************************************************************
-* Function Name  : USB_SIL_Write
-* Description    : Write a buffer of data to a selected endpoint.
-* Input          : - bEpAddr: The address of the non control endpoint.
-*                  - pBufferPointer: The pointer to the buffer of data to be written
-*                    to the endpoint.
-*                  - wBufferSize: Number of data to be written (in bytes).
-* Output         : None.
-* Return         : Status.
-*******************************************************************************/
-uint32_t USB_SIL_Write(uint8_t bEpAddr, uint8_t* pBufferPointer, uint32_t wBufferSize)
-{
-#ifndef STM32F10X_CL
-
-  /* Use the memory interface function to write to the selected endpoint */
-  UserToPMABufferCopy(pBufferPointer, GetEPTxAddr(bEpAddr & 0x7F), wBufferSize);
-
-  /* Update the data length in the control register */
-  SetEPTxCount((bEpAddr & 0x7F), wBufferSize);
-  
-#else
-  
-   /* Use the PCD interface layer function to write to the selected endpoint */
-   OTGD_FS_PCD_EP_Write (bEpAddr, pBufferPointer, wBufferSize); 
-   
-#endif /* STM32F10X_CL */
-
-  return 0;
-}
-
-/*******************************************************************************
-* Function Name  : USB_SIL_Read
-* Description    : Write a buffer of data to a selected endpoint.
-* Input          : - bEpAddr: The address of the non control endpoint.
-*                  - pBufferPointer: The pointer to which will be saved the 
-*                     received data buffer.
-* Output         : None.
-* Return         : Number of received data (in Bytes).
-*******************************************************************************/
-uint32_t USB_SIL_Read(uint8_t bEpAddr, uint8_t* pBufferPointer)
-{
-  uint32_t DataLength = 0;
-
-#ifndef STM32F10X_CL
-
-  /* Get the number of received data on the selected Endpoint */
-  DataLength = GetEPRxCount(bEpAddr & 0x7F);
-  
-  /* Use the memory interface function to write to the selected endpoint */
-  PMAToUserBufferCopy(pBufferPointer, GetEPRxAddr(bEpAddr & 0x7F), DataLength);
-
-#else
-  
-  USB_OTG_EP *ep;
-
-  /* Get the structure pointer of the selected Endpoint */
-  ep = OTGD_FS_PCD_GetOutEP(bEpAddr);
-  
-  /* Get the number of received data */
-  DataLength = ep->xfer_len;
-  
-  /* Use the PCD interface layer function to read the selected endpoint */
-  OTGD_FS_PCD_EP_Read (bEpAddr, pBufferPointer, DataLength);
-  
-#endif /* STM32F10X_CL */
-
-  /* Return the number of received data */
-  return DataLength;
-}
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/hw_config.c b/Virtual_COM_Port/hw_config.c
deleted file mode 100644 (file)
index 3f822c0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
-* File Name          : hw_config.c
-* Author             : MCD Application Team
-* Version            : V3.0.1
-* Date               : 04/27/2009
-* Description        : Hardware Configuration & Setup
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-#include "usb_prop.h"
-#include "usb_desc.h"
-#include "hw_config.h"
-#include "platform_config.h"
-#include "usb_pwr.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : Enter_LowPowerMode
-* Description    : Power-off system clocks and power while entering suspend mode
-* Input          : None.
-* Return         : None.
-*******************************************************************************/
-void Enter_LowPowerMode(void)
-{
-       /* Set the device state to suspend */
-       bDeviceState = SUSPENDED;
-}
-
-/*******************************************************************************
-* Function Name  : Leave_LowPowerMode
-* Description    : Restores system clocks and power while exiting suspend mode
-* Input          : None.
-* Return         : None.
-*******************************************************************************/
-void Leave_LowPowerMode(void)
-{
-       DEVICE_INFO *pInfo = &Device_Info;
-
-       /* Set the device state to the correct state */
-       if (pInfo->Current_Configuration != 0) {
-               /* Device configured */
-               bDeviceState = CONFIGURED;
-       } else {
-               bDeviceState = ATTACHED;
-       }
-}
-
-/*******************************************************************************
-* Function Name  : USB_Cable_Config
-* Description    : Software Connection/Disconnection of USB Cable
-* Input          : None.
-* Return         : Status
-*******************************************************************************/
-void USB_Cable_Config (FunctionalState NewState)
-{
-       if (NewState != DISABLE) {
-               GPIO_ResetBits(GPIOC, GPIO_Pin_11);
-       } else {
-               GPIO_SetBits(GPIOC, GPIO_Pin_11);
-       }
-}
-
-/*******************************************************************************
-* Function Name  : Get_SerialNum.
-* Description    : Create the serial number string descriptor.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Get_SerialNum(void)
-{
-       uint32_t Device_Serial0, Device_Serial1, Device_Serial2;
-/*
-  Device_Serial0 = *(__IO uint32_t*)(0x1FFFF7E8);
-  Device_Serial1 = *(__IO uint32_t*)(0x1FFFF7EC);
-  Device_Serial2 = *(__IO uint32_t*)(0x1FFFF7F0);
-
-  if (Device_Serial0 != 0)
-  {
-    Virtual_Com_Port_StringSerial[2] = (uint8_t)(Device_Serial0 & 0x000000FF);
-    Virtual_Com_Port_StringSerial[4] = (uint8_t)((Device_Serial0 & 0x0000FF00) >> 8);
-    Virtual_Com_Port_StringSerial[6] = (uint8_t)((Device_Serial0 & 0x00FF0000) >> 16);
-    Virtual_Com_Port_StringSerial[8] = (uint8_t)((Device_Serial0 & 0xFF000000) >> 24);
-
-    Virtual_Com_Port_StringSerial[10] = (uint8_t)(Device_Serial1 & 0x000000FF);
-    Virtual_Com_Port_StringSerial[12] = (uint8_t)((Device_Serial1 & 0x0000FF00) >> 8);
-    Virtual_Com_Port_StringSerial[14] = (uint8_t)((Device_Serial1 & 0x00FF0000) >> 16);
-    Virtual_Com_Port_StringSerial[16] = (uint8_t)((Device_Serial1 & 0xFF000000) >> 24);
-
-    Virtual_Com_Port_StringSerial[18] = (uint8_t)(Device_Serial2 & 0x000000FF);
-    Virtual_Com_Port_StringSerial[20] = (uint8_t)((Device_Serial2 & 0x0000FF00) >> 8);
-    Virtual_Com_Port_StringSerial[22] = (uint8_t)((Device_Serial2 & 0x00FF0000) >> 16);
-    Virtual_Com_Port_StringSerial[24] = (uint8_t)((Device_Serial2 & 0xFF000000) >> 24);
-  }*/
-}
-
-/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/hw_config.h b/Virtual_COM_Port/hw_config.h
deleted file mode 100644 (file)
index e646777..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
-* File Name          : hw_config.h
-* Author             : MCD Application Team
-* Version            : V3.0.1
-* Date               : 04/27/2009
-* Description        : Hardware Configuration & Setup
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __HW_CONFIG_H
-#define __HW_CONFIG_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_type.h"
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported define -----------------------------------------------------------*/
-#define MASS_MEMORY_START     0x04002000
-#define BULK_MAX_PACKET_SIZE  0x00000040
-#define LED_ON                0xF0
-#define LED_OFF               0xFF
-
-/* Exported functions ------------------------------------------------------- */
-void Enter_LowPowerMode(void);
-void Leave_LowPowerMode(void);
-void USB_Cable_Config (FunctionalState NewState);
-void Get_SerialNum(void);
-
-/* External variables --------------------------------------------------------*/
-
-#endif  /*__HW_CONFIG_H*/
-/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/platform.h b/Virtual_COM_Port/platform.h
deleted file mode 100644 (file)
index b7cd226..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef PLATFORM_H_
-#define PLATFORM_H_
-
-#define LED_PIN            GPIO_Pin_12
-#define LED_GPIO           GPIOC
-
-#define LCD_E_PIN          GPIO_Pin_10
-#define LCD_E_GPIO         GPIOC
-
-#define LCD_RESET_PIN      GPIO_Pin_7
-#define LCD_RESET_GPIO     GPIOC
-
-#define LCD_DC_PIN         GPIO_Pin_2
-#define LCD_DC_GPIO        GPIOB
-
-#define TAMP_PIN           GPIO_Pin_13
-#define TAMP_GPIO          GPIOC
-
-#define WAKE_PIN           GPIO_Pin_0
-#define WAKE_GPIO          GPIOA
-
-#define JOY_CENTER_PIN     GPIO_Pin_6
-#define JOY_CENTER_GPIO    GPIOC
-
-#define NRF_CS_PIN         GPIO_Pin_4
-#define NRF_CS_GPIO        GPIOA
-
-#define NRF_CE_PIN         GPIO_Pin_8
-#define NRF_CE_GPIO        GPIOC
-
-#define NRF_IRQ_PIN        GPIO_Pin_9
-#define NRF_IRQ_GPIO       GPIOC
-
-#define ADIS_CS_PIN        GPIO_Pin_10
-#define ADIS_CS_GPIO       GPIOB
-
-#define ADIS_RESET_PIN     GPIO_Pin_3
-#define ADIS_RESET_GPIO    GPIOA
-
-#define LED_WRITE(x)       GPIO_WriteBit(LED_GPIO, LED_PIN, x)
-
-#define LCD_DC_WRITE(x)    GPIO_WriteBit(LCD_DC_GPIO, LCD_DC_PIN, x)
-#define LCD_E_WRITE(x)     GPIO_WriteBit(LCD_E_GPIO, LCD_E_PIN, x)
-#define LCD_RESET_WRITE(x) GPIO_WriteBit(LCD_RESET_GPIO, LCD_RESET_PIN, x)
-
-#define TAMP_READ          GPIO_ReadInputDataBit(TAMP_GPIO, TAMP_PIN)
-#define WAKE_READ          GPIO_ReadInputDataBit(WAKE_GPIO, WAKE_PIN)
-#define JOY_CENTER_READ    GPIO_ReadInputDataBit(JOY_CENTER_GPIO, JOY_CENTER_PIN)
-
-#define NRF_CE_WRITE(x)    GPIO_WriteBit(NRF_CE_GPIO, NRF_CE_PIN, x)
-#define NRF_CS_WRITE(x)    GPIO_WriteBit(NRF_CS_GPIO, NRF_CS_PIN, x)
-#define NRF_IRQ_READ       GPIO_ReadInputDataBit(MRF_IRQ_GPIO, NRF_IRQ_PIN)
-
-#define ADIS_CS_WRITE(x)   GPIO_WriteBit(ADIS_CS_GPIO, ADIS_CS_PIN, x)
-#define ADIS_RESET_WRITE(x) GPIO_WriteBit(ADIS_RESET_GPIO, ADIS_RESET_PIN, x)
-#endif
-
diff --git a/Virtual_COM_Port/platform_config.h b/Virtual_COM_Port/platform_config.h
deleted file mode 100644 (file)
index f1fd83f..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
-* File Name          : platform_config.h
-* Author             : MCD Application Team
-* Version            : V3.0.1
-* Date               : 04/27/2009
-* Description        : Evaluation board specific configuration file.
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __PLATFORM_CONFIG_H
-#define __PLATFORM_CONFIG_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f10x.h"
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Uncomment the line corresponding to the STMicroelectronics evaluation board
-   used to run the example */
-#if !defined (USE_STM3210B_EVAL) &&  !defined (USE_STM3210E_EVAL)
- //#define USE_STM3210B_EVAL
- #define USE_STM3210E_EVAL
-#endif
-
-/* Define the STM32F10x hardware depending on the used evaluation board */
-#ifdef USE_STM3210B_EVAL
-
-  #define USB_DISCONNECT            GPIOD  
-  #define USB_DISCONNECT_PIN        GPIO_Pin_9
-  #define RCC_APB2Periph_GPIO_DISCONNECT      RCC_APB2Periph_GPIOD
-
-#else /* USE_STM3210E_EVAL */
-
-  #define USB_DISCONNECT            GPIOB  
-  #define USB_DISCONNECT_PIN        GPIO_Pin_14
-  #define RCC_APB2Periph_GPIO_DISCONNECT      RCC_APB2Periph_GPIOB
-
-#endif /* USE_STM3210B_EVAL */
-
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-#endif /* __PLATFORM_CONFIG_H */
-
-/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/usb_conf.h b/Virtual_COM_Port/usb_conf.h
deleted file mode 100644 (file)
index ecbe241..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_conf.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Virtual COM Port Demo configuration  header
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_CONF_H
-#define __USB_CONF_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-/* External variables --------------------------------------------------------*/
-
-/*-------------------------------------------------------------*/
-/* EP_NUM */
-/* defines how many endpoints are used by the device */
-/*-------------------------------------------------------------*/
-
-#define EP_NUM                          (4)
-
-
-#ifndef STM32F10X_CL
-/*-------------------------------------------------------------*/
-/* --------------   Buffer Description Table  -----------------*/
-/*-------------------------------------------------------------*/
-/* buffer table base address */
-/* buffer table base address */
-#define BTABLE_ADDRESS      (0x00)
-
-/* EP0  */
-/* rx/tx buffer base address */
-#define ENDP0_RXADDR        (0x40)
-#define ENDP0_TXADDR        (0x80)
-
-/* EP1  */
-/* tx buffer base address */
-#define ENDP1_TXADDR        (0xC0)
-#define ENDP2_TXADDR        (0x100)
-#define ENDP3_RXADDR        (0x110)
-
-
-/*-------------------------------------------------------------*/
-/* -------------------   ISTR events  -------------------------*/
-/*-------------------------------------------------------------*/
-/* IMR_MSK */
-/* mask defining which events has to be handled */
-/* by the device application software */
-#define IMR_MSK (CNTR_CTRM  | CNTR_SOFM  | CNTR_RESETM )
-
-/*#define CTR_CALLBACK*/
-/*#define DOVR_CALLBACK*/
-/*#define ERR_CALLBACK*/
-/*#define WKUP_CALLBACK*/
-/*#define SUSP_CALLBACK*/
-/*#define RESET_CALLBACK*/
-/*#define SOF_CALLBACK*/
-/*#define ESOF_CALLBACK*/
-#endif /* STM32F10X_CL */
-
-#ifdef STM32F10X_CL
-/*******************************************************************************
-*                              FIFO Size Configuration
-*  
-*  (i) Dedicated data FIFO SPRAM of 1.25 Kbytes = 1280 bytes = 320 32-bits words
-*      available for the endpoints IN and OUT.
-*      Device mode features:
-*      -1 bidirectional CTRL EP 0
-*      -3 IN EPs to support any kind of Bulk, Interrupt or Isochronous transfer
-*      -3 OUT EPs to support any kind of Bulk, Interrupt or Isochronous transfer
-*
-*  ii) Receive data FIFO size = RAM for setup packets + 
-*                   OUT endpoint control information +
-*                   data OUT packets + miscellaneous
-*      Space = ONE 32-bits words
-*     --> RAM for setup packets = 4 * n + 6 space
-*        (n is the nbr of CTRL EPs the device core supports) 
-*     --> OUT EP CTRL info      = 1 space
-*        (one space for status information written to the FIFO along with each 
-*        received packet)
-*     --> data OUT packets      = (Largest Packet Size / 4) + 1 spaces 
-*        (MINIMUM to receive packets)
-*     --> OR data OUT packets  = at least 2*(Largest Packet Size / 4) + 1 spaces 
-*        (if high-bandwidth EP is enabled or multiple isochronous EPs)
-*     --> miscellaneous = 1 space per OUT EP
-*        (one space for transfer complete status information also pushed to the 
-*        FIFO with each endpoint's last packet)
-*
-*  (iii)MINIMUM RAM space required for each IN EP Tx FIFO = MAX packet size for 
-*       that particular IN EP. More space allocated in the IN EP Tx FIFO results
-*       in a better performance on the USB and can hide latencies on the AHB.
-*
-*  (iv) TXn min size = 16 words. (n  : Transmit FIFO index)
-*   (v) When a TxFIFO is not used, the Configuration should be as follows: 
-*       case 1 :  n > m    and Txn is not used    (n,m  : Transmit FIFO indexes)
-*       --> Txm can use the space allocated for Txn.
-*       case2  :  n < m    and Txn is not used    (n,m  : Transmit FIFO indexes)
-*       --> Txn should be configured with the minimum space of 16 words
-*  (vi) The FIFO is used optimally when used TxFIFOs are allocated in the top 
-*       of the FIFO.Ex: use EP1 and EP2 as IN instead of EP1 and EP3 as IN ones.
-*******************************************************************************/
-
-#define RX_FIFO_SIZE                          128
-#define TX0_FIFO_SIZE                          64
-#define TX1_FIFO_SIZE                          64
-#define TX2_FIFO_SIZE                          16
-#define TX3_FIFO_SIZE                          16
-
-/* OTGD-FS-DEVICE IP interrupts Enable definitions */
-/* Uncomment the define to enable the selected interrupt */
-//#define INTR_MODEMISMATCH
-#define INTR_SOFINTR
-#define INTR_RXSTSQLVL           /* Mandatory */
-//#define INTR_NPTXFEMPTY
-//#define INTR_GINNAKEFF
-//#define INTR_GOUTNAKEFF
-//#define INTR_ERLYSUSPEND
-#define INTR_USBSUSPEND          /* Mandatory */
-#define INTR_USBRESET            /* Mandatory */
-#define INTR_ENUMDONE            /* Mandatory */
-//#define INTR_ISOOUTDROP
-//#define INTR_EOPFRAME
-//#define INTR_EPMISMATCH
-#define INTR_INEPINTR            /* Mandatory */
-#define INTR_OUTEPINTR           /* Mandatory */
-//#define INTR_INCOMPLISOIN
-//#define INTR_INCOMPLISOOUT
-#define INTR_WKUPINTR            /* Mandatory */
-
-/* OTGD-FS-DEVICE IP interrupts subroutines */
-/* Comment the define to enable the selected interrupt subroutine and replace it
-   by user code */
-#define  INTR_MODEMISMATCH_Callback      NOP_Process
-#define  INTR_SOFINTR_Callback           NOP_Process
-#define  INTR_RXSTSQLVL_Callback         NOP_Process
-#define  INTR_NPTXFEMPTY_Callback        NOP_Process
-#define  INTR_NPTXFEMPTY_Callback        NOP_Process
-#define  INTR_GINNAKEFF_Callback         NOP_Process
-#define  INTR_GOUTNAKEFF_Callback        NOP_Process
-#define  INTR_ERLYSUSPEND_Callback       NOP_Process
-#define  INTR_USBSUSPEND_Callback        NOP_Process
-#define  INTR_USBRESET_Callback          NOP_Process
-#define  INTR_ENUMDONE_Callback          NOP_Process
-#define  INTR_ISOOUTDROP_Callback        NOP_Process
-#define  INTR_EOPFRAME_Callback          NOP_Process
-#define  INTR_EPMISMATCH_Callback        NOP_Process
-#define  INTR_INEPINTR_Callback          NOP_Process
-#define  INTR_OUTEPINTR_Callback         NOP_Process
-#define  INTR_INCOMPLISOIN_Callback      NOP_Process
-#define  INTR_INCOMPLISOOUT_Callback     NOP_Process
-#define  INTR_WKUPINTR_Callback          NOP_Process
-
-/* Isochronous data update */
-#define  INTR_RXSTSQLVL_ISODU_Callback   NOP_Process  
-
-/* Isochronous transfer parameters */
-/* Size of a single Isochronous buffer (size of a single transfer) */
-#define ISOC_BUFFER_SZE                  1
-/* Number of sub-buffers (number of single buffers/transfers), should be even */
-#define NUM_SUB_BUFFERS                  2
-
-#endif /* STM32F10X_CL */
-
-
-/* CTR service routines */
-/* associated to defined endpoints */
-/*#define  EP1_IN_Callback   NOP_Process
-#define  EP2_IN_Callback   NOP_Process
-#define  EP3_IN_Callback   NOP_Process
-#define  EP4_IN_Callback   NOP_Process
-#define  EP5_IN_Callback   NOP_Process
-#define  EP6_IN_Callback   NOP_Process
-#define  EP7_IN_Callback   NOP_Process
-
-#define  EP1_OUT_Callback   NOP_Process
-#define  EP2_OUT_Callback   NOP_Process
-#define  EP3_OUT_Callback   NOP_Process
-#define  EP4_OUT_Callback   NOP_Process
-#define  EP5_OUT_Callback   NOP_Process
-#define  EP6_OUT_Callback   NOP_Process
-#define  EP7_OUT_Callback   NOP_Process*/
-
-#endif /* __USB_CONF_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/usb_desc.c b/Virtual_COM_Port/usb_desc.c
deleted file mode 100644 (file)
index 80f5d52..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_desc.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Descriptors for Virtual Com Port Demo
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-#include "usb_desc.h"
-
-/* USB Standard Device Descriptor */
-const uint8_t Virtual_Com_Port_DeviceDescriptor[] =
-  {
-    0x12,   /* bLength */
-    USB_DEVICE_DESCRIPTOR_TYPE,     /* bDescriptorType */
-    0x00,
-    0x02,   /* bcdUSB = 2.00 */
-    0x02,   /* bDeviceClass: CDC */
-    0x00,   /* bDeviceSubClass */
-    0x00,   /* bDeviceProtocol */
-    0x40,   /* bMaxPacketSize0 */
-    0x83,
-    0x04,   /* idVendor = 0x0483 */
-    0x40,
-    0x57,   /* idProduct = 0x7540 */
-    0x00,
-    0x02,   /* bcdDevice = 2.00 */
-    1,              /* Index of string descriptor describing manufacturer */
-    2,              /* Index of string descriptor describing product */
-    3,              /* Index of string descriptor describing the device's serial number */
-    0x01    /* bNumConfigurations */
-  };
-
-const uint8_t Virtual_Com_Port_ConfigDescriptor[] =
-  {
-    /*Configuation Descriptor*/
-    0x09,   /* bLength: Configuation Descriptor size */
-    USB_CONFIGURATION_DESCRIPTOR_TYPE,      /* bDescriptorType: Configuration */
-    VIRTUAL_COM_PORT_SIZ_CONFIG_DESC,       /* wTotalLength:no of returned bytes */
-    0x00,
-    0x02,   /* bNumInterfaces: 2 interface */
-    0x01,   /* bConfigurationValue: Configuration value */
-    0x00,   /* iConfiguration: Index of string descriptor describing the configuration */
-    0xC0,   /* bmAttributes: self powered */
-    0x32,   /* MaxPower 0 mA */
-    /*Interface Descriptor*/
-    0x09,   /* bLength: Interface Descriptor size */
-    USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: Interface */
-    /* Interface descriptor type */
-    0x00,   /* bInterfaceNumber: Number of Interface */
-    0x00,   /* bAlternateSetting: Alternate setting */
-    0x01,   /* bNumEndpoints: One endpoints used */
-    0x02,   /* bInterfaceClass: Communication Interface Class */
-    0x02,   /* bInterfaceSubClass: Abstract Control Model */
-    0x01,   /* bInterfaceProtocol: Common AT commands */
-    0x00,   /* iInterface: */
-    /*Header Functional Descriptor*/
-    0x05,   /* bLength: Endpoint Descriptor size */
-    0x24,   /* bDescriptorType: CS_INTERFACE */
-    0x00,   /* bDescriptorSubtype: Header Func Desc */
-    0x10,   /* bcdCDC: spec release number */
-    0x01,
-    /*Call Managment Functional Descriptor*/
-    0x05,   /* bFunctionLength */
-    0x24,   /* bDescriptorType: CS_INTERFACE */
-    0x01,   /* bDescriptorSubtype: Call Management Func Desc */
-    0x00,   /* bmCapabilities: D0+D1 */
-    0x01,   /* bDataInterface: 1 */
-    /*ACM Functional Descriptor*/
-    0x04,   /* bFunctionLength */
-    0x24,   /* bDescriptorType: CS_INTERFACE */
-    0x02,   /* bDescriptorSubtype: Abstract Control Management desc */
-    0x02,   /* bmCapabilities */
-    /*Union Functional Descriptor*/
-    0x05,   /* bFunctionLength */
-    0x24,   /* bDescriptorType: CS_INTERFACE */
-    0x06,   /* bDescriptorSubtype: Union func desc */
-    0x00,   /* bMasterInterface: Communication class interface */
-    0x01,   /* bSlaveInterface0: Data Class Interface */
-    /*Endpoint 2 Descriptor*/
-    0x07,   /* bLength: Endpoint Descriptor size */
-    USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
-    0x82,   /* bEndpointAddress: (IN2) */
-    0x03,   /* bmAttributes: Interrupt */
-    VIRTUAL_COM_PORT_INT_SIZE,      /* wMaxPacketSize: */
-    0x00,
-    0xFF,   /* bInterval: */
-    /*Data class interface descriptor*/
-    0x09,   /* bLength: Endpoint Descriptor size */
-    USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: */
-    0x01,   /* bInterfaceNumber: Number of Interface */
-    0x00,   /* bAlternateSetting: Alternate setting */
-    0x02,   /* bNumEndpoints: Two endpoints used */
-    0x0A,   /* bInterfaceClass: CDC */
-    0x00,   /* bInterfaceSubClass: */
-    0x00,   /* bInterfaceProtocol: */
-    0x00,   /* iInterface: */
-    /*Endpoint 3 Descriptor*/
-    0x07,   /* bLength: Endpoint Descriptor size */
-    USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
-    0x03,   /* bEndpointAddress: (OUT3) */
-    0x02,   /* bmAttributes: Bulk */
-    VIRTUAL_COM_PORT_DATA_SIZE,             /* wMaxPacketSize: */
-    0x00,
-    0x00,   /* bInterval: ignore for Bulk transfer */
-    /*Endpoint 1 Descriptor*/
-    0x07,   /* bLength: Endpoint Descriptor size */
-    USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
-    0x81,   /* bEndpointAddress: (IN1) */
-    0x02,   /* bmAttributes: Bulk */
-    VIRTUAL_COM_PORT_DATA_SIZE,             /* wMaxPacketSize: */
-    0x00,
-    0x00    /* bInterval */
-  };
-
-/* USB String Descriptors */
-const uint8_t Virtual_Com_Port_StringLangID[VIRTUAL_COM_PORT_SIZ_STRING_LANGID] =
-  {
-    VIRTUAL_COM_PORT_SIZ_STRING_LANGID,
-    USB_STRING_DESCRIPTOR_TYPE,
-    0x09,
-    0x04 /* LangID = 0x0409: U.S. English */
-  };
-
-const uint8_t Virtual_Com_Port_StringVendor[VIRTUAL_COM_PORT_SIZ_STRING_VENDOR] =
-  {
-    VIRTUAL_COM_PORT_SIZ_STRING_VENDOR,     /* Size of Vendor string */
-    USB_STRING_DESCRIPTOR_TYPE,             /* bDescriptorType*/
-    /* Manufacturer: "STMicroelectronics" */
-    'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0,
-    'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0,
-    'c', 0, 's', 0
-  };
-
-const uint8_t Virtual_Com_Port_StringProduct[VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT] =
-  {
-    VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT,          /* bLength */
-    USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
-    /* Product name: "STM32 Virtual COM Port" */
-    'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0, ' ', 0, 'V', 0, 'i', 0,
-    'r', 0, 't', 0, 'u', 0, 'a', 0, 'l', 0, ' ', 0, 'C', 0, 'O', 0,
-    'M', 0, ' ', 0, 'P', 0, 'o', 0, 'r', 0, 't', 0, ' ', 0, ' ', 0
-  };
-
-uint8_t Virtual_Com_Port_StringSerial[VIRTUAL_COM_PORT_SIZ_STRING_SERIAL] =
-  {
-    VIRTUAL_COM_PORT_SIZ_STRING_SERIAL,           /* bLength */
-    USB_STRING_DESCRIPTOR_TYPE,                   /* bDescriptorType */
-    'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0, '1', 0, '0', 0
-  };
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/usb_desc.h b/Virtual_COM_Port/usb_desc.h
deleted file mode 100644 (file)
index bc3cc57..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_desc.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Descriptor Header for Virtual COM Port Device
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_DESC_H
-#define __USB_DESC_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported define -----------------------------------------------------------*/
-#define USB_DEVICE_DESCRIPTOR_TYPE              0x01
-#define USB_CONFIGURATION_DESCRIPTOR_TYPE       0x02
-#define USB_STRING_DESCRIPTOR_TYPE              0x03
-#define USB_INTERFACE_DESCRIPTOR_TYPE           0x04
-#define USB_ENDPOINT_DESCRIPTOR_TYPE            0x05
-
-#define VIRTUAL_COM_PORT_DATA_SIZE              16
-#define VIRTUAL_COM_PORT_INT_SIZE               8
-
-#define VIRTUAL_COM_PORT_SIZ_DEVICE_DESC        18
-#define VIRTUAL_COM_PORT_SIZ_CONFIG_DESC        67
-#define VIRTUAL_COM_PORT_SIZ_STRING_LANGID      4
-#define VIRTUAL_COM_PORT_SIZ_STRING_VENDOR      38
-#define VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT     50
-#define VIRTUAL_COM_PORT_SIZ_STRING_SERIAL      26
-
-#define STANDARD_ENDPOINT_DESC_SIZE             0x09
-
-/* Exported functions ------------------------------------------------------- */
-extern const uint8_t Virtual_Com_Port_DeviceDescriptor[VIRTUAL_COM_PORT_SIZ_DEVICE_DESC];
-extern const uint8_t Virtual_Com_Port_ConfigDescriptor[VIRTUAL_COM_PORT_SIZ_CONFIG_DESC];
-
-extern const uint8_t Virtual_Com_Port_StringLangID[VIRTUAL_COM_PORT_SIZ_STRING_LANGID];
-extern const uint8_t Virtual_Com_Port_StringVendor[VIRTUAL_COM_PORT_SIZ_STRING_VENDOR];
-extern const uint8_t Virtual_Com_Port_StringProduct[VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT];
-extern uint8_t Virtual_Com_Port_StringSerial[VIRTUAL_COM_PORT_SIZ_STRING_SERIAL];
-
-#endif /* __USB_DESC_H */
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/usb_endp.c b/Virtual_COM_Port/usb_endp.c
deleted file mode 100644 (file)
index a633a24..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_endp.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Endpoint routines
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-#include "usb_desc.h"
-#include "usb_mem.h"
-#include "hw_config.h"
-#include "usb_istr.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-uint8_t buffer_out[VIRTUAL_COM_PORT_DATA_SIZE];
-uint8_t buffer_in[VIRTUAL_COM_PORT_DATA_SIZE];
-
-__IO uint32_t count_out = 0;
-uint32_t count_in = 0;
-
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : EP1_IN_Callback
-* Description    :
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void EP3_IN_Callback(void)
-{
-  count_in = 0;
-}
-
-/*******************************************************************************
-* Function Name  : EP3_IN_Callback
-* Description    :
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void EP5_OUT_Callback(void)
-{
-  /* Get the received data buffer and update the counter */
-  count_out = USB_SIL_Read(EP5_OUT, buffer_out);
-    
-#ifndef STM32F10X_CL
-  /* Enable the receive of data on EP3 */
-  SetEPRxValid(ENDP3);
-#endif /* STM32F10X_CL */
-}
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
-
diff --git a/Virtual_COM_Port/usb_istr.c b/Virtual_COM_Port/usb_istr.c
deleted file mode 100644 (file)
index c07c964..0000000
+++ /dev/null
@@ -1,419 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_istr.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : ISTR events interrupt service routines
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-#include "usb_prop.h"
-#include "usb_pwr.h"
-#include "usb_istr.h"
-
-/* function prototypes Automatically built defining related macros */
-void NOP_Proc(void) {
-}
-
-#define WEAK __attribute__ ((weak))
-void WEAK EP1_IN_Callback(void);
-void WEAK EP2_IN_Callback(void);
-void WEAK EP3_IN_Callback(void);
-void WEAK EP4_IN_Callback(void);
-void WEAK EP5_IN_Callback(void);
-void WEAK EP6_IN_Callback(void);
-void WEAK EP7_IN_Callback(void);
-
-void WEAK EP1_OUT_Callback(void);
-void WEAK EP2_OUT_Callback(void);
-void WEAK EP3_OUT_Callback(void);
-void WEAK EP4_OUT_Callback(void);
-void WEAK EP5_OUT_Callback(void);
-void WEAK EP6_OUT_Callback(void);
-void WEAK EP7_OUT_Callback(void);
-
-#pragma weak EP1_IN_Callback = NOP_Proc
-#pragma weak EP2_IN_Callback = NOP_Proc
-#pragma weak EP3_IN_Callback = NOP_Proc
-#pragma weak EP4_IN_Callback = NOP_Proc
-#pragma weak EP5_IN_Callback = NOP_Proc
-#pragma weak EP6_IN_Callback = NOP_Proc
-#pragma weak EP7_IN_Callback = NOP_Proc
-
-#pragma weak EP1_OUT_Callback = NOP_Proc
-#pragma weak EP2_OUT_Callback = NOP_Proc
-#pragma weak EP3_OUT_Callback = NOP_Proc
-#pragma weak EP4_OUT_Callback = NOP_Proc
-#pragma weak EP5_OUT_Callback = NOP_Proc
-#pragma weak EP6_OUT_Callback = NOP_Proc
-#pragma weak EP7_OUT_Callback = NOP_Proc
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-__IO uint16_t wIstr;  /* ISTR register last read value */
-__IO uint8_t bIntPackSOF = 0;  /* SOFs received between 2 consecutive packets */
-
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-/* function pointers to non-control endpoints service routines */
-void (*const pEpInt_IN[7])(void) =
-  {
-    EP1_IN_Callback,
-    EP2_IN_Callback,
-    EP3_IN_Callback,
-    EP4_IN_Callback,
-    EP5_IN_Callback,
-    EP6_IN_Callback,
-    EP7_IN_Callback,
-  };
-
-void (*const pEpInt_OUT[7])(void) =
-  {
-    EP1_OUT_Callback,
-    EP2_OUT_Callback,
-    EP3_OUT_Callback,
-    EP4_OUT_Callback,
-    EP5_OUT_Callback,
-    EP6_OUT_Callback,
-    EP7_OUT_Callback,
-  };
-
-#ifndef STM32F10X_CL
-
-/*******************************************************************************
-* Function Name  : USB_Istr
-* Description    : STR events interrupt service routine
-* Input          :
-* Output         :
-* Return         :
-*******************************************************************************/
-void USB_Istr(void)
-{
-
-  wIstr = _GetISTR();
-
-#if (IMR_MSK & ISTR_CTR)
-  if (wIstr & ISTR_CTR & wInterrupt_Mask)
-  {
-    /* servicing of the endpoint correct transfer interrupt */
-    /* clear of the CTR flag into the sub */
-    CTR_LP();
-#ifdef CTR_CALLBACK
-    CTR_Callback();
-#endif
-  }
-#endif
-  /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/  
-#if (IMR_MSK & ISTR_RESET)
-  if (wIstr & ISTR_RESET & wInterrupt_Mask)
-  {
-    _SetISTR((uint16_t)CLR_RESET);
-    Device_Property.Reset();
-#ifdef RESET_CALLBACK
-    RESET_Callback();
-#endif
-  }
-#endif
-  /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-#if (IMR_MSK & ISTR_DOVR)
-  if (wIstr & ISTR_DOVR & wInterrupt_Mask)
-  {
-    _SetISTR((uint16_t)CLR_DOVR);
-#ifdef DOVR_CALLBACK
-    DOVR_Callback();
-#endif
-  }
-#endif
-  /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-#if (IMR_MSK & ISTR_ERR)
-  if (wIstr & ISTR_ERR & wInterrupt_Mask)
-  {
-    _SetISTR((uint16_t)CLR_ERR);
-#ifdef ERR_CALLBACK
-    ERR_Callback();
-#endif
-  }
-#endif
-  /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-#if (IMR_MSK & ISTR_WKUP)
-  if (wIstr & ISTR_WKUP & wInterrupt_Mask)
-  {
-    _SetISTR((uint16_t)CLR_WKUP);
-    Resume(RESUME_EXTERNAL);
-#ifdef WKUP_CALLBACK
-    WKUP_Callback();
-#endif
-  }
-#endif
-  /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-#if (IMR_MSK & ISTR_SUSP)
-  if (wIstr & ISTR_SUSP & wInterrupt_Mask)
-  {
-
-    /* check if SUSPEND is possible */
-    if (fSuspendEnabled)
-    {
-      Suspend();
-    }
-    else
-    {
-      /* if not possible then resume after xx ms */
-      Resume(RESUME_LATER);
-    }
-    /* clear of the ISTR bit must be done after setting of CNTR_FSUSP */
-    _SetISTR((uint16_t)CLR_SUSP);
-#ifdef SUSP_CALLBACK
-    SUSP_Callback();
-#endif
-  }
-#endif
-  /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-#if (IMR_MSK & ISTR_SOF)
-  if (wIstr & ISTR_SOF & wInterrupt_Mask)
-  {
-    _SetISTR((uint16_t)CLR_SOF);
-    bIntPackSOF++;
-
-#ifdef SOF_CALLBACK
-    SOF_Callback();
-#endif
-  }
-#endif
-  /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-#if (IMR_MSK & ISTR_ESOF)
-  if (wIstr & ISTR_ESOF & wInterrupt_Mask)
-  {
-    _SetISTR((uint16_t)CLR_ESOF);
-    /* resume handling timing is made with ESOFs */
-    Resume(RESUME_ESOF); /* request without change of the machine state */
-
-#ifdef ESOF_CALLBACK
-    ESOF_Callback();
-#endif
-  }
-#endif
-} /* USB_Istr */
-
-/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-#else /* STM32F10X_CL */
-
-
-/*******************************************************************************
-* Function Name  : STM32_PCD_OTG_ISR_Handler
-* Description    : Handles all USB Device Interrupts
-* Input          : None
-* Output         : None
-* Return         : status
-*******************************************************************************/
-u32 STM32_PCD_OTG_ISR_Handler (void)
-{
-  USB_OTG_int_sts_data gintr_status;
-  u32 retval = 0;
-
-  if (IsDeviceMode()) /* ensure that we are in device mode */
-  {
-    gintr_status.d32 = OTGD_FS_ReadCoreItr();
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    
-    /* If there is no interrupt pending exit the interrupt routine */
-    if (!gintr_status.d32)
-    {
-      return 0;
-    }
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Early Suspend interrupt */ 
-#ifdef INTR_ERLYSUSPEND
-    if (gintr_status.b.erlysuspend)
-    {
-      retval |= OTGD_FS_Handle_EarlySuspend_ISR();
-    }
-#endif /* INTR_ERLYSUSPEND */
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    /* End of Periodic Frame interrupt */
-#ifdef INTR_EOPFRAME    
-    if (gintr_status.b.eopframe)
-    {
-      retval |= OTGD_FS_Handle_EOPF_ISR();
-    }
-#endif /* INTR_EOPFRAME */
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    /* Non Periodic Tx FIFO Emty interrupt */
-#ifdef INTR_NPTXFEMPTY    
-    if (gintr_status.b.nptxfempty)
-    {
-      retval |= OTGD_FS_Handle_NPTxFE_ISR();
-    }
-#endif /* INTR_NPTXFEMPTY */
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Wakeup or RemoteWakeup interrupt */
-#ifdef INTR_WKUPINTR    
-    if (gintr_status.b.wkupintr)
-    {   
-      retval |= OTGD_FS_Handle_Wakeup_ISR();
-    }
-#endif /* INTR_WKUPINTR */   
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    /* Suspend interrupt */
-#ifdef INTR_USBSUSPEND
-    if (gintr_status.b.usbsuspend)
-    { 
-      /* check if SUSPEND is possible */
-      if (fSuspendEnabled)
-      {
-        Suspend();
-      }
-      else
-      {
-        /* if not possible then resume after xx ms */
-        Resume(RESUME_LATER); /* This case shouldn't happen in OTG Device mode because 
-        there's no ESOF interrupt to increment the ResumeS.bESOFcnt in the Resume state machine */
-      }
-            
-      retval |= OTGD_FS_Handle_USBSuspend_ISR();
-    }
-#endif /* INTR_USBSUSPEND */
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    /* Start of Frame interrupt */
-#ifdef INTR_SOFINTR    
-    if (gintr_status.b.sofintr)
-    {
-      /* Update the frame number variable */
-      bIntPackSOF++;
-      
-      retval |= OTGD_FS_Handle_Sof_ISR();
-    }
-#endif /* INTR_SOFINTR */
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    /* Receive FIFO Queue Status Level interrupt */
-#ifdef INTR_RXSTSQLVL
-    if (gintr_status.b.rxstsqlvl)
-    {
-      retval |= OTGD_FS_Handle_RxStatusQueueLevel_ISR();
-    }
-#endif /* INTR_RXSTSQLVL */
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    /* Enumeration Done interrupt */
-#ifdef INTR_ENUMDONE
-    if (gintr_status.b.enumdone)
-    {
-      retval |= OTGD_FS_Handle_EnumDone_ISR();
-    }
-#endif /* INTR_ENUMDONE */
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    /* Reset interrutp */
-#ifdef INTR_USBRESET
-    if (gintr_status.b.usbreset)
-    {
-      retval |= OTGD_FS_Handle_UsbReset_ISR();
-    }    
-#endif /* INTR_USBRESET */
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-    /* IN Endpoint interrupt */
-#ifdef INTR_INEPINTR
-    if (gintr_status.b.inepint)
-    {
-      retval |= OTGD_FS_Handle_InEP_ISR();
-    }
-#endif /* INTR_INEPINTR */
-    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* OUT Endpoint interrupt */
-#ifdef INTR_OUTEPINTR
-    if (gintr_status.b.outepintr)
-    {
-      retval |= OTGD_FS_Handle_OutEP_ISR();
-    }
-#endif /* INTR_OUTEPINTR */    
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Mode Mismatch interrupt */
-#ifdef INTR_MODEMISMATCH
-    if (gintr_status.b.modemismatch)
-    {
-      retval |= OTGD_FS_Handle_ModeMismatch_ISR();
-    }
-#endif /* INTR_MODEMISMATCH */  
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Global IN Endpoints NAK Effective interrupt */
-#ifdef INTR_GINNAKEFF
-    if (gintr_status.b.ginnakeff)
-    {
-      retval |= OTGD_FS_Handle_GInNakEff_ISR();
-    }
-#endif /* INTR_GINNAKEFF */  
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Global OUT Endpoints NAK effective interrupt */
-#ifdef INTR_GOUTNAKEFF
-    if (gintr_status.b.goutnakeff)
-    {
-      retval |= OTGD_FS_Handle_GOutNakEff_ISR();
-    }
-#endif /* INTR_GOUTNAKEFF */  
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Isochrounous Out packet Dropped interrupt */
-#ifdef INTR_ISOOUTDROP
-    if (gintr_status.b.isooutdrop)
-    {
-      retval |= OTGD_FS_Handle_IsoOutDrop_ISR();
-    }
-#endif /* INTR_ISOOUTDROP */  
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Endpoint Mismatch error interrupt */
-#ifdef INTR_EPMISMATCH
-    if (gintr_status.b.epmismatch)
-    {
-      retval |= OTGD_FS_Handle_EPMismatch_ISR();
-    }
-#endif /* INTR_EPMISMATCH */  
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Incomplete Isochrous IN tranfer error interrupt */
-#ifdef INTR_INCOMPLISOIN
-    if (gintr_status.b.incomplisoin)
-    {
-      retval |= OTGD_FS_Handle_IncomplIsoIn_ISR();
-    }
-#endif /* INTR_INCOMPLISOIN */  
-
-   /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/    
-    /* Incomplete Isochrous OUT tranfer error interrupt */
-#ifdef INTR_INCOMPLISOOUT
-    if (gintr_status.b.outepintr)
-    {
-      retval |= OTGD_FS_Handle_IncomplIsoOut_ISR();
-    }
-#endif /* INTR_INCOMPLISOOUT */  
-  
-  }
-  return retval;
-}
-
-#endif /* STM32F10X_CL */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/usb_istr.h b/Virtual_COM_Port/usb_istr.h
deleted file mode 100644 (file)
index 77698f6..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_istr.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : This file includes the peripherals header files in the
-*                      user application.
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_ISTR_H
-#define __USB_ISTR_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_conf.h"
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-#ifndef STM32F10X_CL
- void USB_Istr(void);
-#else /* STM32F10X_CL */
- u32 STM32_PCD_OTG_ISR_Handler(void);
-#endif /* STM32F10X_CL */
-
-
-#ifndef STM32F10X_CL
-
-#ifdef CTR_CALLBACK
-void CTR_Callback(void);
-#endif
-
-#ifdef DOVR_CALLBACK
-void DOVR_Callback(void);
-#endif
-
-#ifdef ERR_CALLBACK
-void ERR_Callback(void);
-#endif
-
-#ifdef WKUP_CALLBACK
-void WKUP_Callback(void);
-#endif
-
-#ifdef SUSP_CALLBACK
-void SUSP_Callback(void);
-#endif
-
-#ifdef RESET_CALLBACK
-void RESET_Callback(void);
-#endif
-
-#ifdef SOF_CALLBACK
-void SOF_Callback(void);
-#endif
-
-#ifdef ESOF_CALLBACK
-void ESOF_Callback(void);
-#endif
-
-#else /* STM32F10X_CL */
-
-/* Interrupt subroutines user callbacks prototypes.
-   These callbacks are called into the respective interrupt sunroutine functinos
-   and can be tailored for various user application purposes.
-     Note: Make sure that the correspondant interrupt is enabled through the 
-     definition in usb_conf.h file */ 
-void INTR_MODEMISMATCH_Callback(void);
-void INTR_SOFINTR_Callback(void);
-void INTR_RXSTSQLVL_Callback(void);
-void INTR_NPTXFEMPTY_Callback(void);
-void INTR_GINNAKEFF_Callback(void);
-void INTR_GOUTNAKEFF_Callback(void);
-void INTR_ERLYSUSPEND_Callback(void);
-void INTR_USBSUSPEND_Callback(void);
-void INTR_USBRESET_Callback(void);
-void INTR_ENUMDONE_Callback(void);
-void INTR_ISOOUTDROP_Callback(void);
-void INTR_EOPFRAME_Callback(void);
-void INTR_EPMISMATCH_Callback(void);
-void INTR_INEPINTR_Callback(void);
-void INTR_OUTEPINTR_Callback(void);
-void INTR_INCOMPLISOIN_Callback(void);
-void INTR_INCOMPLISOOUT_Callback(void);
-void INTR_WKUPINTR_Callback(void);
-
-/* Isochronous data update */
-void INTR_RXSTSQLVL_ISODU_Callback(void); 
-
-#endif /* STM32F10X_CL */
-
-
-#endif /*__USB_ISTR_H*/
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
diff --git a/Virtual_COM_Port/usb_prop.c b/Virtual_COM_Port/usb_prop.c
deleted file mode 100644 (file)
index 0f6d85b..0000000
+++ /dev/null
@@ -1,419 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_prop.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : All processing related to Virtual Com Port Demo
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_lib.h"
-#include "usb_conf.h"
-#include "usb_prop.h"
-#include "usb_desc.h"
-#include "usb_pwr.h"
-#include "hw_config.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-uint8_t Request = 0;
-
-LINE_CODING linecoding =
-  {
-    115200, /* baud rate*/
-    0x00,   /* stop bits-1*/
-    0x00,   /* parity - none*/
-    0x08    /* no. of bits 8*/
-  };
-
-/* -------------------------------------------------------------------------- */
-/*  Structures initializations */
-/* -------------------------------------------------------------------------- */
-
-DEVICE Device_Table =
-  {
-    EP_NUM,
-    1
-  };
-
-DEVICE_PROP Device_Property =
-  {
-    Virtual_Com_Port_init,
-    Virtual_Com_Port_Reset,
-    Virtual_Com_Port_Status_In,
-    Virtual_Com_Port_Status_Out,
-    Virtual_Com_Port_Data_Setup,
-    Virtual_Com_Port_NoData_Setup,
-    Virtual_Com_Port_Get_Interface_Setting,
-    Virtual_Com_Port_GetDeviceDescriptor,
-    Virtual_Com_Port_GetConfigDescriptor,
-    Virtual_Com_Port_GetStringDescriptor,
-    0,
-    0x40 /*MAX PACKET SIZE*/
-  };
-
-USER_STANDARD_REQUESTS User_Standard_Requests =
-  {
-    Virtual_Com_Port_GetConfiguration,
-    Virtual_Com_Port_SetConfiguration,
-    Virtual_Com_Port_GetInterface,
-    Virtual_Com_Port_SetInterface,
-    Virtual_Com_Port_GetStatus,
-    Virtual_Com_Port_ClearFeature,
-    Virtual_Com_Port_SetEndPointFeature,
-    Virtual_Com_Port_SetDeviceFeature,
-    Virtual_Com_Port_SetDeviceAddress
-  };
-
-ONE_DESCRIPTOR Device_Descriptor =
-  {
-    (uint8_t*)Virtual_Com_Port_DeviceDescriptor,
-    VIRTUAL_COM_PORT_SIZ_DEVICE_DESC
-  };
-
-ONE_DESCRIPTOR Config_Descriptor =
-  {
-    (uint8_t*)Virtual_Com_Port_ConfigDescriptor,
-    VIRTUAL_COM_PORT_SIZ_CONFIG_DESC
-  };
-
-ONE_DESCRIPTOR String_Descriptor[4] =
-  {
-    {(uint8_t*)Virtual_Com_Port_StringLangID, VIRTUAL_COM_PORT_SIZ_STRING_LANGID},
-    {(uint8_t*)Virtual_Com_Port_StringVendor, VIRTUAL_COM_PORT_SIZ_STRING_VENDOR},
-    {(uint8_t*)Virtual_Com_Port_StringProduct, VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT},
-    {(uint8_t*)Virtual_Com_Port_StringSerial, VIRTUAL_COM_PORT_SIZ_STRING_SERIAL}
-  };
-
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Extern function prototypes ------------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_init.
-* Description    : Virtual COM Port Mouse init routine.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Virtual_Com_Port_init(void)
-{
-
-  /* Update the serial number string descriptor with the data from the unique
-  ID*/
-  Get_SerialNum();
-
-  pInformation->Current_Configuration = 0;
-
-  /* Connect the device */
-  PowerOn();
-
-  /* Perform basic device initialization operations */
-  USB_SIL_Init();
-
-  /* configure the USART to the default settings */
-  //USART_Config_Default();
-
-  bDeviceState = UNCONNECTED;
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_Reset
-* Description    : Virtual_Com_Port Mouse reset routine
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Virtual_Com_Port_Reset(void)
-{
-  /* Set Virtual_Com_Port DEVICE as not configured */
-  pInformation->Current_Configuration = 0;
-
-  /* Current Feature initialization */
-  pInformation->Current_Feature = Virtual_Com_Port_ConfigDescriptor[7];
-
-  /* Set Virtual_Com_Port DEVICE with the default Interface*/
-  pInformation->Current_Interface = 0;
-
-#ifdef STM32F10X_CL     
-  /* EP0 is already configured by USB_SIL_Init() function */
-  
-  /* Init EP1 IN as Bulk endpoint */
-  OTG_DEV_EP_Init(EP1_IN, OTG_DEV_EP_TYPE_BULK, VIRTUAL_COM_PORT_DATA_SIZE);
-  
-  /* Init EP2 IN as Interrupt endpoint */
-  OTG_DEV_EP_Init(EP2_IN, OTG_DEV_EP_TYPE_INT, VIRTUAL_COM_PORT_INT_SIZE);
-
-  /* Init EP3 OUT as Bulk endpoint */
-  OTG_DEV_EP_Init(EP3_OUT, OTG_DEV_EP_TYPE_BULK, VIRTUAL_COM_PORT_DATA_SIZE);  
-#else 
-
-  SetBTABLE(BTABLE_ADDRESS);
-
-  /* Initialize Endpoint 0 */
-  SetEPType(ENDP0, EP_CONTROL);
-  SetEPTxStatus(ENDP0, EP_TX_STALL);
-  SetEPRxAddr(ENDP0, ENDP0_RXADDR);
-  SetEPTxAddr(ENDP0, ENDP0_TXADDR);
-  Clear_Status_Out(ENDP0);
-  SetEPRxCount(ENDP0, Device_Property.MaxPacketSize);
-  SetEPRxValid(ENDP0);
-
-  /* Initialize Endpoint 1 */
-  SetEPType(ENDP1, EP_BULK);
-  SetEPTxAddr(ENDP1, ENDP1_TXADDR);
-  SetEPTxStatus(ENDP1, EP_TX_NAK);
-  SetEPRxStatus(ENDP1, EP_RX_DIS);
-
-  /* Initialize Endpoint 2 */
-  SetEPType(ENDP2, EP_INTERRUPT);
-  SetEPTxAddr(ENDP2, ENDP2_TXADDR);
-  SetEPRxStatus(ENDP2, EP_RX_DIS);
-  SetEPTxStatus(ENDP2, EP_TX_NAK);
-
-  /* Initialize Endpoint 3 */
-  SetEPType(ENDP3, EP_BULK);
-  SetEPRxAddr(ENDP3, ENDP3_RXADDR);
-  SetEPRxCount(ENDP3, VIRTUAL_COM_PORT_DATA_SIZE);
-  SetEPRxStatus(ENDP3, EP_RX_VALID);
-  SetEPTxStatus(ENDP3, EP_TX_DIS);
-
-  /* Set this device to response on default address */
-  SetDeviceAddress(0);
-#endif /* STM32F10X_CL */
-
-  bDeviceState = ATTACHED;
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_SetConfiguration.
-* Description    : Udpade the device state to configured.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Virtual_Com_Port_SetConfiguration(void)
-{
-  DEVICE_INFO *pInfo = &Device_Info;
-
-  if (pInfo->Current_Configuration != 0)
-  {
-    /* Device configured */
-    bDeviceState = CONFIGURED;
-  }
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_SetConfiguration.
-* Description    : Udpade the device state to addressed.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Virtual_Com_Port_SetDeviceAddress (void)
-{
-  bDeviceState = ADDRESSED;
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_Status_In.
-* Description    : Virtual COM Port Status In Routine.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Virtual_Com_Port_Status_In(void)
-{
-  if (Request == SET_LINE_CODING)
-  {
-    //USART_Config();
-    Request = 0;
-  }
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_Status_Out
-* Description    : Virtual COM Port Status OUT Routine.
-* Input          : None.
-* Output         : None.
-* Return         : None.
-*******************************************************************************/
-void Virtual_Com_Port_Status_Out(void)
-{}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_Data_Setup
-* Description    : handle the data class specific requests
-* Input          : Request Nb.
-* Output         : None.
-* Return         : USB_UNSUPPORT or USB_SUCCESS.
-*******************************************************************************/
-RESULT Virtual_Com_Port_Data_Setup(uint8_t RequestNo)
-{
-  uint8_t    *(*CopyRoutine)(uint16_t);
-
-  CopyRoutine = NULL;
-
-  if (RequestNo == GET_LINE_CODING)
-  {
-    if (Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
-    {
-      CopyRoutine = Virtual_Com_Port_GetLineCoding;
-    }
-  }
-  else if (RequestNo == SET_LINE_CODING)
-  {
-    if (Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
-    {
-      CopyRoutine = Virtual_Com_Port_SetLineCoding;
-    }
-    Request = SET_LINE_CODING;
-  }
-
-  if (CopyRoutine == NULL)
-  {
-    return USB_UNSUPPORT;
-  }
-
-  pInformation->Ctrl_Info.CopyData = CopyRoutine;
-  pInformation->Ctrl_Info.Usb_wOffset = 0;
-  (*CopyRoutine)(0);
-  return USB_SUCCESS;
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_NoData_Setup.
-* Description    : handle the no data class specific requests.
-* Input          : Request Nb.
-* Output         : None.
-* Return         : USB_UNSUPPORT or USB_SUCCESS.
-*******************************************************************************/
-RESULT Virtual_Com_Port_NoData_Setup(uint8_t RequestNo)
-{
-
-  if (Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
-  {
-    if (RequestNo == SET_COMM_FEATURE)
-    {
-      return USB_SUCCESS;
-    }
-    else if (RequestNo == SET_CONTROL_LINE_STATE)
-    {
-      return USB_SUCCESS;
-    }
-  }
-
-  return USB_UNSUPPORT;
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_GetDeviceDescriptor.
-* Description    : Gets the device descriptor.
-* Input          : Length.
-* Output         : None.
-* Return         : The address of the device descriptor.
-*******************************************************************************/
-uint8_t *Virtual_Com_Port_GetDeviceDescriptor(uint16_t Length)
-{
-  return Standard_GetDescriptorData(Length, &Device_Descriptor);
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_GetConfigDescriptor.
-* Description    : get the configuration descriptor.
-* Input          : Length.
-* Output         : None.
-* Return         : The address of the configuration descriptor.
-*******************************************************************************/
-uint8_t *Virtual_Com_Port_GetConfigDescriptor(uint16_t Length)
-{
-  return Standard_GetDescriptorData(Length, &Config_Descriptor);
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_GetStringDescriptor
-* Description    : Gets the string descriptors according to the needed index
-* Input          : Length.
-* Output         : None.
-* Return         : The address of the string descriptors.
-*******************************************************************************/
-uint8_t *Virtual_Com_Port_GetStringDescriptor(uint16_t Length)
-{
-  uint8_t wValue0 = pInformation->USBwValue0;
-  if (wValue0 > 4)
-  {
-    return NULL;
-  }
-  else
-  {
-    return Standard_GetDescriptorData(Length, &String_Descriptor[wValue0]);
-  }
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_Get_Interface_Setting.
-* Description    : test the interface and the alternate setting according to the
-*                  supported one.
-* Input1         : uint8_t: Interface : interface number.
-* Input2         : uint8_t: AlternateSetting : Alternate Setting number.
-* Output         : None.
-* Return         : The address of the string descriptors.
-*******************************************************************************/
-RESULT Virtual_Com_Port_Get_Interface_Setting(uint8_t Interface, uint8_t AlternateSetting)
-{
-  if (AlternateSetting > 0)
-  {
-    return USB_UNSUPPORT;
-  }
-  else if (Interface > 1)
-  {
-    return USB_UNSUPPORT;
-  }
-  return USB_SUCCESS;
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_GetLineCoding.
-* Description    : send the linecoding structure to the PC host.
-* Input          : Length.
-* Output         : None.
-* Return         : Inecoding structure base address.
-*******************************************************************************/
-uint8_t *Virtual_Com_Port_GetLineCoding(uint16_t Length)
-{
-  if (Length == 0)
-  {
-    pInformation->Ctrl_Info.Usb_wLength = sizeof(linecoding);
-    return NULL;
-  }
-  return(uint8_t *)&linecoding;
-}
-
-/*******************************************************************************
-* Function Name  : Virtual_Com_Port_SetLineCoding.
-* Description    : Set the linecoding structure fields.
-* Input          : Length.
-* Output         : None.
-* Return         : Linecoding structure base address.
-*******************************************************************************/
-uint8_t *Virtual_Com_Port_SetLineCoding(uint16_t Length)
-{
-  if (Length == 0)
-  {
-    pInformation->Ctrl_Info.Usb_wLength = sizeof(linecoding);
-    return NULL;
-  }
-  return(uint8_t *)&linecoding;
-}
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
-
diff --git a/Virtual_COM_Port/usb_prop.h b/Virtual_COM_Port/usb_prop.h
deleted file mode 100644 (file)
index 3adf76b..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_prop.h
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : All processing related to Virtual COM Port Demo (Endpoint 0)
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __usb_prop_H
-#define __usb_prop_H
-
-/* Includes ------------------------------------------------------------------*/
-/* Exported types ------------------------------------------------------------*/
-typedef struct
-{
-  uint32_t bitrate;
-  uint8_t format;
-  uint8_t paritytype;
-  uint8_t datatype;
-}LINE_CODING;
-
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* Exported define -----------------------------------------------------------*/
-
-#define Virtual_Com_Port_GetConfiguration          NOP_Process
-//#define Virtual_Com_Port_SetConfiguration          NOP_Process
-#define Virtual_Com_Port_GetInterface              NOP_Process
-#define Virtual_Com_Port_SetInterface              NOP_Process
-#define Virtual_Com_Port_GetStatus                 NOP_Process
-#define Virtual_Com_Port_ClearFeature              NOP_Process
-#define Virtual_Com_Port_SetEndPointFeature        NOP_Process
-#define Virtual_Com_Port_SetDeviceFeature          NOP_Process
-//#define Virtual_Com_Port_SetDeviceAddress          NOP_Process
-
-#define SEND_ENCAPSULATED_COMMAND   0x00
-#define GET_ENCAPSULATED_RESPONSE   0x01
-#define SET_COMM_FEATURE            0x02
-#define GET_COMM_FEATURE            0x03
-#define CLEAR_COMM_FEATURE          0x04
-#define SET_LINE_CODING             0x20
-#define GET_LINE_CODING             0x21
-#define SET_CONTROL_LINE_STATE      0x22
-#define SEND_BREAK                  0x23
-
-/* Exported functions ------------------------------------------------------- */
-void Virtual_Com_Port_init(void);
-void Virtual_Com_Port_Reset(void);
-void Virtual_Com_Port_SetConfiguration(void);
-void Virtual_Com_Port_SetDeviceAddress (void);
-void Virtual_Com_Port_Status_In (void);
-void Virtual_Com_Port_Status_Out (void);
-RESULT Virtual_Com_Port_Data_Setup(uint8_t);
-RESULT Virtual_Com_Port_NoData_Setup(uint8_t);
-RESULT Virtual_Com_Port_Get_Interface_Setting(uint8_t Interface, uint8_t AlternateSetting);
-uint8_t *Virtual_Com_Port_GetDeviceDescriptor(uint16_t );
-uint8_t *Virtual_Com_Port_GetConfigDescriptor(uint16_t);
-uint8_t *Virtual_Com_Port_GetStringDescriptor(uint16_t);
-
-uint8_t *Virtual_Com_Port_GetLineCoding(uint16_t Length);
-uint8_t *Virtual_Com_Port_SetLineCoding(uint16_t Length);
-
-#endif /* __usb_prop_H */
-
-/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
-
diff --git a/Virtual_COM_Port/usb_pwr.c b/Virtual_COM_Port/usb_pwr.c
deleted file mode 100644 (file)
index 1346779..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
-* File Name          : usb_pwr.c
-* Author             : MCD Application Team
-* Version            : V3.1.1
-* Date               : 04/07/2010
-* Description        : Connection/disconnection & power management
-********************************************************************************
-* 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.
-*******************************************************************************/
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f10x.h"
-#include "usb_lib.h"
-#include "usb_conf.h"
-#include "usb_pwr.h"
-#include "hw_config.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-__IO uint32_t bDeviceState = UNCONNECTED; /* USB device status */
-__IO bool fSuspendEnabled = TRUE;  /* true when suspend is possible */
-
-struct
-{
-  __IO RESUME_STATE eState;
-  __IO uint8_t bESOFcnt;
-}ResumeS;
-
-/* Extern variables ----------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Extern function prototypes ------------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/*******************************************************************************
-* Function Name  : PowerOn
-* Description    :
-* Input          : None.
-* Output         : None.
-* Return         : USB_SUCCESS.
-*******************************************************************************/
-RESULT PowerOn(void)
-{
-#ifndef STM32F10X_CL
-  uint16_t wRegVal;
-
-  /*** cable plugged-in ? ***/
-  USB_Cable_Config(ENABLE);
-
-  /*** CNTR_PWDN = 0 ***/
-  wRegVal = CNTR_FRES;
-  _SetCNTR(wRegVal);
-
-  /*** CNTR_FRES = 0 ***/
-  wInterrupt_Mask = 0;
-  _SetCNTR(wInterrupt_Mask);
-  /*** Clear pending interrupts ***/
-  _SetISTR(0);
-  /*** Set interrupt mask ***/
-  wInterrupt_Mask = CNTR_RESETM | CNTR_SUSPM | CNTR_WKUPM;
-  _SetCNTR(wInterrupt_Mask);
-#endif /* STM32F10X_CL */
-
-  return USB_SUCCESS;
-}
-
-/*******************************************************************************
-* Function Name  : PowerOff
-* Description    : handles switch-off conditions
-* Input          : None.
-* Output         : None.
-* Return         : USB_SUCCESS.
-*******************************************************************************/
-RESULT PowerOff()
-{
-#ifndef STM32F10X_CL
-  /* disable all ints and force USB reset */
-  _SetCNTR(CNTR_FRES);
-  /* clear interrupt status register */
-  _SetISTR(0);
-  /* Disable the Pull-Up*/
-  USB_Cable_Config(DISABLE);
-  /* switch-off device */
-  _SetCNTR(CNTR_FRES + CNTR_PDWN);
-#endif /* STM32F10X_CL */
-
-  /* sw variables reset */
-  /* ... */
-
-  return USB_SUCCESS;
-}
-
-/*******************************************************************************
-* Function Name  : Suspend
-* Description    : sets suspend mode operating conditions
-* Input          : None.
-* Output         : None.
-* Return         : USB_SUCCESS.
-*******************************************************************************/
-void Suspend(void)
-{
-#ifndef STM32F10X_CL
-  uint16_t wCNTR;
-  /* suspend preparation */
-  /* ... */
-
-  /* macrocell enters suspend mode */
-  wCNTR = _GetCNTR();
-  wCNTR |= CNTR_FSUSP;
-  _SetCNTR(wCNTR);
-#endif /* STM32F10X_CL */
-
-  /* ------------------ ONLY WITH BUS-POWERED DEVICES ---------------------- */
-  /* power reduction */
-  /* ... on connected devices */
-
-#ifndef STM32F10X_CL
-  /* force low-power mode in the macrocell */
-  wCNTR = _GetCNTR();
-  wCNTR |= CNTR_LPMODE;
-  _SetCNTR(wCNTR);
-#endif /* STM32F10X_CL */
-
-  /* switch-off the clocks */
-  /* ... */
-  Enter_LowPowerMode();
-
-}
-
-/*******************************************************************************
-* Function Name  : Resume_Init
-* Description    : Handles wake-up restoring normal operations
-* Input          : None.
-* Output