diff --git a/source/application/test/main.c b/source/application/test/main.c
index 3f8fa99..bd86951 100644
--- a/source/application/test/main.c
+++ b/source/application/test/main.c
@@ -13,9 +13,6 @@
#include "isr.h"
#include "sys_tick.h"
-#include "ascii_font.h"
-#include "bitmap.h"
-
#define STACK_SIZE 256
stack_t tc_1_stack[STACK_SIZE];
struct thread_context tc_1;
diff --git a/source/firmware/arch/stm32f4xx/board/stm32f4-discovery/stm32f4-discovery.mk b/source/firmware/arch/stm32f4xx/board/stm32f4-discovery/stm32f4-discovery.mk
index 49361a9..177208e 100755
--- a/source/firmware/arch/stm32f4xx/board/stm32f4-discovery/stm32f4-discovery.mk
+++ b/source/firmware/arch/stm32f4xx/board/stm32f4-discovery/stm32f4-discovery.mk
@@ -1,4 +1,4 @@
CHECK_FOLDER += firmware/arch/stm32f4xx/board/stm32f4-discovery
SUB_FOLDER += firmware/arch/stm32f4xx/board/stm32f4-discovery
-INCLUDES += firmware/arch/stm32f4xx/board/stm32f4-discovery
+INCLUDES += firmware/arch/stm32f4xx/board/stm32f4-discovery/include
DOC_SRC += firmware/arch/stm32f4xx/board/stm32f4-discovery
\ No newline at end of file
diff --git a/source/firmware/arch/stm32f4xx/driver/driver.mk b/source/firmware/arch/stm32f4xx/driver/driver.mk
index e8167d7..60edf11 100755
--- a/source/firmware/arch/stm32f4xx/driver/driver.mk
+++ b/source/firmware/arch/stm32f4xx/driver/driver.mk
@@ -1,5 +1,5 @@
-include firmware/arch/stm32f4xx/driver/gpio/gpio.mk
-include firmware/arch/stm32f4xx/driver/timer/timer.mk
-include firmware/arch/stm32f4xx/driver/uart/uart.mk
-#include firmware/arch/stm32f4xx/driver/usb/usb.mk
-#include firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.mk
+CHECK_FOLDER += firmware/arch/stm32f4xx/driver
+SUB_FOLDER += firmware/arch/stm32f4xx/driver
+INCLUDES += firmware/arch/stm32f4xx/driver/include
+DOC_SRC += firmware/arch/stm32f4xx/driver
+DOC_SRC += firmware/arch/stm32f4xx/driver/include
diff --git a/source/firmware/arch/stm32f4xx/driver/gpio/gpio.mk b/source/firmware/arch/stm32f4xx/driver/gpio/gpio.mk
deleted file mode 100755
index 2134a26..0000000
--- a/source/firmware/arch/stm32f4xx/driver/gpio/gpio.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-CHECK_FOLDER += firmware/arch/stm32f4xx/driver/gpio
-SUB_FOLDER += firmware/arch/stm32f4xx/driver/gpio
-INCLUDES += firmware/arch/stm32f4xx/driver/gpio
-DOC_SRC += firmware/arch/stm32f4xx/driver/gpio
diff --git a/source/firmware/arch/stm32f4xx/driver/timer/timer.mk b/source/firmware/arch/stm32f4xx/driver/timer/timer.mk
deleted file mode 100755
index 9a632d3..0000000
--- a/source/firmware/arch/stm32f4xx/driver/timer/timer.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-CHECK_FOLDER += firmware/arch/stm32f4xx/driver/timer
-SUB_FOLDER += firmware/arch/stm32f4xx/driver/timer
-INCLUDES += firmware/arch/stm32f4xx/driver/timer
-DOC_SRC += firmware/arch/stm32f4xx/driver/timer
\ No newline at end of file
diff --git a/source/firmware/arch/stm32f4xx/driver/uart/uart.mk b/source/firmware/arch/stm32f4xx/driver/uart/uart.mk
deleted file mode 100755
index 6f3ec54..0000000
--- a/source/firmware/arch/stm32f4xx/driver/uart/uart.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-CHECK_FOLDER += firmware/arch/stm32f4xx/driver/uart
-SUB_FOLDER += firmware/arch/stm32f4xx/driver/uart
-INCLUDES += firmware/arch/stm32f4xx/driver/uart
-DOC_SRC += firmware/arch/stm32f4xx/driver/uart
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/usb.mk b/source/firmware/arch/stm32f4xx/driver/usb/usb.mk
deleted file mode 100755
index 358c568..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/usb.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-#SUB_FOLDER += firmware/arch/stm32f4xx/driver
-#INCLUDES += firmware/arch/stm32f4xx/driver
-#DOC_SRC += firmware/arch/stm32f4xx/driver
-
-include firmware/arch/stm32f4xx/driver/usb/vcp/vcp.mk
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_bsp.c b/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_bsp.c
deleted file mode 100755
index 2c08a15..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_bsp.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_bsp.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file is responsible to offer board support package and is
- * configurable by user.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- *
© COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_bsp.h"
-#include "usbd_conf.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
-* @{
-*/
-
-/** @defgroup USB_BSP
-* @brief This file is responsible to offer board support package
-* @{
-*/
-
-/** @defgroup USB_BSP_Private_Defines
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_BSP_Private_TypesDefinitions
-* @{
-*/
-/**
-* @}
-*/
-
-
-
-
-
-/** @defgroup USB_BSP_Private_Macros
-* @{
-*/
-/**
-* @}
-*/
-
-/** @defgroup USBH_BSP_Private_Variables
-* @{
-*/
-
-/**
-* @}
-*/
-
-/** @defgroup USBH_BSP_Private_FunctionPrototypes
-* @{
-*/
-/**
-* @}
-*/
-
-/** @defgroup USB_BSP_Private_Functions
-* @{
-*/
-
-
-/**
-* @brief USB_OTG_BSP_Init
-* Initilizes BSP configurations
-* @param None
-* @retval None
-*/
-
-void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev)
-{
- GPIO_InitTypeDef GPIO_InitStructure;
-
-
- RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA , ENABLE);
-
- /* Configure SOF VBUS ID DM DP Pins */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 |
- GPIO_Pin_9 |
- GPIO_Pin_11 |
- GPIO_Pin_12;
-
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
- GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource8,GPIO_AF_OTG1_FS) ;
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_OTG1_FS) ;
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_OTG1_FS) ;
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_OTG1_FS) ;
-
- /* this for ID line debug */
-
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
- GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_OTG1_FS) ;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
- RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE) ;
-
- /* enable the PWR clock */
- RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, ENABLE);
-
-}
-/**
-* @brief USB_OTG_BSP_EnableInterrupt
-* Enabele USB Global interrupt
-* @param None
-* @retval None
-*/
-void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev)
-{
- NVIC_InitTypeDef NVIC_InitStructure;
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
-
- NVIC_InitStructure.NVIC_IRQChannel = OTG_FS_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-}
-/**
-* @brief USB_OTG_BSP_uDelay
-* This function provides delay time in micro sec
-* @param usec : Value of delay required in micro sec
-* @retval None
-*/
-void USB_OTG_BSP_uDelay (const uint32_t usec)
-{
- uint32_t count = 0;
- const uint32_t utime = (120 * usec / 7);
- do
- {
- if ( ++count > utime )
- {
- return ;
- }
- }
- while (1);
-}
-
-
-/**
-* @brief USB_OTG_BSP_mDelay
-* This function provides delay time in milli sec
-* @param msec : Value of delay required in milli sec
-* @retval None
-*/
-void USB_OTG_BSP_mDelay (const uint32_t msec)
-{
- USB_OTG_BSP_uDelay(msec * 1000);
-}
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_conf.h b/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_conf.h
deleted file mode 100755
index 63cb80e..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_conf.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_conf.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief General low level driver configuration
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_CONF__H__
-#define __USB_CONF__H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f4xx.h"
-
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_CONF
- * @brief USB low level driver configuration file
- * @{
- */
-
-/** @defgroup USB_CONF_Exported_Defines
- * @{
- */
-
-/* USB Core and PHY interface configuration.
- Tip: To avoid modifying these defines each time you need to change the USB
- configuration, you can declare the needed define in your toolchain
- compiler preprocessor.
- */
-#ifndef USE_USB_OTG_FS
- #define USE_USB_OTG_FS
-#endif /* USE_USB_OTG_FS */
-
-
-#define USB_OTG_FS_CORE
-
-
-/*******************************************************************************
-* FIFO Size Configuration in Device mode
-*
-* (i) 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 = 10 spaces
-* (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)
-*
-* (ii)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.
-*
-* (iii) TXn min size = 16 words. (n : Transmit FIFO index)
-* (iv) 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
-* (v) 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.
-*******************************************************************************/
-
-/****************** USB OTG FS CONFIGURATION **********************************/
-#ifdef USB_OTG_FS_CORE
- #define RX_FIFO_FS_SIZE 128
- #define TX0_FIFO_FS_SIZE 32
- #define TX1_FIFO_FS_SIZE 128
- #define TX2_FIFO_FS_SIZE 32
- #define TX3_FIFO_FS_SIZE 0
-
-#endif
-
-/****************** USB OTG MODE CONFIGURATION ********************************/
-
-#define USE_DEVICE_MODE
-
-
-/****************** C Compilers dependant keywords ****************************/
-/* In HS mode and when the DMA is used, all variables and data structures dealing
- with the DMA during the transaction process should be 4-bytes aligned */
-
- #define __ALIGN_BEGIN
- #define __ALIGN_END
-
-
-/* __packed keyword used to decrease the data type alignment to 1-byte */
- #define __packed __attribute__ ((__packed__))
-
-
-/**
- * @}
- */
-
-
-/** @defgroup USB_CONF_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_CONF_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_CONF_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_CONF_Exported_FunctionsPrototype
- * @{
- */
-/**
- * @}
- */
-
-
-#endif //__USB_CONF__H__
-
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_it.c b/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_it.c
deleted file mode 100755
index 582ed2b..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usb_it.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * usb_it.c
- *
- * Created on: May 15, 2012
- * Author: tkl
- */
-#include "usb_core.h"
-#include "usbd_core.h"
-#include "usbd_cdc_core.h"
-#include "usb_dcd_int.h"
-
-#include "usb_vport.h"
-
-void OTG_FS_WKUP_IRQHandler(void) {
- if(USB_OTG_dev.cfg.low_power) {
- *(uint32_t *)(0xE000ED10) &= 0xFFFFFFF9 ;
-// TODO!!!
-// SystemInit();
- USB_OTG_UngateClock(&USB_OTG_dev);
- }
- EXTI_ClearITPendingBit(EXTI_Line18);
-}
-
-void OTG_FS_IRQHandler(void) {
- USBD_OTG_ISR_Handler (&USB_OTG_dev);
-}
-
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_cdc_vcp.c b/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_cdc_vcp.c
deleted file mode 100755
index 5f67f81..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_cdc_vcp.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_cdc_vcp.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Generic media access Layer.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_cdc_vcp.h"
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-LINE_CODING linecoding =
- {
- 115200, /* baud rate*/
- 0x00, /* stop bits-1*/
- 0x00, /* parity - none*/
- 0x08 /* nb. of bits 8*/
- };
-
-
-
-/* These are external variables imported from CDC core to be used for IN
- transfer management. */
-extern uint8_t APP_Rx_Buffer []; /* Write CDC received data in this buffer.
- These data will be sent over USB IN endpoint
- in the CDC core functions. */
-extern uint32_t APP_Rx_ptr_in; /* Increment this pointer or roll it back to
- start address when writing received data
- in the buffer APP_Rx_Buffer. */
-static uint8_t u8PortReady = 0;
-/* Private function prototypes -----------------------------------------------*/
-static uint16_t VCP_Init (void);
-static uint16_t VCP_DeInit (void);
-static uint16_t VCP_Ctrl (uint32_t Cmd, uint32_t wValue, uint8_t* Buf, uint32_t Len);
-static uint16_t VCP_DataTx (uint8_t* Buf, uint32_t Len);
-static uint16_t VCP_DataRx (uint8_t* Buf, uint32_t Len);
-
-
-static uint16_t VCP_COMConfig(uint8_t Conf);
-
-CDC_IF_Prop_TypeDef VCP_fops =
-{
- VCP_Init,
- VCP_DeInit,
- VCP_Ctrl,
- VCP_DataTx,
- VCP_DataRx
-};
-
-/* Private functions ---------------------------------------------------------*/
-/**
- * @brief VCP_Init
- * Initializes the Media on the STM32
- * @param None
- * @retval Result of the opeartion (USBD_OK in all cases)
- */
-static uint16_t VCP_Init(void)
-{
-
-
- return USBD_OK;
-}
-
-/**
- * @brief VCP_DeInit
- * DeInitializes the Media on the STM32
- * @param None
- * @retval Result of the opeartion (USBD_OK in all cases)
- */
-static uint16_t VCP_DeInit(void)
-{
-
- return USBD_OK;
-}
-
-
-/**
- * @brief VCP_Ctrl
- * Manage the CDC class requests
- * @param Cmd: Command code
- * @param Buf: Buffer containing command data (request parameters)
- * @param Len: Number of data to be sent (in bytes)
- * @retval Result of the opeartion (USBD_OK in all cases)
- */
-static uint16_t VCP_Ctrl (uint32_t Cmd, uint32_t wValue, uint8_t* Buf, uint32_t Len)
-{
- uint32_t cacheCmd = 0;
- switch (Cmd)
- {
- case SEND_ENCAPSULATED_COMMAND:
- cacheCmd = Cmd;
- /* Not needed for this driver */
- break;
-
- case GET_ENCAPSULATED_RESPONSE:
- cacheCmd = Cmd;
- /* Not needed for this driver */
- break;
-
- case SET_COMM_FEATURE:
- cacheCmd = Cmd;
- /* Not needed for this driver */
- break;
-
- case GET_COMM_FEATURE:
- cacheCmd = Cmd;
- /* Not needed for this driver */
- break;
-
- case CLEAR_COMM_FEATURE:
- cacheCmd = Cmd;
- /* Not needed for this driver */
- break;
-
- case SET_LINE_CODING:
- linecoding.bitrate = (uint32_t)(Buf[0] | (Buf[1] << 8) | (Buf[2] << 16) | (Buf[3] << 24));
- linecoding.format = Buf[4];
- linecoding.paritytype = Buf[5];
- linecoding.datatype = Buf[6];
- /* Set the new configuration */
- VCP_COMConfig(OTHER_CONFIG);
- break;
-
- case GET_LINE_CODING:
- Buf[0] = (uint8_t)(linecoding.bitrate);
- Buf[1] = (uint8_t)(linecoding.bitrate >> 8);
- Buf[2] = (uint8_t)(linecoding.bitrate >> 16);
- Buf[3] = (uint8_t)(linecoding.bitrate >> 24);
- Buf[4] = linecoding.format;
- Buf[5] = linecoding.paritytype;
- Buf[6] = linecoding.datatype;
-
- break;
-
- case SET_CONTROL_LINE_STATE:
- if(wValue & 1)
- {
- u8PortReady = 1;
- }
- else
- {
- u8PortReady = 0;
- }
-
-
- /* Not needed for this driver */
- break;
-
- case SEND_BREAK:
- cacheCmd = Cmd;
- /* Not needed for this driver */
- break;
-
- default:
- cacheCmd = Cmd;
- break;
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief VCP_DataTx
- * CDC received data to be send over USB IN endpoint are managed in
- * this function.
- * @param Buf: Buffer of data to be sent
- * @param Len: Number of data to be sent (in bytes)
- * @retval Result of the opeartion: USBD_OK if all operations are OK else VCP_FAIL
- */
-static uint16_t VCP_DataTx (uint8_t* Buf, uint32_t Len)
-{
- uint32_t i = 0;
-
- for(i=0; i© COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBD_CDC_VCP_H
-#define __USBD_CDC_VCP_H
-
-/* Includes ------------------------------------------------------------------*/
-
-#include "stm32f4xx.h"
-#include "usbd_cdc_core.h"
-#include "usbd_conf.h"
-
-
-/* Exported typef ------------------------------------------------------------*/
-/* The following structures groups all needed parameters to be configured for the
- ComPort. These parameters can modified on the fly by the host through CDC class
- command class requests. */
-typedef struct
-{
- uint32_t bitrate;
- uint8_t format;
- uint8_t paritytype;
- uint8_t datatype;
-}LINE_CODING;
-
-/* Exported constants --------------------------------------------------------*/
-/* The following define is used to route the USART IRQ handler to be used.
- The IRQ handler function is implemented in the usbd_cdc_vcp.c file. */
-
-
-#define DEFAULT_CONFIG 0
-#define OTHER_CONFIG 1
-
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-uint16_t USB_VCOM_Send(char* buf, uint32_t len);
-
-#endif /* __USBD_CDC_VCP_H */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_conf.h b/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_conf.h
deleted file mode 100755
index 23dd508..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_conf.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_conf.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief USB Device configuration file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBD_CONF__H__
-#define __USBD_CONF__H__
-
-/* Includes ------------------------------------------------------------------*/
-
-/** @defgroup USB_CONF_Exported_Defines
- * @{
- */
-#define USBD_CFG_MAX_NUM 1
-#define USBD_ITF_MAX_NUM 1
-#define USB_MAX_STR_DESC_SIZ 50
-
-/** @defgroup USB_VCP_Class_Layer_Parameter
- * @{
- */
-#define CDC_IN_EP 0x81 /* EP1 for data IN */
-#define CDC_OUT_EP 0x01 /* EP1 for data OUT */
-#define CDC_CMD_EP 0x82 /* EP2 for CDC commands */
-
-/* CDC Endpoints parameters: you can fine tune these values depending on the needed baudrates and performance. */
-
- #define CDC_DATA_MAX_PACKET_SIZE 64 /* Endpoint IN & OUT Packet size */
- #define CDC_CMD_PACKET_SZE 8 /* Control Endpoint Packet size */
-
- #define CDC_IN_FRAME_INTERVAL 5 /* Number of frames between IN transfers */
- #define APP_RX_DATA_SIZE 2048 /* Total size of IN buffer:
- APP_RX_DATA_SIZE*8/MAX_BAUDARATE*1000 should be > CDC_IN_FRAME_INTERVAL */
-#define APP_FOPS VCP_fops
-/**
- * @}
- */
-
-/** @defgroup USB_CONF_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_CONF_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_CONF_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_CONF_Exported_FunctionsPrototype
- * @{
- */
-/**
- * @}
- */
-
-
-#endif //__USBD_CONF__H__
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_desc.c b/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_desc.c
deleted file mode 100755
index 0f8cb9e..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_desc.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_desc.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides the USBD descriptors and string formating method.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_core.h"
-#include "usbd_desc.h"
-#include "usbd_req.h"
-#include "usbd_conf.h"
-#include "usb_regs.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup USBD_DESC
- * @brief USBD descriptors module
- * @{
- */
-
-/** @defgroup USBD_DESC_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_DESC_Private_Defines
- * @{
- */
-#define USBD_VID 0x0483
-
-#define USBD_PID 0x5740
-
-/** @defgroup USB_String_Descriptors
- * @{
- */
-#define USBD_LANGID_STRING 0x409
-#define USBD_MANUFACTURER_STRING "NoizeTronics"
-
-#define USBD_PRODUCT_HS_STRING "cm4_discovery vcp in hs mode"
-#define USBD_SERIALNUMBER_HS_STRING "00000000050B"
-
-#define USBD_PRODUCT_FS_STRING "cm4_discovery vcp in fs Mode"
-#define USBD_SERIALNUMBER_FS_STRING "00000000050C"
-
-#define USBD_CONFIGURATION_HS_STRING "VCP Config"
-#define USBD_INTERFACE_HS_STRING "VCP Interface"
-
-#define USBD_CONFIGURATION_FS_STRING "VCP Config"
-#define USBD_INTERFACE_FS_STRING "VCP Interface"
-/**
- * @}
- */
-
-
-/** @defgroup USBD_DESC_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_DESC_Private_Variables
- * @{
- */
-
-USBD_DEVICE USR_desc =
-{
- USBD_USR_DeviceDescriptor,
- USBD_USR_LangIDStrDescriptor,
- USBD_USR_ManufacturerStrDescriptor,
- USBD_USR_ProductStrDescriptor,
- USBD_USR_SerialStrDescriptor,
- USBD_USR_ConfigStrDescriptor,
- USBD_USR_InterfaceStrDescriptor,
-
-};
-
-
-/* USB Standard Device Descriptor */
-__ALIGN_BEGIN uint8_t USBD_DeviceDesc[USB_SIZ_DEVICE_DESC] __ALIGN_END =
- {
- 0x12, /*bLength */
- USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/
- 0x00, /*bcdUSB */
- 0x02,
- 0x00, /*bDeviceClass*/
- 0x00, /*bDeviceSubClass*/
- 0x00, /*bDeviceProtocol*/
- USB_OTG_MAX_EP0_SIZE, /*bMaxPacketSize*/
- LOBYTE(USBD_VID), /*idVendor*/
- HIBYTE(USBD_VID), /*idVendor*/
- LOBYTE(USBD_PID), /*idVendor*/
- HIBYTE(USBD_PID), /*idVendor*/
- 0x00, /*bcdDevice rel. 2.00*/
- 0x02,
- USBD_IDX_MFC_STR, /*Index of manufacturer string*/
- USBD_IDX_PRODUCT_STR, /*Index of product string*/
- USBD_IDX_SERIAL_STR, /*Index of serial number string*/
- USBD_CFG_MAX_NUM /*bNumConfigurations*/
- } ; /* USB_DeviceDescriptor */
-
-/* USB Standard Device Descriptor */
-__ALIGN_BEGIN uint8_t USBD_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END =
-{
- USB_LEN_DEV_QUALIFIER_DESC,
- USB_DESC_TYPE_DEVICE_QUALIFIER,
- 0x00,
- 0x02,
- 0x00,
- 0x00,
- 0x00,
- 0x40,
- 0x01,
- 0x00,
-};
-
-
-/* USB Standard Device Descriptor */
-__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_SIZ_STRING_LANGID] __ALIGN_END =
-{
- USB_SIZ_STRING_LANGID,
- USB_DESC_TYPE_STRING,
- LOBYTE(USBD_LANGID_STRING),
- HIBYTE(USBD_LANGID_STRING),
-};
-/**
- * @}
- */
-
-
-/** @defgroup USBD_DESC_Private_FunctionPrototypes
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_DESC_Private_Functions
- * @{
- */
-
-/**
-* @brief USBD_USR_DeviceDescriptor
-* return the device descriptor
-* @param speed : current device speed
-* @param length : pointer to data length variable
-* @retval pointer to descriptor buffer
-*/
-uint8_t * USBD_USR_DeviceDescriptor( uint8_t speed , uint16_t *length)
-{
- *length = sizeof(USBD_DeviceDesc);
- return USBD_DeviceDesc;
-}
-
-/**
-* @brief USBD_USR_LangIDStrDescriptor
-* return the LangID string descriptor
-* @param speed : current device speed
-* @param length : pointer to data length variable
-* @retval pointer to descriptor buffer
-*/
-uint8_t * USBD_USR_LangIDStrDescriptor( uint8_t speed , uint16_t *length)
-{
- *length = sizeof(USBD_LangIDDesc);
- return USBD_LangIDDesc;
-}
-
-
-/**
-* @brief USBD_USR_ProductStrDescriptor
-* return the product string descriptor
-* @param speed : current device speed
-* @param length : pointer to data length variable
-* @retval pointer to descriptor buffer
-*/
-uint8_t * USBD_USR_ProductStrDescriptor( uint8_t speed , uint16_t *length)
-{
-
-
- if(speed == 0)
- {
- USBD_GetString (USBD_PRODUCT_HS_STRING, USBD_StrDesc, length);
- }
- else
- {
- USBD_GetString (USBD_PRODUCT_FS_STRING, USBD_StrDesc, length);
- }
- return USBD_StrDesc;
-}
-
-/**
-* @brief USBD_USR_ManufacturerStrDescriptor
-* return the manufacturer string descriptor
-* @param speed : current device speed
-* @param length : pointer to data length variable
-* @retval pointer to descriptor buffer
-*/
-uint8_t * USBD_USR_ManufacturerStrDescriptor( uint8_t speed , uint16_t *length)
-{
- USBD_GetString (USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
- return USBD_StrDesc;
-}
-
-/**
-* @brief USBD_USR_SerialStrDescriptor
-* return the serial number string descriptor
-* @param speed : current device speed
-* @param length : pointer to data length variable
-* @retval pointer to descriptor buffer
-*/
-uint8_t * USBD_USR_SerialStrDescriptor( uint8_t speed , uint16_t *length)
-{
- if(speed == USB_OTG_SPEED_HIGH)
- {
- USBD_GetString (USBD_SERIALNUMBER_HS_STRING, USBD_StrDesc, length);
- }
- else
- {
- USBD_GetString (USBD_SERIALNUMBER_FS_STRING, USBD_StrDesc, length);
- }
- return USBD_StrDesc;
-}
-
-/**
-* @brief USBD_USR_ConfigStrDescriptor
-* return the configuration string descriptor
-* @param speed : current device speed
-* @param length : pointer to data length variable
-* @retval pointer to descriptor buffer
-*/
-uint8_t * USBD_USR_ConfigStrDescriptor( uint8_t speed , uint16_t *length)
-{
- if(speed == USB_OTG_SPEED_HIGH)
- {
- USBD_GetString (USBD_CONFIGURATION_HS_STRING, USBD_StrDesc, length);
- }
- else
- {
- USBD_GetString (USBD_CONFIGURATION_FS_STRING, USBD_StrDesc, length);
- }
- return USBD_StrDesc;
-}
-
-
-/**
-* @brief USBD_USR_InterfaceStrDescriptor
-* return the interface string descriptor
-* @param speed : current device speed
-* @param length : pointer to data length variable
-* @retval pointer to descriptor buffer
-*/
-uint8_t * USBD_USR_InterfaceStrDescriptor( uint8_t speed , uint16_t *length)
-{
- if(speed == 0)
- {
- USBD_GetString (USBD_INTERFACE_HS_STRING, USBD_StrDesc, length);
- }
- else
- {
- USBD_GetString (USBD_INTERFACE_FS_STRING, USBD_StrDesc, length);
- }
- return USBD_StrDesc;
-}
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_desc.h b/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_desc.h
deleted file mode 100755
index c6a8a39..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_desc.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_desc.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header file for the usbd_desc.c file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-
-#ifndef __USB_DESC_H
-#define __USB_DESC_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_def.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USB_DESC
- * @brief general defines for the usb device library file
- * @{
- */
-
-/** @defgroup USB_DESC_Exported_Defines
- * @{
- */
-#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 USB_SIZ_DEVICE_DESC 18
-#define USB_SIZ_STRING_LANGID 4
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_DESC_Exported_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_DESC_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USBD_DESC_Exported_Variables
- * @{
- */
-extern uint8_t USBD_DeviceDesc [USB_SIZ_DEVICE_DESC];
-extern uint8_t USBD_StrDesc[USB_MAX_STR_DESC_SIZ];
-extern uint8_t USBD_OtherSpeedCfgDesc[USB_LEN_CFG_DESC];
-extern uint8_t USBD_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC];
-extern uint8_t USBD_LangIDDesc[USB_SIZ_STRING_LANGID];
-extern USBD_DEVICE USR_desc;
-/**
- * @}
- */
-
-/** @defgroup USBD_DESC_Exported_FunctionsPrototype
- * @{
- */
-
-
-uint8_t * USBD_USR_DeviceDescriptor( uint8_t speed , uint16_t *length);
-uint8_t * USBD_USR_LangIDStrDescriptor( uint8_t speed , uint16_t *length);
-uint8_t * USBD_USR_ManufacturerStrDescriptor ( uint8_t speed , uint16_t *length);
-uint8_t * USBD_USR_ProductStrDescriptor ( uint8_t speed , uint16_t *length);
-uint8_t * USBD_USR_SerialStrDescriptor( uint8_t speed , uint16_t *length);
-uint8_t * USBD_USR_ConfigStrDescriptor( uint8_t speed , uint16_t *length);
-uint8_t * USBD_USR_InterfaceStrDescriptor( uint8_t speed , uint16_t *length);
-
-#ifdef USB_SUPPORT_USER_STRING_DESC
-uint8_t * USBD_USR_USRStringDesc (uint8_t speed, uint8_t idx , uint16_t *length);
-#endif /* USB_SUPPORT_USER_STRING_DESC */
-
-/**
- * @}
- */
-
-#endif /* __USBD_DESC_H */
-
-/**
- * @}
- */
-
-/**
-* @}
-*/
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_usr.c b/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_usr.c
deleted file mode 100755
index a116085..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/usbd_usr.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_usr.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file includes the user application layer
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_usr.h"
-#include "usbd_ioreq.h"
-
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
-* @{
-*/
-
-/** @defgroup USBD_USR
-* @brief This file includes the user application layer
-* @{
-*/
-
-/** @defgroup USBD_USR_Private_TypesDefinitions
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USBD_USR_Private_Defines
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USBD_USR_Private_Macros
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USBD_USR_Private_Variables
-* @{
-*/
-
-USBD_Usr_cb_TypeDef USR_cb =
-{
- USBD_USR_Init,
- USBD_USR_DeviceReset,
- USBD_USR_DeviceConfigured,
- USBD_USR_DeviceSuspended,
- USBD_USR_DeviceResumed,
-};
-
-/**
-* @}
-*/
-
-/** @defgroup USBD_USR_Private_Constants
-* @{
-*/
-
-/**
-* @}
-*/
-
-
-
-/** @defgroup USBD_USR_Private_FunctionPrototypes
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USBD_USR_Private_Functions
-* @{
-*/
-
-/**
-* @brief USBD_USR_Init
-* Displays the message on LCD for host lib initialization
-* @param None
-* @retval None
-*/
-void USBD_USR_Init(void)
-{
-}
-
-/**
-* @brief USBD_USR_DeviceReset
-* Displays the message on LCD on device Reset Event
-* @param speed : device speed
-* @retval None
-*/
-void USBD_USR_DeviceReset(uint8_t speed )
-{
-}
-
-
-/**
-* @brief USBD_USR_DeviceConfigured
-* Displays the message on LCD on device configuration Event
-* @param None
-* @retval Staus
-*/
-void USBD_USR_DeviceConfigured (void)
-{
-}
-
-/**
-* @brief USBD_USR_DeviceSuspended
-* Displays the message on LCD on device suspend Event
-* @param None
-* @retval None
-*/
-void USBD_USR_DeviceSuspended(void)
-{
-}
-
-
-/**
-* @brief USBD_USR_DeviceResumed
-* Displays the message on LCD on device resume Event
-* @param None
-* @retval None
-*/
-void USBD_USR_DeviceResumed(void)
-{
-}
-
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/driver/usb/vcp/vcp.mk b/source/firmware/arch/stm32f4xx/driver/usb/vcp/vcp.mk
deleted file mode 100755
index 1756bfd..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb/vcp/vcp.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-SUB_FOLDER += firmware/arch/stm32f4xx/driver/usb/vcp
-INCLUDES += firmware/arch/stm32f4xx/driver/usb/vcp
-#DOC_SRC += firmware/arch/stm32f4xx/driver/usb/vcp
diff --git a/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.c b/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.c
deleted file mode 100755
index a6e86e5..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * drv_usb_vport.c
- *
- * Created on: Feb 2, 2012
- * Author: tkl
- */
-
-#include
-#include
-
-#include "usb_vport.h"
-
-//-----------------------------------------------------------------------------
-struct {
- const void *callback;
- const void *parameter;
- char *buffer;
- unsigned int size;
-}usb_vport_obj;
-
-//------------------------------------------------------------------------------
-typedef void* (*stm32_usb_vport_cb_t)(const void*);
-
-//------------------------------------------------------------------------------
-int stm32_usb_vport_init(const stm32_usb_vport_t *this) {
- usb_vport_obj.callback = NULL;
- usb_vport_obj.parameter = NULL;
- usb_vport_obj.buffer = NULL;
- usb_vport_obj.size = 0;
- return 0;
-}
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_open(const void *this) {
-// USBD_Init(&USB_OTG_dev, USB_OTG_FS_CORE_ID, &USR_desc, &USBD_CDC_cb, &USR_cb);
-
- return 1;
-}
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_close(const void *this) {
- return 0;
-}
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_read(const void *this, char *buffer, int size) {
- int ret = -1;
- if(size >= usb_vport_obj.size) {
- // no rest
- memcpy(buffer, usb_vport_obj.buffer, usb_vport_obj.size);
- usb_vport_obj.buffer = NULL;
- ret = usb_vport_obj.size;
- usb_vport_obj.size = 0;
- }
- else if(size < usb_vport_obj.size) {
- memcpy(buffer, usb_vport_obj.buffer, size);
- usb_vport_obj.buffer += size;
- usb_vport_obj.size -= size;
- ret = size;
- /*
- if(NULL != usb_vport_obj.callback) {
- stm32_usb_vport_cb_t cb = usb_vport_obj.callback;
- cb(usb_vport_obj.parameter);
- }
- */
- }
- return ret;
-}
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_write(const void *this, const char *buffer, int size) {
- return USB_VCOM_Send((char *)buffer, size);
-}
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_set_cb(const void *this, const void *callback, const void *param) {
- if(NULL == callback) {
- return -1;
- }
- usb_vport_obj.callback = callback;
- usb_vport_obj.parameter = param;
- return 0;
-}
-
-//-----------------------------------------------------------------------------
-extern void data_in(unsigned char *buffer, unsigned int size) {
- if(NULL != usb_vport_obj.callback) {
- stm32_usb_vport_cb_t cb = usb_vport_obj.callback;
- usb_vport_obj.buffer = (char *)buffer;
- usb_vport_obj.size = size;
- cb(usb_vport_obj.parameter);
- }
-}
diff --git a/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.h b/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.h
deleted file mode 100755
index 1ea5692..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * drv_usb_vport_interface.h
- *
- * Created on: Feb 2, 2012
- * Author: tkl
- */
-
-#ifndef DRV_USB_VPORT_INTERFACE_H_
-#define DRV_USB_VPORT_INTERFACE_H_
-
-#include "uart.h"
-
-#include "usbd_cdc_core.h"
-#include "usbd_usr.h"
-#include "usbd_desc.h"
-#include "usbd_cdc_vcp.h"
-
-//! \brief Usb Device for stdout, stdin & stderr.
-__ALIGN_BEGIN USB_OTG_CORE_HANDLE USB_OTG_dev __ALIGN_END ;
-
-//-----------------------------------------------------------------------------
-typedef struct {
-}stm32_usb_vport_t;
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_init(const stm32_usb_vport_t *this);
-
-//-----------------------------------------------------------------------------
-//! \brief open the virual com port device
-int stm32_usb_vport_open(const void *this);
-
-//-----------------------------------------------------------------------------
-//! \brief close the virual com port device
-int stm32_usb_vport_close(const void *this);
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_read(const void *this, char *buffer, int size);
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_write(const void *this, const char *buffer, int size);
-
-//-----------------------------------------------------------------------------
-int stm32_usb_vport_set_cb(const void *this, const void *callback, const void *param);
-
-//------------------------------------------------------------------------------
-static const struct uart_fp usb_vport_fp = {
- stm32_usb_vport_open,
- stm32_usb_vport_close,
- stm32_usb_vport_read,
- stm32_usb_vport_write,
- stm32_usb_vport_set_cb
-};
-
-#endif /* DRV_USB_VPORT_INTERFACE_H_ */
diff --git a/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.mk b/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.mk
deleted file mode 100755
index ff59669..0000000
--- a/source/firmware/arch/stm32f4xx/driver/usb_vport/usb_vport.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-CHECK_FOLDER += firmware/arch/stm32f4xx/driver/usb_vport
-SUB_FOLDER += firmware/arch/stm32f4xx/driver/usb_vport
-INCLUDES += firmware/arch/stm32f4xx/driver/usb_vport
-DOC_SRC += firmware/arch/stm32f4xx/driver/usb_vport
\ No newline at end of file
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/inc/usbd_audio_core.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/inc/usbd_audio_core.h
deleted file mode 100755
index 6892c1d..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/inc/usbd_audio_core.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_audio_core.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header file for the usbd_audio_core.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-
-#ifndef __USB_AUDIO_CORE_H_
-#define __USB_AUDIO_CORE_H_
-
-#include "usbd_ioreq.h"
-#include "usbd_req.h"
-#include "usbd_desc.h"
-
-
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup usbd_audio
- * @brief This file is the Header file for USBD_audio.c
- * @{
- */
-
-
-/** @defgroup usbd_audio_Exported_Defines
- * @{
- */
-
-/* AudioFreq * DataSize (2 bytes) * NumChannels (Stereo: 2) */
-#define AUDIO_OUT_PACKET (uint32_t)(((USBD_AUDIO_FREQ * 2 * 2) /1000))
-
-/* Number of sub-packets in the audio transfer buffer. You can modify this value but always make sure
- that it is an even number and higher than 3 */
-#define OUT_PACKET_NUM 4
-/* Total size of the audio transfer buffer */
-#define TOTAL_OUT_BUF_SIZE ((uint32_t)(AUDIO_OUT_PACKET * OUT_PACKET_NUM))
-
-#define AUDIO_CONFIG_DESC_SIZE 109
-#define AUDIO_INTERFACE_DESC_SIZE 9
-#define USB_AUDIO_DESC_SIZ 0x09
-#define AUDIO_STANDARD_ENDPOINT_DESC_SIZE 0x09
-#define AUDIO_STREAMING_ENDPOINT_DESC_SIZE 0x07
-
-#define AUDIO_DESCRIPTOR_TYPE 0x21
-#define USB_DEVICE_CLASS_AUDIO 0x01
-#define AUDIO_SUBCLASS_AUDIOCONTROL 0x01
-#define AUDIO_SUBCLASS_AUDIOSTREAMING 0x02
-#define AUDIO_PROTOCOL_UNDEFINED 0x00
-#define AUDIO_STREAMING_GENERAL 0x01
-#define AUDIO_STREAMING_FORMAT_TYPE 0x02
-
-/* Audio Descriptor Types */
-#define AUDIO_INTERFACE_DESCRIPTOR_TYPE 0x24
-#define AUDIO_ENDPOINT_DESCRIPTOR_TYPE 0x25
-
-/* Audio Control Interface Descriptor Subtypes */
-#define AUDIO_CONTROL_HEADER 0x01
-#define AUDIO_CONTROL_INPUT_TERMINAL 0x02
-#define AUDIO_CONTROL_OUTPUT_TERMINAL 0x03
-#define AUDIO_CONTROL_FEATURE_UNIT 0x06
-
-#define AUDIO_INPUT_TERMINAL_DESC_SIZE 0x0C
-#define AUDIO_OUTPUT_TERMINAL_DESC_SIZE 0x09
-#define AUDIO_STREAMING_INTERFACE_DESC_SIZE 0x07
-
-#define AUDIO_CONTROL_MUTE 0x0001
-
-#define AUDIO_FORMAT_TYPE_I 0x01
-#define AUDIO_FORMAT_TYPE_III 0x03
-
-#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
-#define AUDIO_ENDPOINT_GENERAL 0x01
-
-#define AUDIO_REQ_GET_CUR 0x81
-#define AUDIO_REQ_SET_CUR 0x01
-
-#define AUDIO_OUT_STREAMING_CTRL 0x02
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_CORE_Exported_TypesDefinitions
- * @{
- */
-typedef struct _Audio_Fops
-{
- uint8_t (*Init) (uint32_t AudioFreq, uint32_t Volume, uint32_t options);
- uint8_t (*DeInit) (uint32_t options);
- uint8_t (*AudioCmd) (uint8_t* pbuf, uint32_t size, uint8_t cmd);
- uint8_t (*VolumeCtl) (uint8_t vol);
- uint8_t (*MuteCtl) (uint8_t cmd);
- uint8_t (*PeriodicTC) (uint8_t cmd);
- uint8_t (*GetState) (void);
-}AUDIO_FOPS_TypeDef;
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_CORE_Exported_Macros
- * @{
- */
-#define AUDIO_PACKET_SZE(frq) (uint8_t)(((frq * 2 * 2)/1000) & 0xFF), \
- (uint8_t)((((frq * 2 * 2)/1000) >> 8) & 0xFF)
-#define SAMPLE_FREQ(frq) (uint8_t)(frq), (uint8_t)((frq >> 8)), (uint8_t)((frq >> 16))
-/**
- * @}
- */
-
-/** @defgroup USBD_CORE_Exported_Variables
- * @{
- */
-
-extern USBD_Class_cb_TypeDef AUDIO_cb;
-
-/**
- * @}
- */
-
-/** @defgroup USB_CORE_Exported_Functions
- * @{
- */
-/**
- * @}
- */
-
-#endif // __USB_AUDIO_CORE_H_
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/inc/usbd_audio_out_if.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/inc/usbd_audio_out_if.h
deleted file mode 100755
index 36db415..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/inc/usbd_audio_out_if.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_audio_out_if.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header file for the usbd_audio_out_if.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-
-#ifndef __USB_AUDIO_OUT_IF_H_
-#define __USB_AUDIO_OUT_IF_H_
-
-#ifdef STM32F2XX
- #include "stm322xg_usb_audio_codec.h"
-#elif defined(STM32F10X_CL)
- #include "stm3210c_usb_audio_codec.h"
-#endif /* STM32F2XX */
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup usbd_audio
- * @brief This file is the Header file for USBD_audio.c
- * @{
- */
-
-
-/** @defgroup usbd_audio_Exported_Defines
- * @{
- */
-/* Audio Commands enmueration */
-typedef enum
-{
- AUDIO_CMD_PLAY = 1,
- AUDIO_CMD_PAUSE,
- AUDIO_CMD_STOP,
-}AUDIO_CMD_TypeDef;
-
-/* Mute commands */
-#define AUDIO_MUTE 0x01
-#define AUDIO_UNMUTE 0x00
-
-/* Functions return value */
-#define AUDIO_OK 0x00
-#define AUDIO_FAIL 0xFF
-
-/* Audio Machine States */
-#define AUDIO_STATE_INACTIVE 0x00
-#define AUDIO_STATE_ACTIVE 0x01
-#define AUDIO_STATE_PLAYING 0x02
-#define AUDIO_STATE_PAUSED 0x03
-#define AUDIO_STATE_STOPPED 0x04
-#define AUDIO_STATE_ERROR 0x05
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_CORE_Exported_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_CORE_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USBD_CORE_Exported_Variables
- * @{
- */
-
-extern AUDIO_FOPS_TypeDef AUDIO_OUT_fops;
-
-/**
- * @}
- */
-
-/** @defgroup USB_CORE_Exported_Functions
- * @{
- */
-/**
- * @}
- */
-
-#endif /* __USB_AUDIO_OUT_IF_H_ */
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/src/usbd_audio_core.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/src/usbd_audio_core.c
deleted file mode 100755
index 6b73d29..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/src/usbd_audio_core.c
+++ /dev/null
@@ -1,665 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_audio_core.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides the high layer firmware functions to manage the
- * following functionalities of the USB Audio Class:
- * - Initialization and Configuration of high and low layer
- * - Enumeration as Audio Streaming Device
- * - Audio Streaming data transfer
- * - AudioControl requests management
- * - Error management
- *
- * @verbatim
- *
- * ===================================================================
- * Audio Class Driver Description
- * ===================================================================
- * This driver manages the Audio Class 1.0 following the "USB Device Class Definition for
- * Audio Devices V1.0 Mar 18, 98".
- * This driver implements the following aspects of the specification:
- * - Device descriptor management
- * - Configuration descriptor management
- * - Standard AC Interface Descriptor management
- * - 1 Audio Streaming Interface (with single channel, PCM, Stereo mode)
- * - 1 Audio Streaming Endpoint
- * - 1 Audio Terminal Input (1 channel)
- * - Audio Class-Specific AC Interfaces
- * - Audio Class-Specific AS Interfaces
- * - AudioControl Requests: only SET_CUR and GET_CUR requests are supported (for Mute)
- * - Audio Feature Unit (limited to Mute control)
- * - Audio Synchronization type: Asynchronous
- * - Single fixed audio sampling rate (configurable in usbd_conf.h file)
- *
- * @note
- * The Audio Class 1.0 is based on USB Specification 1.0 and thus supports only
- * Low and Full speed modes and does not allow High Speed transfers.
- * Please refer to "USB Device Class Definition for Audio Devices V1.0 Mar 18, 98"
- * for more details.
- *
- * These aspects may be enriched or modified for a specific user application.
- *
- * This driver doesn't implement the following aspects of the specification
- * (but it is possible to manage these features with some modifications on this driver):
- * - AudioControl Endpoint management
- * - AudioControl requsests other than SET_CUR and GET_CUR
- * - Abstraction layer for AudioControl requests (only Mute functionality is managed)
- * - Audio Synchronization type: Adaptive
- * - Audio Compression modules and interfaces
- * - MIDI interfaces and modules
- * - Mixer/Selector/Processing/Extension Units (Feature unit is limited to Mute control)
- * - Any other application-specific modules
- * - Multiple and Variable audio sampling rates
- * - Out Streaming Endpoint/Interface (microphone)
- *
- * @endverbatim
- *
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-
-#include "usbd_audio_core.h"
-#include "usbd_audio_out_if.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup usbd_audio
- * @brief usbd core module
- * @{
- */
-
-/** @defgroup usbd_audio_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_audio_Private_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_audio_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_audio_Private_FunctionPrototypes
- * @{
- */
-
-/*********************************************
- AUDIO Device library callbacks
- *********************************************/
-static uint8_t usbd_audio_Init (void *pdev, uint8_t cfgidx);
-static uint8_t usbd_audio_DeInit (void *pdev, uint8_t cfgidx);
-static uint8_t usbd_audio_Setup (void *pdev, USB_SETUP_REQ *req);
-static uint8_t usbd_audio_EP0_RxReady(void *pdev);
-static uint8_t usbd_audio_DataIn (void *pdev, uint8_t epnum);
-static uint8_t usbd_audio_DataOut (void *pdev, uint8_t epnum);
-static uint8_t usbd_audio_SOF (void *pdev);
-static uint8_t usbd_audio_OUT_Incplt (void *pdev);
-
-/*********************************************
- AUDIO Requests management functions
- *********************************************/
-static void AUDIO_Req_GetCurrent(void *pdev, USB_SETUP_REQ *req);
-static void AUDIO_Req_SetCurrent(void *pdev, USB_SETUP_REQ *req);
-static uint8_t *USBD_audio_GetCfgDesc (uint8_t speed, uint16_t *length);
-/**
- * @}
- */
-
-/** @defgroup usbd_audio_Private_Variables
- * @{
- */
-/* Main Buffer for Audio Data Out transfers and its relative pointers */
-uint8_t IsocOutBuff [TOTAL_OUT_BUF_SIZE * 2];
-uint8_t* IsocOutWrPtr = IsocOutBuff;
-uint8_t* IsocOutRdPtr = IsocOutBuff;
-
-/* Main Buffer for Audio Control Rrequests transfers and its relative variables */
-uint8_t AudioCtl[64];
-uint8_t AudioCtlCmd = 0;
-uint32_t AudioCtlLen = 0;
-uint8_t AudioCtlUnit = 0;
-
-static uint32_t PlayFlag = 0;
-
-static __IO uint32_t usbd_audio_AltSet = 0;
-static uint8_t usbd_audio_CfgDesc[AUDIO_CONFIG_DESC_SIZE];
-
-/* AUDIO interface class callbacks structure */
-USBD_Class_cb_TypeDef AUDIO_cb =
-{
- usbd_audio_Init,
- usbd_audio_DeInit,
- usbd_audio_Setup,
- NULL, /* EP0_TxSent */
- usbd_audio_EP0_RxReady,
- usbd_audio_DataIn,
- usbd_audio_DataOut,
- usbd_audio_SOF,
- NULL,
- usbd_audio_OUT_Incplt,
- USBD_audio_GetCfgDesc,
-#ifdef USB_OTG_HS_CORE
- USBD_audio_GetCfgDesc, /* use same config as per FS */
-#endif
-};
-
-/* USB AUDIO device Configuration Descriptor */
-static uint8_t usbd_audio_CfgDesc[AUDIO_CONFIG_DESC_SIZE] =
-{
- /* Configuration 1 */
- 0x09, /* bLength */
- USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType */
- LOBYTE(AUDIO_CONFIG_DESC_SIZE), /* wTotalLength 109 bytes*/
- HIBYTE(AUDIO_CONFIG_DESC_SIZE),
- 0x02, /* bNumInterfaces */
- 0x01, /* bConfigurationValue */
- 0x00, /* iConfiguration */
- 0xC0, /* bmAttributes BUS Powred*/
- 0x32, /* bMaxPower = 100 mA*/
- /* 09 byte*/
-
- /* USB Speaker Standard interface descriptor */
- AUDIO_INTERFACE_DESC_SIZE, /* bLength */
- USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- 0x00, /* bInterfaceNumber */
- 0x00, /* bAlternateSetting */
- 0x00, /* bNumEndpoints */
- USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */
- AUDIO_SUBCLASS_AUDIOCONTROL, /* bInterfaceSubClass */
- AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */
- 0x00, /* iInterface */
- /* 09 byte*/
-
- /* USB Speaker Class-specific AC Interface Descriptor */
- AUDIO_INTERFACE_DESC_SIZE, /* bLength */
- AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- AUDIO_CONTROL_HEADER, /* bDescriptorSubtype */
- 0x00, /* 1.00 */ /* bcdADC */
- 0x01,
- 0x27, /* wTotalLength = 39*/
- 0x00,
- 0x01, /* bInCollection */
- 0x01, /* baInterfaceNr */
- /* 09 byte*/
-
- /* USB Speaker Input Terminal Descriptor */
- AUDIO_INPUT_TERMINAL_DESC_SIZE, /* bLength */
- AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- AUDIO_CONTROL_INPUT_TERMINAL, /* bDescriptorSubtype */
- 0x01, /* bTerminalID */
- 0x01, /* wTerminalType AUDIO_TERMINAL_USB_STREAMING 0x0101 */
- 0x01,
- 0x00, /* bAssocTerminal */
- 0x01, /* bNrChannels */
- 0x00, /* wChannelConfig 0x0000 Mono */
- 0x00,
- 0x00, /* iChannelNames */
- 0x00, /* iTerminal */
- /* 12 byte*/
-
- /* USB Speaker Audio Feature Unit Descriptor */
- 0x09, /* bLength */
- AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- AUDIO_CONTROL_FEATURE_UNIT, /* bDescriptorSubtype */
- AUDIO_OUT_STREAMING_CTRL, /* bUnitID */
- 0x01, /* bSourceID */
- 0x01, /* bControlSize */
- AUDIO_CONTROL_MUTE, /* bmaControls(0) */
- 0x00, /* bmaControls(1) */
- 0x00, /* iTerminal */
- /* 09 byte*/
-
- /*USB Speaker Output Terminal Descriptor */
- 0x09, /* bLength */
- AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- AUDIO_CONTROL_OUTPUT_TERMINAL, /* bDescriptorSubtype */
- 0x03, /* bTerminalID */
- 0x01, /* wTerminalType 0x0301*/
- 0x03,
- 0x00, /* bAssocTerminal */
- 0x02, /* bSourceID */
- 0x00, /* iTerminal */
- /* 09 byte*/
-
- /* USB Speaker Standard AS Interface Descriptor - Audio Streaming Zero Bandwith */
- /* Interface 1, Alternate Setting 0 */
- AUDIO_INTERFACE_DESC_SIZE, /* bLength */
- USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- 0x01, /* bInterfaceNumber */
- 0x00, /* bAlternateSetting */
- 0x00, /* bNumEndpoints */
- USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */
- AUDIO_SUBCLASS_AUDIOSTREAMING, /* bInterfaceSubClass */
- AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */
- 0x00, /* iInterface */
- /* 09 byte*/
-
- /* USB Speaker Standard AS Interface Descriptor - Audio Streaming Operational */
- /* Interface 1, Alternate Setting 1 */
- AUDIO_INTERFACE_DESC_SIZE, /* bLength */
- USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- 0x01, /* bInterfaceNumber */
- 0x01, /* bAlternateSetting */
- 0x01, /* bNumEndpoints */
- USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */
- AUDIO_SUBCLASS_AUDIOSTREAMING, /* bInterfaceSubClass */
- AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */
- 0x00, /* iInterface */
- /* 09 byte*/
-
- /* USB Speaker Audio Streaming Interface Descriptor */
- AUDIO_STREAMING_INTERFACE_DESC_SIZE, /* bLength */
- AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- AUDIO_STREAMING_GENERAL, /* bDescriptorSubtype */
- 0x01, /* bTerminalLink */
- 0x01, /* bDelay */
- 0x01, /* wFormatTag AUDIO_FORMAT_PCM 0x0001*/
- 0x00,
- /* 07 byte*/
-
- /* USB Speaker Audio Type III Format Interface Descriptor */
- 0x0B, /* bLength */
- AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
- AUDIO_STREAMING_FORMAT_TYPE, /* bDescriptorSubtype */
- AUDIO_FORMAT_TYPE_III, /* bFormatType */
- 0x02, /* bNrChannels */
- 0x02, /* bSubFrameSize : 2 Bytes per frame (16bits) */
- 16, /* bBitResolution (16-bits per sample) */
- 0x01, /* bSamFreqType only one frequency supported */
- SAMPLE_FREQ(USBD_AUDIO_FREQ), /* Audio sampling frequency coded on 3 bytes */
- /* 11 byte*/
-
- /* Endpoint 1 - Standard Descriptor */
- AUDIO_STANDARD_ENDPOINT_DESC_SIZE, /* bLength */
- USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
- AUDIO_OUT_EP, /* bEndpointAddress 1 out endpoint*/
- USB_ENDPOINT_TYPE_ISOCHRONOUS, /* bmAttributes */
- AUDIO_PACKET_SZE(USBD_AUDIO_FREQ), /* wMaxPacketSize in Bytes (Freq(Samples)*2(Stereo)*2(HalfWord)) */
- 0x01, /* bInterval */
- 0x00, /* bRefresh */
- 0x00, /* bSynchAddress */
- /* 09 byte*/
-
- /* Endpoint - Audio Streaming Descriptor*/
- AUDIO_STREAMING_ENDPOINT_DESC_SIZE, /* bLength */
- AUDIO_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
- AUDIO_ENDPOINT_GENERAL, /* bDescriptor */
- 0x00, /* bmAttributes */
- 0x00, /* bLockDelayUnits */
- 0x00, /* wLockDelay */
- 0x00,
- /* 07 byte*/
-} ;
-
-/**
- * @}
- */
-
-/** @defgroup usbd_audio_Private_Functions
- * @{
- */
-
-/**
-* @brief usbd_audio_Init
-* Initilaizes the AUDIO interface.
-* @param pdev: device instance
-* @param cfgidx: Configuration index
-* @retval status
-*/
-static uint8_t usbd_audio_Init (void *pdev,
- uint8_t cfgidx)
-{
- /* Open EP OUT */
- DCD_EP_Open(pdev,
- AUDIO_OUT_EP,
- AUDIO_OUT_PACKET,
- USB_OTG_EP_ISOC);
-
- /* Initialize the Audio output Hardware layer */
- if (AUDIO_OUT_fops.Init(USBD_AUDIO_FREQ, DEFAULT_VOLUME, 0) != USBD_OK)
- {
- return USBD_FAIL;
- }
-
- /* Prepare Out endpoint to receive audio data */
- DCD_EP_PrepareRx(pdev,
- AUDIO_OUT_EP,
- (uint8_t*)IsocOutBuff,
- AUDIO_OUT_PACKET);
-
- return USBD_OK;
-}
-
-/**
-* @brief usbd_audio_Init
-* DeInitializes the AUDIO layer.
-* @param pdev: device instance
-* @param cfgidx: Configuration index
-* @retval status
-*/
-static uint8_t usbd_audio_DeInit (void *pdev,
- uint8_t cfgidx)
-{
- DCD_EP_Close (pdev , AUDIO_OUT_EP);
-
- /* DeInitialize the Audio output Hardware layer */
- if (AUDIO_OUT_fops.DeInit(0) != USBD_OK)
- {
- return USBD_FAIL;
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_Setup
- * Handles the Audio control request parsing.
- * @param pdev: instance
- * @param req: usb requests
- * @retval status
- */
-static uint8_t usbd_audio_Setup (void *pdev,
- USB_SETUP_REQ *req)
-{
- uint16_t len;
- uint8_t *pbuf;
-
- switch (req->bmRequest & USB_REQ_TYPE_MASK)
- {
- /* AUDIO Class Requests -------------------------------*/
- case USB_REQ_TYPE_CLASS :
- switch (req->bRequest)
- {
- case AUDIO_REQ_GET_CUR:
- AUDIO_Req_GetCurrent(pdev, req);
- break;
-
- case AUDIO_REQ_SET_CUR:
- AUDIO_Req_SetCurrent(pdev, req);
- break;
-
- default:
- USBD_CtlError (pdev, req);
- return USBD_FAIL;
- }
- break;
-
- /* Standard Requests -------------------------------*/
- case USB_REQ_TYPE_STANDARD:
- switch (req->bRequest)
- {
- case USB_REQ_GET_DESCRIPTOR:
- if( (req->wValue >> 8) == AUDIO_DESCRIPTOR_TYPE)
- {
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- pbuf = usbd_audio_Desc;
-#else
- pbuf = usbd_audio_CfgDesc + 18;
-#endif
- len = MIN(USB_AUDIO_DESC_SIZ , req->wLength);
- }
-
- USBD_CtlSendData (pdev,
- pbuf,
- len);
- break;
-
- case USB_REQ_GET_INTERFACE :
- USBD_CtlSendData (pdev,
- (uint8_t *)&usbd_audio_AltSet,
- 1);
- break;
-
- case USB_REQ_SET_INTERFACE :
- if ((uint8_t)(req->wValue) < AUDIO_TOTAL_IF_NUM)
- {
- usbd_audio_AltSet = (uint8_t)(req->wValue);
- }
- else
- {
- /* Call the error management function (command will be nacked */
- USBD_CtlError (pdev, req);
- }
- break;
- }
- }
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_EP0_RxReady
- * Handles audio control requests data.
- * @param pdev: device device instance
- * @retval status
- */
-static uint8_t usbd_audio_EP0_RxReady (void *pdev)
-{
- /* Check if an AudioControl request has been issued */
- if (AudioCtlCmd == AUDIO_REQ_SET_CUR)
- {/* In this driver, to simplify code, only SET_CUR request is managed */
- /* Check for which addressed unit the AudioControl request has been issued */
- if (AudioCtlUnit == AUDIO_OUT_STREAMING_CTRL)
- {/* In this driver, to simplify code, only one unit is manage */
- /* Call the audio interface mute function */
- AUDIO_OUT_fops.MuteCtl(AudioCtl[0]);
-
- /* Reset the AudioCtlCmd variable to prevent re-entering this function */
- AudioCtlCmd = 0;
- AudioCtlLen = 0;
- }
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_DataIn
- * Handles the audio IN data stage.
- * @param pdev: instance
- * @param epnum: endpoint number
- * @retval status
- */
-static uint8_t usbd_audio_DataIn (void *pdev, uint8_t epnum)
-{
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_DataOut
- * Handles the Audio Out data stage.
- * @param pdev: instance
- * @param epnum: endpoint number
- * @retval status
- */
-static uint8_t usbd_audio_DataOut (void *pdev, uint8_t epnum)
-{
- if (epnum == AUDIO_OUT_EP)
- {
- /* Increment the Buffer pointer or roll it back when all buffers are full */
- if (IsocOutWrPtr >= (IsocOutBuff + (AUDIO_OUT_PACKET * OUT_PACKET_NUM)))
- {/* All buffers are full: roll back */
- IsocOutWrPtr = IsocOutBuff;
- }
- else
- {/* Increment the buffer pointer */
- IsocOutWrPtr += AUDIO_OUT_PACKET;
- }
-
- /* Toggle the frame index */
- ((USB_OTG_CORE_HANDLE*)pdev)->dev.out_ep[epnum].even_odd_frame =
- (((USB_OTG_CORE_HANDLE*)pdev)->dev.out_ep[epnum].even_odd_frame)? 0:1;
-
- /* Prepare Out endpoint to receive next audio packet */
- DCD_EP_PrepareRx(pdev,
- AUDIO_OUT_EP,
- (uint8_t*)(IsocOutWrPtr),
- AUDIO_OUT_PACKET);
-
- /* Trigger the start of streaming only when half buffer is full */
- if ((PlayFlag == 0) && (IsocOutWrPtr >= (IsocOutBuff + ((AUDIO_OUT_PACKET * OUT_PACKET_NUM) / 2))))
- {
- /* Enable start of Streaming */
- PlayFlag = 1;
- }
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_SOF
- * Handles the SOF event (data buffer update and synchronization).
- * @param pdev: instance
- * @param epnum: endpoint number
- * @retval status
- */
-static uint8_t usbd_audio_SOF (void *pdev)
-{
- /* Check if there are available data in stream buffer.
- In this function, a single variable (PlayFlag) is used to avoid software delays.
- The play operation must be executed as soon as possible after the SOF detection. */
- if (PlayFlag)
- {
- /* Start playing received packet */
- AUDIO_OUT_fops.AudioCmd((uint8_t*)(IsocOutRdPtr), /* Samples buffer pointer */
- AUDIO_OUT_PACKET, /* Number of samples in Bytes */
- AUDIO_CMD_PLAY); /* Command to be processed */
-
- /* Increment the Buffer pointer or roll it back when all buffers all full */
- if (IsocOutRdPtr >= (IsocOutBuff + (AUDIO_OUT_PACKET * OUT_PACKET_NUM)))
- {/* Roll back to the start of buffer */
- IsocOutRdPtr = IsocOutBuff;
- }
- else
- {/* Increment to the next sub-buffer */
- IsocOutRdPtr += AUDIO_OUT_PACKET;
- }
-
- /* If all available buffers have been consumed, stop playing */
- if (IsocOutRdPtr == IsocOutWrPtr)
- {
- /* Pause the audio stream */
- AUDIO_OUT_fops.AudioCmd((uint8_t*)(IsocOutBuff), /* Samples buffer pointer */
- AUDIO_OUT_PACKET, /* Number of samples in Bytes */
- AUDIO_CMD_PAUSE); /* Command to be processed */
-
- /* Stop entering play loop */
- PlayFlag = 0;
-
- /* Reset buffer pointers */
- IsocOutRdPtr = IsocOutBuff;
- IsocOutWrPtr = IsocOutBuff;
- }
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_OUT_Incplt
- * Handles the iso out incomplete event.
- * @param pdev: instance
- * @retval status
- */
-static uint8_t usbd_audio_OUT_Incplt (void *pdev)
-{
- return USBD_OK;
-}
-
-/******************************************************************************
- AUDIO Class requests management
-******************************************************************************/
-/**
- * @brief AUDIO_Req_GetCurrent
- * Handles the GET_CUR Audio control request.
- * @param pdev: instance
- * @param req: setup class request
- * @retval status
- */
-static void AUDIO_Req_GetCurrent(void *pdev, USB_SETUP_REQ *req)
-{
- /* Send the current mute state */
- USBD_CtlSendData (pdev,
- AudioCtl,
- req->wLength);
-}
-
-/**
- * @brief AUDIO_Req_SetCurrent
- * Handles the SET_CUR Audio control request.
- * @param pdev: instance
- * @param req: setup class request
- * @retval status
- */
-static void AUDIO_Req_SetCurrent(void *pdev, USB_SETUP_REQ *req)
-{
- if (req->wLength)
- {
- /* Prepare the reception of the buffer over EP0 */
- USBD_CtlPrepareRx (pdev,
- AudioCtl,
- req->wLength);
-
- /* Set the global variables indicating current request and its length
- to the function usbd_audio_EP0_RxReady() which will process the request */
- AudioCtlCmd = AUDIO_REQ_SET_CUR; /* Set the request value */
- AudioCtlLen = req->wLength; /* Set the request data length */
- AudioCtlUnit = HIBYTE(req->wIndex); /* Set the request target unit */
- }
-}
-
-/**
- * @brief USBD_audio_GetCfgDesc
- * Returns configuration descriptor.
- * @param speed : current device speed
- * @param length : pointer data length
- * @retval pointer to descriptor buffer
- */
-static uint8_t *USBD_audio_GetCfgDesc (uint8_t speed, uint16_t *length)
-{
- *length = sizeof (usbd_audio_CfgDesc);
- return usbd_audio_CfgDesc;
-}
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/src/usbd_audio_out_if.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/src/usbd_audio_out_if.c
deleted file mode 100755
index 37bff57..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/audio/src/usbd_audio_out_if.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_audio_out_if.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides the Audio Out (palyback) interface API.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_audio_core.h"
-#include "usbd_audio_out_if.h"
-
-
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup usbd_audio_out_if
- * @brief usbd out interface module
- * @{
- */
-
-/** @defgroup usbd_audio_out_if_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_audio_out_if_Private_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_audio_out_if_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_audio_out_if_Private_FunctionPrototypes
- * @{
- */
-static uint8_t Init (uint32_t AudioFreq, uint32_t Volume, uint32_t options);
-static uint8_t DeInit (uint32_t options);
-static uint8_t AudioCmd (uint8_t* pbuf, uint32_t size, uint8_t cmd);
-static uint8_t VolumeCtl (uint8_t vol);
-static uint8_t MuteCtl (uint8_t cmd);
-static uint8_t PeriodicTC (uint8_t cmd);
-static uint8_t GetState (void);
-
-/**
- * @}
- */
-
-/** @defgroup usbd_audio_out_if_Private_Variables
- * @{
- */
-AUDIO_FOPS_TypeDef AUDIO_OUT_fops =
-{
- Init,
- DeInit,
- AudioCmd,
- VolumeCtl,
- MuteCtl,
- PeriodicTC,
- GetState
-};
-
-static uint8_t AudioState = AUDIO_STATE_INACTIVE;
-
-/**
- * @}
- */
-
-/** @defgroup usbd_audio_out_if_Private_Functions
- * @{
- */
-
-/**
- * @brief Init
- * Initialize and configures all required resources for audio play function.
- * @param AudioFreq: Statrtup audio frequency.
- * @param Volume: Startup volume to be set.
- * @param options: specific options passed to low layer function.
- * @retval AUDIO_OK if all operations succeed, AUDIO_FAIL else.
- */
-static uint8_t Init (uint32_t AudioFreq,
- uint32_t Volume,
- uint32_t options)
-{
- static uint32_t Initialized = 0;
-
- /* Check if the low layer has already been initialized */
- if (Initialized == 0)
- {
- /* Call low layer function */
- if (EVAL_AUDIO_Init(OUTPUT_DEVICE_AUTO, Volume, AudioFreq) != 0)
- {
- AudioState = AUDIO_STATE_ERROR;
- return AUDIO_FAIL;
- }
-
- /* Set the Initialization flag to prevent reinitializing the interface again */
- Initialized = 1;
- }
-
- /* Update the Audio state machine */
- AudioState = AUDIO_STATE_ACTIVE;
-
- return AUDIO_OK;
-}
-
-/**
- * @brief DeInit
- * Free all resources used by low layer and stops audio-play function.
- * @param options: options passed to low layer function.
- * @retval AUDIO_OK if all operations succeed, AUDIO_FAIL else.
- */
-static uint8_t DeInit (uint32_t options)
-{
- /* Update the Audio state machine */
- AudioState = AUDIO_STATE_INACTIVE;
-
- return AUDIO_OK;
-}
-
-/**
- * @brief AudioCmd
- * Play, Stop, Pause or Resume current file.
- * @param pbuf: address from which file shoud be played.
- * @param size: size of the current buffer/file.
- * @param cmd: command to be executed, can be AUDIO_CMD_PLAY , AUDIO_CMD_PAUSE,
- * AUDIO_CMD_RESUME or AUDIO_CMD_STOP.
- * @retval AUDIO_OK if all operations succeed, AUDIO_FAIL else.
- */
-static uint8_t AudioCmd(uint8_t* pbuf,
- uint32_t size,
- uint8_t cmd)
-{
- /* Check the current state */
- if ((AudioState == AUDIO_STATE_INACTIVE) || (AudioState == AUDIO_STATE_ERROR))
- {
- AudioState = AUDIO_STATE_ERROR;
- return AUDIO_FAIL;
- }
-
- switch (cmd)
- {
- /* Process the PLAY command ----------------------------*/
- case AUDIO_CMD_PLAY:
- /* If current state is Active or Stopped */
- if ((AudioState == AUDIO_STATE_ACTIVE) || \
- (AudioState == AUDIO_STATE_STOPPED) || \
- (AudioState == AUDIO_STATE_PLAYING))
- {
- Audio_MAL_Play((uint32_t)pbuf, (size/2));
- AudioState = AUDIO_STATE_PLAYING;
- return AUDIO_OK;
- }
- /* If current state is Paused */
- else if (AudioState == AUDIO_STATE_PAUSED)
- {
- if (EVAL_AUDIO_PauseResume(AUDIO_RESUME, (uint32_t)pbuf, (size/2)) != 0)
- {
- AudioState = AUDIO_STATE_ERROR;
- return AUDIO_FAIL;
- }
- else
- {
- AudioState = AUDIO_STATE_PLAYING;
- return AUDIO_OK;
- }
- }
- else /* Not allowed command */
- {
- return AUDIO_FAIL;
- }
-
- /* Process the STOP command ----------------------------*/
- case AUDIO_CMD_STOP:
- if (AudioState != AUDIO_STATE_PLAYING)
- {
- /* Unsupported command */
- return AUDIO_FAIL;
- }
- else if (EVAL_AUDIO_Stop(CODEC_PDWN_SW) != 0)
- {
- AudioState = AUDIO_STATE_ERROR;
- return AUDIO_FAIL;
- }
- else
- {
- AudioState = AUDIO_STATE_STOPPED;
- return AUDIO_OK;
- }
-
- /* Process the PAUSE command ---------------------------*/
- case AUDIO_CMD_PAUSE:
- if (AudioState != AUDIO_STATE_PLAYING)
- {
- /* Unsupported command */
- return AUDIO_FAIL;
- }
- else if (EVAL_AUDIO_PauseResume(AUDIO_PAUSE, (uint32_t)pbuf, (size/2)) != 0)
- {
- AudioState = AUDIO_STATE_ERROR;
- return AUDIO_FAIL;
- }
- else
- {
- AudioState = AUDIO_STATE_PAUSED;
- return AUDIO_OK;
- }
-
- /* Unsupported command ---------------------------------*/
- default:
- return AUDIO_FAIL;
- }
-}
-
-/**
- * @brief VolumeCtl
- * Set the volume level in %
- * @param vol: volume level to be set in % (from 0% to 100%)
- * @retval AUDIO_OK if all operations succeed, AUDIO_FAIL else.
- */
-static uint8_t VolumeCtl (uint8_t vol)
-{
- /* Call low layer volume setting function */
- if (EVAL_AUDIO_VolumeCtl(vol) != 0)
- {
- AudioState = AUDIO_STATE_ERROR;
- return AUDIO_FAIL;
- }
-
- return AUDIO_OK;
-}
-
-/**
- * @brief MuteCtl
- * Mute or Unmute the audio current output
- * @param cmd: can be 0 to unmute, or 1 to mute.
- * @retval AUDIO_OK if all operations succeed, AUDIO_FAIL else.
- */
-static uint8_t MuteCtl (uint8_t cmd)
-{
- /* Call low layer mute setting function */
- if (EVAL_AUDIO_Mute(cmd) != 0)
- {
- AudioState = AUDIO_STATE_ERROR;
- return AUDIO_FAIL;
- }
-
- return AUDIO_OK;
-}
-
-/**
- * @brief
- *
- * @param
- * @param
- * @retval AUDIO_OK if all operations succeed, AUDIO_FAIL else.
- */
-static uint8_t PeriodicTC (uint8_t cmd)
-{
-
-
- return AUDIO_OK;
-}
-
-
-/**
- * @brief GetState
- * Return the current state of the audio machine
- * @param None
- * @retval Current State.
- */
-static uint8_t GetState (void)
-{
- return AudioState;
-}
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/cdc.mk b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/cdc.mk
deleted file mode 100755
index ebf2daf..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/cdc.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SUB_FOLDER += firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/src
-INCLUDES += firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/inc
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/inc/usbd_cdc_core.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/inc/usbd_cdc_core.h
deleted file mode 100755
index 6a3cf52..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/inc/usbd_cdc_core.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_cdc_core.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header file for the usbd_cdc_core.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-
-#ifndef __USB_CDC_CORE_H_
-#define __USB_CDC_CORE_H_
-
-#include "usbd_ioreq.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup usbd_cdc
- * @brief This file is the Header file for USBD_cdc.c
- * @{
- */
-
-
-/** @defgroup usbd_cdc_Exported_Defines
- * @{
- */
-#define USB_CDC_CONFIG_DESC_SIZ (67)
-#define USB_CDC_DESC_SIZ (67-9)
-
-#define CDC_DESCRIPTOR_TYPE 0x21
-
-#define DEVICE_CLASS_CDC 0x02
-#define DEVICE_SUBCLASS_CDC 0x00
-
-
-#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 STANDARD_ENDPOINT_DESC_SIZE 0x09
-
-#define CDC_DATA_IN_PACKET_SIZE *(uint16_t *)(((USB_OTG_CORE_HANDLE *)pdev)->dev.pConfig_descriptor + 57)
-
-#define CDC_DATA_OUT_PACKET_SIZE *(uint16_t *)(((USB_OTG_CORE_HANDLE *)pdev)->dev.pConfig_descriptor + 64)
-
-/*---------------------------------------------------------------------*/
-/* CDC definitions */
-/*---------------------------------------------------------------------*/
-
-/**************************************************/
-/* CDC Requests */
-/**************************************************/
-#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
-#define NO_CMD 0xFF
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_CORE_Exported_TypesDefinitions
- * @{
- */
-typedef struct _CDC_IF_PROP
-{
- uint16_t (*pIf_Init) (void);
- uint16_t (*pIf_DeInit) (void);
- uint16_t (*pIf_Ctrl) (uint32_t Cmd, uint32_t wValue, uint8_t* Buf, uint32_t Len);
- uint16_t (*pIf_DataTx) (uint8_t* Buf, uint32_t Len);
- uint16_t (*pIf_DataRx) (uint8_t* Buf, uint32_t Len);
-}
-CDC_IF_Prop_TypeDef;
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_CORE_Exported_Macros
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_CORE_Exported_Variables
- * @{
- */
-
-extern USBD_Class_cb_TypeDef USBD_CDC_cb;
-/**
- * @}
- */
-
-/** @defgroup USB_CORE_Exported_Functions
- * @{
- */
-/**
- * @}
- */
-
-#endif // __USB_CDC_CORE_H_
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/src/usbd_cdc_core.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/src/usbd_cdc_core.c
deleted file mode 100755
index 10f4057..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/src/usbd_cdc_core.c
+++ /dev/null
@@ -1,830 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_cdc_core.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides the high layer firmware functions to manage the
- * following functionalities of the USB CDC Class:
- * - Initialization and Configuration of high and low layer
- * - Enumeration as CDC Device (and enumeration for each implemented memory interface)
- * - OUT/IN data transfer
- * - Command IN transfer (class requests management)
- * - Error management
- *
- * @verbatim
- *
- * ===================================================================
- * CDC Class Driver Description
- * ===================================================================
- * This driver manages the "Universal Serial Bus Class Definitions for Communications Devices
- * Revision 1.2 November 16, 2007" and the sub-protocol specification of "Universal Serial Bus
- * Communications Class Subclass Specification for PSTN Devices Revision 1.2 February 9, 2007"
- * This driver implements the following aspects of the specification:
- * - Device descriptor management
- * - Configuration descriptor management
- * - Enumeration as CDC device with 2 data endpoints (IN and OUT) and 1 command endpoint (IN)
- * - Requests management (as described in section 6.2 in specification)
- * - Abstract Control Model compliant
- * - Union Functional collection (using 1 IN endpoint for control)
- * - Data interface class
-
- * @note
- * For the Abstract Control Model, this core allows only transmitting the requests to
- * lower layer dispatcher (ie. usbd_cdc_vcp.c/.h) which should manage each request and
- * perform relative actions.
- *
- * These aspects may be enriched or modified for a specific user application.
- *
- * This driver doesn't implement the following aspects of the specification
- * (but it is possible to manage these features with some modifications on this driver):
- * - Any class-specific aspect relative to communication classes should be managed by user application.
- * - All communication classes other than PSTN are not managed
- *
- * @endverbatim
- *
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_cdc_core.h"
-#include "usbd_desc.h"
-#include "usbd_req.h"
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup usbd_cdc
- * @brief usbd core module
- * @{
- */
-
-/** @defgroup usbd_cdc_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_cdc_Private_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_cdc_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_cdc_Private_FunctionPrototypes
- * @{
- */
-
-/*********************************************
- CDC Device library callbacks
- *********************************************/
-static uint8_t usbd_cdc_Init (void *pdev, uint8_t cfgidx);
-static uint8_t usbd_cdc_DeInit (void *pdev, uint8_t cfgidx);
-static uint8_t usbd_cdc_Setup (void *pdev, USB_SETUP_REQ *req);
-static uint8_t usbd_cdc_EP0_RxReady (void *pdev);
-static uint8_t usbd_cdc_DataIn (void *pdev, uint8_t epnum);
-static uint8_t usbd_cdc_DataOut (void *pdev, uint8_t epnum);
-static uint8_t usbd_cdc_SOF (void *pdev);
-
-/*********************************************
- CDC specific management functions
- *********************************************/
-static void Handle_USBAsynchXfer (void *pdev);
-static uint8_t *USBD_cdc_GetCfgDesc (uint8_t speed, uint16_t *length);
-#ifdef USE_USB_OTG_HS
-static uint8_t *USBD_cdc_GetOtherCfgDesc (uint8_t speed, uint16_t *length);
-#endif
-/**
- * @}
- */
-
-/** @defgroup usbd_cdc_Private_Variables
- * @{
- */
-extern CDC_IF_Prop_TypeDef APP_FOPS;
-extern uint8_t USBD_DeviceDesc [USB_SIZ_DEVICE_DESC];
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t usbd_cdc_CfgDesc [USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END ;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t usbd_cdc_OtherCfgDesc [USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END ;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN static __IO uint32_t usbd_cdc_AltSet __ALIGN_END = 0;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t USB_Rx_Buffer [CDC_DATA_MAX_PACKET_SIZE] __ALIGN_END ;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t APP_Rx_Buffer [APP_RX_DATA_SIZE] __ALIGN_END ;
-
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t CmdBuff[CDC_CMD_PACKET_SZE] __ALIGN_END ;
-
-uint32_t APP_Rx_ptr_in = 0;
-uint32_t APP_Rx_ptr_out = 0;
-uint32_t APP_Rx_length = 0;
-
-uint8_t USB_Tx_State = 0;
-
-static uint32_t cdcCmd = 0xFF;
-static uint32_t cdcLen = 0;
-
-/* CDC interface class callbacks structure */
-USBD_Class_cb_TypeDef USBD_CDC_cb =
-{
- usbd_cdc_Init,
- usbd_cdc_DeInit,
- usbd_cdc_Setup,
- NULL, /* EP0_TxSent, */
- usbd_cdc_EP0_RxReady,
- usbd_cdc_DataIn,
- usbd_cdc_DataOut,
- usbd_cdc_SOF,
- NULL,
- NULL,
- USBD_cdc_GetCfgDesc,
-#ifdef USE_USB_OTG_HS
- USBD_cdc_GetOtherCfgDesc, /* use same cobfig as per FS */
-#endif /* USE_USB_OTG_HS */
-};
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-/* USB CDC device Configuration Descriptor */
-__ALIGN_BEGIN uint8_t usbd_cdc_CfgDesc[USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END =
-{
- /*Configuration Descriptor*/
- 0x09, /* bLength: Configuration Descriptor size */
- USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */
- USB_CDC_CONFIG_DESC_SIZ, /* 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 Management 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 */
- CDC_CMD_EP, /* bEndpointAddress */
- 0x03, /* bmAttributes: Interrupt */
- LOBYTE(CDC_CMD_PACKET_SZE), /* wMaxPacketSize: */
- HIBYTE(CDC_CMD_PACKET_SZE),
-#ifdef USE_USB_OTG_HS
- 0x10, /* bInterval: */
-#else
- 0xFF, /* bInterval: */
-#endif /* USE_USB_OTG_HS */
-
- /*---------------------------------------------------------------------------*/
-
- /*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 OUT Descriptor*/
- 0x07, /* bLength: Endpoint Descriptor size */
- USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */
- CDC_OUT_EP, /* bEndpointAddress */
- 0x02, /* bmAttributes: Bulk */
- LOBYTE(CDC_DATA_MAX_PACKET_SIZE), /* wMaxPacketSize: */
- HIBYTE(CDC_DATA_MAX_PACKET_SIZE),
- 0x00, /* bInterval: ignore for Bulk transfer */
-
- /*Endpoint IN Descriptor*/
- 0x07, /* bLength: Endpoint Descriptor size */
- USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */
- CDC_IN_EP, /* bEndpointAddress */
- 0x02, /* bmAttributes: Bulk */
- LOBYTE(CDC_DATA_MAX_PACKET_SIZE), /* wMaxPacketSize: */
- HIBYTE(CDC_DATA_MAX_PACKET_SIZE),
- 0x00 /* bInterval: ignore for Bulk transfer */
-} ;
-
-#ifdef USE_USB_OTG_HS
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t usbd_cdc_OtherCfgDesc[USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END =
-{
- 0x09, /* bLength: Configuation Descriptor size */
- USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION,
- USB_CDC_CONFIG_DESC_SIZ,
- 0x00,
- 0x02, /* bNumInterfaces: 2 interfaces */
- 0x01, /* bConfigurationValue: */
- 0x04, /* iConfiguration: */
- 0xC0, /* bmAttributes: */
- 0x32, /* MaxPower 100 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 Management 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 */
- CDC_CMD_EP, /* bEndpointAddress */
- 0x03, /* bmAttributes: Interrupt */
- LOBYTE(CDC_CMD_PACKET_SZE), /* wMaxPacketSize: */
- HIBYTE(CDC_CMD_PACKET_SZE),
- 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 OUT Descriptor*/
- 0x07, /* bLength: Endpoint Descriptor size */
- USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */
- CDC_OUT_EP, /* bEndpointAddress */
- 0x02, /* bmAttributes: Bulk */
- 0x40, /* wMaxPacketSize: */
- 0x00,
- 0x00, /* bInterval: ignore for Bulk transfer */
-
- /*Endpoint IN Descriptor*/
- 0x07, /* bLength: Endpoint Descriptor size */
- USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */
- CDC_IN_EP, /* bEndpointAddress */
- 0x02, /* bmAttributes: Bulk */
- 0x40, /* wMaxPacketSize: */
- 0x00,
- 0x00 /* bInterval */
-};
-#endif /* USE_USB_OTG_HS */
-
-/**
- * @}
- */
-
-/** @defgroup usbd_cdc_Private_Functions
- * @{
- */
-
-/**
- * @brief usbd_cdc_Init
- * Initilaize the CDC interface
- * @param pdev: device instance
- * @param cfgidx: Configuration index
- * @retval status
- */
-static uint8_t usbd_cdc_Init (void *pdev,
- uint8_t cfgidx)
-{
- uint8_t *pbuf;
-
- /* Open EP IN */
- DCD_EP_Open(pdev,
- CDC_IN_EP,
- CDC_DATA_IN_PACKET_SIZE,
- USB_OTG_EP_BULK);
-
- /* Open EP OUT */
- DCD_EP_Open(pdev,
- CDC_OUT_EP,
- CDC_DATA_OUT_PACKET_SIZE,
- USB_OTG_EP_BULK);
-
- /* Open Command IN EP */
- DCD_EP_Open(pdev,
- CDC_CMD_EP,
- CDC_CMD_PACKET_SZE,
- USB_OTG_EP_INT);
-
- pbuf = (uint8_t *)USBD_DeviceDesc;
- pbuf[4] = DEVICE_CLASS_CDC;
- pbuf[5] = DEVICE_SUBCLASS_CDC;
-
- /* Initialize the Interface physical components */
- APP_FOPS.pIf_Init();
-
- /* Prepare Out endpoint to receive next packet */
- DCD_EP_PrepareRx(pdev,
- CDC_OUT_EP,
- (uint8_t*)(USB_Rx_Buffer),
- CDC_DATA_OUT_PACKET_SIZE);
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_cdc_Init
- * DeInitialize the CDC layer
- * @param pdev: device instance
- * @param cfgidx: Configuration index
- * @retval status
- */
-static uint8_t usbd_cdc_DeInit (void *pdev,
- uint8_t cfgidx)
-{
- /* Open EP IN */
- DCD_EP_Close(pdev,
- CDC_IN_EP);
-
- /* Open EP OUT */
- DCD_EP_Close(pdev,
- CDC_OUT_EP);
-
- /* Open Command IN EP */
- DCD_EP_Close(pdev,
- CDC_CMD_EP);
-
- /* Restore default state of the Interface physical components */
- APP_FOPS.pIf_DeInit();
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_cdc_Setup
- * Handle the CDC specific requests
- * @param pdev: instance
- * @param req: usb requests
- * @retval status
- */
-static uint8_t usbd_cdc_Setup (void *pdev,
- USB_SETUP_REQ *req)
-{
- uint16_t len;
- uint8_t *pbuf;
-
- switch (req->bmRequest & USB_REQ_TYPE_MASK)
- {
- /* CDC Class Requests -------------------------------*/
- case USB_REQ_TYPE_CLASS :
- /* Check if the request is a data setup packet */
- if (req->wLength)
- {
- /* Check if the request is Device-to-Host */
- if (req->bmRequest & 0x80)
- {
- /* Get the data to be sent to Host from interface layer */
- APP_FOPS.pIf_Ctrl(req->bRequest, req->wValue, CmdBuff, req->wLength);
-
- /* Send the data to the host */
- USBD_CtlSendData (pdev,
- CmdBuff,
- req->wLength);
- }
- else /* Host-to-Device requeset */
- {
- /* Set the value of the current command to be processed */
- cdcCmd = req->bRequest;
- cdcLen = req->wLength;
-
- /* Prepare the reception of the buffer over EP0
- Next step: the received data will be managed in usbd_cdc_EP0_TxSent()
- function. */
- USBD_CtlPrepareRx (pdev,
- CmdBuff,
- req->wLength);
- }
- }
- else /* No Data request */
- {
- /* Transfer the command to the interface layer */
- APP_FOPS.pIf_Ctrl(req->bRequest, req->wValue, NULL, 0);
- if(req->bRequest == SET_CONTROL_LINE_STATE)
- {
- if(req->wValue & 1)
- {
-
- }
- else
- {
- // HOST Virtual COM Port is closed
- // Disable TxFifoEmpty interrupt on endpoint 0x01 to avoid interrupt lock-up
- uint32_t fifoemptymsk;
-
- fifoemptymsk = 0x1 << 1;
- USB_OTG_MODIFY_REG32(&((USB_OTG_CORE_HANDLE*)pdev)->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0);
-
- }
-
- }
-
- }
-
- return USBD_OK;
-
- default:
- USBD_CtlError (pdev, req);
- return USBD_FAIL;
-
-
-
- /* Standard Requests -------------------------------*/
- case USB_REQ_TYPE_STANDARD:
- switch (req->bRequest)
- {
- case USB_REQ_GET_DESCRIPTOR:
- if( (req->wValue >> 8) == CDC_DESCRIPTOR_TYPE)
- {
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- pbuf = usbd_cdc_Desc;
-#else
- pbuf = usbd_cdc_CfgDesc + 9 + (9 * USBD_ITF_MAX_NUM);
-#endif
- len = MIN(USB_CDC_DESC_SIZ , req->wLength);
- }
-
- USBD_CtlSendData (pdev,
- pbuf,
- len);
- break;
-
- case USB_REQ_GET_INTERFACE :
- USBD_CtlSendData (pdev,
- (uint8_t *)&usbd_cdc_AltSet,
- 1);
- break;
-
- case USB_REQ_SET_INTERFACE :
- if ((uint8_t)(req->wValue) < USBD_ITF_MAX_NUM)
- {
- usbd_cdc_AltSet = (uint8_t)(req->wValue);
- }
- else
- {
- /* Call the error management function (command will be nacked */
- USBD_CtlError (pdev, req);
- }
- break;
- }
- }
- return USBD_OK;
-}
-
-/**
- * @brief usbd_cdc_EP0_RxReady
- * Data received on control endpoint
- * @param pdev: device device instance
- * @retval status
- */
-static uint8_t usbd_cdc_EP0_RxReady (void *pdev)
-{
- if (cdcCmd != NO_CMD)
- {
- /* Process the data */
- APP_FOPS.pIf_Ctrl(cdcCmd, 0, CmdBuff, cdcLen);
-
- /* Reset the command variable to default value */
- cdcCmd = NO_CMD;
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_DataIn
- * Data sent on non-control IN endpoint
- * @param pdev: device instance
- * @param epnum: endpoint number
- * @retval status
- */
-static uint8_t usbd_cdc_DataIn (void *pdev, uint8_t epnum)
-{
- uint16_t USB_Tx_ptr;
- uint16_t USB_Tx_length;
-
- if (USB_Tx_State == 1)
- {
- if (APP_Rx_length == 0)
- {
- USB_Tx_State = 0;
- }
- else
- {
- if (APP_Rx_length > CDC_DATA_IN_PACKET_SIZE){
- USB_Tx_ptr = APP_Rx_ptr_out;
- USB_Tx_length = CDC_DATA_IN_PACKET_SIZE;
-
- APP_Rx_ptr_out += CDC_DATA_IN_PACKET_SIZE;
- APP_Rx_length -= CDC_DATA_IN_PACKET_SIZE;
- }
- else
- {
- USB_Tx_ptr = APP_Rx_ptr_out;
- USB_Tx_length = APP_Rx_length;
-
- APP_Rx_ptr_out += APP_Rx_length;
- APP_Rx_length = 0;
- }
-
- /* Prepare the available data buffer to be sent on IN endpoint */
- DCD_EP_Tx (pdev,
- CDC_IN_EP,
- (uint8_t*)&APP_Rx_Buffer[USB_Tx_ptr],
- USB_Tx_length);
- }
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_DataOut
- * Data received on non-control Out endpoint
- * @param pdev: device instance
- * @param epnum: endpoint number
- * @retval status
- */
-static uint8_t usbd_cdc_DataOut (void *pdev, uint8_t epnum)
-{
- uint16_t USB_Rx_Cnt;
-
- /* Get the received data buffer and update the counter */
- USB_Rx_Cnt = ((USB_OTG_CORE_HANDLE*)pdev)->dev.out_ep[epnum].xfer_count;
-
- /* USB data will be immediately processed, this allow next USB traffic being
- NAKed till the end of the application Xfer */
- APP_FOPS.pIf_DataRx(USB_Rx_Buffer, USB_Rx_Cnt);
-
- /* Prepare Out endpoint to receive next packet */
- DCD_EP_PrepareRx(pdev,
- CDC_OUT_EP,
- (uint8_t*)(USB_Rx_Buffer),
- CDC_DATA_OUT_PACKET_SIZE);
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_audio_SOF
- * Start Of Frame event management
- * @param pdev: instance
- * @param epnum: endpoint number
- * @retval status
- */
-static uint8_t usbd_cdc_SOF (void *pdev)
-{
- static uint32_t FrameCount = 0;
-
- if (FrameCount++ == CDC_IN_FRAME_INTERVAL)
- {
- /* Reset the frame counter */
- FrameCount = 0;
-
- /* Check the data to be sent through IN pipe */
- Handle_USBAsynchXfer(pdev);
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief Handle_USBAsynchXfer
- * Send data to USB
- * @param pdev: instance
- * @retval None
- */
-static void Handle_USBAsynchXfer (void *pdev)
-{
- uint16_t USB_Tx_ptr;
- uint16_t USB_Tx_length;
-
- if(USB_Tx_State != 1)
- {
- if (APP_Rx_ptr_out == APP_RX_DATA_SIZE)
- {
- APP_Rx_ptr_out = 0;
- }
-
- if(APP_Rx_ptr_out == APP_Rx_ptr_in)
- {
- USB_Tx_State = 0;
- return;
- }
-
- if(APP_Rx_ptr_out > APP_Rx_ptr_in) /* rollback */
- {
- APP_Rx_length = APP_RX_DATA_SIZE - APP_Rx_ptr_out;
-
- }
- else
- {
- APP_Rx_length = APP_Rx_ptr_in - APP_Rx_ptr_out;
-
- }
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- APP_Rx_length &= ~0x03;
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-
- if (APP_Rx_length > CDC_DATA_IN_PACKET_SIZE)
- {
- USB_Tx_ptr = APP_Rx_ptr_out;
- USB_Tx_length = CDC_DATA_IN_PACKET_SIZE;
-
- APP_Rx_ptr_out += CDC_DATA_IN_PACKET_SIZE;
- APP_Rx_length -= CDC_DATA_IN_PACKET_SIZE;
- }
- else
- {
- USB_Tx_ptr = APP_Rx_ptr_out;
- USB_Tx_length = APP_Rx_length;
-
- APP_Rx_ptr_out += APP_Rx_length;
- APP_Rx_length = 0;
- }
- USB_Tx_State = 1;
-
- DCD_EP_Tx (pdev,
- CDC_IN_EP,
- (uint8_t*)&APP_Rx_Buffer[USB_Tx_ptr],
- USB_Tx_length);
- }
-
-}
-
-/**
- * @brief USBD_cdc_GetCfgDesc
- * Return configuration descriptor
- * @param speed : current device speed
- * @param length : pointer data length
- * @retval pointer to descriptor buffer
- */
-static uint8_t *USBD_cdc_GetCfgDesc (uint8_t speed, uint16_t *length)
-{
- *length = sizeof (usbd_cdc_CfgDesc);
- return usbd_cdc_CfgDesc;
-}
-
-/**
- * @brief USBD_cdc_GetCfgDesc
- * Return configuration descriptor
- * @param speed : current device speed
- * @param length : pointer data length
- * @retval pointer to descriptor buffer
- */
-#ifdef USE_USB_OTG_HS
-static uint8_t *USBD_cdc_GetOtherCfgDesc (uint8_t speed, uint16_t *length)
-{
- *length = sizeof (usbd_cdc_OtherCfgDesc);
- return usbd_cdc_OtherCfgDesc;
-}
-#endif
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/class.mk b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/class.mk
deleted file mode 100755
index 8affd67..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/class.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-#SUB_FOLDER += firmware/arch/stm32f4xx/lib
-#INCLUDES += firmware/arch/stm32f4xx/lib
-
-include firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/cdc/cdc.mk
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_dfu_core.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_dfu_core.h
deleted file mode 100755
index 82402ba..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_dfu_core.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_dfu_core.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header file for the usbd_dfu_core.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-
-#ifndef __USB_DFU_CORE_H_
-#define __USB_DFU_CORE_H_
-
-#include "usbd_ioreq.h"
-#include "usbd_dfu_mal.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup usbd_dfu
- * @brief This file is the Header file for USBD_dfu.c
- * @{
- */
-
-
-/** @defgroup usbd_dfu_Exported_Defines
- * @{
- */
-#define USB_DFU_CONFIG_DESC_SIZ (18 + (9 * USBD_ITF_MAX_NUM))
-#define USB_DFU_DESC_SIZ 9
-
-#define DFU_DESCRIPTOR_TYPE 0x21
-
-
-/*---------------------------------------------------------------------*/
-/* DFU definitions */
-/*---------------------------------------------------------------------*/
-
-
-
-/**************************************************/
-/* DFU Requests DFU states */
-/**************************************************/
-
-
-#define STATE_appIDLE 0
-#define STATE_appDETACH 1
-#define STATE_dfuIDLE 2
-#define STATE_dfuDNLOAD_SYNC 3
-#define STATE_dfuDNBUSY 4
-#define STATE_dfuDNLOAD_IDLE 5
-#define STATE_dfuMANIFEST_SYNC 6
-#define STATE_dfuMANIFEST 7
-#define STATE_dfuMANIFEST_WAIT_RESET 8
-#define STATE_dfuUPLOAD_IDLE 9
-#define STATE_dfuERROR 10
-
-/**************************************************/
-/* DFU Requests DFU status */
-/**************************************************/
-
-#define STATUS_OK 0x00
-#define STATUS_ERRTARGET 0x01
-#define STATUS_ERRFILE 0x02
-#define STATUS_ERRWRITE 0x03
-#define STATUS_ERRERASE 0x04
-#define STATUS_ERRCHECK_ERASED 0x05
-#define STATUS_ERRPROG 0x06
-#define STATUS_ERRVERIFY 0x07
-#define STATUS_ERRADDRESS 0x08
-#define STATUS_ERRNOTDONE 0x09
-#define STATUS_ERRFIRMWARE 0x0A
-#define STATUS_ERRVENDOR 0x0B
-#define STATUS_ERRUSBR 0x0C
-#define STATUS_ERRPOR 0x0D
-#define STATUS_ERRUNKNOWN 0x0E
-#define STATUS_ERRSTALLEDPKT 0x0F
-
-/**************************************************/
-/* DFU Requests DFU states Manifestation State */
-/**************************************************/
-
-#define Manifest_complete 0x00
-#define Manifest_In_Progress 0x01
-
-
-/**************************************************/
-/* Special Commands with Download Request */
-/**************************************************/
-
-#define CMD_GETCOMMANDS 0x00
-#define CMD_SETADDRESSPOINTER 0x21
-#define CMD_ERASE 0x41
-
-/**************************************************/
-/* Other defines */
-/**************************************************/
-/* Bit Detach capable = bit 3 in bmAttributes field */
-#define DFU_DETACH_MASK (uint8_t)(1 << 4)
-/**
- * @}
- */
-
-
-/** @defgroup USBD_CORE_Exported_TypesDefinitions
- * @{
- */
-/**************************************************/
-/* DFU Requests */
-/**************************************************/
-
-typedef enum _DFU_REQUESTS {
- DFU_DETACH = 0,
- DFU_DNLOAD = 1,
- DFU_UPLOAD,
- DFU_GETSTATUS,
- DFU_CLRSTATUS,
- DFU_GETSTATE,
- DFU_ABORT
-} DFU_REQUESTS;
-
-typedef void (*pFunction)(void);
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_CORE_Exported_Macros
- * @{
- */
-/********** Descriptor of DFU interface 0 Alternate setting n ****************/
-#define USBD_DFU_IF_DESC(n) 0x09, /* bLength: Interface Descriptor size */ \
- USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ \
- 0x00, /* bInterfaceNumber: Number of Interface */ \
- (n), /* bAlternateSetting: Alternate setting */ \
- 0x00, /* bNumEndpoints*/ \
- 0xFE, /* bInterfaceClass: Application Specific Class Code */ \
- 0x01, /* bInterfaceSubClass : Device Firmware Upgrade Code */ \
- 0x02, /* nInterfaceProtocol: DFU mode protocol */ \
- USBD_IDX_INTERFACE_STR + (n) + 1 /* iInterface: Index of string descriptor */ \
- /* 18 */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_CORE_Exported_Variables
- * @{
- */
-
-extern USBD_Class_cb_TypeDef DFU_cb;
-/**
- * @}
- */
-
-/** @defgroup USB_CORE_Exported_Functions
- * @{
- */
-/**
- * @}
- */
-
-#endif // __USB_DFU_CORE_H_
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_dfu_mal.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_dfu_mal.h
deleted file mode 100755
index bb59e62..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_dfu_mal.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_dfu_mal.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Header for usbd_dfu_mal.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __DFU_MAL_H
-#define __DFU_MAL_H
-
-/* Includes ------------------------------------------------------------------*/
-#ifdef STM32F2XX
- #include "stm32f2xx.h"
-#elif defined(STM32F10X_CL)
- #include "stm32f10x.h"
-#endif /* STM32F2XX */
-
-#include "usbd_conf.h"
-#include "usbd_dfu_core.h"
-
-/* Exported types ------------------------------------------------------------*/
-typedef struct _DFU_MAL_PROP
-{
- const uint8_t* pStrDesc;
- uint16_t (*pMAL_Init) (void);
- uint16_t (*pMAL_DeInit) (void);
- uint16_t (*pMAL_Erase) (uint32_t Add);
- uint16_t (*pMAL_Write) (uint32_t Add, uint32_t Len);
- uint8_t *(*pMAL_Read) (uint32_t Add, uint32_t Len);
- uint16_t (*pMAL_CheckAdd) (uint32_t Add);
- const uint32_t EraseTiming;
- const uint32_t WriteTiming;
-}
-DFU_MAL_Prop_TypeDef;
-
-
-/* Exported constants --------------------------------------------------------*/
-#define MAL_OK 0
-#define MAL_FAIL 1
-
-/* utils macro ---------------------------------------------------------------*/
-#define _1st_BYTE(x) (uint8_t)((x)&0xFF) /* 1st addressing cycle */
-#define _2nd_BYTE(x) (uint8_t)(((x)&0xFF00)>>8) /* 2nd addressing cycle */
-#define _3rd_BYTE(x) (uint8_t)(((x)&0xFF0000)>>16) /* 3rd addressing cycle */
-#define _4th_BYTE(x) (uint8_t)(((x)&0xFF000000)>>24) /* 4th addressing cycle */
-
-/* Exported macro ------------------------------------------------------------*/
-#define SET_POLLING_TIMING(x) buffer[1] = _1st_BYTE(x);\
- buffer[2] = _2nd_BYTE(x);\
- buffer[3] = _3rd_BYTE(x);
-
-/* Exported functions ------------------------------------------------------- */
-
-uint16_t MAL_Init (void);
-uint16_t MAL_DeInit (void);
-uint16_t MAL_Erase (uint32_t SectorAddress);
-uint16_t MAL_Write (uint32_t SectorAddress, uint32_t DataLength);
-uint8_t *MAL_Read (uint32_t SectorAddress, uint32_t DataLength);
-uint16_t MAL_GetStatus(uint32_t SectorAddress ,uint8_t Cmd, uint8_t *buffer);
-
-extern uint8_t MAL_Buffer[XFERSIZE]; /* RAM Buffer for Downloaded Data */
-#endif /* __DFU_MAL_H */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_flash_if.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_flash_if.h
deleted file mode 100755
index 171395f..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_flash_if.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_flash_if.h
- * @author MCD Application Team
- * @version V1.0.0RC1
- * @date 18-March-2011
- * @brief Header for usbd_flash_if.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __FLASH_IF_MAL_H
-#define __FLASH_IF_MAL_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_dfu_mal.h"
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-#define FLASH_START_ADD 0x08000000
-
-#ifdef STM32F2XX
- #define FLASH_END_ADD 0x08100000
- #define FLASH_IF_STRING "@Internal Flash /0x08000000/03*016Ka,01*016Kg,01*064Kg,07*128Kg"
-#elif defined(STM32F10X_CL)
- #define FLASH_END_ADD 0x08040000
- #define FLASH_IF_STRING "@Internal Flash /0x08000000/06*002Ka,122*002Kg"
-#endif /* STM32F2XX */
-
-
-extern DFU_MAL_Prop_TypeDef DFU_Flash_cb;
-
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-#endif /* __FLASH_IF_MAL_H */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_mem_if_template.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_mem_if_template.h
deleted file mode 100755
index 9632a5b..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_mem_if_template.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_mem_if_template.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Header for usbd_mem_if_template.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __MEM_IF_MAL_H
-#define __MEM_IF_MAL_H
-
-/* Includes ------------------------------------------------------------------*/
-#ifdef STM32F2XX
- #include "stm32f2xx.h"
-#endif /* STM32F2XX */
-#include "usbd_dfu_mal.h"
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-#define MEM_START_ADD 0x00000000 /* Dummy start address */
-#define MEM_END_ADD (uint32_t)(MEM_START_ADD + (5 * 1024)) /* Dummy Size = 5KB */
-
-#define MEM_IF_STRING "@Dummy Memory /0x00000000/01*002Kg,03*001Kg"
-
-extern DFU_MAL_Prop_TypeDef DFU_Mem_cb;
-
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-#endif /* __MEM_IF_MAL_H */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_otp_if.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_otp_if.h
deleted file mode 100755
index bb879ca..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/inc/usbd_otp_if.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_otp_if.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Header for usbd_otp_if.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __OTP_IF_MAL_H
-#define __OTP_IF_MAL_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_dfu_mal.h"
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-#define OTP_START_ADD 0x1FFF7800
-#define OTP_END_ADD (uint32_t)(OTP_START_ADD + 528)
-
-#define OTP_IF_STRING "@OTP Area /0x1FFF7800/01*512 g,01*016 g"
-
-extern DFU_MAL_Prop_TypeDef DFU_Otp_cb;
-
-/* Exported macro ------------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-
-#endif /* __OTP_IF_MAL_H */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_dfu_core.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_dfu_core.c
deleted file mode 100755
index 91db9ae..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_dfu_core.c
+++ /dev/null
@@ -1,1046 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_dfu_core.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides the high layer firmware functions to manage the
- * following functionalities of the USB DFU Class:
- * - Initialization and Configuration of high and low layer
- * - Enumeration as DFU Device (and enumeration for each implemented memory interface)
- * - Transfers to/from memory interfaces
- * - Easy-to-customize "plug-in-like" modules for adding/removing memory interfaces.
- * - Error management
- *
- * @verbatim
- *
- * ===================================================================
- * DFU Class Driver Description
- * ===================================================================
- * This driver manages the DFU class V1.1 following the "Device Class Specification for
- * Device Firmware Upgrade Version 1.1 Aug 5, 2004".
- * This driver implements the following aspects of the specification:
- * - Device descriptor management
- * - Configuration descriptor management
- * - Enumeration as DFU device (in DFU mode only)
- * - Requests management (supporting ST DFU sub-protocol)
- * - Memory operations management (Download/Upload/Erase/Detach/GetState/GetStatus)
- * - DFU state machine implementation.
- *
- * @note
- * ST DFU sub-protocol is compliant with DFU protocol and use sub-requests to manage
- * memory addressing, commands processing, specific memories operations (ie. Erase) ...
- * As required by the DFU specification, only endpoint 0 is used in this application.
- * Other endpoints and functions may be added to the application (ie. DFU ...)
- *
- * These aspects may be enriched or modified for a specific user application.
- *
- * This driver doesn't implement the following aspects of the specification
- * (but it is possible to manage these features with some modifications on this driver):
- * - Manifestation Tolerant mode
- *
- * @endverbatim
- *
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_dfu_core.h"
-#include "usbd_desc.h"
-#include "usbd_req.h"
-#include "usb_bsp.h"
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup usbd_dfu
- * @brief usbd core module
- * @{
- */
-
-/** @defgroup usbd_dfu_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_dfu_Private_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_dfu_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup usbd_dfu_Private_FunctionPrototypes
- * @{
- */
-
-/*********************************************
- DFU Device library callbacks
- *********************************************/
-static uint8_t usbd_dfu_Init (void *pdev,
- uint8_t cfgidx);
-
-static uint8_t usbd_dfu_DeInit (void *pdev,
- uint8_t cfgidx);
-
-static uint8_t usbd_dfu_Setup (void *pdev,
- USB_SETUP_REQ *req);
-
-static uint8_t EP0_TxSent (void *pdev);
-
-static uint8_t EP0_RxReady (void *pdev);
-
-
-static uint8_t *USBD_DFU_GetCfgDesc (uint8_t speed,
- uint16_t *length);
-
-
-#ifdef USB_OTG_HS_CORE
-static uint8_t *USBD_DFU_GetOtherCfgDesc (uint8_t speed,
- uint16_t *length);
-#endif
-
-static uint8_t* USBD_DFU_GetUsrStringDesc (uint8_t speed,
- uint8_t index ,
- uint16_t *length);
-
-/*********************************************
- DFU Requests management functions
- *********************************************/
-static void DFU_Req_DETACH (void *pdev,
- USB_SETUP_REQ *req);
-
-static void DFU_Req_DNLOAD (void *pdev,
- USB_SETUP_REQ *req);
-
-static void DFU_Req_UPLOAD (void *pdev,
- USB_SETUP_REQ *req);
-
-static void DFU_Req_GETSTATUS (void *pdev);
-
-static void DFU_Req_CLRSTATUS (void *pdev);
-
-static void DFU_Req_GETSTATE (void *pdev);
-
-static void DFU_Req_ABORT (void *pdev);
-
-static void DFU_LeaveDFUMode (void *pdev);
-
-/**
- * @}
- */
-
-/** @defgroup usbd_dfu_Private_Variables
- * @{
- */
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t usbd_dfu_CfgDesc[USB_DFU_CONFIG_DESC_SIZ] __ALIGN_END ;
-
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t usbd_dfu_OtherCfgDesc[USB_DFU_CONFIG_DESC_SIZ] __ALIGN_END ;
-
-/* The list of Interface String descriptor pointers is defined in usbd_dfu_mal.c
- file. This list can be updated whenever a memory has to be added or removed */
-extern const uint8_t* usbd_dfu_StringDesc[];
-
-/* State Machine variables */
-uint8_t DeviceState;
-uint8_t DeviceStatus[6];
-uint32_t Manifest_State = Manifest_complete;
-/* Data Management variables */
-static uint32_t wBlockNum = 0, wlength = 0;
-static uint32_t Pointer = APP_DEFAULT_ADD; /* Base Address to Erase, Program or Read */
-static __IO uint32_t usbd_dfu_AltSet = 0;
-
-extern uint8_t MAL_Buffer[];
-
-/* DFU interface class callbacks structure */
-USBD_Class_cb_TypeDef DFU_cb =
-{
- usbd_dfu_Init,
- usbd_dfu_DeInit,
- usbd_dfu_Setup,
- EP0_TxSent,
- EP0_RxReady,
- NULL, /* DataIn, */
- NULL, /* DataOut, */
- NULL, /*SOF */
- NULL,
- NULL,
- USBD_DFU_GetCfgDesc,
-#ifdef USB_OTG_HS_CORE
- USBD_DFU_GetOtherCfgDesc, /* use same cobfig as per FS */
-#endif
- USBD_DFU_GetUsrStringDesc,
-};
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-/* USB DFU device Configuration Descriptor */
-__ALIGN_BEGIN uint8_t usbd_dfu_CfgDesc[USB_DFU_CONFIG_DESC_SIZ] __ALIGN_END =
-{
- 0x09, /* bLength: Configuation Descriptor size */
- USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */
- USB_DFU_CONFIG_DESC_SIZ,
- /* wTotalLength: Bytes returned */
- 0x00,
- 0x01, /*bNumInterfaces: 1 interface*/
- 0x01, /*bConfigurationValue: Configuration value*/
- 0x02, /*iConfiguration: Index of string descriptor describing the configuration*/
- 0xC0, /*bmAttributes: bus powered and Supprts Remote Wakeup */
- 0x32, /*MaxPower 100 mA: this current is used for detecting Vbus*/
- /* 09 */
-
- /********** Descriptor of DFU interface 0 Alternate setting 0 **************/
- USBD_DFU_IF_DESC(0), /* This interface is mandatory for all devices */
-
-#if (USBD_ITF_MAX_NUM > 1)
- /********** Descriptor of DFU interface 0 Alternate setting 1 **************/
- USBD_DFU_IF_DESC(1),
-#endif /* (USBD_ITF_MAX_NUM > 1) */
-
-#if (USBD_ITF_MAX_NUM > 2)
- /********** Descriptor of DFU interface 0 Alternate setting 2 **************/
- USBD_DFU_IF_DESC(2),
-#endif /* (USBD_ITF_MAX_NUM > 2) */
-
-#if (USBD_ITF_MAX_NUM > 3)
- /********** Descriptor of DFU interface 0 Alternate setting 3 **************/
- USBD_DFU_IF_DESC(3),
-#endif /* (USBD_ITF_MAX_NUM > 3) */
-
-#if (USBD_ITF_MAX_NUM > 4)
- /********** Descriptor of DFU interface 0 Alternate setting 4 **************/
- USBD_DFU_IF_DESC(4),
-#endif /* (USBD_ITF_MAX_NUM > 4) */
-
-#if (USBD_ITF_MAX_NUM > 5)
- /********** Descriptor of DFU interface 0 Alternate setting 5 **************/
- USBD_DFU_IF_DESC(5),
-#endif /* (USBD_ITF_MAX_NUM > 5) */
-
-#if (USBD_ITF_MAX_NUM > 6)
-#error "ERROR: usbd_dfu_core.c: Modify the file to support more descriptors!"
-#endif /* (USBD_ITF_MAX_NUM > 6) */
-
- /******************** DFU Functional Descriptor********************/
- 0x09, /*blength = 9 Bytes*/
- DFU_DESCRIPTOR_TYPE, /* DFU Functional Descriptor*/
- 0x0B, /*bmAttribute
- bitCanDnload = 1 (bit 0)
- bitCanUpload = 1 (bit 1)
- bitManifestationTolerant = 0 (bit 2)
- bitWillDetach = 1 (bit 3)
- Reserved (bit4-6)
- bitAcceleratedST = 0 (bit 7)*/
- 0xFF, /*DetachTimeOut= 255 ms*/
- 0x00,
- /*WARNING: In DMA mode the multiple MPS packets feature is still not supported
- ==> In this case, when using DMA XFERSIZE should be set to 64 in usbd_conf.h */
- TRANSFER_SIZE_BYTES(XFERSIZE), /* TransferSize = 1024 Byte*/
- 0x1A, /* bcdDFUVersion*/
- 0x01
- /***********************************************************/
- /* 9*/
-} ;
-
-#ifdef USE_USB_OTG_HS
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-
-__ALIGN_BEGIN uint8_t usbd_dfu_OtherCfgDesc[USB_DFU_CONFIG_DESC_SIZ] __ALIGN_END =
-{
- 0x09, /* bLength: Configuation Descriptor size */
- USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION, /* bDescriptorType: Configuration */
- USB_DFU_CONFIG_DESC_SIZ,
- /* wTotalLength: Bytes returned */
- 0x00,
- 0x01, /*bNumInterfaces: 1 interface*/
- 0x01, /*bConfigurationValue: Configuration value*/
- 0x02, /*iConfiguration: Index of string descriptor describing the configuration*/
- 0xC0, /*bmAttributes: bus powered and Supprts Remote Wakeup */
- 0x32, /*MaxPower 100 mA: this current is used for detecting Vbus*/
- /* 09 */
-
- /********** Descriptor of DFU interface 0 Alternate setting 0 **************/
- USBD_DFU_IF_DESC(0), /* This interface is mandatory for all devices */
-
-#if (USBD_ITF_MAX_NUM > 1)
- /********** Descriptor of DFU interface 0 Alternate setting 1 **************/
- USBD_DFU_IF_DESC(1),
-#endif /* (USBD_ITF_MAX_NUM > 1) */
-
-#if (USBD_ITF_MAX_NUM > 2)
- /********** Descriptor of DFU interface 0 Alternate setting 2 **************/
- USBD_DFU_IF_DESC(2),
-#endif /* (USBD_ITF_MAX_NUM > 2) */
-
-#if (USBD_ITF_MAX_NUM > 3)
- /********** Descriptor of DFU interface 0 Alternate setting 3 **************/
- USBD_DFU_IF_DESC(3),
-#endif /* (USBD_ITF_MAX_NUM > 3) */
-
-#if (USBD_ITF_MAX_NUM > 4)
- /********** Descriptor of DFU interface 0 Alternate setting 4 **************/
- USBD_DFU_IF_DESC(4),
-#endif /* (USBD_ITF_MAX_NUM > 4) */
-
-#if (USBD_ITF_MAX_NUM > 5)
- /********** Descriptor of DFU interface 0 Alternate setting 5 **************/
- USBD_DFU_IF_DESC(5),
-#endif /* (USBD_ITF_MAX_NUM > 5) */
-
-#if (USBD_ITF_MAX_NUM > 6)
-#error "ERROR: usbd_dfu_core.c: Modify the file to support more descriptors!"
-#endif /* (USBD_ITF_MAX_NUM > 6) */
-
- /******************** DFU Functional Descriptor********************/
- 0x09, /*blength = 9 Bytes*/
- DFU_DESCRIPTOR_TYPE, /* DFU Functional Descriptor*/
- 0x0B, /*bmAttribute
- bitCanDnload = 1 (bit 0)
- bitCanUpload = 1 (bit 1)
- bitManifestationTolerant = 0 (bit 2)
- bitWillDetach = 1 (bit 3)
- Reserved (bit4-6)
- bitAcceleratedST = 0 (bit 7)*/
- 0xFF, /*DetachTimeOut= 255 ms*/
- 0x00,
- /*WARNING: In DMA mode the multiple MPS packets feature is still not supported
- ==> In this case, when using DMA XFERSIZE should be set to 64 in usbd_conf.h */
- TRANSFER_SIZE_BYTES(XFERSIZE), /* TransferSize = 1024 Byte*/
- 0x1A, /* bcdDFUVersion*/
- 0x01
- /***********************************************************/
- /* 9*/
-};
-#endif /* USE_USB_OTG_HS */
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-
-__ALIGN_BEGIN static uint8_t usbd_dfu_Desc[USB_DFU_DESC_SIZ] __ALIGN_END =
-{
- 0x09, /*blength = 9 Bytes*/
- DFU_DESCRIPTOR_TYPE, /* DFU Functional Descriptor*/
- 0x0B, /*bmAttribute
- bitCanDnload = 1 (bit 0)
- bitCanUpload = 1 (bit 1)
- bitManifestationTolerant = 0 (bit 2)
- bitWillDetach = 1 (bit 3)
- Reserved (bit4-6)
- bitAcceleratedST = 0 (bit 7)*/
- 0xFF, /*DetachTimeOut= 255 ms*/
- 0x00,
- /*WARNING: In DMA mode the multiple MPS packets feature is still not supported
- ==> In this case, when using DMA XFERSIZE should be set to 64 in usbd_conf.h */
- TRANSFER_SIZE_BYTES(XFERSIZE), /* TransferSize = 1024 Byte*/
- 0x1A, /* bcdDFUVersion*/
- 0x01
-};
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-
-/**
- * @}
- */
-
-/** @defgroup usbd_dfu_Private_Functions
- * @{
- */
-
-/**
- * @brief usbd_dfu_Init
- * Initializes the DFU interface.
- * @param pdev: device instance
- * @param cfgidx: Configuration index
- * @retval status
- */
-static uint8_t usbd_dfu_Init (void *pdev,
- uint8_t cfgidx)
-{
- /* Initilialize the MAL(Media Access Layer) */
- MAL_Init();
-
- /* Initialize the state of the DFU interface */
- DeviceState = STATE_dfuIDLE;
- DeviceStatus[0] = STATUS_OK;
- DeviceStatus[4] = DeviceState;
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_dfu_Init
- * De-initializes the DFU layer.
- * @param pdev: device instance
- * @param cfgidx: Configuration index
- * @retval status
- */
-static uint8_t usbd_dfu_DeInit (void *pdev,
- uint8_t cfgidx)
-{
- /* Restore default state */
- DeviceState = STATE_dfuIDLE;
- DeviceStatus[0] = STATUS_OK;
- DeviceStatus[4] = DeviceState;
- wBlockNum = 0;
- wlength = 0;
-
- /* DeInitilialize the MAL(Media Access Layer) */
- MAL_DeInit();
-
- return USBD_OK;
-}
-
-/**
- * @brief usbd_dfu_Setup
- * Handles the DFU request parsing.
- * @param pdev: instance
- * @param req: usb requests
- * @retval status
- */
-static uint8_t usbd_dfu_Setup (void *pdev,
- USB_SETUP_REQ *req)
-{
- uint16_t len = 0;
- uint8_t *pbuf = NULL;
-
- switch (req->bmRequest & USB_REQ_TYPE_MASK)
- {
- /* DFU Class Requests -------------------------------*/
- case USB_REQ_TYPE_CLASS :
- switch (req->bRequest)
- {
- case DFU_DNLOAD:
- DFU_Req_DNLOAD(pdev, req);
- break;
-
- case DFU_UPLOAD:
- DFU_Req_UPLOAD(pdev, req);
- break;
-
- case DFU_GETSTATUS:
- DFU_Req_GETSTATUS(pdev);
- break;
-
- case DFU_CLRSTATUS:
- DFU_Req_CLRSTATUS(pdev);
- break;
-
- case DFU_GETSTATE:
- DFU_Req_GETSTATE(pdev);
- break;
-
- case DFU_ABORT:
- DFU_Req_ABORT(pdev);
- break;
-
- case DFU_DETACH:
- DFU_Req_DETACH(pdev, req);
- break;
-
- default:
- USBD_CtlError (pdev, req);
- return USBD_FAIL;
- }
- break;
-
- /* Standard Requests -------------------------------*/
- case USB_REQ_TYPE_STANDARD:
- switch (req->bRequest)
- {
- case USB_REQ_GET_DESCRIPTOR:
- if( (req->wValue >> 8) == DFU_DESCRIPTOR_TYPE)
- {
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- pbuf = usbd_dfu_Desc;
-#else
- pbuf = usbd_dfu_CfgDesc + 9 + (9 * USBD_ITF_MAX_NUM);
-#endif
- len = MIN(USB_DFU_DESC_SIZ , req->wLength);
- }
-
- USBD_CtlSendData (pdev,
- pbuf,
- len);
- break;
-
- case USB_REQ_GET_INTERFACE :
- USBD_CtlSendData (pdev,
- (uint8_t *)&usbd_dfu_AltSet,
- 1);
- break;
-
- case USB_REQ_SET_INTERFACE :
- if ((uint8_t)(req->wValue) < USBD_ITF_MAX_NUM)
- {
- usbd_dfu_AltSet = (uint8_t)(req->wValue);
- }
- else
- {
- /* Call the error management function (command will be nacked */
- USBD_CtlError (pdev, req);
- }
- break;
- }
- }
- return USBD_OK;
-}
-
-/**
- * @brief EP0_TxSent
- * Handles the DFU control endpoint data IN stage.
- * @param pdev: device instance
- * @retval status
- */
-static uint8_t EP0_TxSent (void *pdev)
-{
- uint32_t Addr;
- USB_SETUP_REQ req;
-
- if (DeviceState == STATE_dfuDNBUSY)
- {
- /* Decode the Special Command*/
- if (wBlockNum == 0)
- {
- if ((MAL_Buffer[0] == CMD_GETCOMMANDS) && (wlength == 1))
- {}
- else if (( MAL_Buffer[0] == CMD_SETADDRESSPOINTER ) && (wlength == 5))
- {
- Pointer = MAL_Buffer[1];
- Pointer += MAL_Buffer[2] << 8;
- Pointer += MAL_Buffer[3] << 16;
- Pointer += MAL_Buffer[4] << 24;
- }
- else if (( MAL_Buffer[0] == CMD_ERASE ) && (wlength == 5))
- {
- Pointer = MAL_Buffer[1];
- Pointer += MAL_Buffer[2] << 8;
- Pointer += MAL_Buffer[3] << 16;
- Pointer += MAL_Buffer[4] << 24;
- MAL_Erase(Pointer);
- }
- else
- {
- /* Reset the global length and block number */
- wlength = 0;
- wBlockNum = 0;
- /* Call the error management function (command will be nacked) */
- req.bmRequest = 0;
- req.wLength = 1;
- USBD_CtlError (pdev, &req);
- }
- }
- /* Regular Download Command */
- else if (wBlockNum > 1)
- {
- /* Decode the required address */
- Addr = ((wBlockNum - 2) * XFERSIZE) + Pointer;
-
- /* Preform the write operation */
- MAL_Write(Addr, wlength);
- }
- /* Reset the global lenght and block number */
- wlength = 0;
- wBlockNum = 0;
-
- /* Update the state machine */
- DeviceState = STATE_dfuDNLOAD_SYNC;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
- return USBD_OK;
- }
- else if (DeviceState == STATE_dfuMANIFEST)/* Manifestation in progress*/
- {
- /* Start leaving DFU mode */
- DFU_LeaveDFUMode(pdev);
- }
-
- return USBD_OK;
-}
-
-/**
- * @brief EP0_RxReady
- * Handles the DFU control endpoint data OUT stage.
- * @param pdev: device instance
- * @retval status
- */
-static uint8_t EP0_RxReady (void *pdev)
-{
- return USBD_OK;
-}
-
-
-/******************************************************************************
- DFU Class requests management
-******************************************************************************/
-/**
- * @brief DFU_Req_DETACH
- * Handles the DFU DETACH request.
- * @param pdev: device instance
- * @param req: pointer to the request structure.
- * @retval None.
- */
-static void DFU_Req_DETACH(void *pdev, USB_SETUP_REQ *req)
-{
- if (DeviceState == STATE_dfuIDLE || DeviceState == STATE_dfuDNLOAD_SYNC
- || DeviceState == STATE_dfuDNLOAD_IDLE || DeviceState == STATE_dfuMANIFEST_SYNC
- || DeviceState == STATE_dfuUPLOAD_IDLE )
- {
- /* Update the state machine */
- DeviceState = STATE_dfuIDLE;
- DeviceStatus[0] = STATUS_OK;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0; /*bwPollTimeout=0ms*/
- DeviceStatus[4] = DeviceState;
- DeviceStatus[5] = 0; /*iString*/
- wBlockNum = 0;
- wlength = 0;
- }
-
- /* Check the detach capability in the DFU functional descriptor */
- if ((usbd_dfu_CfgDesc[12 + (9 * USBD_ITF_MAX_NUM)]) & DFU_DETACH_MASK)
- {
- /* Perform an Attach-Detach operation on USB bus */
- DCD_DevDisconnect (pdev);
- DCD_DevConnect (pdev);
- }
- else
- {
- /* Wait for the period of time specified in Detach request */
- USB_OTG_BSP_mDelay (req->wValue);
- }
-}
-
-/**
- * @brief DFU_Req_DNLOAD
- * Handles the DFU DNLOAD request.
- * @param pdev: device instance
- * @param req: pointer to the request structure
- * @retval None
- */
-static void DFU_Req_DNLOAD(void *pdev, USB_SETUP_REQ *req)
-{
- /* Data setup request */
- if (req->wLength > 0)
- {
- if ((DeviceState == STATE_dfuIDLE) || (DeviceState == STATE_dfuDNLOAD_IDLE))
- {
- /* Update the global length and block number */
- wBlockNum = req->wValue;
- wlength = req->wLength;
-
- /* Update the state machine */
- DeviceState = STATE_dfuDNLOAD_SYNC;
- DeviceStatus[4] = DeviceState;
-
- /* Prepare the reception of the buffer over EP0 */
- USBD_CtlPrepareRx (pdev,
- (uint8_t*)MAL_Buffer,
- wlength);
- }
- /* Unsupported state */
- else
- {
- /* Call the error management function (command will be nacked */
- USBD_CtlError (pdev, req);
- }
- }
- /* 0 Data DNLOAD request */
- else
- {
- /* End of DNLOAD operation*/
- if (DeviceState == STATE_dfuDNLOAD_IDLE || DeviceState == STATE_dfuIDLE )
- {
- Manifest_State = Manifest_In_Progress;
- DeviceState = STATE_dfuMANIFEST_SYNC;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
- DeviceStatus[4] = DeviceState;
- }
- else
- {
- /* Call the error management function (command will be nacked */
- USBD_CtlError (pdev, req);
- }
- }
-}
-
-/**
- * @brief DFU_Req_UPLOAD
- * Handles the DFU UPLOAD request.
- * @param pdev: instance
- * @param req: pointer to the request structure
- * @retval status
- */
-static void DFU_Req_UPLOAD(void *pdev, USB_SETUP_REQ *req)
-{
- uint8_t *Phy_Addr = NULL;
- uint32_t Addr = 0;
-
- /* Data setup request */
- if (req->wLength > 0)
- {
- if ((DeviceState == STATE_dfuIDLE) || (DeviceState == STATE_dfuUPLOAD_IDLE))
- {
- /* Update the global langth and block number */
- wBlockNum = req->wValue;
- wlength = req->wLength;
-
- /* DFU Get Command */
- if (wBlockNum == 0)
- {
- /* Update the state machine */
- DeviceState = (wlength > 3)? STATE_dfuIDLE:STATE_dfuUPLOAD_IDLE;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
-
- /* Store the values of all supported commands */
- MAL_Buffer[0] = CMD_GETCOMMANDS;
- MAL_Buffer[1] = CMD_SETADDRESSPOINTER;
- MAL_Buffer[2] = CMD_ERASE;
-
- /* Send the status data over EP0 */
- USBD_CtlSendData (pdev,
- (uint8_t *)(&(MAL_Buffer[0])),
- 3);
- }
- else if (wBlockNum > 1)
- {
- DeviceState = STATE_dfuUPLOAD_IDLE ;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
- Addr = ((wBlockNum - 2) * XFERSIZE) + Pointer; /* Change is Accelerated*/
-
- /* Return the physical address where data are stored */
- Phy_Addr = MAL_Read(Addr, wlength);
-
- /* Send the status data over EP0 */
- USBD_CtlSendData (pdev,
- Phy_Addr,
- wlength);
- }
- else /* unsupported wBlockNum */
- {
- DeviceState = STATUS_ERRSTALLEDPKT;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
-
- /* Call the error management function (command will be nacked */
- USBD_CtlError (pdev, req);
- }
- }
- /* Unsupported state */
- else
- {
- wlength = 0;
- wBlockNum = 0;
- /* Call the error management function (command will be nacked */
- USBD_CtlError (pdev, req);
- }
- }
- /* No Data setup request */
- else
- {
- DeviceState = STATE_dfuIDLE;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
- DeviceStatus[4] = DeviceState;
- }
-}
-
-/**
- * @brief DFU_Req_GETSTATUS
- * Handles the DFU GETSTATUS request.
- * @param pdev: instance
- * @retval status
- */
-static void DFU_Req_GETSTATUS(void *pdev)
-{
- switch (DeviceState)
- {
- case STATE_dfuDNLOAD_SYNC:
- if (wlength != 0)
- {
- DeviceState = STATE_dfuDNBUSY;
- DeviceStatus[4] = DeviceState;
- if ((wBlockNum == 0) && (MAL_Buffer[0] == CMD_ERASE))
- {
- MAL_GetStatus(Pointer, 0, DeviceStatus);
- }
- else
- {
- MAL_GetStatus(Pointer, 1, DeviceStatus);
- }
- }
- else /* (wlength==0)*/
- {
- DeviceState = STATE_dfuDNLOAD_IDLE;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
- }
- break;
-
- case STATE_dfuMANIFEST_SYNC :
- if (Manifest_State == Manifest_In_Progress)
- {
- DeviceState = STATE_dfuMANIFEST;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 1; /*bwPollTimeout = 1ms*/
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
- //break;
- }
- else if ((Manifest_State == Manifest_complete) && \
- ((usbd_dfu_CfgDesc[(11 + (9 * USBD_ITF_MAX_NUM))]) & 0x04))
- {
- DeviceState = STATE_dfuIDLE;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
- //break;
- }
- break;
-
- default :
- break;
- }
-
- /* Send the status data over EP0 */
- USBD_CtlSendData (pdev,
- (uint8_t *)(&(DeviceStatus[0])),
- 6);
-}
-
-/**
- * @brief DFU_Req_CLRSTATUS
- * Handles the DFU CLRSTATUS request.
- * @param pdev: device instance
- * @retval status
- */
-static void DFU_Req_CLRSTATUS(void *pdev)
-{
- if (DeviceState == STATE_dfuERROR)
- {
- DeviceState = STATE_dfuIDLE;
- DeviceStatus[0] = STATUS_OK;/*bStatus*/
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0; /*bwPollTimeout=0ms*/
- DeviceStatus[4] = DeviceState;/*bState*/
- DeviceStatus[5] = 0;/*iString*/
- }
- else
- { /*State Error*/
- DeviceState = STATE_dfuERROR;
- DeviceStatus[0] = STATUS_ERRUNKNOWN;/*bStatus*/
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0; /*bwPollTimeout=0ms*/
- DeviceStatus[4] = DeviceState;/*bState*/
- DeviceStatus[5] = 0;/*iString*/
- }
-}
-
-/**
- * @brief DFU_Req_GETSTATE
- * Handles the DFU GETSTATE request.
- * @param pdev: device instance
- * @retval None
- */
-static void DFU_Req_GETSTATE(void *pdev)
-{
- /* Return the current state of the DFU interface */
- USBD_CtlSendData (pdev,
- &DeviceState,
- 1);
-}
-
-/**
- * @brief DFU_Req_ABORT
- * Handles the DFU ABORT request.
- * @param pdev: device instance
- * @retval None
- */
-static void DFU_Req_ABORT(void *pdev)
-{
- if (DeviceState == STATE_dfuIDLE || DeviceState == STATE_dfuDNLOAD_SYNC
- || DeviceState == STATE_dfuDNLOAD_IDLE || DeviceState == STATE_dfuMANIFEST_SYNC
- || DeviceState == STATE_dfuUPLOAD_IDLE )
- {
- DeviceState = STATE_dfuIDLE;
- DeviceStatus[0] = STATUS_OK;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0; /*bwPollTimeout=0ms*/
- DeviceStatus[4] = DeviceState;
- DeviceStatus[5] = 0; /*iString*/
- wBlockNum = 0;
- wlength = 0;
- }
-}
-
-/**
- * @brief DFU_LeaveDFUMode
- * Handles the sub-protocol DFU leave DFU mode request (leaves DFU mode
- * and resets device to jump to user loaded code).
- * @param pdev: device instance
- * @retval None
- */
-void DFU_LeaveDFUMode(void *pdev)
-{
- Manifest_State = Manifest_complete;
-
- if ((usbd_dfu_CfgDesc[(11 + (9 * USBD_ITF_MAX_NUM))]) & 0x04)
- {
- DeviceState = STATE_dfuMANIFEST_SYNC;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
- return;
- }
- else
- {
- DeviceState = STATE_dfuMANIFEST_WAIT_RESET;
- DeviceStatus[4] = DeviceState;
- DeviceStatus[1] = 0;
- DeviceStatus[2] = 0;
- DeviceStatus[3] = 0;
-
- /* Disconnect the USB device */
- DCD_DevDisconnect (pdev);
-
- /* DeInitilialize the MAL(Media Access Layer) */
- MAL_DeInit();
-
- /* Generate system reset to allow jumping to the user code */
- NVIC_SystemReset();
-
- /* This instruction will not be reached (system reset) */
- return;
- }
-}
-
-/**
- * @brief USBD_DFU_GetCfgDesc
- * Returns configuration descriptor
- * @param speed : current device speed
- * @param length : pointer data length
- * @retval pointer to descriptor buffer
- */
-static uint8_t *USBD_DFU_GetCfgDesc (uint8_t speed, uint16_t *length)
-{
- *length = sizeof (usbd_dfu_CfgDesc);
- return usbd_dfu_CfgDesc;
-}
-
-#ifdef USB_OTG_HS_CORE
-/**
- * @brief USBD_DFU_GetOtherCfgDesc
- * Returns other speed configuration descriptor.
- * @param speed : current device speed
- * @param length : pointer data length
- * @retval pointer to descriptor buffer
- */
-static uint8_t *USBD_DFU_GetOtherCfgDesc (uint8_t speed, uint16_t *length)
-{
- *length = sizeof (usbd_dfu_OtherCfgDesc);
- return usbd_dfu_OtherCfgDesc;
-}
-#endif
-
-/**
- * @brief USBD_DFU_GetUsrStringDesc
- * Manages the transfer of memory interfaces string descriptors.
- * @param speed : current device speed
- * @param index: desciptor index
- * @param length : pointer data length
- * @retval pointer to the descriptor table or NULL if the descriptor is not supported.
- */
-static uint8_t* USBD_DFU_GetUsrStringDesc (uint8_t speed, uint8_t index , uint16_t *length)
-{
- /* Check if the requested string interface is supported */
- if (index <= (USBD_IDX_INTERFACE_STR + USBD_ITF_MAX_NUM))
- {
-
-
- USBD_GetString ((uint8_t *)usbd_dfu_StringDesc[index - USBD_IDX_INTERFACE_STR - 1], USBD_StrDesc, length);
- return USBD_StrDesc;
- }
- /* Not supported Interface Descriptor index */
- else
- {
- return NULL;
- }
-}
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_dfu_mal.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_dfu_mal.c
deleted file mode 100755
index 94d6952..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_dfu_mal.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_dfu_mal.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Generic media access Layer.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_dfu_mal.h"
-
-#include "usbd_flash_if.h"
-
-#ifdef DFU_MAL_SUPPORT_OTP
- #include "usbd_otp_if.h"
-#endif
-
-#ifdef DFU_MAL_SUPPORT_MEM
- #include "usbd_mem_if_template.h"
-#endif
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-
-/* Global Memories callback and string descriptors reference tables.
- To add a new memory, modify the value of MAX_USED_MEDIA in usbd_dfu_mal.h
- and add the pointer to the callback structure in this table.
- Then add the pointer to the memory string descriptor in usbd_dfu_StringDesc table.
- No other operation is required. */
-DFU_MAL_Prop_TypeDef* tMALTab[MAX_USED_MEDIA] = {
- &DFU_Flash_cb
-#ifdef DFU_MAL_SUPPORT_OTP
- , &DFU_Otp_cb
-#endif
-#ifdef DFU_MAL_SUPPORT_MEM
- , &DFU_Mem_cb
-#endif
-};
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-
-__ALIGN_BEGIN const uint8_t* usbd_dfu_StringDesc[MAX_USED_MEDIA] __ALIGN_END = {
- FLASH_IF_STRING
-#ifdef DFU_MAL_SUPPORT_OTP
- , OTP_IF_STRING
-#endif
-#ifdef DFU_MAL_SUPPORT_MEM
- , MEM_IF_STRING
-#endif
-};
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-/* RAM Buffer for Downloaded Data */
-__ALIGN_BEGIN uint8_t MAL_Buffer[XFERSIZE] __ALIGN_END ;
-
-/* Private function prototypes -----------------------------------------------*/
-static uint8_t MAL_CheckAdd (uint32_t Add);
-/* Private functions ---------------------------------------------------------*/
-
-/**
- * @brief MAL_Init
- * Initializes the Media on the STM32
- * @param None
- * @retval Result of the opeartion (MAL_OK in all cases)
- */
-uint16_t MAL_Init(void)
-{
- uint32_t memIdx = 0;
-
- /* Init all supported memories */
- for(memIdx = 0; memIdx < MAX_USED_MEDIA; memIdx++)
- {
- /* If the check addres is positive, exit with the memory index */
- if (tMALTab[memIdx]->pMAL_Init != NULL)
- {
- tMALTab[memIdx]->pMAL_Init();
- }
- }
-
- return MAL_OK;
-}
-
-/**
- * @brief MAL_DeInit
- * DeInitializes the Media on the STM32
- * @param None
- * @retval Result of the opeartion (MAL_OK in all cases)
- */
-uint16_t MAL_DeInit(void)
-{
- uint32_t memIdx = 0;
-
- /* Init all supported memories */
- for(memIdx = 0; memIdx < MAX_USED_MEDIA; memIdx++)
- {
- /* Check if the command is supported */
- if (tMALTab[memIdx]->pMAL_DeInit != NULL)
- {
- tMALTab[memIdx]->pMAL_DeInit();
- }
- }
-
- return MAL_OK;
-}
-
-/**
- * @brief MAL_Erase
- * Erase a sector of memory.
- * @param Add: Sector address/code
- * @retval Result of the opeartion: MAL_OK if all operations are OK else MAL_FAIL
- */
-uint16_t MAL_Erase(uint32_t Add)
-{
- uint32_t memIdx = MAL_CheckAdd(Add);
-
- /* Check if the area is protected */
- if (DFU_MAL_IS_PROTECTED_AREA(Add))
- {
- return MAL_FAIL;
- }
-
- if (memIdx < MAX_USED_MEDIA)
- {
- /* Check if the command is supported */
- if (tMALTab[memIdx]->pMAL_Erase != NULL)
- {
- return tMALTab[memIdx]->pMAL_Erase(Add);
- }
- else
- {
- return MAL_FAIL;
- }
- }
- else
- {
- return MAL_FAIL;
- }
-}
-
-/**
- * @brief MAL_Write
- * Write sectors of memory.
- * @param Add: Sector address/code
- * @param Len: Number of data to be written (in bytes)
- * @retval Result of the opeartion: MAL_OK if all operations are OK else MAL_FAIL
- */
-uint16_t MAL_Write (uint32_t Add, uint32_t Len)
-{
- uint32_t memIdx = MAL_CheckAdd(Add);
-
- /* Check if the area is protected */
- if (DFU_MAL_IS_PROTECTED_AREA(Add))
- {
- return MAL_FAIL;
- }
-
- if (memIdx < MAX_USED_MEDIA)
- {
- /* Check if the command is supported */
- if (tMALTab[memIdx]->pMAL_Write != NULL)
- {
- return tMALTab[memIdx]->pMAL_Write(Add, Len);
- }
- else
- {
- return MAL_FAIL;
- }
- }
- else
- {
- return MAL_FAIL;
- }
-}
-
-/**
- * @brief MAL_Read
- * Read sectors of memory.
- * @param Add: Sector address/code
- * @param Len: Number of data to be written (in bytes)
- * @retval Buffer pointer
- */
-uint8_t *MAL_Read (uint32_t Add, uint32_t Len)
-{
- uint32_t memIdx = MAL_CheckAdd(Add);
-
- if (memIdx < MAX_USED_MEDIA)
- {
- /* Check if the command is supported */
- if (tMALTab[memIdx]->pMAL_Read != NULL)
- {
- return tMALTab[memIdx]->pMAL_Read(Add, Len);
- }
- else
- {
- return MAL_Buffer;
- }
- }
- else
- {
- return MAL_Buffer;
- }
-}
-
-/**
- * @brief MAL_GetStatus
- * Get the status of a given memory.
- * @param Add: Sector address/code (allow to determine which memory will be addressed)
- * @param Cmd: 0 for erase and 1 for write
- * @param buffer: pointer to the buffer where the status data will be stored.
- * @retval Buffer pointer
- */
-uint16_t MAL_GetStatus(uint32_t Add , uint8_t Cmd, uint8_t *buffer)
-{
- uint32_t memIdx = MAL_CheckAdd(Add);
-
- if (memIdx < MAX_USED_MEDIA)
- {
- if (Cmd & 0x01)
- {
- SET_POLLING_TIMING(tMALTab[memIdx]->EraseTiming);
- }
- else
- {
- SET_POLLING_TIMING(tMALTab[memIdx]->WriteTiming);
- }
-
- return MAL_OK;
- }
- else
- {
- return MAL_FAIL;
- }
-}
-
-/**
- * @brief MAL_CheckAdd
- * Determine which memory should be managed.
- * @param Add: Sector address/code (allow to determine which memory will be addressed)
- * @retval Index of the addressed memory.
- */
-static uint8_t MAL_CheckAdd(uint32_t Add)
-{
- uint32_t memIdx = 0;
-
- /* Check with all supported memories */
- for(memIdx = 0; memIdx < MAX_USED_MEDIA; memIdx++)
- {
- /* If the check addres is positive, exit with the memory index */
- if (tMALTab[memIdx]->pMAL_CheckAdd(Add) == MAL_OK)
- {
- return memIdx;
- }
- }
- /* If no memory found, return MAX_USED_MEDIA */
- return (MAX_USED_MEDIA);
-}
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_flash_if.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_flash_if.c
deleted file mode 100755
index f2b5134..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_flash_if.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_flash_if.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Specific media access Layer for internal flash.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_flash_if.h"
-#include "usbd_dfu_mal.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-
-/* Private function prototypes -----------------------------------------------*/
-uint16_t FLASH_If_Init(void);
-uint16_t FLASH_If_Erase (uint32_t Add);
-uint16_t FLASH_If_Write (uint32_t Add, uint32_t Len);
-uint8_t *FLASH_If_Read (uint32_t Add, uint32_t Len);
-uint16_t FLASH_If_DeInit(void);
-uint16_t FLASH_If_CheckAdd(uint32_t Add);
-
-
-/* Private variables ---------------------------------------------------------*/
-DFU_MAL_Prop_TypeDef DFU_Flash_cb =
- {
- FLASH_IF_STRING,
- FLASH_If_Init,
- FLASH_If_DeInit,
- FLASH_If_Erase,
- FLASH_If_Write,
- FLASH_If_Read,
- FLASH_If_CheckAdd,
- 50, /* Erase Time in ms */
- 50 /* Programming Time in ms */
- };
-
-/* Private functions ---------------------------------------------------------*/
-
-/**
- * @brief FLASH_If_Init
- * Memory initialization routine.
- * @param None
- * @retval MAL_OK if operation is successeful, MAL_FAIL else.
- */
-uint16_t FLASH_If_Init(void)
-{
- /* Unlock the internal flash */
- FLASH_Unlock();
-
- return MAL_OK;
-}
-
-/**
- * @brief FLASH_If_DeInit
- * Memory deinitialization routine.
- * @param None
- * @retval MAL_OK if operation is successeful, MAL_FAIL else.
- */
-uint16_t FLASH_If_DeInit(void)
-{
- /* Lock the internal flash */
- FLASH_Lock();
-
- return MAL_OK;
-}
-
-/*******************************************************************************
-* Function Name : FLASH_If_Erase
-* Description : Erase sector
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-uint16_t FLASH_If_Erase(uint32_t Add)
-{
-#ifdef STM32F2XX
- /* Check which sector has to be erased */
- if (Add < 0x08004000)
- {
- FLASH_EraseSector(FLASH_Sector_0, VoltageRange_3);
- }
- else if (Add < 0x08008000)
- {
- FLASH_EraseSector(FLASH_Sector_1, VoltageRange_3);
- }
- else if (Add < 0x0800C000)
- {
- FLASH_EraseSector(FLASH_Sector_2, VoltageRange_3);
- }
- else if (Add < 0x08010000)
- {
- FLASH_EraseSector(FLASH_Sector_3, VoltageRange_3);
- }
- else if (Add < 0x08020000)
- {
- FLASH_EraseSector(FLASH_Sector_4, VoltageRange_3);
- }
- else if (Add < 0x08040000)
- {
- FLASH_EraseSector(FLASH_Sector_5, VoltageRange_3);
- }
- else if (Add < 0x08060000)
- {
- FLASH_EraseSector(FLASH_Sector_6, VoltageRange_3);
- }
- else if (Add < 0x08080000)
- {
- FLASH_EraseSector(FLASH_Sector_7, VoltageRange_3);
- }
- else if (Add < 0x080A0000)
- {
- FLASH_EraseSector(FLASH_Sector_8, VoltageRange_3);
- }
- else if (Add < 0x080C0000)
- {
- FLASH_EraseSector(FLASH_Sector_9, VoltageRange_3);
- }
- else if (Add < 0x080E0000)
- {
- FLASH_EraseSector(FLASH_Sector_10, VoltageRange_3);
- }
- else if (Add < 0x08100000)
- {
- FLASH_EraseSector(FLASH_Sector_11, VoltageRange_3);
- }
- else
- {
- return MAL_FAIL;
- }
-#elif defined(STM32F10X_CL)
- /* Call the standard Flash erase function */
- FLASH_ErasePage(Add);
-#endif /* STM32F2XX */
-
- return MAL_OK;
-}
-
-/**
- * @brief FLASH_If_Write
- * Memory write routine.
- * @param Add: Address to be written to.
- * @param Len: Number of data to be written (in bytes).
- * @retval MAL_OK if operation is successeful, MAL_FAIL else.
- */
-uint16_t FLASH_If_Write(uint32_t Add, uint32_t Len)
-{
- uint32_t idx = 0;
-
- if (Len & 0x3) /* Not an aligned data */
- {
- for (idx = Len; idx < ((Len & 0xFFFC) + 4); idx++)
- {
- MAL_Buffer[idx] = 0xFF;
- }
- }
-
- /* Data received are Word multiple */
- for (idx = 0; idx < Len; idx = idx + 4)
- {
- FLASH_ProgramWord(Add, *(uint32_t *)(MAL_Buffer + idx));
- Add += 4;
- }
- return MAL_OK;
-}
-
-/**
- * @brief FLASH_If_Read
- * Memory read routine.
- * @param Add: Address to be read from.
- * @param Len: Number of data to be read (in bytes).
- * @retval Pointer to the phyisical address where data should be read.
- */
-uint8_t *FLASH_If_Read (uint32_t Add, uint32_t Len)
-{
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- uint32_t idx = 0;
- for (idx = 0; idx < Len; idx += 4)
- {
- *(uint32_t*)(MAL_Buffer + idx) = *(uint32_t *)(Add + idx);
- }
- return (uint8_t*)(MAL_Buffer);
-#else
- return (uint8_t *)(Add);
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-}
-
-/**
- * @brief FLASH_If_CheckAdd
- * Check if the address is an allowed address for this memory.
- * @param Add: Address to be checked.
- * @param Len: Number of data to be read (in bytes).
- * @retval MAL_OK if the address is allowed, MAL_FAIL else.
- */
-uint16_t FLASH_If_CheckAdd(uint32_t Add)
-{
- if ((Add >= FLASH_START_ADD) && (Add < FLASH_END_ADD))
- {
- return MAL_OK;
- }
- else
- {
- return MAL_FAIL;
- }
-}
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_mem_if_template.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_mem_if_template.c
deleted file mode 100755
index 7e01472..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_mem_if_template.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_mem_if_template.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Specific media access Layer for a template memory. This file is
- provided as template example showing how to implement a new memory
- interface based on pre-defined API.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_mem_if_template.h"
-#include "usbd_dfu_mal.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-
-/* Private function prototypes -----------------------------------------------*/
-uint16_t MEM_If_Init(void);
-uint16_t MEM_If_Erase (uint32_t Add);
-uint16_t MEM_If_Write (uint32_t Add, uint32_t Len);
-uint8_t *MEM_If_Read (uint32_t Add, uint32_t Len);
-uint16_t MEM_If_DeInit(void);
-uint16_t MEM_If_CheckAdd(uint32_t Add);
-
-
-/* Private variables ---------------------------------------------------------*/
-DFU_MAL_Prop_TypeDef DFU_Mem_cb =
- {
- MEM_IF_STRING,
- MEM_If_Init,
- MEM_If_DeInit,
- MEM_If_Erase,
- MEM_If_Write,
- MEM_If_Read,
- MEM_If_CheckAdd,
- 10, /* Erase Time in ms */
- 10 /* Programming Time in ms */
- };
-
-/* Private functions ---------------------------------------------------------*/
-
-/**
- * @brief MEM_If_Init
- * Memory initialization routine.
- * @param None
- * @retval MAL_OK if operation is successeful, MAL_FAIL else.
- */
-uint16_t MEM_If_Init(void)
-{
- return MAL_OK;
-}
-
-/**
- * @brief MEM_If_DeInit
- * Memory deinitialization routine.
- * @param None
- * @retval MAL_OK if operation is successeful, MAL_FAIL else.
- */
-uint16_t MEM_If_DeInit(void)
-{
- return MAL_OK;
-}
-
-/**
- * @brief MEM_If_Erase
- * Erase sector.
- * @param Add: Address of sector to be erased.
- * @retval MAL_OK if operation is successeful, MAL_FAIL else.
- */
-uint16_t MEM_If_Erase(uint32_t Add)
-{
- return MAL_OK;
-}
-
-/**
- * @brief MEM_If_Write
- * Memory write routine.
- * @param Add: Address to be written to.
- * @param Len: Number of data to be written (in bytes).
- * @retval MAL_OK if operation is successeful, MAL_FAIL else.
- */
-uint16_t MEM_If_Write(uint32_t Add, uint32_t Len)
-{
- return MAL_OK;
-}
-
-/**
- * @brief MEM_If_Read
- * Memory read routine.
- * @param Add: Address to be read from.
- * @param Len: Number of data to be read (in bytes).
- * @retval Pointer to the phyisical address where data should be read.
- */
-uint8_t *MEM_If_Read (uint32_t Add, uint32_t Len)
-{
- /* Return a valid address to avoid HardFault */
- return (uint8_t*)(MAL_Buffer);
-}
-
-/**
- * @brief MEM_If_CheckAdd
- * Check if the address is an allowed address for this memory.
- * @param Add: Address to be checked.
- * @param Len: Number of data to be read (in bytes).
- * @retval MAL_OK if the address is allowed, MAL_FAIL else.
- */
-uint16_t MEM_If_CheckAdd(uint32_t Add)
-{
- if ((Add >= MEM_START_ADD) && (Add < MEM_END_ADD))
- {
- return MAL_OK;
- }
- else
- {
- return MAL_FAIL;
- }
-}
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_otp_if.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_otp_if.c
deleted file mode 100755
index 292fc62..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/dfu/src/usbd_otp_if.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_otp_if.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Specific media access Layer for OTP (One Time Programming) memory.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_otp_if.h"
-#include "usbd_dfu_mal.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-
-/* Private function prototypes -----------------------------------------------*/
-uint16_t OTP_If_Write (uint32_t Add, uint32_t Len);
-uint8_t *OTP_If_Read (uint32_t Add, uint32_t Len);
-uint16_t OTP_If_DeInit(void);
-uint16_t OTP_If_CheckAdd(uint32_t Add);
-
-
-/* Private variables ---------------------------------------------------------*/
-DFU_MAL_Prop_TypeDef DFU_Otp_cb =
- {
- OTP_IF_STRING,
- NULL, /* Init not supported*/
- NULL, /* DeInit not supported */
- NULL, /* Erase not supported */
- OTP_If_Write,
- OTP_If_Read,
- OTP_If_CheckAdd,
- 1, /* Erase Time in ms */
- 10 /* Programming Time in ms */
- };
-
-/* Private functions ---------------------------------------------------------*/
-
-/**
- * @brief OTP_If_Write
- * Memory write routine.
- * @param Add: Address to be written to.
- * @param Len: Number of data to be written (in bytes).
- * @retval MAL_OK if operation is successeful, MAL_FAIL else.
- */
-uint16_t OTP_If_Write(uint32_t Add, uint32_t Len)
-{
- uint32_t idx = 0;
-
- if (Len & 0x3) /* Not an aligned data */
- {
- for (idx = Len; idx < ((Len & 0xFFFC) + 4); idx++)
- {
- MAL_Buffer[idx] = 0xFF;
- }
- }
-
- /* Data received are Word multiple */
- for (idx = 0; idx < Len; idx = idx + 4)
- {
- FLASH_ProgramWord(Add, *(uint32_t *)(MAL_Buffer + idx));
- Add += 4;
- }
- return MAL_OK;
-}
-
-/**
- * @brief OTP_If_Read
- * Memory read routine.
- * @param Add: Address to be read from.
- * @param Len: Number of data to be read (in bytes).
- * @retval Pointer to the phyisical address where data should be read.
- */
-uint8_t *OTP_If_Read (uint32_t Add, uint32_t Len)
-{
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- uint32_t idx = 0;
- for (idx = 0; idx < Len; idx += 4)
- {
- *(uint32_t*)(MAL_Buffer + idx) = *(uint32_t *)(Add + idx);
- }
- return (uint8_t*)(MAL_Buffer);
-#else
- return (uint8_t*)(Add);
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-}
-
-/**
- * @brief OTP_If_CheckAdd
- * Check if the address is an allowed address for this memory.
- * @param Add: Address to be checked.
- * @param Len: Number of data to be read (in bytes).
- * @retval MAL_OK if the address is allowed, MAL_FAIL else.
- */
-uint16_t OTP_If_CheckAdd(uint32_t Add)
-{
- if ((Add >= OTP_START_ADD) && (Add < OTP_END_ADD))
- {
- return MAL_OK;
- }
- else
- {
- return MAL_FAIL;
- }
-}
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/hid/inc/usbd_hid_core.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/hid/inc/usbd_hid_core.h
deleted file mode 100755
index 65ba74a..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/hid/inc/usbd_hid_core.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_hid_core.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header file for the usbd_hid_core.c file.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-
-#ifndef __USB_HID_CORE_H_
-#define __USB_HID_CORE_H_
-
-#include "usbd_ioreq.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USBD_HID
- * @brief This file is the Header file for USBD_msc.c
- * @{
- */
-
-
-/** @defgroup USBD_HID_Exported_Defines
- * @{
- */
-#define USB_HID_CONFIG_DESC_SIZ 34
-#define USB_HID_DESC_SIZ 9
-#define HID_MOUSE_REPORT_DESC_SIZE 74
-
-#define HID_DESCRIPTOR_TYPE 0x21
-#define HID_REPORT_DESC 0x22
-
-
-#define HID_REQ_SET_PROTOCOL 0x0B
-#define HID_REQ_GET_PROTOCOL 0x03
-
-#define HID_REQ_SET_IDLE 0x0A
-#define HID_REQ_GET_IDLE 0x02
-
-#define HID_REQ_SET_REPORT 0x09
-#define HID_REQ_GET_REPORT 0x01
-/**
- * @}
- */
-
-
-/** @defgroup USBD_CORE_Exported_TypesDefinitions
- * @{
- */
-
-
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_CORE_Exported_Macros
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_CORE_Exported_Variables
- * @{
- */
-
-extern USBD_Class_cb_TypeDef USBD_HID_cb;
-/**
- * @}
- */
-
-/** @defgroup USB_CORE_Exported_Functions
- * @{
- */
-uint8_t USBD_HID_SendReport (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *report,
- uint16_t len);
-/**
- * @}
- */
-
-#endif // __USB_HID_CORE_H_
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/hid/src/usbd_hid_core.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/hid/src/usbd_hid_core.c
deleted file mode 100755
index bd77406..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/hid/src/usbd_hid_core.c
+++ /dev/null
@@ -1,460 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_hid_core.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides the HID core functions.
- *
- * @verbatim
- *
- * ===================================================================
- * HID Class Description
- * ===================================================================
- * This module manages the HID class V1.11 following the "Device Class Definition
- * for Human Interface Devices (HID) Version 1.11 Jun 27, 2001".
- * This driver implements the following aspects of the specification:
- * - The Boot Interface Subclass
- * - The Mouse protocol
- * - Usage Page : Generic Desktop
- * - Usage : Joystick)
- * - Collection : Application
- *
- * @note In HS mode and when the DMA is used, all variables and data structures
- * dealing with the DMA during the transaction process should be 32-bit aligned.
- *
- *
- * @endverbatim
- *
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_hid_core.h"
-#include "usbd_desc.h"
-#include "usbd_req.h"
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup USBD_HID
- * @brief usbd core module
- * @{
- */
-
-/** @defgroup USBD_HID_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_HID_Private_Defines
- * @{
- */
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_HID_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-
-
-/** @defgroup USBD_HID_Private_FunctionPrototypes
- * @{
- */
-
-
-static uint8_t USBD_HID_Init (void *pdev,
- uint8_t cfgidx);
-
-static uint8_t USBD_HID_DeInit (void *pdev,
- uint8_t cfgidx);
-
-static uint8_t USBD_HID_Setup (void *pdev,
- USB_SETUP_REQ *req);
-
-static uint8_t *USBD_HID_GetCfgDesc (uint8_t speed, uint16_t *length);
-
-static uint8_t USBD_HID_DataIn (void *pdev, uint8_t epnum);
-/**
- * @}
- */
-
-/** @defgroup USBD_HID_Private_Variables
- * @{
- */
-
-USBD_Class_cb_TypeDef USBD_HID_cb =
-{
- USBD_HID_Init,
- USBD_HID_DeInit,
- USBD_HID_Setup,
- NULL, /*EP0_TxSent*/
- NULL, /*EP0_RxReady*/
- USBD_HID_DataIn, /*DataIn*/
- NULL, /*DataOut*/
- NULL, /*SOF */
- NULL,
- NULL,
- USBD_HID_GetCfgDesc,
-#ifdef USB_OTG_HS_CORE
- USBD_HID_GetCfgDesc, /* use same config as per FS */
-#endif
-};
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN static uint32_t USBD_HID_AltSet __ALIGN_END = 0;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN static uint32_t USBD_HID_Protocol __ALIGN_END = 0;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN static uint32_t USBD_HID_IdleState __ALIGN_END = 0;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-/* USB HID device Configuration Descriptor */
-__ALIGN_BEGIN static uint8_t USBD_HID_CfgDesc[USB_HID_CONFIG_DESC_SIZ] __ALIGN_END =
-{
- 0x09, /* bLength: Configuration Descriptor size */
- USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */
- USB_HID_CONFIG_DESC_SIZ,
- /* wTotalLength: Bytes returned */
- 0x00,
- 0x01, /*bNumInterfaces: 1 interface*/
- 0x01, /*bConfigurationValue: Configuration value*/
- 0x00, /*iConfiguration: Index of string descriptor describing
- the configuration*/
- 0xE0, /*bmAttributes: bus powered and Support Remote Wake-up */
- 0x32, /*MaxPower 100 mA: this current is used for detecting Vbus*/
-
- /************** Descriptor of Joystick Mouse interface ****************/
- /* 09 */
- 0x09, /*bLength: Interface Descriptor size*/
- USB_INTERFACE_DESCRIPTOR_TYPE,/*bDescriptorType: Interface descriptor type*/
- 0x00, /*bInterfaceNumber: Number of Interface*/
- 0x00, /*bAlternateSetting: Alternate setting*/
- 0x01, /*bNumEndpoints*/
- 0x03, /*bInterfaceClass: HID*/
- 0x01, /*bInterfaceSubClass : 1=BOOT, 0=no boot*/
- 0x02, /*nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse*/
- 0, /*iInterface: Index of string descriptor*/
- /******************** Descriptor of Joystick Mouse HID ********************/
- /* 18 */
- 0x09, /*bLength: HID Descriptor size*/
- HID_DESCRIPTOR_TYPE, /*bDescriptorType: HID*/
- 0x11, /*bcdHID: HID Class Spec release number*/
- 0x01,
- 0x00, /*bCountryCode: Hardware target country*/
- 0x01, /*bNumDescriptors: Number of HID class descriptors to follow*/
- 0x22, /*bDescriptorType*/
- HID_MOUSE_REPORT_DESC_SIZE,/*wItemLength: Total length of Report descriptor*/
- 0x00,
- /******************** Descriptor of Mouse endpoint ********************/
- /* 27 */
- 0x07, /*bLength: Endpoint Descriptor size*/
- USB_ENDPOINT_DESCRIPTOR_TYPE, /*bDescriptorType:*/
-
- HID_IN_EP, /*bEndpointAddress: Endpoint Address (IN)*/
- 0x03, /*bmAttributes: Interrupt endpoint*/
- HID_IN_PACKET, /*wMaxPacketSize: 4 Byte max */
- 0x00,
- 0x0A, /*bInterval: Polling Interval (10 ms)*/
- /* 34 */
-} ;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END =
-{
- 0x05, 0x01,
- 0x09, 0x02,
- 0xA1, 0x01,
- 0x09, 0x01,
-
- 0xA1, 0x00,
- 0x05, 0x09,
- 0x19, 0x01,
- 0x29, 0x03,
-
- 0x15, 0x00,
- 0x25, 0x01,
- 0x95, 0x03,
- 0x75, 0x01,
-
- 0x81, 0x02,
- 0x95, 0x01,
- 0x75, 0x05,
- 0x81, 0x01,
-
- 0x05, 0x01,
- 0x09, 0x30,
- 0x09, 0x31,
- 0x09, 0x38,
-
- 0x15, 0x81,
- 0x25, 0x7F,
- 0x75, 0x08,
- 0x95, 0x03,
-
- 0x81, 0x06,
- 0xC0, 0x09,
- 0x3c, 0x05,
- 0xff, 0x09,
-
- 0x01, 0x15,
- 0x00, 0x25,
- 0x01, 0x75,
- 0x01, 0x95,
-
- 0x02, 0xb1,
- 0x22, 0x75,
- 0x06, 0x95,
- 0x01, 0xb1,
-
- 0x01, 0xc0
-};
-
-/**
- * @}
- */
-
-/** @defgroup USBD_HID_Private_Functions
- * @{
- */
-
-/**
- * @brief USBD_HID_Init
- * Initialize the HID interface
- * @param pdev: device instance
- * @param cfgidx: Configuration index
- * @retval status
- */
-static uint8_t USBD_HID_Init (void *pdev,
- uint8_t cfgidx)
-{
-
- /* Open EP IN */
- DCD_EP_Open(pdev,
- HID_IN_EP,
- HID_IN_PACKET,
- USB_OTG_EP_INT);
-
- /* Open EP OUT */
- DCD_EP_Open(pdev,
- HID_OUT_EP,
- HID_OUT_PACKET,
- USB_OTG_EP_INT);
-
- return USBD_OK;
-}
-
-/**
- * @brief USBD_HID_Init
- * DeInitialize the HID layer
- * @param pdev: device instance
- * @param cfgidx: Configuration index
- * @retval status
- */
-static uint8_t USBD_HID_DeInit (void *pdev,
- uint8_t cfgidx)
-{
- /* Close HID EPs */
- DCD_EP_Close (pdev , HID_IN_EP);
- DCD_EP_Close (pdev , HID_OUT_EP);
-
-
- return USBD_OK;
-}
-
-/**
- * @brief USBD_HID_Setup
- * Handle the HID specific requests
- * @param pdev: instance
- * @param req: usb requests
- * @retval status
- */
-static uint8_t USBD_HID_Setup (void *pdev,
- USB_SETUP_REQ *req)
-{
- uint16_t len = 0;
- uint8_t *pbuf = NULL;
-
- switch (req->bmRequest & USB_REQ_TYPE_MASK)
- {
- case USB_REQ_TYPE_CLASS :
- switch (req->bRequest)
- {
-
-
- case HID_REQ_SET_PROTOCOL:
- USBD_HID_Protocol = (uint8_t)(req->wValue);
- break;
-
- case HID_REQ_GET_PROTOCOL:
- USBD_CtlSendData (pdev,
- (uint8_t *)&USBD_HID_Protocol,
- 1);
- break;
-
- case HID_REQ_SET_IDLE:
- USBD_HID_IdleState = (uint8_t)(req->wValue >> 8);
- break;
-
- case HID_REQ_GET_IDLE:
- USBD_CtlSendData (pdev,
- (uint8_t *)&USBD_HID_IdleState,
- 1);
- break;
-
- default:
- USBD_CtlError (pdev, req);
- return USBD_FAIL;
- }
- break;
-
- case USB_REQ_TYPE_STANDARD:
- switch (req->bRequest)
- {
- case USB_REQ_GET_DESCRIPTOR:
- if( req->wValue >> 8 == HID_REPORT_DESC)
- {
- len = MIN(HID_MOUSE_REPORT_DESC_SIZE , req->wLength);
- pbuf = HID_MOUSE_ReportDesc;
- }
- else if( req->wValue >> 8 == HID_DESCRIPTOR_TYPE)
- {
-
-//#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
-// pbuf = USBD_HID_Desc;
-//#else
- pbuf = USBD_HID_CfgDesc + 0x12;
-//#endif
- len = MIN(USB_HID_DESC_SIZ , req->wLength);
- }
-
- USBD_CtlSendData (pdev,
- pbuf,
- len);
-
- break;
-
- case USB_REQ_GET_INTERFACE :
- USBD_CtlSendData (pdev,
- (uint8_t *)&USBD_HID_AltSet,
- 1);
- break;
-
- case USB_REQ_SET_INTERFACE :
- USBD_HID_AltSet = (uint8_t)(req->wValue);
- break;
- }
- }
- return USBD_OK;
-}
-
-/**
- * @brief USBD_HID_SendReport
- * Send HID Report
- * @param pdev: device instance
- * @param buff: pointer to report
- * @retval status
- */
-uint8_t USBD_HID_SendReport (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *report,
- uint16_t len)
-{
- if (pdev->dev.device_status == USB_OTG_CONFIGURED )
- {
- DCD_EP_Tx (pdev, HID_IN_EP, report, len);
- }
- return USBD_OK;
-}
-
-/**
- * @brief USBD_HID_GetCfgDesc
- * return configuration descriptor
- * @param speed : current device speed
- * @param length : pointer data length
- * @retval pointer to descriptor buffer
- */
-static uint8_t *USBD_HID_GetCfgDesc (uint8_t speed, uint16_t *length)
-{
- *length = sizeof (USBD_HID_CfgDesc);
- return USBD_HID_CfgDesc;
-}
-
-/**
- * @brief USBD_HID_DataIn
- * handle data IN Stage
- * @param pdev: device instance
- * @param epnum: endpoint index
- * @retval status
- */
-static uint8_t USBD_HID_DataIn (void *pdev,
- uint8_t epnum)
-{
-
- /* Ensure that the FIFO is empty before a new transfer, this condition could
- be caused by a new transfer before the end of the previous transfer */
- DCD_EP_Flush(pdev, HID_IN_EP);
- return USBD_OK;
-}
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_bot.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_bot.h
deleted file mode 100755
index 72babe1..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_bot.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_bot.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header for the usbd_msc_bot.c file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-
-#include "usbd_core.h"
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBD_MSC_BOT_H
-#define __USBD_MSC_BOT_H
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup MSC_BOT
- * @brief This file is the Header file for usbd_bot.c
- * @{
- */
-
-
-/** @defgroup USBD_CORE_Exported_Defines
- * @{
- */
-#define BOT_IDLE 0 /* Idle state */
-#define BOT_DATA_OUT 1 /* Data Out state */
-#define BOT_DATA_IN 2 /* Data In state */
-#define BOT_LAST_DATA_IN 3 /* Last Data In Last */
-#define BOT_SEND_DATA 4 /* Send Immediate data */
-
-#define BOT_CBW_SIGNATURE 0x43425355
-#define BOT_CSW_SIGNATURE 0x53425355
-#define BOT_CBW_LENGTH 31
-#define BOT_CSW_LENGTH 13
-
-/* CSW Status Definitions */
-#define CSW_CMD_PASSED 0x00
-#define CSW_CMD_FAILED 0x01
-#define CSW_PHASE_ERROR 0x02
-
-/* BOT Status */
-#define BOT_STATE_NORMAL 0
-#define BOT_STATE_RECOVERY 1
-#define BOT_STATE_ERROR 2
-
-
-#define DIR_IN 0
-#define DIR_OUT 1
-#define BOTH_DIR 2
-
-/**
- * @}
- */
-
-/** @defgroup MSC_CORE_Private_TypesDefinitions
- * @{
- */
-
-typedef struct _MSC_BOT_CBW
-{
- uint32_t dSignature;
- uint32_t dTag;
- uint32_t dDataLength;
- uint8_t bmFlags;
- uint8_t bLUN;
- uint8_t bCBLength;
- uint8_t CB[16];
-}
-MSC_BOT_CBW_TypeDef;
-
-
-typedef struct _MSC_BOT_CSW
-{
- uint32_t dSignature;
- uint32_t dTag;
- uint32_t dDataResidue;
- uint8_t bStatus;
-}
-MSC_BOT_CSW_TypeDef;
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_CORE_Exported_Types
- * @{
- */
-
-extern uint8_t MSC_BOT_Data[];
-extern uint16_t MSC_BOT_DataLen;
-extern uint8_t MSC_BOT_State;
-extern uint8_t MSC_BOT_BurstMode;
-extern MSC_BOT_CBW_TypeDef MSC_BOT_cbw;
-extern MSC_BOT_CSW_TypeDef MSC_BOT_csw;
-/**
- * @}
- */
-/** @defgroup USBD_CORE_Exported_FunctionsPrototypes
- * @{
- */
-void MSC_BOT_Init (USB_OTG_CORE_HANDLE *pdev);
-void MSC_BOT_Reset (USB_OTG_CORE_HANDLE *pdev);
-void MSC_BOT_DeInit (USB_OTG_CORE_HANDLE *pdev);
-void MSC_BOT_DataIn (USB_OTG_CORE_HANDLE *pdev,
- uint8_t epnum);
-
-void MSC_BOT_DataOut (USB_OTG_CORE_HANDLE *pdev,
- uint8_t epnum);
-
-void MSC_BOT_SendCSW (USB_OTG_CORE_HANDLE *pdev,
- uint8_t CSW_Status);
-
-void MSC_BOT_CplClrFeature (USB_OTG_CORE_HANDLE *pdev,
- uint8_t epnum);
-/**
- * @}
- */
-
-#endif /* __USBD_MSC_BOT_H */
-/**
- * @}
- */
-
-/**
-* @}
-*/
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_core.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_core.h
deleted file mode 100755
index 55d2964..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_core.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_core.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header for the usbd_msc_core.c file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef _USB_MSC_CORE_H_
-#define _USB_MSC_CORE_H_
-
-#include "usbd_ioreq.h"
-
-/** @addtogroup USBD_MSC_BOT
- * @{
- */
-
-/** @defgroup USBD_MSC
- * @brief This file is the Header file for USBD_msc.c
- * @{
- */
-
-
-/** @defgroup USBD_BOT_Exported_Defines
- * @{
- */
-
-
-#define BOT_GET_MAX_LUN 0xFE
-#define BOT_RESET 0xFF
-#define USB_MSC_CONFIG_DESC_SIZ 32
-
-#define MSC_EPIN_SIZE *(uint16_t *)(((USB_OTG_CORE_HANDLE *)pdev)->dev.pConfig_descriptor + 22)
-
-#define MSC_EPOUT_SIZE *(uint16_t *)(((USB_OTG_CORE_HANDLE *)pdev)->dev.pConfig_descriptor + 29)
-
-/**
- * @}
- */
-
-/** @defgroup USB_CORE_Exported_Types
- * @{
- */
-
-extern USBD_Class_cb_TypeDef USBD_MSC_cb;
-/**
- * @}
- */
-
-/**
- * @}
- */
-#endif // _USB_MSC_CORE_H_
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_data.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_data.h
deleted file mode 100755
index 0b0978a..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_data.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_data.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header for the usbd_msc_data.c file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-
-#ifndef _USBD_MSC_DATA_H_
-#define _USBD_MSC_DATA_H_
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_conf.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USB_INFO
- * @brief general defines for the usb device library file
- * @{
- */
-
-/** @defgroup USB_INFO_Exported_Defines
- * @{
- */
-#define MODE_SENSE6_LEN 8
-#define MODE_SENSE10_LEN 8
-#define LENGTH_INQUIRY_PAGE00 7
-#define LENGTH_FORMAT_CAPACITIES 20
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_INFO_Exported_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_INFO_Exported_Macros
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_INFO_Exported_Variables
- * @{
- */
-extern const uint8_t MSC_Page00_Inquiry_Data[];
-extern const uint8_t MSC_Mode_Sense6_data[];
-extern const uint8_t MSC_Mode_Sense10_data[] ;
-
-/**
- * @}
- */
-
-/** @defgroup USBD_INFO_Exported_FunctionsPrototype
- * @{
- */
-
-/**
- * @}
- */
-
-#endif /* _USBD_MSC_DATA_H_ */
-
-/**
- * @}
- */
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_mem.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_mem.h
deleted file mode 100755
index 744ff63..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_mem.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_mem.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header for the STORAGE DISK file file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-
-#ifndef __USBD_MEM_H
-#define __USBD_MEM_H
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_def.h"
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USBD_MEM
- * @brief header file for the storage disk file
- * @{
- */
-
-/** @defgroup USBD_MEM_Exported_Defines
- * @{
- */
-#define USBD_STD_INQUIRY_LENGTH 36
-/**
- * @}
- */
-
-
-/** @defgroup USBD_MEM_Exported_TypesDefinitions
- * @{
- */
-
-typedef struct _USBD_STORAGE
-{
- int8_t (* Init) (uint8_t lun);
- int8_t (* GetCapacity) (uint8_t lun, uint32_t *block_num, uint32_t *block_size);
- int8_t (* IsReady) (uint8_t lun);
- int8_t (* IsWriteProtected) (uint8_t lun);
- int8_t (* Read) (uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len);
- int8_t (* Write)(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len);
- int8_t (* GetMaxLun)(void);
- int8_t *pInquiry;
-
-}USBD_STORAGE_cb_TypeDef;
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_MEM_Exported_Macros
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_MEM_Exported_Variables
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_MEM_Exported_FunctionsPrototype
- * @{
- */
-extern USBD_STORAGE_cb_TypeDef *USBD_STORAGE_fops;
-/**
- * @}
- */
-
-#endif /* __USBD_MEM_H */
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
-* @}
-*/
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_scsi.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_scsi.h
deleted file mode 100755
index ae8fb3e..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/inc/usbd_msc_scsi.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_scsi.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header for the usbd_msc_scsi.c file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBD_MSC_SCSI_H
-#define __USBD_MSC_SCSI_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_def.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USBD_SCSI
- * @brief header file for the storage disk file
- * @{
- */
-
-/** @defgroup USBD_SCSI_Exported_Defines
- * @{
- */
-
-#define SENSE_LIST_DEEPTH 4
-
-/* SCSI Commands */
-#define SCSI_FORMAT_UNIT 0x04
-#define SCSI_INQUIRY 0x12
-#define SCSI_MODE_SELECT6 0x15
-#define SCSI_MODE_SELECT10 0x55
-#define SCSI_MODE_SENSE6 0x1A
-#define SCSI_MODE_SENSE10 0x5A
-#define SCSI_ALLOW_MEDIUM_REMOVAL 0x1E
-#define SCSI_READ6 0x08
-#define SCSI_READ10 0x28
-#define SCSI_READ12 0xA8
-#define SCSI_READ16 0x88
-
-#define SCSI_READ_CAPACITY10 0x25
-#define SCSI_READ_CAPACITY16 0x9E
-
-#define SCSI_REQUEST_SENSE 0x03
-#define SCSI_START_STOP_UNIT 0x1B
-#define SCSI_TEST_UNIT_READY 0x00
-#define SCSI_WRITE6 0x0A
-#define SCSI_WRITE10 0x2A
-#define SCSI_WRITE12 0xAA
-#define SCSI_WRITE16 0x8A
-
-#define SCSI_VERIFY10 0x2F
-#define SCSI_VERIFY12 0xAF
-#define SCSI_VERIFY16 0x8F
-
-#define SCSI_SEND_DIAGNOSTIC 0x1D
-#define SCSI_READ_FORMAT_CAPACITIES 0x23
-
-#define NO_SENSE 0
-#define RECOVERED_ERROR 1
-#define NOT_READY 2
-#define MEDIUM_ERROR 3
-#define HARDWARE_ERROR 4
-#define ILLEGAL_REQUEST 5
-#define UNIT_ATTENTION 6
-#define DATA_PROTECT 7
-#define BLANK_CHECK 8
-#define VENDOR_SPECIFIC 9
-#define COPY_ABORTED 10
-#define ABORTED_COMMAND 11
-#define VOLUME_OVERFLOW 13
-#define MISCOMPARE 14
-
-
-#define INVALID_CDB 0x20
-#define INVALID_FIELED_IN_COMMAND 0x24
-#define PARAMETER_LIST_LENGTH_ERROR 0x1A
-#define INVALID_FIELD_IN_PARAMETER_LIST 0x26
-#define ADDRESS_OUT_OF_RANGE 0x21
-#define MEDIUM_NOT_PRESENT 0x3A
-#define MEDIUM_HAVE_CHANGED 0x28
-#define WRITE_PROTECTED 0x27
-#define UNRECOVERED_READ_ERROR 0x11
-#define WRITE_FAULT 0x03
-
-#define READ_FORMAT_CAPACITY_DATA_LEN 0x0C
-#define READ_CAPACITY10_DATA_LEN 0x08
-#define MODE_SENSE10_DATA_LEN 0x08
-#define MODE_SENSE6_DATA_LEN 0x04
-#define REQUEST_SENSE_DATA_LEN 0x12
-#define STANDARD_INQUIRY_DATA_LEN 0x24
-#define BLKVFY 0x04
-
-extern uint8_t Page00_Inquiry_Data[];
-extern uint8_t Standard_Inquiry_Data[];
-extern uint8_t Standard_Inquiry_Data2[];
-extern uint8_t Mode_Sense6_data[];
-extern uint8_t Mode_Sense10_data[];
-extern uint8_t Scsi_Sense_Data[];
-extern uint8_t ReadCapacity10_Data[];
-extern uint8_t ReadFormatCapacity_Data [];
-/**
- * @}
- */
-
-
-/** @defgroup USBD_SCSI_Exported_TypesDefinitions
- * @{
- */
-
-typedef struct _SENSE_ITEM {
- char Skey;
- union {
- struct _ASCs {
- char ASC;
- char ASCQ;
- }b;
- unsigned int ASC;
- char *pData;
- } w;
-} SCSI_Sense_TypeDef;
-/**
- * @}
- */
-
-/** @defgroup USBD_SCSI_Exported_Macros
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_SCSI_Exported_Variables
- * @{
- */
-extern SCSI_Sense_TypeDef SCSI_Sense [SENSE_LIST_DEEPTH];
-extern uint8_t SCSI_Sense_Head;
-extern uint8_t SCSI_Sense_Tail;
-
-/**
- * @}
- */
-/** @defgroup USBD_SCSI_Exported_FunctionsPrototype
- * @{
- */
-int8_t SCSI_ProcessCmd(USB_OTG_CORE_HANDLE *pdev,
- uint8_t lun,
- uint8_t *cmd);
-
-void SCSI_SenseCode(uint8_t lun,
- uint8_t sKey,
- uint8_t ASC);
-
-/**
- * @}
- */
-
-#endif /* __USBD_MSC_SCSI_H */
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_bot.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_bot.c
deleted file mode 100755
index 4499bf6..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_bot.c
+++ /dev/null
@@ -1,393 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_bot.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides all the BOT protocol core functions.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_msc_bot.h"
-#include "usbd_msc_scsi.h"
-#include "usbd_ioreq.h"
-#include "usbd_msc_mem.h"
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup MSC_BOT
- * @brief BOT protocol module
- * @{
- */
-
-/** @defgroup MSC_BOT_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_BOT_Private_Defines
- * @{
- */
-
-/**
- * @}
- */
-
-
-/** @defgroup MSC_BOT_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_BOT_Private_Variables
- * @{
- */
-uint16_t MSC_BOT_DataLen;
-uint8_t MSC_BOT_State;
-uint8_t MSC_BOT_Status;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t MSC_BOT_Data[MSC_MEDIA_PACKET] __ALIGN_END ;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN MSC_BOT_CBW_TypeDef MSC_BOT_cbw __ALIGN_END ;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN MSC_BOT_CSW_TypeDef MSC_BOT_csw __ALIGN_END ;
-/**
- * @}
- */
-
-
-/** @defgroup MSC_BOT_Private_FunctionPrototypes
- * @{
- */
-static void MSC_BOT_CBW_Decode (USB_OTG_CORE_HANDLE *pdev);
-
-static void MSC_BOT_SendData (USB_OTG_CORE_HANDLE *pdev,
- uint8_t* pbuf,
- uint16_t len);
-
-static void MSC_BOT_Abort(USB_OTG_CORE_HANDLE *pdev);
-/**
- * @}
- */
-
-
-/** @defgroup MSC_BOT_Private_Functions
- * @{
- */
-
-
-
-/**
-* @brief MSC_BOT_Init
-* Initialize the BOT Process
-* @param pdev: device instance
-* @retval None
-*/
-void MSC_BOT_Init (USB_OTG_CORE_HANDLE *pdev)
-{
- MSC_BOT_State = BOT_IDLE;
- MSC_BOT_Status = BOT_STATE_NORMAL;
- USBD_STORAGE_fops->Init(0);
-
- DCD_EP_Flush(pdev, MSC_OUT_EP);
- DCD_EP_Flush(pdev, MSC_IN_EP);
- /* Prapare EP to Receive First BOT Cmd */
- DCD_EP_PrepareRx (pdev,
- MSC_OUT_EP,
- (uint8_t *)&MSC_BOT_cbw,
- BOT_CBW_LENGTH);
-}
-
-/**
-* @brief MSC_BOT_Reset
-* Reset the BOT Machine
-* @param pdev: device instance
-* @retval None
-*/
-void MSC_BOT_Reset (USB_OTG_CORE_HANDLE *pdev)
-{
- MSC_BOT_State = BOT_IDLE;
- MSC_BOT_Status = BOT_STATE_RECOVERY;
- /* Prapare EP to Receive First BOT Cmd */
- DCD_EP_PrepareRx (pdev,
- MSC_OUT_EP,
- (uint8_t *)&MSC_BOT_cbw,
- BOT_CBW_LENGTH);
-}
-
-/**
-* @brief MSC_BOT_DeInit
-* Uninitialize the BOT Machine
-* @param pdev: device instance
-* @retval None
-*/
-void MSC_BOT_DeInit (USB_OTG_CORE_HANDLE *pdev)
-{
- MSC_BOT_State = BOT_IDLE;
-}
-
-/**
-* @brief MSC_BOT_DataIn
-* Handle BOT IN data stage
-* @param pdev: device instance
-* @param epnum: endpoint index
-* @retval None
-*/
-void MSC_BOT_DataIn (USB_OTG_CORE_HANDLE *pdev,
- uint8_t epnum)
-{
-
- switch (MSC_BOT_State)
- {
- case BOT_DATA_IN:
- if(SCSI_ProcessCmd(pdev,
- MSC_BOT_cbw.bLUN,
- &MSC_BOT_cbw.CB[0]) < 0)
- {
- MSC_BOT_SendCSW (pdev, CSW_CMD_FAILED);
- }
- break;
-
- case BOT_SEND_DATA:
- case BOT_LAST_DATA_IN:
- MSC_BOT_SendCSW (pdev, CSW_CMD_PASSED);
-
- break;
-
- default:
- break;
- }
-}
-/**
-* @brief MSC_BOT_DataOut
-* Proccess MSC OUT data
-* @param pdev: device instance
-* @param epnum: endpoint index
-* @retval None
-*/
-void MSC_BOT_DataOut (USB_OTG_CORE_HANDLE *pdev,
- uint8_t epnum)
-{
- switch (MSC_BOT_State)
- {
- case BOT_IDLE:
- MSC_BOT_CBW_Decode(pdev);
- break;
-
- case BOT_DATA_OUT:
-
- if(SCSI_ProcessCmd(pdev,
- MSC_BOT_cbw.bLUN,
- &MSC_BOT_cbw.CB[0]) < 0)
- {
- MSC_BOT_SendCSW (pdev, CSW_CMD_FAILED);
- }
-
- break;
-
- default:
- break;
- }
-
-}
-
-/**
-* @brief MSC_BOT_CBW_Decode
-* Decode the CBW command and set the BOT state machine accordingtly
-* @param pdev: device instance
-* @retval None
-*/
-static void MSC_BOT_CBW_Decode (USB_OTG_CORE_HANDLE *pdev)
-{
-
- MSC_BOT_csw.dTag = MSC_BOT_cbw.dTag;
- MSC_BOT_csw.dDataResidue = MSC_BOT_cbw.dDataLength;
-
- if ((USBD_GetRxCount (pdev ,MSC_OUT_EP) != BOT_CBW_LENGTH) ||
- (MSC_BOT_cbw.dSignature != BOT_CBW_SIGNATURE)||
- (MSC_BOT_cbw.bLUN > 1) ||
- (MSC_BOT_cbw.bCBLength < 1) ||
- (MSC_BOT_cbw.bCBLength > 16))
- {
-
- SCSI_SenseCode(MSC_BOT_cbw.bLUN,
- ILLEGAL_REQUEST,
- INVALID_CDB);
- MSC_BOT_Status = BOT_STATE_ERROR;
- MSC_BOT_Abort(pdev);
-
- }
- else
- {
- if(SCSI_ProcessCmd(pdev,
- MSC_BOT_cbw.bLUN,
- &MSC_BOT_cbw.CB[0]) < 0)
- {
- MSC_BOT_Abort(pdev);
- }
- /*Burst xfer handled internally*/
- else if ((MSC_BOT_State != BOT_DATA_IN) &&
- (MSC_BOT_State != BOT_DATA_OUT) &&
- (MSC_BOT_State != BOT_LAST_DATA_IN))
- {
- if (MSC_BOT_DataLen > 0)
- {
- MSC_BOT_SendData(pdev,
- MSC_BOT_Data,
- MSC_BOT_DataLen);
- }
- else if (MSC_BOT_DataLen == 0)
- {
- MSC_BOT_SendCSW (pdev,
- CSW_CMD_PASSED);
- }
- }
- }
-}
-
-/**
-* @brief MSC_BOT_SendData
-* Send the requested data
-* @param pdev: device instance
-* @param buf: pointer to data buffer
-* @param len: Data Length
-* @retval None
-*/
-static void MSC_BOT_SendData(USB_OTG_CORE_HANDLE *pdev,
- uint8_t* buf,
- uint16_t len)
-{
-
- len = MIN (MSC_BOT_cbw.dDataLength, len);
- MSC_BOT_csw.dDataResidue -= len;
- MSC_BOT_csw.bStatus = CSW_CMD_PASSED;
- MSC_BOT_State = BOT_SEND_DATA;
-
- DCD_EP_Tx (pdev, MSC_IN_EP, buf, len);
-}
-
-/**
-* @brief MSC_BOT_SendCSW
-* Send the Command Status Wrapper
-* @param pdev: device instance
-* @param status : CSW status
-* @retval None
-*/
-void MSC_BOT_SendCSW (USB_OTG_CORE_HANDLE *pdev,
- uint8_t CSW_Status)
-{
- MSC_BOT_csw.dSignature = BOT_CSW_SIGNATURE;
- MSC_BOT_csw.bStatus = CSW_Status;
- MSC_BOT_State = BOT_IDLE;
-
- DCD_EP_Tx (pdev,
- MSC_IN_EP,
- (uint8_t *)&MSC_BOT_csw,
- BOT_CSW_LENGTH);
-
- /* Prapare EP to Receive next Cmd */
- DCD_EP_PrepareRx (pdev,
- MSC_OUT_EP,
- (uint8_t *)&MSC_BOT_cbw,
- BOT_CBW_LENGTH);
-
-}
-
-/**
-* @brief MSC_BOT_Abort
-* Abort the current transfer
-* @param pdev: device instance
-* @retval status
-*/
-
-static void MSC_BOT_Abort (USB_OTG_CORE_HANDLE *pdev)
-{
-
- if ((MSC_BOT_cbw.bmFlags == 0) &&
- (MSC_BOT_cbw.dDataLength != 0) &&
- (MSC_BOT_Status == BOT_STATE_NORMAL) )
- {
- DCD_EP_Stall(pdev, MSC_OUT_EP );
- }
- DCD_EP_Stall(pdev, MSC_IN_EP);
-
- if(MSC_BOT_Status == BOT_STATE_ERROR)
- {
- DCD_EP_PrepareRx (pdev,
- MSC_OUT_EP,
- (uint8_t *)&MSC_BOT_cbw,
- BOT_CBW_LENGTH);
- }
-}
-
-/**
-* @brief MSC_BOT_CplClrFeature
-* Complete the clear feature request
-* @param pdev: device instance
-* @param epnum: endpoint index
-* @retval None
-*/
-
-void MSC_BOT_CplClrFeature (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum)
-{
- if(MSC_BOT_Status == BOT_STATE_ERROR )/* Bad CBW Signature */
- {
- DCD_EP_Stall(pdev, MSC_IN_EP);
- MSC_BOT_Status = BOT_STATE_NORMAL;
- }
- else if(((epnum & 0x80) == 0x80) && ( MSC_BOT_Status != BOT_STATE_RECOVERY))
- {
- MSC_BOT_SendCSW (pdev, CSW_CMD_FAILED);
- }
-
-}
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_core.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_core.c
deleted file mode 100755
index 5152733..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_core.c
+++ /dev/null
@@ -1,490 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_core.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides all the MSC core functions.
- *
- * @verbatim
- *
- * ===================================================================
- * MSC Class Description
- * ===================================================================
- * This module manages the MSC class V1.0 following the "Universal
- * Serial Bus Mass Storage Class (MSC) Bulk-Only Transport (BOT) Version 1.0
- * Sep. 31, 1999".
- * This driver implements the following aspects of the specification:
- * - Bulk-Only Transport protocol
- * - Subclass : SCSI transparent command set (ref. SCSI Primary Commands - 3 (SPC-3))
- *
- * @endverbatim
- *
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_msc_mem.h"
-#include "usbd_msc_core.h"
-#include "usbd_msc_bot.h"
-#include "usbd_req.h"
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup MSC_CORE
- * @brief Mass storage core module
- * @{
- */
-
-/** @defgroup MSC_CORE_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_CORE_Private_Defines
- * @{
- */
-
-/**
- * @}
- */
-
-
-/** @defgroup MSC_CORE_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_CORE_Private_FunctionPrototypes
- * @{
- */
-uint8_t USBD_MSC_Init (void *pdev,
- uint8_t cfgidx);
-
-uint8_t USBD_MSC_DeInit (void *pdev,
- uint8_t cfgidx);
-
-uint8_t USBD_MSC_Setup (void *pdev,
- USB_SETUP_REQ *req);
-
-uint8_t USBD_MSC_DataIn (void *pdev,
- uint8_t epnum);
-
-
-uint8_t USBD_MSC_DataOut (void *pdev,
- uint8_t epnum);
-
-uint8_t *USBD_MSC_GetCfgDesc (uint8_t speed,
- uint16_t *length);
-
-#ifdef USB_OTG_HS_CORE
-uint8_t *USBD_MSC_GetOtherCfgDesc (uint8_t speed,
- uint16_t *length);
-#endif
-
-
-uint8_t USBD_MSC_CfgDesc[USB_MSC_CONFIG_DESC_SIZ];
-
-
-
-
-/**
- * @}
- */
-
-
-/** @defgroup MSC_CORE_Private_Variables
- * @{
- */
-
-
-USBD_Class_cb_TypeDef USBD_MSC_cb =
-{
- USBD_MSC_Init,
- USBD_MSC_DeInit,
- USBD_MSC_Setup,
- NULL, /*EP0_TxSent*/
- NULL, /*EP0_RxReady*/
- USBD_MSC_DataIn,
- USBD_MSC_DataOut,
- NULL, /*SOF */
- NULL,
- NULL,
- USBD_MSC_GetCfgDesc,
-#ifdef USB_OTG_HS_CORE
- USBD_MSC_GetOtherCfgDesc,
-#endif
-};
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-/* USB Mass storage device Configuration Descriptor */
-/* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */
-__ALIGN_BEGIN uint8_t USBD_MSC_CfgDesc[USB_MSC_CONFIG_DESC_SIZ] __ALIGN_END =
-{
-
- 0x09, /* bLength: Configuation Descriptor size */
- USB_DESC_TYPE_CONFIGURATION, /* bDescriptorType: Configuration */
- USB_MSC_CONFIG_DESC_SIZ,
-
- 0x00,
- 0x01, /* bNumInterfaces: 1 interface */
- 0x01, /* bConfigurationValue: */
- 0x04, /* iConfiguration: */
- 0xC0, /* bmAttributes: */
- 0x32, /* MaxPower 100 mA */
-
- /******************** Mass Storage interface ********************/
- 0x09, /* bLength: Interface Descriptor size */
- 0x04, /* bDescriptorType: */
- 0x00, /* bInterfaceNumber: Number of Interface */
- 0x00, /* bAlternateSetting: Alternate setting */
- 0x02, /* bNumEndpoints*/
- 0x08, /* bInterfaceClass: MSC Class */
- 0x06, /* bInterfaceSubClass : SCSI transparent*/
- 0x50, /* nInterfaceProtocol */
- 0x05, /* iInterface: */
- /******************** Mass Storage Endpoints ********************/
- 0x07, /*Endpoint descriptor length = 7*/
- 0x05, /*Endpoint descriptor type */
- MSC_IN_EP, /*Endpoint address (IN, address 1) */
- 0x02, /*Bulk endpoint type */
- LOBYTE(MSC_MAX_PACKET),
- HIBYTE(MSC_MAX_PACKET),
- 0x00, /*Polling interval in milliseconds */
-
- 0x07, /*Endpoint descriptor length = 7 */
- 0x05, /*Endpoint descriptor type */
- MSC_OUT_EP, /*Endpoint address (OUT, address 1) */
- 0x02, /*Bulk endpoint type */
- LOBYTE(MSC_MAX_PACKET),
- HIBYTE(MSC_MAX_PACKET),
- 0x00 /*Polling interval in milliseconds*/
-};
-#ifdef USB_OTG_HS_CORE
- #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
- #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t USBD_MSC_OtherCfgDesc[USB_MSC_CONFIG_DESC_SIZ] __ALIGN_END =
-{
-
- 0x09, /* bLength: Configuation Descriptor size */
- USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION,
- USB_MSC_CONFIG_DESC_SIZ,
-
- 0x00,
- 0x01, /* bNumInterfaces: 1 interface */
- 0x01, /* bConfigurationValue: */
- 0x04, /* iConfiguration: */
- 0xC0, /* bmAttributes: */
- 0x32, /* MaxPower 100 mA */
-
- /******************** Mass Storage interface ********************/
- 0x09, /* bLength: Interface Descriptor size */
- 0x04, /* bDescriptorType: */
- 0x00, /* bInterfaceNumber: Number of Interface */
- 0x00, /* bAlternateSetting: Alternate setting */
- 0x02, /* bNumEndpoints*/
- 0x08, /* bInterfaceClass: MSC Class */
- 0x06, /* bInterfaceSubClass : SCSI transparent command set*/
- 0x50, /* nInterfaceProtocol */
- 0x05, /* iInterface: */
- /******************** Mass Storage Endpoints ********************/
- 0x07, /*Endpoint descriptor length = 7*/
- 0x05, /*Endpoint descriptor type */
- MSC_IN_EP, /*Endpoint address (IN, address 1) */
- 0x02, /*Bulk endpoint type */
- 0x40,
- 0x00,
- 0x00, /*Polling interval in milliseconds */
-
- 0x07, /*Endpoint descriptor length = 7 */
- 0x05, /*Endpoint descriptor type */
- MSC_OUT_EP, /*Endpoint address (OUT, address 1) */
- 0x02, /*Bulk endpoint type */
- 0x40,
- 0x00,
- 0x00 /*Polling interval in milliseconds*/
-};
-#endif
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN static uint8_t USBD_MSC_MaxLun __ALIGN_END = 0;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN static uint8_t USBD_MSC_AltSet __ALIGN_END = 0;
-
-/**
- * @}
- */
-
-
-/** @defgroup MSC_CORE_Private_Functions
- * @{
- */
-
-/**
-* @brief USBD_MSC_Init
-* Initialize the mass storage configuration
-* @param pdev: device instance
-* @param cfgidx: configuration index
-* @retval status
-*/
-uint8_t USBD_MSC_Init (void *pdev,
- uint8_t cfgidx)
-{
- USBD_MSC_DeInit(pdev , cfgidx );
-
- /* Open EP IN */
- DCD_EP_Open(pdev,
- MSC_IN_EP,
- MSC_EPIN_SIZE,
- USB_OTG_EP_BULK);
-
- /* Open EP OUT */
- DCD_EP_Open(pdev,
- MSC_OUT_EP,
- MSC_EPOUT_SIZE,
- USB_OTG_EP_BULK);
-
- /* Init the BOT layer */
- MSC_BOT_Init(pdev);
-
- return USBD_OK;
-}
-
-/**
-* @brief USBD_MSC_DeInit
-* DeInitilaize the mass storage configuration
-* @param pdev: device instance
-* @param cfgidx: configuration index
-* @retval status
-*/
-uint8_t USBD_MSC_DeInit (void *pdev,
- uint8_t cfgidx)
-{
- /* Close MSC EPs */
- DCD_EP_Close (pdev , MSC_IN_EP);
- DCD_EP_Close (pdev , MSC_OUT_EP);
-
- /* Un Init the BOT layer */
- MSC_BOT_DeInit(pdev);
- return USBD_OK;
-}
-/**
-* @brief USBD_MSC_Setup
-* Handle the MSC specific requests
-* @param pdev: device instance
-* @param req: USB request
-* @retval status
-*/
-uint8_t USBD_MSC_Setup (void *pdev, USB_SETUP_REQ *req)
-{
-
- switch (req->bmRequest & USB_REQ_TYPE_MASK)
- {
-
- /* Class request */
- case USB_REQ_TYPE_CLASS :
- switch (req->bRequest)
- {
- case BOT_GET_MAX_LUN :
-
- if((req->wValue == 0) &&
- (req->wLength == 1) &&
- ((req->bmRequest & 0x80) == 0x80))
- {
- USBD_MSC_MaxLun = USBD_STORAGE_fops->GetMaxLun();
- if(USBD_MSC_MaxLun > 0)
- {
- USBD_CtlSendData (pdev,
- &USBD_MSC_MaxLun,
- 1);
- }
- else
- {
- USBD_CtlError(pdev , req);
- return USBD_FAIL;
-
- }
- }
- else
- {
- USBD_CtlError(pdev , req);
- return USBD_FAIL;
- }
- break;
-
- case BOT_RESET :
- if((req->wValue == 0) &&
- (req->wLength == 0) &&
- ((req->bmRequest & 0x80) != 0x80))
- {
- MSC_BOT_Reset(pdev);
- }
- else
- {
- USBD_CtlError(pdev , req);
- return USBD_FAIL;
- }
- break;
-
- default:
- USBD_CtlError(pdev , req);
- return USBD_FAIL;
- }
- break;
- /* Interface & Endpoint request */
- case USB_REQ_TYPE_STANDARD:
- switch (req->bRequest)
- {
- case USB_REQ_GET_INTERFACE :
- USBD_CtlSendData (pdev,
- &USBD_MSC_AltSet,
- 1);
- break;
-
- case USB_REQ_SET_INTERFACE :
- USBD_MSC_AltSet = (uint8_t)(req->wValue);
- break;
-
- case USB_REQ_CLEAR_FEATURE:
-
- /* Flush the FIFO and Clear the stall status */
- DCD_EP_Flush(pdev, (uint8_t)req->wIndex);
-
- /* Re-activate the EP */
- DCD_EP_Close (pdev , (uint8_t)req->wIndex);
- if((((uint8_t)req->wIndex) & 0x80) == 0x80)
- {
- DCD_EP_Open(pdev,
- ((uint8_t)req->wIndex),
- MSC_EPIN_SIZE,
- USB_OTG_EP_BULK);
- }
- else
- {
- DCD_EP_Open(pdev,
- ((uint8_t)req->wIndex),
- MSC_EPOUT_SIZE,
- USB_OTG_EP_BULK);
- }
-
- /* Handle BOT error */
- MSC_BOT_CplClrFeature(pdev, (uint8_t)req->wIndex);
- break;
-
- }
- break;
-
- default:
- break;
- }
- return USBD_OK;
-}
-
-/**
-* @brief USBD_MSC_DataIn
-* handle data IN Stage
-* @param pdev: device instance
-* @param epnum: endpoint index
-* @retval status
-*/
-uint8_t USBD_MSC_DataIn (void *pdev,
- uint8_t epnum)
-{
- MSC_BOT_DataIn(pdev , epnum);
- return USBD_OK;
-}
-
-/**
-* @brief USBD_MSC_DataOut
-* handle data OUT Stage
-* @param pdev: device instance
-* @param epnum: endpoint index
-* @retval status
-*/
-uint8_t USBD_MSC_DataOut (void *pdev,
- uint8_t epnum)
-{
- MSC_BOT_DataOut(pdev , epnum);
- return USBD_OK;
-}
-
-/**
-* @brief USBD_MSC_GetCfgDesc
-* return configuration descriptor
-* @param speed : current device speed
-* @param length : pointer data length
-* @retval pointer to descriptor buffer
-*/
-uint8_t *USBD_MSC_GetCfgDesc (uint8_t speed, uint16_t *length)
-{
- *length = sizeof (USBD_MSC_CfgDesc);
- return USBD_MSC_CfgDesc;
-}
-
-/**
-* @brief USBD_MSC_GetOtherCfgDesc
-* return other speed configuration descriptor
-* @param speed : current device speed
-* @param length : pointer data length
-* @retval pointer to descriptor buffer
-*/
-#ifdef USB_OTG_HS_CORE
-uint8_t *USBD_MSC_GetOtherCfgDesc (uint8_t speed,
- uint16_t *length)
-{
- *length = sizeof (USBD_MSC_OtherCfgDesc);
- return USBD_MSC_OtherCfgDesc;
-}
-#endif
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_data.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_data.c
deleted file mode 100755
index 08af5c5..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_data.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_data.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides all the vital inquiry pages and sense data.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_msc_data.h"
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup MSC_DATA
- * @brief Mass storage info/data module
- * @{
- */
-
-/** @defgroup MSC_DATA_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_DATA_Private_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_DATA_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_DATA_Private_Variables
- * @{
- */
-
-
-/* USB Mass storage Page 0 Inquiry Data */
-const uint8_t MSC_Page00_Inquiry_Data[] = {//7
- 0x00,
- 0x00,
- 0x00,
- (LENGTH_INQUIRY_PAGE00 - 4),
- 0x00,
- 0x80,
- 0x83
-};
-/* USB Mass storage sense 6 Data */
-const uint8_t MSC_Mode_Sense6_data[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00
-};
-/* USB Mass storage sense 10 Data */
-const uint8_t MSC_Mode_Sense10_data[] = {
- 0x00,
- 0x06,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00
-};
-/**
- * @}
- */
-
-
-/** @defgroup MSC_DATA_Private_FunctionPrototypes
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_DATA_Private_Functions
- * @{
- */
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c
deleted file mode 100755
index 9e03119..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c
+++ /dev/null
@@ -1,722 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_msc_scsi.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides all the USBD SCSI layer functions.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_msc_bot.h"
-#include "usbd_msc_scsi.h"
-#include "usbd_msc_mem.h"
-#include "usbd_msc_data.h"
-
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup MSC_SCSI
- * @brief Mass storage SCSI layer module
- * @{
- */
-
-/** @defgroup MSC_SCSI_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_SCSI_Private_Defines
- * @{
- */
-
-/**
- * @}
- */
-
-
-/** @defgroup MSC_SCSI_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup MSC_SCSI_Private_Variables
- * @{
- */
-
-SCSI_Sense_TypeDef SCSI_Sense [SENSE_LIST_DEEPTH];
-uint8_t SCSI_Sense_Head;
-uint8_t SCSI_Sense_Tail;
-
-uint32_t SCSI_blk_size;
-uint32_t SCSI_blk_nbr;
-
-uint32_t SCSI_blk_addr;
-uint32_t SCSI_blk_len;
-
-USB_OTG_CORE_HANDLE *cdev;
-/**
- * @}
- */
-
-
-/** @defgroup MSC_SCSI_Private_FunctionPrototypes
- * @{
- */
-static int8_t SCSI_TestUnitReady(uint8_t lun, uint8_t *params);
-static int8_t SCSI_Inquiry(uint8_t lun, uint8_t *params);
-static int8_t SCSI_ReadFormatCapacity(uint8_t lun, uint8_t *params);
-static int8_t SCSI_ReadCapacity10(uint8_t lun, uint8_t *params);
-static int8_t SCSI_RequestSense (uint8_t lun, uint8_t *params);
-static int8_t SCSI_StartStopUnit(uint8_t lun, uint8_t *params);
-static int8_t SCSI_ModeSense6 (uint8_t lun, uint8_t *params);
-static int8_t SCSI_ModeSense10 (uint8_t lun, uint8_t *params);
-static int8_t SCSI_Write10(uint8_t lun , uint8_t *params);
-static int8_t SCSI_Read10(uint8_t lun , uint8_t *params);
-static int8_t SCSI_Verify10(uint8_t lun, uint8_t *params);
-static int8_t SCSI_CheckAddressRange (uint8_t lun ,
- uint32_t blk_offset ,
- uint16_t blk_nbr);
-static int8_t SCSI_ProcessRead (uint8_t lun);
-
-static int8_t SCSI_ProcessWrite (uint8_t lun);
-/**
- * @}
- */
-
-
-/** @defgroup MSC_SCSI_Private_Functions
- * @{
- */
-
-
-/**
-* @brief SCSI_ProcessCmd
-* Process SCSI commands
-* @param pdev: device instance
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-int8_t SCSI_ProcessCmd(USB_OTG_CORE_HANDLE *pdev,
- uint8_t lun,
- uint8_t *params)
-{
- cdev = pdev;
-
- switch (params[0])
- {
- case SCSI_TEST_UNIT_READY:
- return SCSI_TestUnitReady(lun, params);
-
- case SCSI_REQUEST_SENSE:
- return SCSI_RequestSense (lun, params);
- case SCSI_INQUIRY:
- return SCSI_Inquiry(lun, params);
-
- case SCSI_START_STOP_UNIT:
- return SCSI_StartStopUnit(lun, params);
-
- case SCSI_ALLOW_MEDIUM_REMOVAL:
- return SCSI_StartStopUnit(lun, params);
-
- case SCSI_MODE_SENSE6:
- return SCSI_ModeSense6 (lun, params);
-
- case SCSI_MODE_SENSE10:
- return SCSI_ModeSense10 (lun, params);
-
- case SCSI_READ_FORMAT_CAPACITIES:
- return SCSI_ReadFormatCapacity(lun, params);
-
- case SCSI_READ_CAPACITY10:
- return SCSI_ReadCapacity10(lun, params);
-
- case SCSI_READ10:
- return SCSI_Read10(lun, params);
-
- case SCSI_WRITE10:
- return SCSI_Write10(lun, params);
-
- case SCSI_VERIFY10:
- return SCSI_Verify10(lun, params);
-
- default:
- SCSI_SenseCode(lun,
- ILLEGAL_REQUEST,
- INVALID_CDB);
- return -1;
- }
-}
-
-
-/**
-* @brief SCSI_TestUnitReady
-* Process SCSI Test Unit Ready Command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-static int8_t SCSI_TestUnitReady(uint8_t lun, uint8_t *params)
-{
-
- /* case 9 : Hi > D0 */
- if (MSC_BOT_cbw.dDataLength != 0)
- {
- SCSI_SenseCode(MSC_BOT_cbw.bLUN,
- ILLEGAL_REQUEST,
- INVALID_CDB);
- return -1;
- }
-
- if(USBD_STORAGE_fops->IsReady(lun) !=0 )
- {
- SCSI_SenseCode(lun,
- NOT_READY,
- MEDIUM_NOT_PRESENT);
- return -1;
- }
- MSC_BOT_DataLen = 0;
- return 0;
-}
-
-/**
-* @brief SCSI_Inquiry
-* Process Inquiry command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-static int8_t SCSI_Inquiry(uint8_t lun, uint8_t *params)
-{
- uint8_t* pPage;
- uint16_t len;
-
- if (params[1] & 0x01)/*Evpd is set*/
- {
- pPage = (uint8_t *)MSC_Page00_Inquiry_Data;
- len = LENGTH_INQUIRY_PAGE00;
- }
- else
- {
-
- pPage = (uint8_t *)&USBD_STORAGE_fops->pInquiry[lun * USBD_STD_INQUIRY_LENGTH];
- len = pPage[4] + 5;
-
- if (params[4] <= len)
- {
- len = params[4];
- }
- }
- MSC_BOT_DataLen = len;
-
- while (len)
- {
- len--;
- MSC_BOT_Data[len] = pPage[len];
- }
- return 0;
-}
-
-/**
-* @brief SCSI_ReadCapacity10
-* Process Read Capacity 10 command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-static int8_t SCSI_ReadCapacity10(uint8_t lun, uint8_t *params)
-{
-
- if(USBD_STORAGE_fops->GetCapacity(lun, &SCSI_blk_nbr, &SCSI_blk_size) != 0)
- {
- SCSI_SenseCode(lun,
- NOT_READY,
- MEDIUM_NOT_PRESENT);
- return -1;
- }
- else
- {
-
- MSC_BOT_Data[0] = (uint8_t)(SCSI_blk_nbr - 1 >> 24);
- MSC_BOT_Data[1] = (uint8_t)(SCSI_blk_nbr - 1 >> 16);
- MSC_BOT_Data[2] = (uint8_t)(SCSI_blk_nbr - 1 >> 8);
- MSC_BOT_Data[3] = (uint8_t)(SCSI_blk_nbr - 1);
-
- MSC_BOT_Data[4] = (uint8_t)(SCSI_blk_size >> 24);
- MSC_BOT_Data[5] = (uint8_t)(SCSI_blk_size >> 16);
- MSC_BOT_Data[6] = (uint8_t)(SCSI_blk_size >> 8);
- MSC_BOT_Data[7] = (uint8_t)(SCSI_blk_size);
-
- MSC_BOT_DataLen = 8;
- return 0;
- }
-}
-/**
-* @brief SCSI_ReadFormatCapacity
-* Process Read Format Capacity command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-static int8_t SCSI_ReadFormatCapacity(uint8_t lun, uint8_t *params)
-{
-
- uint32_t blk_size;
- uint32_t blk_nbr;
- uint16_t i;
-
- for(i=0 ; i < 12 ; i++)
- {
- MSC_BOT_Data[i] = 0;
- }
-
- if(USBD_STORAGE_fops->GetCapacity(lun, &blk_nbr, &blk_size) != 0)
- {
- SCSI_SenseCode(lun,
- NOT_READY,
- MEDIUM_NOT_PRESENT);
- return -1;
- }
- else
- {
- MSC_BOT_Data[3] = 0x08;
- MSC_BOT_Data[4] = (uint8_t)(blk_nbr - 1 >> 24);
- MSC_BOT_Data[5] = (uint8_t)(blk_nbr - 1 >> 16);
- MSC_BOT_Data[6] = (uint8_t)(blk_nbr - 1 >> 8);
- MSC_BOT_Data[7] = (uint8_t)(blk_nbr - 1);
-
- MSC_BOT_Data[8] = 0x02;
- MSC_BOT_Data[9] = (uint8_t)(blk_size >> 16);
- MSC_BOT_Data[10] = (uint8_t)(blk_size >> 8);
- MSC_BOT_Data[11] = (uint8_t)(blk_size);
-
- MSC_BOT_DataLen = 12;
- return 0;
- }
-}
-/**
-* @brief SCSI_ModeSense6
-* Process Mode Sense6 command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-static int8_t SCSI_ModeSense6 (uint8_t lun, uint8_t *params)
-{
-
- uint16_t len = 8 ;
- MSC_BOT_DataLen = len;
-
- while (len)
- {
- len--;
- MSC_BOT_Data[len] = MSC_Mode_Sense6_data[len];
- }
- return 0;
-}
-
-/**
-* @brief SCSI_ModeSense10
-* Process Mode Sense10 command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-static int8_t SCSI_ModeSense10 (uint8_t lun, uint8_t *params)
-{
- uint16_t len = 8;
-
- MSC_BOT_DataLen = len;
-
- while (len)
- {
- len--;
- MSC_BOT_Data[len] = MSC_Mode_Sense10_data[len];
- }
- return 0;
-}
-
-/**
-* @brief SCSI_RequestSense
-* Process Request Sense command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-
-static int8_t SCSI_RequestSense (uint8_t lun, uint8_t *params)
-{
- uint8_t i;
-
- for(i=0 ; i < REQUEST_SENSE_DATA_LEN ; i++)
- {
- MSC_BOT_Data[i] = 0;
- }
-
- MSC_BOT_Data[0] = 0x70;
- MSC_BOT_Data[7] = REQUEST_SENSE_DATA_LEN - 6;
-
- if((SCSI_Sense_Head != SCSI_Sense_Tail)) {
-
- MSC_BOT_Data[2] = SCSI_Sense[SCSI_Sense_Head].Skey;
- MSC_BOT_Data[12] = SCSI_Sense[SCSI_Sense_Head].w.b.ASCQ;
- MSC_BOT_Data[13] = SCSI_Sense[SCSI_Sense_Head].w.b.ASC;
- SCSI_Sense_Head++;
-
- if (SCSI_Sense_Head == SENSE_LIST_DEEPTH)
- {
- SCSI_Sense_Head = 0;
- }
- }
- MSC_BOT_DataLen = REQUEST_SENSE_DATA_LEN;
-
- if (params[4] <= REQUEST_SENSE_DATA_LEN)
- {
- MSC_BOT_DataLen = params[4];
- }
- return 0;
-}
-
-/**
-* @brief SCSI_SenseCode
-* Load the last error code in the error list
-* @param lun: Logical unit number
-* @param sKey: Sense Key
-* @param ASC: Additional Sense Key
-* @retval none
-
-*/
-void SCSI_SenseCode(uint8_t lun, uint8_t sKey, uint8_t ASC)
-{
- SCSI_Sense[SCSI_Sense_Tail].Skey = sKey;
- SCSI_Sense[SCSI_Sense_Tail].w.ASC = ASC << 8;
- SCSI_Sense_Tail++;
- if (SCSI_Sense_Tail == SENSE_LIST_DEEPTH)
- {
- SCSI_Sense_Tail = 0;
- }
-}
-/**
-* @brief SCSI_StartStopUnit
-* Process Start Stop Unit command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-static int8_t SCSI_StartStopUnit(uint8_t lun, uint8_t *params)
-{
- MSC_BOT_DataLen = 0;
- return 0;
-}
-
-/**
-* @brief SCSI_Read10
-* Process Read10 command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-static int8_t SCSI_Read10(uint8_t lun , uint8_t *params)
-{
- if(MSC_BOT_State == BOT_IDLE) /* Idle */
- {
-
- /* case 10 : Ho <> Di */
-
- if ((MSC_BOT_cbw.bmFlags & 0x80) != 0x80)
- {
- SCSI_SenseCode(MSC_BOT_cbw.bLUN,
- ILLEGAL_REQUEST,
- INVALID_CDB);
- return -1;
- }
-
- if(USBD_STORAGE_fops->IsReady(lun) !=0 )
- {
- SCSI_SenseCode(lun,
- NOT_READY,
- MEDIUM_NOT_PRESENT);
- return -1;
- }
-
- SCSI_blk_addr = (params[2] << 24) | \
- (params[3] << 16) | \
- (params[4] << 8) | \
- params[5];
-
- SCSI_blk_len = (params[7] << 8) | \
- params[8];
-
-
-
- if( SCSI_CheckAddressRange(lun, SCSI_blk_addr, SCSI_blk_len) < 0)
- {
- return -1; /* error */
- }
-
- MSC_BOT_State = BOT_DATA_IN;
- SCSI_blk_addr *= SCSI_blk_size;
- SCSI_blk_len *= SCSI_blk_size;
-
- /* cases 4,5 : Hi <> Dn */
- if (MSC_BOT_cbw.dDataLength != SCSI_blk_len)
- {
- SCSI_SenseCode(MSC_BOT_cbw.bLUN,
- ILLEGAL_REQUEST,
- INVALID_CDB);
- return -1;
- }
- }
- MSC_BOT_DataLen = MSC_MEDIA_PACKET;
-
- return SCSI_ProcessRead(lun);
-}
-
-/**
-* @brief SCSI_Write10
-* Process Write10 command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-
-static int8_t SCSI_Write10 (uint8_t lun , uint8_t *params)
-{
- if (MSC_BOT_State == BOT_IDLE) /* Idle */
- {
-
- /* case 8 : Hi <> Do */
-
- if ((MSC_BOT_cbw.bmFlags & 0x80) == 0x80)
- {
- SCSI_SenseCode(MSC_BOT_cbw.bLUN,
- ILLEGAL_REQUEST,
- INVALID_CDB);
- return -1;
- }
-
- /* Check whether Media is ready */
- if(USBD_STORAGE_fops->IsReady(lun) !=0 )
- {
- SCSI_SenseCode(lun,
- NOT_READY,
- MEDIUM_NOT_PRESENT);
- return -1;
- }
-
- /* Check If media is write-protected */
- if(USBD_STORAGE_fops->IsWriteProtected(lun) !=0 )
- {
- SCSI_SenseCode(lun,
- NOT_READY,
- WRITE_PROTECTED);
- return -1;
- }
-
-
- SCSI_blk_addr = (params[2] << 24) | \
- (params[3] << 16) | \
- (params[4] << 8) | \
- params[5];
- SCSI_blk_len = (params[7] << 8) | \
- params[8];
-
- /* check if LBA address is in the right range */
- if(SCSI_CheckAddressRange(lun, SCSI_blk_addr, SCSI_blk_len) < 0)
- {
- return -1; /* error */
- }
-
- SCSI_blk_addr *= SCSI_blk_size;
- SCSI_blk_len *= SCSI_blk_size;
-
- /* cases 3,11,13 : Hn,Ho <> D0 */
- if (MSC_BOT_cbw.dDataLength != SCSI_blk_len)
- {
- SCSI_SenseCode(MSC_BOT_cbw.bLUN,
- ILLEGAL_REQUEST,
- INVALID_CDB);
- return -1;
- }
-
- /* Prepare EP to receive first data packet */
- MSC_BOT_State = BOT_DATA_OUT;
- DCD_EP_PrepareRx (cdev,
- MSC_OUT_EP,
- MSC_BOT_Data,
- MIN (SCSI_blk_len, MSC_MEDIA_PACKET));
- }
- else /* Write Process ongoing */
- {
- return SCSI_ProcessWrite(lun);
- }
- return 0;
-}
-
-
-/**
-* @brief SCSI_Verify10
-* Process Verify10 command
-* @param lun: Logical unit number
-* @param params: Command parameters
-* @retval status
-*/
-
-static int8_t SCSI_Verify10(uint8_t lun , uint8_t *params){
- if ((params[1]& 0x02) == 0x02)
- {
- SCSI_SenseCode (lun, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
- return -1; /* Error, Verify Mode Not supported*/
- }
-
- if(SCSI_CheckAddressRange(lun, SCSI_blk_addr, SCSI_blk_len) < 0)
- {
- return -1; /* error */
- }
- MSC_BOT_DataLen = 0;
- return 0;
-}
-
-/**
-* @brief SCSI_CheckAddressRange
-* Check address range
-* @param lun: Logical unit number
-* @param blk_offset: first block address
-* @param blk_nbr: number of block to be processed
-* @retval status
-*/
-static int8_t SCSI_CheckAddressRange (uint8_t lun , uint32_t blk_offset , uint16_t blk_nbr)
-{
-
- if ((blk_offset + blk_nbr) > SCSI_blk_nbr )
- {
- SCSI_SenseCode(lun, ILLEGAL_REQUEST, ADDRESS_OUT_OF_RANGE);
- return -1;
- }
- return 0;
-}
-
-/**
-* @brief SCSI_ProcessRead
-* Handle Read Process
-* @param lun: Logical unit number
-* @retval status
-*/
-static int8_t SCSI_ProcessRead (uint8_t lun)
-{
- uint32_t len;
-
- len = MIN(SCSI_blk_len , MSC_MEDIA_PACKET);
-
- if( USBD_STORAGE_fops->Read(lun ,
- MSC_BOT_Data,
- SCSI_blk_addr / SCSI_blk_size,
- len / SCSI_blk_size) < 0)
- {
-
- SCSI_SenseCode(lun, HARDWARE_ERROR, UNRECOVERED_READ_ERROR);
- return -1;
- }
-
-
- DCD_EP_Tx (cdev,
- MSC_IN_EP,
- MSC_BOT_Data,
- len);
-
-
- SCSI_blk_addr += len;
- SCSI_blk_len -= len;
-
- /* case 6 : Hi = Di */
- MSC_BOT_csw.dDataResidue -= len;
-
- if (SCSI_blk_len == 0)
- {
- MSC_BOT_State = BOT_LAST_DATA_IN;
- }
- return 0;
-}
-
-/**
-* @brief SCSI_ProcessWrite
-* Handle Write Process
-* @param lun: Logical unit number
-* @retval status
-*/
-
-static int8_t SCSI_ProcessWrite (uint8_t lun)
-{
- uint32_t len;
-
- len = MIN(SCSI_blk_len , MSC_MEDIA_PACKET);
-
- if(USBD_STORAGE_fops->Write(lun ,
- MSC_BOT_Data,
- SCSI_blk_addr / SCSI_blk_size,
- len / SCSI_blk_size) < 0)
- {
- SCSI_SenseCode(lun, HARDWARE_ERROR, WRITE_FAULT);
- return -1;
- }
-
-
- SCSI_blk_addr += len;
- SCSI_blk_len -= len;
-
- /* case 12 : Ho = Do */
- MSC_BOT_csw.dDataResidue -= len;
-
- if (SCSI_blk_len == 0)
- {
- MSC_BOT_SendCSW (cdev, CSW_CMD_PASSED);
- }
- else
- {
- /* Prapare EP to Receive next packet */
- DCD_EP_PrepareRx (cdev,
- MSC_OUT_EP,
- MSC_BOT_Data,
- MIN (SCSI_blk_len, MSC_MEDIA_PACKET));
- }
-
- return 0;
-}
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_storage_template.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_storage_template.c
deleted file mode 100755
index ce16bae..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/msc/src/usbd_storage_template.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_storage_template.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Memory management layer
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_msc_mem.h"
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Extern function prototypes ------------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-#define STORAGE_LUN_NBR 1
-
-int8_t STORAGE_Init (uint8_t lun);
-
-int8_t STORAGE_GetCapacity (uint8_t lun,
- uint32_t *block_num,
- uint16_t *block_size);
-
-int8_t STORAGE_IsReady (uint8_t lun);
-
-int8_t STORAGE_IsWriteProtected (uint8_t lun);
-
-int8_t STORAGE_Read (uint8_t lun,
- uint8_t *buf,
- uint32_t blk_addr,
- uint16_t blk_len);
-
-int8_t STORAGE_Write (uint8_t lun,
- uint8_t *buf,
- uint32_t blk_addr,
- uint16_t blk_len);
-
-int8_t STORAGE_GetMaxLun (void);
-
-/* USB Mass storage Standard Inquiry Data */
-const int8_t STORAGE_Inquirydata[] = {//36
-
- /* LUN 0 */
- 0x00,
- 0x80,
- 0x02,
- 0x02,
- (USBD_STD_INQUIRY_LENGTH - 5),
- 0x00,
- 0x00,
- 0x00,
- 'S', 'T', 'M', ' ', ' ', ' ', ' ', ' ', /* Manufacturer : 8 bytes */
- 'P', 'r', 'o', 'd', 'u', 't', ' ', ' ', /* Product : 16 Bytes */
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
- '0', '.', '0' ,'1', /* Version : 4 Bytes */
-};
-
-USBD_STORAGE_cb_TypeDef USBD_MICRO_SDIO_fops =
-{
- STORAGE_Init,
- STORAGE_GetCapacity,
- STORAGE_IsReady,
- STORAGE_IsWriteProtected,
- STORAGE_Read,
- STORAGE_Write,
- STORAGE_GetMaxLun,
- STORAGE_Inquirydata,
-
-};
-
-USBD_STORAGE_cb_TypeDef *USBD_STORAGE_fops = &USBD_MICRO_SDIO_fops;
-/*******************************************************************************
-* Function Name : Read_Memory
-* Description : Handle the Read operation from the microSD card.
-* Input : None.
-* Output : None.
-* Return : None.
-*******************************************************************************/
-int8_t STORAGE_Init (uint8_t lun)
-{
- return (0);
-}
-
-/*******************************************************************************
-* Function Name : Read_Memory
-* Description : Handle the Read operation from the STORAGE card.
-* Input : None.
-* Output : None.
-* Return : None.
-*******************************************************************************/
-int8_t STORAGE_GetCapacity (uint8_t lun, uint32_t *block_num, uint16_t *block_size)
-{
- return (0);
-}
-
-/*******************************************************************************
-* Function Name : Read_Memory
-* Description : Handle the Read operation from the STORAGE card.
-* Input : None.
-* Output : None.
-* Return : None.
-*******************************************************************************/
-int8_t STORAGE_IsReady (uint8_t lun)
-{
- return (0);
-}
-
-/*******************************************************************************
-* Function Name : Read_Memory
-* Description : Handle the Read operation from the STORAGE card.
-* Input : None.
-* Output : None.
-* Return : None.
-*******************************************************************************/
-int8_t STORAGE_IsWriteProtected (uint8_t lun)
-{
- return 0;
-}
-
-/*******************************************************************************
-* Function Name : Read_Memory
-* Description : Handle the Read operation from the STORAGE card.
-* Input : None.
-* Output : None.
-* Return : None.
-*******************************************************************************/
-int8_t STORAGE_Read (uint8_t lun,
- uint8_t *buf,
- uint32_t blk_addr,
- uint16_t blk_len)
-{
- return 0;
-}
-/*******************************************************************************
-* Function Name : Write_Memory
-* Description : Handle the Write operation to the STORAGE card.
-* Input : None.
-* Output : None.
-* Return : None.
-*******************************************************************************/
-int8_t STORAGE_Write (uint8_t lun,
- uint8_t *buf,
- uint32_t blk_addr,
- uint16_t blk_len)
-{
- return (0);
-}
-/*******************************************************************************
-* Function Name : Write_Memory
-* Description : Handle the Write operation to the STORAGE card.
-* Input : None.
-* Output : None.
-* Return : None.
-*******************************************************************************/
-int8_t STORAGE_GetMaxLun (void)
-{
- return (STORAGE_LUN_NBR - 1);
-}
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/core.mk b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/core.mk
deleted file mode 100755
index c56ff5a..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/core.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SUB_FOLDER += firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src
-INCLUDES += firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_conf_template.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_conf_template.h
deleted file mode 100755
index aa722af..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_conf_template.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_conf_template.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief usb device configuration template file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBD_CONF__H__
-#define __USBD_CONF__H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f2xx.h"
-
-
-
-/** @defgroup USB_CONF_Exported_Defines
- * @{
- */
-#define USE_USB_OTG_HS
-
-#define USBD_CFG_MAX_NUM 1
-#define USB_MAX_STR_DESC_SIZ 64
-#define USBD_EP0_MAX_PACKET_SIZE 64
-
-/**
- * @}
- */
-
-
-/** @defgroup USB_CONF_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_CONF_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_CONF_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_CONF_Exported_FunctionsPrototype
- * @{
- */
-/**
- * @}
- */
-
-
-#endif //__USBD_CONF__H__
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_core.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_core.h
deleted file mode 100755
index 884bd16..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_core.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_core.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Header file for usbd_core.c
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBD_CORE_H
-#define __USBD_CORE_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_dcd.h"
-#include "usbd_def.h"
-#include "usbd_conf.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USBD_CORE
- * @brief This file is the Header file for usbd_core.c file
- * @{
- */
-
-
-/** @defgroup USBD_CORE_Exported_Defines
- * @{
- */
-
-typedef enum {
- USBD_OK = 0,
- USBD_BUSY,
- USBD_FAIL,
-}USBD_Status;
-/**
- * @}
- */
-
-
-/** @defgroup USBD_CORE_Exported_TypesDefinitions
- * @{
- */
-
-
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_CORE_Exported_Macros
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_CORE_Exported_Variables
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_CORE_Exported_FunctionsPrototype
- * @{
- */
-void USBD_Init(USB_OTG_CORE_HANDLE *pdev,
- USB_OTG_CORE_ID_TypeDef coreID,
- USBD_DEVICE *pDevice,
- USBD_Class_cb_TypeDef *class_cb,
- USBD_Usr_cb_TypeDef *usr_cb);
-
-USBD_Status USBD_DeInit(USB_OTG_CORE_HANDLE *pdev);
-
-USBD_Status USBD_ClrCfg(USB_OTG_CORE_HANDLE *pdev, uint8_t cfgidx);
-
-USBD_Status USBD_SetCfg(USB_OTG_CORE_HANDLE *pdev, uint8_t cfgidx);
-
-/**
- * @}
- */
-
-#endif /* __USBD_CORE_H */
-
-/**
- * @}
- */
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
-
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_def.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_def.h
deleted file mode 100755
index a2efc5d..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_def.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_def.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief general defines for the usb device library
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-
-#ifndef __USBD_DEF_H
-#define __USBD_DEF_H
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_conf.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USB_DEF
- * @brief general defines for the usb device library file
- * @{
- */
-
-/** @defgroup USB_DEF_Exported_Defines
- * @{
- */
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#define USB_LEN_DEV_QUALIFIER_DESC 0x0A
-#define USB_LEN_DEV_DESC 0x12
-#define USB_LEN_CFG_DESC 0x09
-#define USB_LEN_IF_DESC 0x09
-#define USB_LEN_EP_DESC 0x07
-#define USB_LEN_OTG_DESC 0x03
-
-#define USBD_IDX_LANGID_STR 0x00
-#define USBD_IDX_MFC_STR 0x01
-#define USBD_IDX_PRODUCT_STR 0x02
-#define USBD_IDX_SERIAL_STR 0x03
-#define USBD_IDX_CONFIG_STR 0x04
-#define USBD_IDX_INTERFACE_STR 0x05
-
-#define USB_REQ_TYPE_STANDARD 0x00
-#define USB_REQ_TYPE_CLASS 0x20
-#define USB_REQ_TYPE_VENDOR 0x40
-#define USB_REQ_TYPE_MASK 0x60
-
-#define USB_REQ_RECIPIENT_DEVICE 0x00
-#define USB_REQ_RECIPIENT_INTERFACE 0x01
-#define USB_REQ_RECIPIENT_ENDPOINT 0x02
-#define USB_REQ_RECIPIENT_MASK 0x03
-
-#define USB_REQ_GET_STATUS 0x00
-#define USB_REQ_CLEAR_FEATURE 0x01
-#define USB_REQ_SET_FEATURE 0x03
-#define USB_REQ_SET_ADDRESS 0x05
-#define USB_REQ_GET_DESCRIPTOR 0x06
-#define USB_REQ_SET_DESCRIPTOR 0x07
-#define USB_REQ_GET_CONFIGURATION 0x08
-#define USB_REQ_SET_CONFIGURATION 0x09
-#define USB_REQ_GET_INTERFACE 0x0A
-#define USB_REQ_SET_INTERFACE 0x0B
-#define USB_REQ_SYNCH_FRAME 0x0C
-
-#define USB_DESC_TYPE_DEVICE 1
-#define USB_DESC_TYPE_CONFIGURATION 2
-#define USB_DESC_TYPE_STRING 3
-#define USB_DESC_TYPE_INTERFACE 4
-#define USB_DESC_TYPE_ENDPOINT 5
-#define USB_DESC_TYPE_DEVICE_QUALIFIER 6
-#define USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION 7
-
-
-#define USB_CONFIG_REMOTE_WAKEUP 2
-#define USB_CONFIG_SELF_POWERED 1
-
-#define USB_FEATURE_EP_HALT 0
-#define USB_FEATURE_REMOTE_WAKEUP 1
-#define USB_FEATURE_TEST_MODE 2
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_DEF_Exported_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_DEF_Exported_Macros
- * @{
- */
-#define SWAPBYTE(addr) (((uint16_t)(*((uint8_t *)(addr)))) + \
- (((uint16_t)(*(((uint8_t *)(addr)) + 1))) << 8))
-
-#define LOBYTE(x) ((uint8_t)(x & 0x00FF))
-#define HIBYTE(x) ((uint8_t)((x & 0xFF00) >>8))
-/**
- * @}
- */
-
-/** @defgroup USBD_DEF_Exported_Variables
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_DEF_Exported_FunctionsPrototype
- * @{
- */
-
-/**
- * @}
- */
-
-#endif /* __USBD_DEF_H */
-
-/**
- * @}
- */
-
-/**
-* @}
-*/
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_ioreq.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_ioreq.h
deleted file mode 100755
index 4737ff8..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_ioreq.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_ioreq.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header file for the usbd_ioreq.c file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-
-#ifndef __USBD_IOREQ_H_
-#define __USBD_IOREQ_H_
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_def.h"
-#include "usbd_core.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USBD_IOREQ
- * @brief header file for the usbd_ioreq.c file
- * @{
- */
-
-/** @defgroup USBD_IOREQ_Exported_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_IOREQ_Exported_Types
- * @{
- */
-
-
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_IOREQ_Exported_Macros
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_IOREQ_Exported_Variables
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_IOREQ_Exported_FunctionsPrototype
- * @{
- */
-
-USBD_Status USBD_CtlSendData (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *buf,
- uint16_t len);
-
-USBD_Status USBD_CtlContinueSendData (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *pbuf,
- uint16_t len);
-
-USBD_Status USBD_CtlPrepareRx (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *pbuf,
- uint16_t len);
-
-USBD_Status USBD_CtlContinueRx (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *pbuf,
- uint16_t len);
-
-USBD_Status USBD_CtlSendStatus (USB_OTG_CORE_HANDLE *pdev);
-
-USBD_Status USBD_CtlReceiveStatus (USB_OTG_CORE_HANDLE *pdev);
-
-uint16_t USBD_GetRxCount (USB_OTG_CORE_HANDLE *pdev ,
- uint8_t epnum);
-
-/**
- * @}
- */
-
-#endif /* __USBD_IOREQ_H_ */
-
-/**
- * @}
- */
-
-/**
-* @}
-*/
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_req.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_req.h
deleted file mode 100755
index dcfa893..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_req.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_req.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief header file for the usbd_req.c file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-
-#ifndef __USB_REQUEST_H_
-#define __USB_REQUEST_H_
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_def.h"
-#include "usbd_core.h"
-#include "usbd_conf.h"
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-/** @defgroup USBD_REQ
- * @brief header file for the usbd_ioreq.c file
- * @{
- */
-
-/** @defgroup USBD_REQ_Exported_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_REQ_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_REQ_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USBD_REQ_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USBD_REQ_Exported_FunctionsPrototype
- * @{
- */
-
-USBD_Status USBD_StdDevReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req);
-USBD_Status USBD_StdItfReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req);
-USBD_Status USBD_StdEPReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req);
-void USBD_ParseSetupRequest( USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-void USBD_CtlError( USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len);
-/**
- * @}
- */
-
-#endif /* __USB_REQUEST_H_ */
-
-/**
- * @}
- */
-
-/**
-* @}
-*/
-
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_usr.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_usr.h
deleted file mode 100755
index 096759b..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/inc/usbd_usr.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_usr.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief Header file for usbd_usr.c
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBD_USR_H__
-#define __USBD_USR_H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_core.h"
-
-
-/** @addtogroup USBD_USER
- * @{
- */
-
-/** @addtogroup USBD_MSC_DEMO_USER_CALLBACKS
- * @{
- */
-
-/** @defgroup USBD_USR
- * @brief This file is the Header file for usbd_usr.c
- * @{
- */
-
-
-/** @defgroup USBD_USR_Exported_Types
- * @{
- */
-
-extern USBD_Usr_cb_TypeDef USR_cb;
-extern USBD_Usr_cb_TypeDef USR_FS_cb;
-extern USBD_Usr_cb_TypeDef USR_HS_cb;
-
-
-
-/**
- * @}
- */
-
-
-
-/** @defgroup USBD_USR_Exported_Defines
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_USR_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USBD_USR_Exported_Variables
- * @{
- */
-
-void USBD_USR_Init(void);
-void USBD_USR_DeviceReset (uint8_t speed);
-void USBD_USR_DeviceConfigured (void);
-void USBD_USR_DeviceSuspended(void);
-void USBD_USR_DeviceResumed(void);
-
-void USBD_USR_DeviceConnected(void);
-void USBD_USR_DeviceDisconnected(void);
-
-void USBD_USR_FS_Init(void);
-void USBD_USR_FS_DeviceReset (uint8_t speed);
-void USBD_USR_FS_DeviceConfigured (void);
-void USBD_USR_FS_DeviceSuspended(void);
-void USBD_USR_FS_DeviceResumed(void);
-
-void USBD_USR_FS_DeviceConnected(void);
-void USBD_USR_FS_DeviceDisconnected(void);
-
-void USBD_USR_HS_Init(void);
-void USBD_USR_HS_DeviceReset (uint8_t speed);
-void USBD_USR_HS_DeviceConfigured (void);
-void USBD_USR_HS_DeviceSuspended(void);
-void USBD_USR_HS_DeviceResumed(void);
-
-void USBD_USR_HS_DeviceConnected(void);
-void USBD_USR_HS_DeviceDisconnected(void);
-
-/**
- * @}
- */
-
-/** @defgroup USBD_USR_Exported_FunctionsPrototype
- * @{
- */
-/**
- * @}
- */
-
-#endif /*__USBD_USR_H__*/
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
-
-
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_core.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_core.c
deleted file mode 100755
index f12f3c8..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_core.c
+++ /dev/null
@@ -1,476 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_core.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides all the USBD core functions.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_core.h"
-#include "usbd_req.h"
-#include "usbd_ioreq.h"
-#include "usb_dcd_int.h"
-#include "usb_bsp.h"
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
-* @{
-*/
-
-
-/** @defgroup USBD_CORE
-* @brief usbd core module
-* @{
-*/
-
-/** @defgroup USBD_CORE_Private_TypesDefinitions
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USBD_CORE_Private_Defines
-* @{
-*/
-
-/**
-* @}
-*/
-
-
-/** @defgroup USBD_CORE_Private_Macros
-* @{
-*/
-/**
-* @}
-*/
-
-
-
-
-/** @defgroup USBD_CORE_Private_FunctionPrototypes
-* @{
-*/
-static uint8_t USBD_SetupStage(USB_OTG_CORE_HANDLE *pdev);
-static uint8_t USBD_DataOutStage(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum);
-static uint8_t USBD_DataInStage(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum);
-static uint8_t USBD_SOF(USB_OTG_CORE_HANDLE *pdev);
-static uint8_t USBD_Reset(USB_OTG_CORE_HANDLE *pdev);
-static uint8_t USBD_Suspend(USB_OTG_CORE_HANDLE *pdev);
-static uint8_t USBD_Resume(USB_OTG_CORE_HANDLE *pdev);
-#ifdef VBUS_SENSING_ENABLED
-static uint8_t USBD_DevConnected(USB_OTG_CORE_HANDLE *pdev);
-static uint8_t USBD_DevDisconnected(USB_OTG_CORE_HANDLE *pdev);
-#endif
-static uint8_t USBD_IsoINIncomplete(USB_OTG_CORE_HANDLE *pdev);
-static uint8_t USBD_IsoOUTIncomplete(USB_OTG_CORE_HANDLE *pdev);
-/**
-* @}
-*/
-
-/** @defgroup USBD_CORE_Private_Variables
-* @{
-*/
-
-
-
-USBD_DCD_INT_cb_TypeDef USBD_DCD_INT_cb =
-{
- USBD_DataOutStage,
- USBD_DataInStage,
- USBD_SetupStage,
- USBD_SOF,
- USBD_Reset,
- USBD_Suspend,
- USBD_Resume,
- USBD_IsoINIncomplete,
- USBD_IsoOUTIncomplete,
-#ifdef VBUS_SENSING_ENABLED
-USBD_DevConnected,
-USBD_DevDisconnected,
-#endif
-};
-
-USBD_DCD_INT_cb_TypeDef *USBD_DCD_INT_fops = &USBD_DCD_INT_cb;
-/**
-* @}
-*/
-
-/** @defgroup USBD_CORE_Private_Functions
-* @{
-*/
-
-/**
-* @brief USBD_Init
-* Initailizes the device stack and load the class driver
-* @param pdev: device instance
-* @param core_address: USB OTG core ID
-* @param class_cb: Class callback structure address
-* @param usr_cb: User callback structure address
-* @retval None
-*/
-void USBD_Init(USB_OTG_CORE_HANDLE *pdev,
- USB_OTG_CORE_ID_TypeDef coreID,
- USBD_DEVICE *pDevice,
- USBD_Class_cb_TypeDef *class_cb,
- USBD_Usr_cb_TypeDef *usr_cb)
-{
- /* Hardware Init */
- USB_OTG_BSP_Init(pdev);
-
- USBD_DeInit(pdev);
-
- /*Register class and user callbacks */
- pdev->dev.class_cb = class_cb;
- pdev->dev.usr_cb = usr_cb;
- pdev->dev.usr_device = pDevice;
-
- /* set USB OTG core params */
- DCD_Init(pdev , coreID);
-
- /* Upon Init call usr callback */
- pdev->dev.usr_cb->Init();
-
- /* Enable Interrupts */
- USB_OTG_BSP_EnableInterrupt(pdev);
-}
-
-/**
-* @brief USBD_DeInit
-* Re-Initialize th deviuce library
-* @param pdev: device instance
-* @retval status: status
-*/
-USBD_Status USBD_DeInit(USB_OTG_CORE_HANDLE *pdev)
-{
- /* Software Init */
-
- return USBD_OK;
-}
-
-/**
-* @brief USBD_SetupStage
-* Handle the setup stage
-* @param pdev: device instance
-* @retval status
-*/
-static uint8_t USBD_SetupStage(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_SETUP_REQ req;
-
- USBD_ParseSetupRequest(pdev , &req);
-
- switch (req.bmRequest & 0x1F)
- {
- case USB_REQ_RECIPIENT_DEVICE:
- USBD_StdDevReq (pdev, &req);
- break;
-
- case USB_REQ_RECIPIENT_INTERFACE:
- USBD_StdItfReq(pdev, &req);
- break;
-
- case USB_REQ_RECIPIENT_ENDPOINT:
- USBD_StdEPReq(pdev, &req);
- break;
-
- default:
- DCD_EP_Stall(pdev , req.bmRequest & 0x80);
- break;
- }
- return USBD_OK;
-}
-
-/**
-* @brief USBD_DataOutStage
-* Handle data out stage
-* @param pdev: device instance
-* @param epnum: endpoint index
-* @retval status
-*/
-static uint8_t USBD_DataOutStage(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum)
-{
- USB_OTG_EP *ep;
-
- if(epnum == 0)
- {
- ep = &pdev->dev.out_ep[0];
- if ( pdev->dev.device_state == USB_OTG_EP0_DATA_OUT)
- {
- if(ep->rem_data_len > ep->maxpacket)
- {
- ep->rem_data_len -= ep->maxpacket;
-
- if(pdev->cfg.dma_enable == 1)
- {
- /* in slave mode this, is handled by the RxSTSQLvl ISR */
- ep->xfer_buff += ep->maxpacket;
- }
- USBD_CtlContinueRx (pdev,
- ep->xfer_buff,
- MIN(ep->rem_data_len ,ep->maxpacket));
- }
- else
- {
- if((pdev->dev.class_cb->EP0_RxReady != NULL)&&
- (pdev->dev.device_status == USB_OTG_CONFIGURED))
- {
- pdev->dev.class_cb->EP0_RxReady(pdev);
- }
- USBD_CtlSendStatus(pdev);
- }
- }
- }
- else if((pdev->dev.class_cb->DataOut != NULL)&&
- (pdev->dev.device_status == USB_OTG_CONFIGURED))
- {
- pdev->dev.class_cb->DataOut(pdev, epnum);
- }
- return USBD_OK;
-}
-
-/**
-* @brief USBD_DataInStage
-* Handle data in stage
-* @param pdev: device instance
-* @param epnum: endpoint index
-* @retval status
-*/
-static uint8_t USBD_DataInStage(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum)
-{
- USB_OTG_EP *ep;
-
- if(epnum == 0)
- {
- ep = &pdev->dev.in_ep[0];
- if ( pdev->dev.device_state == USB_OTG_EP0_DATA_IN)
- {
- if(ep->rem_data_len > ep->maxpacket)
- {
- ep->rem_data_len -= ep->maxpacket;
- if(pdev->cfg.dma_enable == 1)
- {
- /* in slave mode this, is handled by the TxFifoEmpty ISR */
- ep->xfer_buff += ep->maxpacket;
- }
- USBD_CtlContinueSendData (pdev,
- ep->xfer_buff,
- ep->rem_data_len);
- }
- else
- { /* last packet is MPS multiple, so send ZLP packet */
- if((ep->total_data_len % ep->maxpacket == 0) &&
- (ep->total_data_len >= ep->maxpacket) &&
- (ep->total_data_len < ep->ctl_data_len ))
- {
-
- USBD_CtlContinueSendData(pdev , NULL, 0);
- ep->ctl_data_len = 0;
- }
- else
- {
- if((pdev->dev.class_cb->EP0_TxSent != NULL)&&
- (pdev->dev.device_status == USB_OTG_CONFIGURED))
- {
- pdev->dev.class_cb->EP0_TxSent(pdev);
- }
- USBD_CtlReceiveStatus(pdev);
- }
- }
- }
- }
- else if((pdev->dev.class_cb->DataIn != NULL)&&
- (pdev->dev.device_status == USB_OTG_CONFIGURED))
- {
- pdev->dev.class_cb->DataIn(pdev, epnum);
- }
- return USBD_OK;
-}
-
-/**
-* @brief USBD_Reset
-* Handle Reset event
-* @param pdev: device instance
-* @retval status
-*/
-
-static uint8_t USBD_Reset(USB_OTG_CORE_HANDLE *pdev)
-{
- /* Open EP0 OUT */
- DCD_EP_Open(pdev,
- 0x00,
- USB_OTG_MAX_EP0_SIZE,
- EP_TYPE_CTRL);
-
- /* Open EP0 IN */
- DCD_EP_Open(pdev,
- 0x80,
- USB_OTG_MAX_EP0_SIZE,
- EP_TYPE_CTRL);
-
- /* Upon Reset call usr call back */
- pdev->dev.device_status = USB_OTG_DEFAULT;
- pdev->dev.usr_cb->DeviceReset(pdev->cfg.speed);
-
- return USBD_OK;
-}
-
-/**
-* @brief USBD_Resume
-* Handle Resume event
-* @param pdev: device instance
-* @retval status
-*/
-
-static uint8_t USBD_Resume(USB_OTG_CORE_HANDLE *pdev)
-{
- /* Upon Resume call usr call back */
- pdev->dev.usr_cb->DeviceResumed();
- pdev->dev.device_status = USB_OTG_CONFIGURED;
- return USBD_OK;
-}
-
-
-/**
-* @brief USBD_Suspend
-* Handle Suspend event
-* @param pdev: device instance
-* @retval status
-*/
-
-static uint8_t USBD_Suspend(USB_OTG_CORE_HANDLE *pdev)
-{
-
- pdev->dev.device_status = USB_OTG_SUSPENDED;
- /* Upon Resume call usr call back */
- pdev->dev.usr_cb->DeviceSuspended();
- return USBD_OK;
-}
-
-
-/**
-* @brief USBD_SOF
-* Handle SOF event
-* @param pdev: device instance
-* @retval status
-*/
-
-static uint8_t USBD_SOF(USB_OTG_CORE_HANDLE *pdev)
-{
- if(pdev->dev.class_cb->SOF)
- {
- pdev->dev.class_cb->SOF(pdev);
- }
- return USBD_OK;
-}
-/**
-* @brief USBD_SetCfg
-* Configure device and start the interface
-* @param pdev: device instance
-* @param cfgidx: configuration index
-* @retval status
-*/
-
-USBD_Status USBD_SetCfg(USB_OTG_CORE_HANDLE *pdev, uint8_t cfgidx)
-{
- pdev->dev.class_cb->Init(pdev, cfgidx);
-
- /* Upon set config call usr call back */
- pdev->dev.usr_cb->DeviceConfigured();
- return USBD_OK;
-}
-
-/**
-* @brief USBD_ClrCfg
-* Clear current configuration
-* @param pdev: device instance
-* @param cfgidx: configuration index
-* @retval status: USBD_Status
-*/
-USBD_Status USBD_ClrCfg(USB_OTG_CORE_HANDLE *pdev, uint8_t cfgidx)
-{
- pdev->dev.class_cb->DeInit(pdev, cfgidx);
- return USBD_OK;
-}
-
-/**
-* @brief USBD_IsoINIncomplete
-* Handle iso in incomplete event
-* @param pdev: device instance
-* @retval status
-*/
-static uint8_t USBD_IsoINIncomplete(USB_OTG_CORE_HANDLE *pdev)
-{
- pdev->dev.class_cb->IsoINIncomplete(pdev);
- return USBD_OK;
-}
-
-/**
-* @brief USBD_IsoOUTIncomplete
-* Handle iso out incomplete event
-* @param pdev: device instance
-* @retval status
-*/
-static uint8_t USBD_IsoOUTIncomplete(USB_OTG_CORE_HANDLE *pdev)
-{
- pdev->dev.class_cb->IsoOUTIncomplete(pdev);
- return USBD_OK;
-}
-
-#ifdef VBUS_SENSING_ENABLED
-/**
-* @brief USBD_DevConnected
-* Handle device connection event
-* @param pdev: device instance
-* @retval status
-*/
-static uint8_t USBD_DevConnected(USB_OTG_CORE_HANDLE *pdev)
-{
- pdev->dev.usr_cb->DeviceConnected();
- return USBD_OK;
-}
-
-/**
-* @brief USBD_DevDisconnected
-* Handle device disconnection event
-* @param pdev: device instance
-* @retval status
-*/
-static uint8_t USBD_DevDisconnected(USB_OTG_CORE_HANDLE *pdev)
-{
- pdev->dev.usr_cb->DeviceDisconnected();
- pdev->dev.class_cb->DeInit(pdev, 0);
- return USBD_OK;
-}
-#endif
-/**
-* @}
-*/
-
-
-/**
-* @}
-*/
-
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_ioreq.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_ioreq.c
deleted file mode 100755
index 72cf3b1..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_ioreq.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_ioreq.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides the IO requests APIs for control endpoints.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_ioreq.h"
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup USBD_IOREQ
- * @brief control I/O requests module
- * @{
- */
-
-/** @defgroup USBD_IOREQ_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_IOREQ_Private_Defines
- * @{
- */
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_IOREQ_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_IOREQ_Private_Variables
- * @{
- */
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_IOREQ_Private_FunctionPrototypes
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_IOREQ_Private_Functions
- * @{
- */
-
-/**
-* @brief USBD_CtlSendData
-* send data on the ctl pipe
-* @param pdev: device instance
-* @param buff: pointer to data buffer
-* @param len: length of data to be sent
-* @retval status
-*/
-USBD_Status USBD_CtlSendData (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *pbuf,
- uint16_t len)
-{
- USBD_Status ret = USBD_OK;
-
- pdev->dev.in_ep[0].total_data_len = len;
- pdev->dev.in_ep[0].rem_data_len = len;
- pdev->dev.device_state = USB_OTG_EP0_DATA_IN;
-
- DCD_EP_Tx (pdev, 0, pbuf, len);
-
- return ret;
-}
-
-/**
-* @brief USBD_CtlContinueSendData
-* continue sending data on the ctl pipe
-* @param pdev: device instance
-* @param buff: pointer to data buffer
-* @param len: length of data to be sent
-* @retval status
-*/
-USBD_Status USBD_CtlContinueSendData (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *pbuf,
- uint16_t len)
-{
- USBD_Status ret = USBD_OK;
-
- DCD_EP_Tx (pdev, 0, pbuf, len);
-
-
- return ret;
-}
-
-/**
-* @brief USBD_CtlPrepareRx
-* receive data on the ctl pipe
-* @param pdev: USB OTG device instance
-* @param buff: pointer to data buffer
-* @param len: length of data to be received
-* @retval status
-*/
-USBD_Status USBD_CtlPrepareRx (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *pbuf,
- uint16_t len)
-{
- USBD_Status ret = USBD_OK;
-
- pdev->dev.out_ep[0].total_data_len = len;
- pdev->dev.out_ep[0].rem_data_len = len;
- pdev->dev.device_state = USB_OTG_EP0_DATA_OUT;
-
- DCD_EP_PrepareRx (pdev,
- 0,
- pbuf,
- len);
-
-
- return ret;
-}
-
-/**
-* @brief USBD_CtlContinueRx
-* continue receive data on the ctl pipe
-* @param pdev: USB OTG device instance
-* @param buff: pointer to data buffer
-* @param len: length of data to be received
-* @retval status
-*/
-USBD_Status USBD_CtlContinueRx (USB_OTG_CORE_HANDLE *pdev,
- uint8_t *pbuf,
- uint16_t len)
-{
- USBD_Status ret = USBD_OK;
-
- DCD_EP_PrepareRx (pdev,
- 0,
- pbuf,
- len);
- return ret;
-}
-/**
-* @brief USBD_CtlSendStatus
-* send zero lzngth packet on the ctl pipe
-* @param pdev: USB OTG device instance
-* @retval status
-*/
-USBD_Status USBD_CtlSendStatus (USB_OTG_CORE_HANDLE *pdev)
-{
- USBD_Status ret = USBD_OK;
- pdev->dev.device_state = USB_OTG_EP0_STATUS_IN;
- DCD_EP_Tx (pdev,
- 0,
- NULL,
- 0);
-
- USB_OTG_EP0_OutStart(pdev);
-
- return ret;
-}
-
-/**
-* @brief USBD_CtlReceiveStatus
-* receive zero lzngth packet on the ctl pipe
-* @param pdev: USB OTG device instance
-* @retval status
-*/
-USBD_Status USBD_CtlReceiveStatus (USB_OTG_CORE_HANDLE *pdev)
-{
- USBD_Status ret = USBD_OK;
- pdev->dev.device_state = USB_OTG_EP0_STATUS_OUT;
- DCD_EP_PrepareRx ( pdev,
- 0,
- NULL,
- 0);
-
- USB_OTG_EP0_OutStart(pdev);
-
- return ret;
-}
-
-
-/**
-* @brief USBD_GetRxCount
-* returns the received data length
-* @param pdev: USB OTG device instance
-* epnum: endpoint index
-* @retval Rx Data blength
-*/
-uint16_t USBD_GetRxCount (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum)
-{
- return pdev->dev.out_ep[epnum].xfer_count;
-}
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_req.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_req.c
deleted file mode 100755
index 9a9e802..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/src/usbd_req.c
+++ /dev/null
@@ -1,868 +0,0 @@
-/**
- ******************************************************************************
- * @file usbd_req.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 22-July-2011
- * @brief This file provides the standard USB requests following chapter 9.
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_req.h"
-#include "usbd_ioreq.h"
-#include "usbd_desc.h"
-
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @{
- */
-
-
-/** @defgroup USBD_REQ
- * @brief USB standard requests module
- * @{
- */
-
-/** @defgroup USBD_REQ_Private_TypesDefinitions
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_REQ_Private_Defines
- * @{
- */
-
-/**
- * @}
- */
-
-
-/** @defgroup USBD_REQ_Private_Macros
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USBD_REQ_Private_Variables
- * @{
- */
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint32_t USBD_ep_status __ALIGN_END = 0;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint32_t USBD_default_cfg __ALIGN_END = 0;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint32_t USBD_cfg_status __ALIGN_END = 0;
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- #if defined ( __ICCARM__ ) /*!< IAR Compiler */
- #pragma data_alignment=4
- #endif
-#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
-__ALIGN_BEGIN uint8_t USBD_StrDesc[USB_MAX_STR_DESC_SIZ] __ALIGN_END ;
-/**
- * @}
- */
-
-
-/** @defgroup USBD_REQ_Private_FunctionPrototypes
- * @{
- */
-static void USBD_GetDescriptor(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-static void USBD_SetAddress(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-static void USBD_SetConfig(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-static void USBD_GetConfig(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-static void USBD_GetStatus(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-static void USBD_SetFeature(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-static void USBD_ClrFeature(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req);
-
-static uint8_t USBD_GetLen(uint8_t *buf);
-/**
- * @}
- */
-
-
-/** @defgroup USBD_REQ_Private_Functions
- * @{
- */
-
-
-/**
-* @brief USBD_StdDevReq
-* Handle standard usb device requests
-* @param pdev: device instance
-* @param req: usb request
-* @retval status
-*/
-USBD_Status USBD_StdDevReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req)
-{
- USBD_Status ret = USBD_OK;
-
- switch (req->bRequest)
- {
- case USB_REQ_GET_DESCRIPTOR:
-
- USBD_GetDescriptor (pdev, req) ;
- break;
-
- case USB_REQ_SET_ADDRESS:
- USBD_SetAddress(pdev, req);
- break;
-
- case USB_REQ_SET_CONFIGURATION:
- USBD_SetConfig (pdev , req);
- break;
-
- case USB_REQ_GET_CONFIGURATION:
- USBD_GetConfig (pdev , req);
- break;
-
- case USB_REQ_GET_STATUS:
- USBD_GetStatus (pdev , req);
- break;
-
-
- case USB_REQ_SET_FEATURE:
- USBD_SetFeature (pdev , req);
- break;
-
- case USB_REQ_CLEAR_FEATURE:
- USBD_ClrFeature (pdev , req);
- break;
-
- default:
- USBD_CtlError(pdev , req);
- break;
- }
-
- return ret;
-}
-
-/**
-* @brief USBD_StdItfReq
-* Handle standard usb interface requests
-* @param pdev: USB OTG device instance
-* @param req: usb request
-* @retval status
-*/
-USBD_Status USBD_StdItfReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req)
-{
- USBD_Status ret = USBD_OK;
-
- switch (pdev->dev.device_status)
- {
- case USB_OTG_CONFIGURED:
-
- if (LOBYTE(req->wIndex) <= USBD_ITF_MAX_NUM)
- {
- pdev->dev.class_cb->Setup (pdev, req);
-
- if((req->wLength == 0)&& (ret == USBD_OK))
- {
- USBD_CtlSendStatus(pdev);
- }
- }
- else
- {
- USBD_CtlError(pdev , req);
- }
- break;
-
- default:
- USBD_CtlError(pdev , req);
- break;
- }
- return ret;
-}
-
-/**
-* @brief USBD_StdEPReq
-* Handle standard usb endpoint requests
-* @param pdev: USB OTG device instance
-* @param req: usb request
-* @retval status
-*/
-USBD_Status USBD_StdEPReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req)
-{
-
- uint8_t ep_addr;
- USBD_Status ret = USBD_OK;
-
- ep_addr = LOBYTE(req->wIndex);
-
- switch (req->bRequest)
- {
-
- case USB_REQ_SET_FEATURE :
-
- switch (pdev->dev.device_status)
- {
- case USB_OTG_ADDRESSED:
- if ((ep_addr != 0x00) && (ep_addr != 0x80))
- {
- DCD_EP_Stall(pdev , ep_addr);
- }
- break;
-
- case USB_OTG_CONFIGURED:
- if (req->wValue == USB_FEATURE_EP_HALT)
- {
- if ((ep_addr != 0x00) && (ep_addr != 0x80))
- {
- DCD_EP_Stall(pdev , ep_addr);
-
- }
- }
- pdev->dev.class_cb->Setup (pdev, req);
- USBD_CtlSendStatus(pdev);
-
- break;
-
- default:
- USBD_CtlError(pdev , req);
- break;
- }
- break;
-
- case USB_REQ_CLEAR_FEATURE :
-
- switch (pdev->dev.device_status)
- {
- case USB_OTG_ADDRESSED:
- if ((ep_addr != 0x00) && (ep_addr != 0x80))
- {
- DCD_EP_Stall(pdev , ep_addr);
- }
- break;
-
- case USB_OTG_CONFIGURED:
- if (req->wValue == USB_FEATURE_EP_HALT)
- {
- if ((ep_addr != 0x00) && (ep_addr != 0x80))
- {
- DCD_EP_ClrStall(pdev , ep_addr);
- pdev->dev.class_cb->Setup (pdev, req);
- }
- USBD_CtlSendStatus(pdev);
- }
- break;
-
- default:
- USBD_CtlError(pdev , req);
- break;
- }
- break;
-
- case USB_REQ_GET_STATUS:
- switch (pdev->dev.device_status)
- {
- case USB_OTG_ADDRESSED:
- if ((ep_addr != 0x00) && (ep_addr != 0x80))
- {
- DCD_EP_Stall(pdev , ep_addr);
- }
- break;
-
- case USB_OTG_CONFIGURED:
-
-
- if ((ep_addr & 0x80)== 0x80)
- {
- if(pdev->dev.in_ep[ep_addr & 0x7F].is_stall)
- {
- USBD_ep_status = 0x0001;
- }
- else
- {
- USBD_ep_status = 0x0000;
- }
- }
- else if ((ep_addr & 0x80)== 0x00)
- {
- if(pdev->dev.out_ep[ep_addr].is_stall)
- {
- USBD_ep_status = 0x0001;
- }
-
- else
- {
- USBD_ep_status = 0x0000;
- }
- }
- USBD_CtlSendData (pdev,
- (uint8_t *)&USBD_ep_status,
- 2);
- break;
-
- default:
- USBD_CtlError(pdev , req);
- break;
- }
- break;
-
- default:
- break;
- }
- return ret;
-}
-/**
-* @brief USBD_GetDescriptor
-* Handle Get Descriptor requests
-* @param pdev: device instance
-* @param req: usb request
-* @retval status
-*/
-static void USBD_GetDescriptor(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
- uint16_t len;
- uint8_t *pbuf;
-
- switch (req->wValue >> 8)
- {
- case USB_DESC_TYPE_DEVICE:
- pbuf = pdev->dev.usr_device->GetDeviceDescriptor(pdev->cfg.speed, &len);
- if ((req->wLength == 64) ||( pdev->dev.device_status == USB_OTG_DEFAULT))
- {
- len = 8;
- }
- break;
-
- case USB_DESC_TYPE_CONFIGURATION:
- pbuf = (uint8_t *)pdev->dev.class_cb->GetConfigDescriptor(pdev->cfg.speed, &len);
-#ifdef USB_OTG_HS_CORE
- if((pdev->cfg.speed == USB_OTG_SPEED_FULL )&&
- (pdev->cfg.phy_itface == USB_OTG_ULPI_PHY))
- {
- pbuf = (uint8_t *)pdev->dev.class_cb->GetOtherConfigDescriptor(pdev->cfg.speed, &len);
- }
-#endif
- pbuf[1] = USB_DESC_TYPE_CONFIGURATION;
- pdev->dev.pConfig_descriptor = pbuf;
- break;
-
- case USB_DESC_TYPE_STRING:
- switch ((uint8_t)(req->wValue))
- {
- case USBD_IDX_LANGID_STR:
- pbuf = pdev->dev.usr_device->GetLangIDStrDescriptor(pdev->cfg.speed, &len);
- break;
-
- case USBD_IDX_MFC_STR:
- pbuf = pdev->dev.usr_device->GetManufacturerStrDescriptor(pdev->cfg.speed, &len);
- break;
-
- case USBD_IDX_PRODUCT_STR:
- pbuf = pdev->dev.usr_device->GetProductStrDescriptor(pdev->cfg.speed, &len);
- break;
-
- case USBD_IDX_SERIAL_STR:
- pbuf = pdev->dev.usr_device->GetSerialStrDescriptor(pdev->cfg.speed, &len);
- break;
-
- case USBD_IDX_CONFIG_STR:
- pbuf = pdev->dev.usr_device->GetConfigurationStrDescriptor(pdev->cfg.speed, &len);
- break;
-
- case USBD_IDX_INTERFACE_STR:
- pbuf = pdev->dev.usr_device->GetInterfaceStrDescriptor(pdev->cfg.speed, &len);
- break;
-
- default:
-#ifdef USB_SUPPORT_USER_STRING_DESC
- pbuf = pdev->dev.class_cb->GetUsrStrDescriptor(pdev->cfg.speed, (req->wValue) , &len);
- break;
-#else
- USBD_CtlError(pdev , req);
- return;
-#endif /* USBD_CtlError(pdev , req); */
- }
- break;
- case USB_DESC_TYPE_DEVICE_QUALIFIER:
-#ifdef USB_OTG_HS_CORE
- if(pdev->cfg.speed == USB_OTG_SPEED_HIGH )
- {
-
- pbuf = (uint8_t *)pdev->dev.class_cb->GetConfigDescriptor(pdev->cfg.speed, &len);
-
- USBD_DeviceQualifierDesc[4]= pbuf[14];
- USBD_DeviceQualifierDesc[5]= pbuf[15];
- USBD_DeviceQualifierDesc[6]= pbuf[16];
-
- pbuf = USBD_DeviceQualifierDesc;
- len = USB_LEN_DEV_QUALIFIER_DESC;
- break;
- }
- else
- {
- USBD_CtlError(pdev , req);
- return;
- }
-#else
- USBD_CtlError(pdev , req);
- return;
-#endif
-
- case USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION:
-#ifdef USB_OTG_HS_CORE
-
- if(pdev->cfg.speed == USB_OTG_SPEED_HIGH )
- {
- pbuf = (uint8_t *)pdev->dev.class_cb->GetOtherConfigDescriptor(pdev->cfg.speed, &len);
- pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION;
- break;
- }
- else
- {
- USBD_CtlError(pdev , req);
- return;
- }
-#else
- USBD_CtlError(pdev , req);
- return;
-#endif
-
-
- default:
- USBD_CtlError(pdev , req);
- return;
- }
-
- if((len != 0)&& (req->wLength != 0))
- {
-
- len = MIN(len , req->wLength);
-
- USBD_CtlSendData (pdev,
- pbuf,
- len);
- }
-
-}
-
-/**
-* @brief USBD_SetAddress
-* Set device address
-* @param pdev: device instance
-* @param req: usb request
-* @retval status
-*/
-static void USBD_SetAddress(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
- uint8_t dev_addr;
-
- if ((req->wIndex == 0) && (req->wLength == 0))
- {
- dev_addr = (uint8_t)(req->wValue) & 0x7F;
-
- if (pdev->dev.device_status == USB_OTG_CONFIGURED)
- {
- USBD_CtlError(pdev , req);
- }
- else
- {
- pdev->dev.device_address = dev_addr;
- DCD_EP_SetAddress(pdev, dev_addr);
- USBD_CtlSendStatus(pdev);
-
- if (dev_addr != 0)
- {
- pdev->dev.device_status = USB_OTG_ADDRESSED;
- }
- else
- {
- pdev->dev.device_status = USB_OTG_DEFAULT;
- }
- }
- }
- else
- {
- USBD_CtlError(pdev , req);
- }
-}
-
-/**
-* @brief USBD_SetConfig
-* Handle Set device configuration request
-* @param pdev: device instance
-* @param req: usb request
-* @retval status
-*/
-static void USBD_SetConfig(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
-
- static uint8_t cfgidx;
-
- cfgidx = (uint8_t)(req->wValue);
-
- if (cfgidx > USBD_CFG_MAX_NUM )
- {
- USBD_CtlError(pdev , req);
- }
- else
- {
- switch (pdev->dev.device_status)
- {
- case USB_OTG_ADDRESSED:
- if (cfgidx)
- {
- pdev->dev.device_config = cfgidx;
- pdev->dev.device_status = USB_OTG_CONFIGURED;
- USBD_SetCfg(pdev , cfgidx);
- USBD_CtlSendStatus(pdev);
- }
- else
- {
- USBD_CtlSendStatus(pdev);
- }
- break;
-
- case USB_OTG_CONFIGURED:
- if (cfgidx == 0)
- {
- pdev->dev.device_status = USB_OTG_ADDRESSED;
- pdev->dev.device_config = cfgidx;
- USBD_ClrCfg(pdev , cfgidx);
- USBD_CtlSendStatus(pdev);
-
- }
- else if (cfgidx != pdev->dev.device_config)
- {
- /* Clear old configuration */
- USBD_ClrCfg(pdev , pdev->dev.device_config);
-
- /* set new configuration */
- pdev->dev.device_config = cfgidx;
- USBD_SetCfg(pdev , cfgidx);
- USBD_CtlSendStatus(pdev);
- }
- else
- {
- USBD_CtlSendStatus(pdev);
- }
- break;
-
- default:
- USBD_CtlError(pdev , req);
- break;
- }
- }
-}
-
-/**
-* @brief USBD_GetConfig
-* Handle Get device configuration request
-* @param pdev: device instance
-* @param req: usb request
-* @retval status
-*/
-static void USBD_GetConfig(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
-
- if (req->wLength != 1)
- {
- USBD_CtlError(pdev , req);
- }
- else
- {
- switch (pdev->dev.device_status )
- {
- case USB_OTG_ADDRESSED:
-
- USBD_CtlSendData (pdev,
- (uint8_t *)&USBD_default_cfg,
- 1);
- break;
-
- case USB_OTG_CONFIGURED:
-
- USBD_CtlSendData (pdev,
- &pdev->dev.device_config,
- 1);
- break;
-
- default:
- USBD_CtlError(pdev , req);
- break;
- }
- }
-}
-
-/**
-* @brief USBD_GetStatus
-* Handle Get Status request
-* @param pdev: device instance
-* @param req: usb request
-* @retval status
-*/
-static void USBD_GetStatus(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
-
- switch (pdev->dev.device_status)
- {
- case USB_OTG_ADDRESSED:
- case USB_OTG_CONFIGURED:
-
- if (pdev->dev.DevRemoteWakeup)
- {
- USBD_cfg_status = USB_CONFIG_SELF_POWERED | USB_CONFIG_REMOTE_WAKEUP;
- }
- else
- {
- USBD_cfg_status = USB_CONFIG_SELF_POWERED;
- }
-
- USBD_CtlSendData (pdev,
- (uint8_t *)&USBD_cfg_status,
- 1);
- break;
-
- default :
- USBD_CtlError(pdev , req);
- break;
- }
-}
-
-
-/**
-* @brief USBD_SetFeature
-* Handle Set device feature request
-* @param pdev: device instance
-* @param req: usb request
-* @retval status
-*/
-static void USBD_SetFeature(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
-
- USB_OTG_DCTL_TypeDef dctl;
- uint8_t test_mode = 0;
-
- if (req->wValue == USB_FEATURE_REMOTE_WAKEUP)
- {
- pdev->dev.DevRemoteWakeup = 1;
- pdev->dev.class_cb->Setup (pdev, req);
- USBD_CtlSendStatus(pdev);
- }
-
- else if ((req->wValue == USB_FEATURE_TEST_MODE) &&
- ((req->wIndex & 0xFF) == 0))
- {
- dctl.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DCTL);
-
- test_mode = req->wIndex >> 8;
- switch (test_mode)
- {
- case 1: // TEST_J
- dctl.b.tstctl = 1;
- break;
-
- case 2: // TEST_K
- dctl.b.tstctl = 2;
- break;
-
- case 3: // TEST_SE0_NAK
- dctl.b.tstctl = 3;
- break;
-
- case 4: // TEST_PACKET
- dctl.b.tstctl = 4;
- break;
-
- case 5: // TEST_FORCE_ENABLE
- dctl.b.tstctl = 5;
- break;
- }
- USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DCTL, dctl.d32);
- USBD_CtlSendStatus(pdev);
- }
-
-}
-
-
-/**
-* @brief USBD_ClrFeature
-* Handle clear device feature request
-* @param pdev: device instance
-* @param req: usb request
-* @retval status
-*/
-static void USBD_ClrFeature(USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
- switch (pdev->dev.device_status)
- {
- case USB_OTG_ADDRESSED:
- case USB_OTG_CONFIGURED:
- if (req->wValue == USB_FEATURE_REMOTE_WAKEUP)
- {
- pdev->dev.DevRemoteWakeup = 0;
- pdev->dev.class_cb->Setup (pdev, req);
- USBD_CtlSendStatus(pdev);
- }
- break;
-
- default :
- USBD_CtlError(pdev , req);
- break;
- }
-}
-
-/**
-* @brief USBD_ParseSetupRequest
-* Copy buffer into setup structure
-* @param pdev: device instance
-* @param req: usb request
-* @retval None
-*/
-
-void USBD_ParseSetupRequest( USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
- req->bmRequest = *(uint8_t *) (pdev->dev.setup_packet);
- req->bRequest = *(uint8_t *) (pdev->dev.setup_packet + 1);
- req->wValue = SWAPBYTE (pdev->dev.setup_packet + 2);
- req->wIndex = SWAPBYTE (pdev->dev.setup_packet + 4);
- req->wLength = SWAPBYTE (pdev->dev.setup_packet + 6);
-
- pdev->dev.in_ep[0].ctl_data_len = req->wLength ;
- pdev->dev.device_state = USB_OTG_EP0_SETUP;
-}
-
-/**
-* @brief USBD_CtlError
-* Handle USB low level Error
-* @param pdev: device instance
-* @param req: usb request
-* @retval None
-*/
-
-void USBD_CtlError( USB_OTG_CORE_HANDLE *pdev,
- USB_SETUP_REQ *req)
-{
- if((req->bmRequest & 0x80) == 0x80)
- {
- DCD_EP_Stall(pdev , 0x80);
- }
- else
- {
- if(req->wLength == 0)
- {
- DCD_EP_Stall(pdev , 0x80);
- }
- else
- {
- DCD_EP_Stall(pdev , 0);
- }
- }
- USB_OTG_EP0_OutStart(pdev);
-}
-
-
-/**
- * @brief USBD_GetString
- * Convert Ascii string into unicode one
- * @param desc : descriptor buffer
- * @param unicode : Formatted string buffer (unicode)
- * @param len : descriptor length
- * @retval None
- */
-void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len)
-{
- uint8_t idx = 0;
-
- if (desc != NULL)
- {
- *len = USBD_GetLen(desc) * 2 + 2;
- unicode[idx++] = *len;
- unicode[idx++] = USB_DESC_TYPE_STRING;
-
- while (*desc != NULL)
- {
- unicode[idx++] = *desc++;
- unicode[idx++] = 0x00;
- }
- }
-}
-
-/**
- * @brief USBD_GetLen
- * return the string length
- * @param buf : pointer to the ascii string buffer
- * @retval string length
- */
-static uint8_t USBD_GetLen(uint8_t *buf)
-{
- uint8_t len = 0;
-
- while (*buf != NULL)
- {
- len++;
- buf++;
- }
-
- return len;
-}
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/dev_lib.mk b/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/dev_lib.mk
deleted file mode 100755
index 8d9c6c4..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/dev_lib.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-#SUB_FOLDER += firmware/arch/stm32f4xx/lib
-#INCLUDES += firmware/arch/stm32f4xx/lib
-
-include firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Class/class.mk
-include firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/Core/core.mk
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_bsp.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_bsp.h
deleted file mode 100755
index 9390dde..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_bsp.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_bsp.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Specific api's relative to the used hardware platform
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_BSP__H__
-#define __USB_BSP__H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_core.h"
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_BSP
- * @brief This file is the
- * @{
- */
-
-
-/** @defgroup USB_BSP_Exported_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_BSP_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_BSP_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_BSP_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_BSP_Exported_FunctionsPrototype
- * @{
- */
-void BSP_Init(void);
-
-void USB_OTG_BSP_Init (USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_BSP_uDelay (const uint32_t usec);
-void USB_OTG_BSP_mDelay (const uint32_t msec);
-void USB_OTG_BSP_EnableInterrupt (USB_OTG_CORE_HANDLE *pdev);
-#ifdef USE_HOST_MODE
-void USB_OTG_BSP_ConfigVBUS(USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_BSP_DriveVBUS(USB_OTG_CORE_HANDLE *pdev,uint8_t state);
-#endif
-/**
- * @}
- */
-
-#endif //__USB_BSP__H__
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_core.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_core.h
deleted file mode 100755
index 7e9cb8c..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_core.h
+++ /dev/null
@@ -1,408 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_core.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Header of the Core Layer
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_CORE_H__
-#define __USB_CORE_H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_conf.h"
-#include "usb_regs.h"
-#include "usb_defines.h"
-
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_CORE
- * @brief usb otg driver core layer
- * @{
- */
-
-
-/** @defgroup USB_CORE_Exported_Defines
- * @{
- */
-
-#define USB_OTG_EP0_IDLE 0
-#define USB_OTG_EP0_SETUP 1
-#define USB_OTG_EP0_DATA_IN 2
-#define USB_OTG_EP0_DATA_OUT 3
-#define USB_OTG_EP0_STATUS_IN 4
-#define USB_OTG_EP0_STATUS_OUT 5
-#define USB_OTG_EP0_STALL 6
-
-#define USB_OTG_EP_TX_DIS 0x0000
-#define USB_OTG_EP_TX_STALL 0x0010
-#define USB_OTG_EP_TX_NAK 0x0020
-#define USB_OTG_EP_TX_VALID 0x0030
-
-#define USB_OTG_EP_RX_DIS 0x0000
-#define USB_OTG_EP_RX_STALL 0x1000
-#define USB_OTG_EP_RX_NAK 0x2000
-#define USB_OTG_EP_RX_VALID 0x3000
-/**
- * @}
- */
-#define MAX_DATA_LENGTH 0xFF
-
-/** @defgroup USB_CORE_Exported_Types
- * @{
- */
-
-
-typedef enum {
- USB_OTG_OK = 0,
- USB_OTG_FAIL
-}USB_OTG_STS;
-
-typedef enum {
- HC_IDLE = 0,
- HC_XFRC,
- HC_HALTED,
- HC_NAK,
- HC_NYET,
- HC_STALL,
- HC_XACTERR,
- HC_BBLERR,
- HC_DATATGLERR,
-}HC_STATUS;
-
-typedef enum {
- URB_IDLE = 0,
- URB_DONE,
- URB_NOTREADY,
- URB_ERROR,
- URB_STALL
-}URB_STATE;
-
-typedef enum {
- CTRL_START = 0,
- CTRL_XFRC,
- CTRL_HALTED,
- CTRL_NAK,
- CTRL_STALL,
- CTRL_XACTERR,
- CTRL_BBLERR,
- CTRL_DATATGLERR,
- CTRL_FAIL
-}CTRL_STATUS;
-
-
-typedef struct USB_OTG_hc
-{
- uint8_t dev_addr ;
- uint8_t ep_num;
- uint8_t ep_is_in;
- uint8_t speed;
- uint8_t do_ping;
- uint8_t ep_type;
- uint16_t max_packet;
- uint8_t data_pid;
- uint8_t *xfer_buff;
- uint32_t xfer_len;
- uint32_t xfer_count;
- uint8_t toggle_in;
- uint8_t toggle_out;
- uint32_t dma_addr;
-}
-USB_OTG_HC , *PUSB_OTG_HC;
-
-typedef struct USB_OTG_ep
-{
- uint8_t num;
- uint8_t is_in;
- uint8_t is_stall;
- uint8_t type;
- uint8_t data_pid_start;
- uint8_t even_odd_frame;
- uint16_t tx_fifo_num;
- uint32_t maxpacket;
- /* transaction level variables*/
- uint8_t *xfer_buff;
- uint32_t dma_addr;
- uint32_t xfer_len;
- uint32_t xfer_count;
- /* Transfer level variables*/
- uint32_t rem_data_len;
- uint32_t total_data_len;
- uint32_t ctl_data_len;
-
-}
-
-USB_OTG_EP , *PUSB_OTG_EP;
-
-
-
-typedef struct USB_OTG_core_cfg
-{
- uint8_t host_channels;
- uint8_t dev_endpoints;
- uint8_t speed;
- uint8_t dma_enable;
- uint16_t mps;
- uint16_t TotalFifoSize;
- uint8_t phy_itface;
- uint8_t Sof_output;
- uint8_t low_power;
- uint8_t coreID;
-
-}
-USB_OTG_CORE_CFGS, *PUSB_OTG_CORE_CFGS;
-
-
-
-typedef struct usb_setup_req {
-
- uint8_t bmRequest;
- uint8_t bRequest;
- uint16_t wValue;
- uint16_t wIndex;
- uint16_t wLength;
-} USB_SETUP_REQ;
-
-typedef struct _Device_TypeDef
-{
- uint8_t *(*GetDeviceDescriptor)( uint8_t speed , uint16_t *length);
- uint8_t *(*GetLangIDStrDescriptor)( uint8_t speed , uint16_t *length);
- uint8_t *(*GetManufacturerStrDescriptor)( uint8_t speed , uint16_t *length);
- uint8_t *(*GetProductStrDescriptor)( uint8_t speed , uint16_t *length);
- uint8_t *(*GetSerialStrDescriptor)( uint8_t speed , uint16_t *length);
- uint8_t *(*GetConfigurationStrDescriptor)( uint8_t speed , uint16_t *length);
- uint8_t *(*GetInterfaceStrDescriptor)( uint8_t speed , uint16_t *length);
-} USBD_DEVICE, *pUSBD_DEVICE;
-
-typedef struct USB_OTG_hPort
-{
- void (*Disconnect) (void *phost);
- void (*Connect) (void *phost);
- uint8_t ConnStatus;
- uint8_t DisconnStatus;
- uint8_t ConnHandled;
- uint8_t DisconnHandled;
-} USB_OTG_hPort_TypeDef;
-
-typedef struct _Device_cb
-{
- uint8_t (*Init) (void *pdev , uint8_t cfgidx);
- uint8_t (*DeInit) (void *pdev , uint8_t cfgidx);
- /* Control Endpoints*/
- uint8_t (*Setup) (void *pdev , USB_SETUP_REQ *req);
- uint8_t (*EP0_TxSent) (void *pdev );
- uint8_t (*EP0_RxReady) (void *pdev );
- /* Class Specific Endpoints*/
- uint8_t (*DataIn) (void *pdev , uint8_t epnum);
- uint8_t (*DataOut) (void *pdev , uint8_t epnum);
- uint8_t (*SOF) (void *pdev);
- uint8_t (*IsoINIncomplete) (void *pdev);
- uint8_t (*IsoOUTIncomplete) (void *pdev);
-
- uint8_t *(*GetConfigDescriptor)( uint8_t speed , uint16_t *length);
-#ifdef USB_OTG_HS_CORE
- uint8_t *(*GetOtherConfigDescriptor)( uint8_t speed , uint16_t *length);
-#endif
-
-#ifdef USB_SUPPORT_USER_STRING_DESC
- uint8_t *(*GetUsrStrDescriptor)( uint8_t speed ,uint8_t index, uint16_t *length);
-#endif
-
-} USBD_Class_cb_TypeDef;
-
-
-
-typedef struct _USBD_USR_PROP
-{
- void (*Init)(void);
- void (*DeviceReset)(uint8_t speed);
- void (*DeviceConfigured)(void);
- void (*DeviceSuspended)(void);
- void (*DeviceResumed)(void);
-
- void (*DeviceConnected)(void);
- void (*DeviceDisconnected)(void);
-
-}
-USBD_Usr_cb_TypeDef;
-
-typedef struct _DCD
-{
- uint8_t device_config;
- uint8_t device_state;
- uint8_t device_status;
- uint8_t device_address;
- uint32_t DevRemoteWakeup;
- USB_OTG_EP in_ep [USB_OTG_MAX_TX_FIFOS];
- USB_OTG_EP out_ep [USB_OTG_MAX_TX_FIFOS];
- uint8_t setup_packet [8*3];
- USBD_Class_cb_TypeDef *class_cb;
- USBD_Usr_cb_TypeDef *usr_cb;
- USBD_DEVICE *usr_device;
- uint8_t *pConfig_descriptor;
- }
-DCD_DEV , *DCD_PDEV;
-
-
-typedef struct _HCD
-{
- uint8_t Rx_Buffer [MAX_DATA_LENGTH];
- __IO uint32_t ConnSts;
- __IO uint32_t ErrCnt[USB_OTG_MAX_TX_FIFOS];
- __IO uint32_t XferCnt[USB_OTG_MAX_TX_FIFOS];
- __IO HC_STATUS HC_Status[USB_OTG_MAX_TX_FIFOS];
- __IO URB_STATE URB_State[USB_OTG_MAX_TX_FIFOS];
- USB_OTG_HC hc [USB_OTG_MAX_TX_FIFOS];
- uint16_t channel [USB_OTG_MAX_TX_FIFOS];
- USB_OTG_hPort_TypeDef *port_cb;
-}
-HCD_DEV , *USB_OTG_USBH_PDEV;
-
-
-typedef struct _OTG
-{
- uint8_t OTG_State;
- uint8_t OTG_PrevState;
- uint8_t OTG_Mode;
-}
-OTG_DEV , *USB_OTG_USBO_PDEV;
-
-typedef struct USB_OTG_handle
-{
- USB_OTG_CORE_CFGS cfg;
- USB_OTG_CORE_REGS regs;
-#ifdef USE_DEVICE_MODE
- DCD_DEV dev;
-#endif
-#ifdef USE_HOST_MODE
- HCD_DEV host;
-#endif
-#ifdef USE_OTG_MODE
- OTG_DEV otg;
-#endif
-}
-USB_OTG_CORE_HANDLE , *PUSB_OTG_CORE_HANDLE;
-
-/**
- * @}
- */
-
-
-/** @defgroup USB_CORE_Exported_Macros
- * @{
- */
-
-/**
- * @}
- */
-
-/** @defgroup USB_CORE_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_CORE_Exported_FunctionsPrototype
- * @{
- */
-
-
-USB_OTG_STS USB_OTG_CoreInit (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_SelectCore (USB_OTG_CORE_HANDLE *pdev,
- USB_OTG_CORE_ID_TypeDef coreID);
-USB_OTG_STS USB_OTG_EnableGlobalInt (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_DisableGlobalInt(USB_OTG_CORE_HANDLE *pdev);
-void* USB_OTG_ReadPacket (USB_OTG_CORE_HANDLE *pdev ,
- uint8_t *dest,
- uint16_t len);
-USB_OTG_STS USB_OTG_WritePacket (USB_OTG_CORE_HANDLE *pdev ,
- uint8_t *src,
- uint8_t ch_ep_num,
- uint16_t len);
-USB_OTG_STS USB_OTG_FlushTxFifo (USB_OTG_CORE_HANDLE *pdev , uint32_t num);
-USB_OTG_STS USB_OTG_FlushRxFifo (USB_OTG_CORE_HANDLE *pdev);
-
-uint32_t USB_OTG_ReadCoreItr (USB_OTG_CORE_HANDLE *pdev);
-uint32_t USB_OTG_ReadOtgItr (USB_OTG_CORE_HANDLE *pdev);
-uint8_t USB_OTG_IsHostMode (USB_OTG_CORE_HANDLE *pdev);
-uint8_t USB_OTG_IsDeviceMode (USB_OTG_CORE_HANDLE *pdev);
-uint32_t USB_OTG_GetMode (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_PhyInit (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_SetCurrentMode (USB_OTG_CORE_HANDLE *pdev,
- uint8_t mode);
-
-/*********************** HOST APIs ********************************************/
-#ifdef USE_HOST_MODE
-USB_OTG_STS USB_OTG_CoreInitHost (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_EnableHostInt (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_HC_Init (USB_OTG_CORE_HANDLE *pdev, uint8_t hc_num);
-USB_OTG_STS USB_OTG_HC_Halt (USB_OTG_CORE_HANDLE *pdev, uint8_t hc_num);
-USB_OTG_STS USB_OTG_HC_StartXfer (USB_OTG_CORE_HANDLE *pdev, uint8_t hc_num);
-USB_OTG_STS USB_OTG_HC_DoPing (USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num);
-uint32_t USB_OTG_ReadHostAllChannels_intr (USB_OTG_CORE_HANDLE *pdev);
-uint32_t USB_OTG_ResetPort (USB_OTG_CORE_HANDLE *pdev);
-uint32_t USB_OTG_ReadHPRT0 (USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_DriveVbus (USB_OTG_CORE_HANDLE *pdev, uint8_t state);
-void USB_OTG_InitFSLSPClkSel (USB_OTG_CORE_HANDLE *pdev ,uint8_t freq);
-uint8_t USB_OTG_IsEvenFrame (USB_OTG_CORE_HANDLE *pdev) ;
-void USB_OTG_StopHost (USB_OTG_CORE_HANDLE *pdev);
-#endif
-/********************* DEVICE APIs ********************************************/
-#ifdef USE_DEVICE_MODE
-USB_OTG_STS USB_OTG_CoreInitDev (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_EnableDevInt (USB_OTG_CORE_HANDLE *pdev);
-uint32_t USB_OTG_ReadDevAllInEPItr (USB_OTG_CORE_HANDLE *pdev);
-enum USB_OTG_SPEED USB_OTG_GetDeviceSpeed (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_EP0Activate (USB_OTG_CORE_HANDLE *pdev);
-USB_OTG_STS USB_OTG_EPActivate (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep);
-USB_OTG_STS USB_OTG_EPDeactivate(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep);
-USB_OTG_STS USB_OTG_EPStartXfer (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep);
-USB_OTG_STS USB_OTG_EP0StartXfer(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep);
-USB_OTG_STS USB_OTG_EPSetStall (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep);
-USB_OTG_STS USB_OTG_EPClearStall (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep);
-uint32_t USB_OTG_ReadDevAllOutEp_itr (USB_OTG_CORE_HANDLE *pdev);
-uint32_t USB_OTG_ReadDevOutEP_itr (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum);
-uint32_t USB_OTG_ReadDevAllInEPItr (USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_InitDevSpeed (USB_OTG_CORE_HANDLE *pdev , uint8_t speed);
-uint8_t USBH_IsEvenFrame (USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_EP0_OutStart(USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_ActiveRemoteWakeup(USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_UngateClock(USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_StopDevice(USB_OTG_CORE_HANDLE *pdev);
-void USB_OTG_SetEPStatus (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep , uint32_t Status);
-uint32_t USB_OTG_GetEPStatus(USB_OTG_CORE_HANDLE *pdev ,USB_OTG_EP *ep);
-#endif
-/**
- * @}
- */
-
-#endif /* __USB_CORE_H__ */
-
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_dcd.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_dcd.h
deleted file mode 100755
index d8ae590..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_dcd.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_dcd.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Peripheral Driver Header file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __DCD_H__
-#define __DCD_H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_core.h"
-
-
-/** @addtogroup USB_OTG_DRIVER
-* @{
-*/
-
-/** @defgroup USB_DCD
-* @brief This file is the
-* @{
-*/
-
-
-/** @defgroup USB_DCD_Exported_Defines
-* @{
-*/
-#define USB_OTG_EP_CONTROL 0
-#define USB_OTG_EP_ISOC 1
-#define USB_OTG_EP_BULK 2
-#define USB_OTG_EP_INT 3
-#define USB_OTG_EP_MASK 3
-
-/* Device Status */
-#define USB_OTG_DEFAULT 1
-#define USB_OTG_ADDRESSED 2
-#define USB_OTG_CONFIGURED 3
-#define USB_OTG_SUSPENDED 4
-
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_Exported_Types
-* @{
-*/
-/********************************************************************************
-Data structure type
-********************************************************************************/
-typedef struct
-{
- uint8_t bLength;
- uint8_t bDescriptorType;
- uint8_t bEndpointAddress;
- uint8_t bmAttributes;
- uint16_t wMaxPacketSize;
- uint8_t bInterval;
-}
-EP_DESCRIPTOR , *PEP_DESCRIPTOR;
-
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_Exported_Macros
-* @{
-*/
-/**
-* @}
-*/
-
-/** @defgroup USB_DCD_Exported_Variables
-* @{
-*/
-/**
-* @}
-*/
-
-/** @defgroup USB_DCD_Exported_FunctionsPrototype
-* @{
-*/
-/********************************************************************************
-EXPORTED FUNCTION FROM THE USB-OTG LAYER
-********************************************************************************/
-void DCD_Init(USB_OTG_CORE_HANDLE *pdev ,
- USB_OTG_CORE_ID_TypeDef coreID);
-
-void DCD_DevConnect (USB_OTG_CORE_HANDLE *pdev);
-void DCD_DevDisconnect (USB_OTG_CORE_HANDLE *pdev);
-void DCD_EP_SetAddress (USB_OTG_CORE_HANDLE *pdev,
- uint8_t address);
-uint32_t DCD_EP_Open(USB_OTG_CORE_HANDLE *pdev ,
- uint8_t ep_addr,
- uint16_t ep_mps,
- uint8_t ep_type);
-
-uint32_t DCD_EP_Close (USB_OTG_CORE_HANDLE *pdev,
- uint8_t ep_addr);
-
-
-uint32_t DCD_EP_PrepareRx ( USB_OTG_CORE_HANDLE *pdev,
- uint8_t ep_addr,
- uint8_t *pbuf,
- uint16_t buf_len);
-
-uint32_t DCD_EP_Tx (USB_OTG_CORE_HANDLE *pdev,
- uint8_t ep_addr,
- uint8_t *pbuf,
- uint32_t buf_len);
-uint32_t DCD_EP_Stall (USB_OTG_CORE_HANDLE *pdev,
- uint8_t epnum);
-uint32_t DCD_EP_ClrStall (USB_OTG_CORE_HANDLE *pdev,
- uint8_t epnum);
-uint32_t DCD_EP_Flush (USB_OTG_CORE_HANDLE *pdev,
- uint8_t epnum);
-uint32_t DCD_Handle_ISR(USB_OTG_CORE_HANDLE *pdev);
-
-uint32_t DCD_GetEPStatus(USB_OTG_CORE_HANDLE *pdev ,
- uint8_t epnum);
-
-void DCD_SetEPStatus (USB_OTG_CORE_HANDLE *pdev ,
- uint8_t epnum ,
- uint32_t Status);
-
-/**
-* @}
-*/
-
-
-#endif //__DCD_H__
-
-
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_dcd_int.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_dcd_int.h
deleted file mode 100755
index cb44982..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_dcd_int.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_dcd_int.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Peripheral Device Interface Layer
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef USB_DCD_INT_H__
-#define USB_DCD_INT_H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_dcd.h"
-
-
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_DCD_INT
- * @brief This file is the
- * @{
- */
-
-
-/** @defgroup USB_DCD_INT_Exported_Defines
- * @{
- */
-
-typedef struct _USBD_DCD_INT
-{
- uint8_t (* DataOutStage) (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum);
- uint8_t (* DataInStage) (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum);
- uint8_t (* SetupStage) (USB_OTG_CORE_HANDLE *pdev);
- uint8_t (* SOF) (USB_OTG_CORE_HANDLE *pdev);
- uint8_t (* Reset) (USB_OTG_CORE_HANDLE *pdev);
- uint8_t (* Suspend) (USB_OTG_CORE_HANDLE *pdev);
- uint8_t (* Resume) (USB_OTG_CORE_HANDLE *pdev);
- uint8_t (* IsoINIncomplete) (USB_OTG_CORE_HANDLE *pdev);
- uint8_t (* IsoOUTIncomplete) (USB_OTG_CORE_HANDLE *pdev);
-
- uint8_t (* DevConnected) (USB_OTG_CORE_HANDLE *pdev);
- uint8_t (* DevDisconnected) (USB_OTG_CORE_HANDLE *pdev);
-
-}USBD_DCD_INT_cb_TypeDef;
-
-extern USBD_DCD_INT_cb_TypeDef *USBD_DCD_INT_fops;
-/**
- * @}
- */
-
-
-/** @defgroup USB_DCD_INT_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_DCD_INT_Exported_Macros
- * @{
- */
-
-#define CLEAR_IN_EP_INTR(epnum,intr) \
- diepint.d32=0; \
- diepint.b.intr = 1; \
- USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[epnum]->DIEPINT,diepint.d32);
-
-#define CLEAR_OUT_EP_INTR(epnum,intr) \
- doepint.d32=0; \
- doepint.b.intr = 1; \
- USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[epnum]->DOEPINT,doepint.d32);
-
-/**
- * @}
- */
-
-/** @defgroup USB_DCD_INT_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_DCD_INT_Exported_FunctionsPrototype
- * @{
- */
-
-uint32_t USBD_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev);
-
-/**
- * @}
- */
-
-
-#endif // USB_DCD_INT_H__
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_defines.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_defines.h
deleted file mode 100755
index 2ec3427..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_defines.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_defines.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Header of the Core Layer
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_DEF_H__
-#define __USB_DEF_H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_conf.h"
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_DEFINES
- * @brief This file is the
- * @{
- */
-
-
-/** @defgroup USB_DEFINES_Exported_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup _CORE_DEFINES_
- * @{
- */
-
-#define USB_OTG_SPEED_PARAM_HIGH 0
-#define USB_OTG_SPEED_PARAM_HIGH_IN_FULL 1
-#define USB_OTG_SPEED_PARAM_FULL 3
-
-#define USB_OTG_SPEED_HIGH 0
-#define USB_OTG_SPEED_FULL 1
-
-#define USB_OTG_ULPI_PHY 1
-#define USB_OTG_EMBEDDED_PHY 2
-#define USB_OTG_I2C_PHY 3
-
-/**
- * @}
- */
-
-
-/** @defgroup _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
-/**
- * @}
- */
-
-
-/** @defgroup _OnTheGo_DEFINES_
- * @{
- */
-#define MODE_HNP_SRP_CAPABLE 0
-#define MODE_SRP_ONLY_CAPABLE 1
-#define MODE_NO_HNP_SRP_CAPABLE 2
-#define MODE_SRP_CAPABLE_DEVICE 3
-#define MODE_NO_SRP_CAPABLE_DEVICE 4
-#define MODE_SRP_CAPABLE_HOST 5
-#define MODE_NO_SRP_CAPABLE_HOST 6
-#define A_HOST 1
-#define A_SUSPEND 2
-#define A_PERIPHERAL 3
-#define B_PERIPHERAL 4
-#define B_HOST 5
-#define DEVICE_MODE 0
-#define HOST_MODE 1
-#define OTG_MODE 2
-/**
- * @}
- */
-
-
-/** @defgroup __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 EP_TYPE_MSK 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
-/**
- * @}
- */
-
-
-/** @defgroup __HOST_DEFINES_
- * @{
- */
-#define HC_PID_DATA0 0
-#define HC_PID_DATA2 1
-#define HC_PID_DATA1 2
-#define HC_PID_SETUP 3
-
-#define HPRT0_PRTSPD_HIGH_SPEED 0
-#define HPRT0_PRTSPD_FULL_SPEED 1
-#define HPRT0_PRTSPD_LOW_SPEED 2
-
-#define HCFG_30_60_MHZ 0
-#define HCFG_48_MHZ 1
-#define HCFG_6_MHZ 2
-
-#define HCCHAR_CTRL 0
-#define HCCHAR_ISOC 1
-#define HCCHAR_BULK 2
-#define HCCHAR_INTR 3
-
-#define MIN(a, b) (((a) < (b)) ? (a) : (b))
-
-/**
- * @}
- */
-
-
-/** @defgroup USB_DEFINES_Exported_Types
- * @{
- */
-
-typedef enum
-{
- USB_OTG_HS_CORE_ID = 0,
- USB_OTG_FS_CORE_ID = 1
-}USB_OTG_CORE_ID_TypeDef;
-/**
- * @}
- */
-
-
-/** @defgroup USB_DEFINES_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_DEFINES_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_DEFINES_Exported_FunctionsPrototype
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup Internal_Macro's
- * @{
- */
-#define USB_OTG_READ_REG32(reg) (*(__IO uint32_t *)reg)
-#define USB_OTG_WRITE_REG32(reg,value) (*(__IO uint32_t *)reg = value)
-#define USB_OTG_MODIFY_REG32(reg,clear_mask,set_mask) \
- USB_OTG_WRITE_REG32(reg, (((USB_OTG_READ_REG32(reg)) & ~clear_mask) | set_mask ) )
-
-/********************************************************************************
- ENUMERATION TYPE
-********************************************************************************/
-enum USB_OTG_SPEED {
- USB_SPEED_UNKNOWN = 0,
- USB_SPEED_LOW,
- USB_SPEED_FULL,
- USB_SPEED_HIGH
-};
-
-#endif //__USB_DEFINES__H__
-
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_hcd.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_hcd.h
deleted file mode 100755
index db97677..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_hcd.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_hcd.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Host layer Header file
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_HCD_H__
-#define __USB_HCD_H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_regs.h"
-#include "usb_core.h"
-
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_HCD
- * @brief This file is the
- * @{
- */
-
-
-/** @defgroup USB_HCD_Exported_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_HCD_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_HCD_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_HCD_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_HCD_Exported_FunctionsPrototype
- * @{
- */
-uint32_t HCD_Init (USB_OTG_CORE_HANDLE *pdev ,
- USB_OTG_CORE_ID_TypeDef coreID);
-uint32_t HCD_HC_Init (USB_OTG_CORE_HANDLE *pdev ,
- uint8_t hc_num);
-uint32_t HCD_SubmitRequest (USB_OTG_CORE_HANDLE *pdev ,
- uint8_t hc_num) ;
-uint32_t HCD_GetCurrentSpeed (USB_OTG_CORE_HANDLE *pdev);
-uint32_t HCD_ResetPort (USB_OTG_CORE_HANDLE *pdev);
-uint32_t HCD_IsDeviceConnected (USB_OTG_CORE_HANDLE *pdev);
-uint32_t HCD_GetCurrentFrame (USB_OTG_CORE_HANDLE *pdev) ;
-URB_STATE HCD_GetURB_State (USB_OTG_CORE_HANDLE *pdev, uint8_t ch_num);
-uint32_t HCD_GetXferCnt (USB_OTG_CORE_HANDLE *pdev, uint8_t ch_num);
-HC_STATUS HCD_GetHCState (USB_OTG_CORE_HANDLE *pdev, uint8_t ch_num) ;
-/**
- * @}
- */
-
-#endif //__USB_HCD_H__
-
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_hcd_int.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_hcd_int.h
deleted file mode 100755
index a405e36..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_hcd_int.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_hcd_int.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Peripheral Device Interface Layer
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __HCD_INT_H__
-#define __HCD_INT_H__
-
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_hcd.h"
-
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_HCD_INT
- * @brief This file is the
- * @{
- */
-
-
-/** @defgroup USB_HCD_INT_Exported_Defines
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_HCD_INT_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_HCD_INT_Exported_Macros
- * @{
- */
-
-#define CLEAR_HC_INT(HC_REGS, intr) \
- {\
- USB_OTG_HCINTn_TypeDef hcint_clear; \
- hcint_clear.d32 = 0; \
- hcint_clear.b.intr = 1; \
- USB_OTG_WRITE_REG32(&((HC_REGS)->HCINT), hcint_clear.d32);\
- }\
-
-#define MASK_HOST_INT_CHH(hc_num) { USB_OTG_HCGINTMSK_TypeDef GINTMSK; \
- GINTMSK.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK); \
- GINTMSK.b.chhltd = 0; \
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, GINTMSK.d32);}
-
-#define UNMASK_HOST_INT_CHH(hc_num) { USB_OTG_HCGINTMSK_TypeDef GINTMSK; \
- GINTMSK.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK); \
- GINTMSK.b.chhltd = 1; \
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, GINTMSK.d32);}
-
-#define MASK_HOST_INT_ACK(hc_num) { USB_OTG_HCGINTMSK_TypeDef GINTMSK; \
- GINTMSK.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK); \
- GINTMSK.b.ack = 0; \
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, GINTMSK.d32);}
-
-#define UNMASK_HOST_INT_ACK(hc_num) { USB_OTG_HCGINTMSK_TypeDef GINTMSK; \
- GINTMSK.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK); \
- GINTMSK.b.ack = 1; \
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, GINTMSK.d32);}
-
-/**
- * @}
- */
-
-/** @defgroup USB_HCD_INT_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_HCD_INT_Exported_FunctionsPrototype
- * @{
- */
-/* Callbacks handler */
-void ConnectCallback_Handler(USB_OTG_CORE_HANDLE *pdev);
-void Disconnect_Callback_Handler(USB_OTG_CORE_HANDLE *pdev);
-void Overcurrent_Callback_Handler(USB_OTG_CORE_HANDLE *pdev);
-uint32_t USBH_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev);
-
-/**
- * @}
- */
-
-
-
-#endif //__HCD_INT_H__
-
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_otg.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_otg.h
deleted file mode 100755
index 78b9ae5..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_otg.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_otg.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief OTG Core Header
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_OTG__
-#define __USB_OTG__
-
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_OTG
- * @brief This file is the
- * @{
- */
-
-
-/** @defgroup USB_OTG_Exported_Defines
- * @{
- */
-
-
-void USB_OTG_InitiateSRP(void);
-void USB_OTG_InitiateHNP(uint8_t state , uint8_t mode);
-void USB_OTG_Switchback (USB_OTG_CORE_DEVICE *pdev);
-uint32_t USB_OTG_GetCurrentState (USB_OTG_CORE_DEVICE *pdev);
-
-/**
- * @}
- */
-
-
-/** @defgroup USB_OTG_Exported_Types
- * @{
- */
-/**
- * @}
- */
-
-
-/** @defgroup USB_OTG_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_OTG_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_OTG_Exported_FunctionsPrototype
- * @{
- */
-/**
- * @}
- */
-
-
-#endif //__USB_OTG__
-
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_regs.h b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_regs.h
deleted file mode 100755
index d12e05d..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc/usb_regs.h
+++ /dev/null
@@ -1,1206 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_regs.h
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief hardware registers
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USB_OTG_REGS_H__
-#define __USB_OTG_REGS_H__
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_conf.h"
-
-
-/** @addtogroup USB_OTG_DRIVER
- * @{
- */
-
-/** @defgroup USB_REGS
- * @brief This file is the
- * @{
- */
-
-
-/** @defgroup USB_REGS_Exported_Defines
- * @{
- */
-
-#define USB_OTG_HS_BASE_ADDR 0x40040000
-#define USB_OTG_FS_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 USB_OTG_MAX_TX_FIFOS 15
-
-#define USB_OTG_HS_MAX_PACKET_SIZE 512
-#define USB_OTG_FS_MAX_PACKET_SIZE 64
-#define USB_OTG_MAX_EP0_SIZE 64
-/**
- * @}
- */
-
-/** @defgroup USB_REGS_Exported_Types
- * @{
- */
-
-/** @defgroup __USB_OTG_Core_register
- * @{
- */
-typedef struct _USB_OTG_GREGS //000h
-{
- __IO uint32_t GOTGCTL; /* USB_OTG Control and Status Register 000h*/
- __IO uint32_t GOTGINT; /* USB_OTG Interrupt Register 004h*/
- __IO uint32_t GAHBCFG; /* Core AHB Configuration Register 008h*/
- __IO uint32_t GUSBCFG; /* Core USB Configuration Register 00Ch*/
- __IO uint32_t GRSTCTL; /* Core Reset Register 010h*/
- __IO uint32_t GINTSTS; /* Core Interrupt Register 014h*/
- __IO uint32_t GINTMSK; /* Core Interrupt Mask Register 018h*/
- __IO uint32_t GRXSTSR; /* Receive Sts Q Read Register 01Ch*/
- __IO uint32_t GRXSTSP; /* Receive Sts Q Read & POP Register 020h*/
- __IO uint32_t GRXFSIZ; /* Receive FIFO Size Register 024h*/
- __IO uint32_t DIEPTXF0_HNPTXFSIZ; /* EP0 / Non Periodic Tx FIFO Size Register 028h*/
- __IO uint32_t HNPTXSTS; /* Non Periodic Tx FIFO/Queue Sts reg 02Ch*/
- __IO uint32_t GI2CCTL; /* I2C Access Register 030h*/
- uint32_t Reserved34; /* PHY Vendor Control Register 034h*/
- __IO uint32_t GCCFG; /* General Purpose IO Register 038h*/
- __IO uint32_t CID; /* User ID Register 03Ch*/
- uint32_t Reserved40[48]; /* Reserved 040h-0FFh*/
- __IO uint32_t HPTXFSIZ; /* Host Periodic Tx FIFO Size Reg 100h*/
- __IO uint32_t DIEPTXF[USB_OTG_MAX_TX_FIFOS];/* dev Periodic Transmit FIFO */
-}
-USB_OTG_GREGS;
-/**
- * @}
- */
-
-
-/** @defgroup __device_Registers
- * @{
- */
-typedef struct _USB_OTG_DREGS // 800h
-{
- __IO uint32_t DCFG; /* dev Configuration Register 800h*/
- __IO uint32_t DCTL; /* dev Control Register 804h*/
- __IO uint32_t DSTS; /* dev Status Register (RO) 808h*/
- uint32_t Reserved0C; /* Reserved 80Ch*/
- __IO uint32_t DIEPMSK; /* dev IN Endpoint Mask 810h*/
- __IO uint32_t DOEPMSK; /* dev OUT Endpoint Mask 814h*/
- __IO uint32_t DAINT; /* dev All Endpoints Itr Reg 818h*/
- __IO uint32_t DAINTMSK; /* dev All Endpoints Itr Mask 81Ch*/
- uint32_t Reserved20; /* Reserved 820h*/
- uint32_t Reserved9; /* Reserved 824h*/
- __IO uint32_t DVBUSDIS; /* dev VBUS discharge Register 828h*/
- __IO uint32_t DVBUSPULSE; /* dev VBUS Pulse Register 82Ch*/
- __IO uint32_t DTHRCTL; /* dev thr 830h*/
- __IO uint32_t DIEPEMPMSK; /* dev empty msk 834h*/
- __IO uint32_t DEACHINT; /* dedicated EP interrupt 838h*/
- __IO uint32_t DEACHMSK; /* dedicated EP msk 83Ch*/
- uint32_t Reserved40; /* dedicated EP mask 840h*/
- __IO uint32_t DINEP1MSK; /* dedicated EP mask 844h*/
- uint32_t Reserved44[15]; /* Reserved 844-87Ch*/
- __IO uint32_t DOUTEP1MSK; /* dedicated EP msk 884h*/
-}
-USB_OTG_DREGS;
-/**
- * @}
- */
-
-
-/** @defgroup __IN_Endpoint-Specific_Register
- * @{
- */
-typedef struct _USB_OTG_INEPREGS
-{
- __IO uint32_t DIEPCTL; /* dev IN Endpoint Control Reg 900h + (ep_num * 20h) + 00h*/
- uint32_t Reserved04; /* Reserved 900h + (ep_num * 20h) + 04h*/
- __IO uint32_t DIEPINT; /* dev IN Endpoint Itr Reg 900h + (ep_num * 20h) + 08h*/
- uint32_t Reserved0C; /* Reserved 900h + (ep_num * 20h) + 0Ch*/
- __IO uint32_t DIEPTSIZ; /* IN Endpoint Txfer Size 900h + (ep_num * 20h) + 10h*/
- __IO uint32_t DIEPDMA; /* IN Endpoint DMA Address Reg 900h + (ep_num * 20h) + 14h*/
- __IO uint32_t DTXFSTS;/*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_INEPREGS;
-/**
- * @}
- */
-
-
-/** @defgroup __OUT_Endpoint-Specific_Registers
- * @{
- */
-typedef struct _USB_OTG_OUTEPREGS
-{
- __IO uint32_t DOEPCTL; /* dev OUT Endpoint Control Reg B00h + (ep_num * 20h) + 00h*/
- __IO uint32_t DOUTEPFRM; /* dev OUT Endpoint Frame number B00h + (ep_num * 20h) + 04h*/
- __IO uint32_t DOEPINT; /* dev OUT Endpoint Itr Reg B00h + (ep_num * 20h) + 08h*/
- uint32_t Reserved0C; /* Reserved B00h + (ep_num * 20h) + 0Ch*/
- __IO uint32_t DOEPTSIZ; /* dev OUT Endpoint Txfer Size B00h + (ep_num * 20h) + 10h*/
- __IO uint32_t DOEPDMA; /* 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_OUTEPREGS;
-/**
- * @}
- */
-
-
-/** @defgroup __Host_Mode_Register_Structures
- * @{
- */
-typedef struct _USB_OTG_HREGS
-{
- __IO uint32_t HCFG; /* Host Configuration Register 400h*/
- __IO uint32_t HFIR; /* Host Frame Interval Register 404h*/
- __IO uint32_t HFNUM; /* Host Frame Nbr/Frame Remaining 408h*/
- uint32_t Reserved40C; /* Reserved 40Ch*/
- __IO uint32_t HPTXSTS; /* Host Periodic Tx FIFO/ Queue Status 410h*/
- __IO uint32_t HAINT; /* Host All Channels Interrupt Register 414h*/
- __IO uint32_t HAINTMSK; /* Host All Channels Interrupt Mask 418h*/
-}
-USB_OTG_HREGS;
-/**
- * @}
- */
-
-
-/** @defgroup __Host_Channel_Specific_Registers
- * @{
- */
-typedef struct _USB_OTG_HC_REGS
-{
- __IO uint32_t HCCHAR;
- __IO uint32_t HCSPLT;
- __IO uint32_t HCINT;
- __IO uint32_t HCGINTMSK;
- __IO uint32_t HCTSIZ;
- __IO uint32_t HCDMA;
- uint32_t Reserved[2];
-}
-USB_OTG_HC_REGS;
-/**
- * @}
- */
-
-
-/** @defgroup __otg_Core_registers
- * @{
- */
-typedef struct USB_OTG_core_regs //000h
-{
- USB_OTG_GREGS *GREGS;
- USB_OTG_DREGS *DREGS;
- USB_OTG_HREGS *HREGS;
- USB_OTG_INEPREGS *INEP_REGS[USB_OTG_MAX_TX_FIFOS];
- USB_OTG_OUTEPREGS *OUTEP_REGS[USB_OTG_MAX_TX_FIFOS];
- USB_OTG_HC_REGS *HC_REGS[USB_OTG_MAX_TX_FIFOS];
- __IO uint32_t *HPRT0;
- __IO uint32_t *DFIFO[USB_OTG_MAX_TX_FIFOS];
- __IO uint32_t *PCGCCTL;
-}
-USB_OTG_CORE_REGS , *PUSB_OTG_CORE_REGS;
-typedef union _USB_OTG_OTGCTL_TypeDef
-{
- 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_OTGCTL_TypeDef ;
-typedef union _USB_OTG_GOTGINT_TypeDef
-{
- 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_GOTGINT_TypeDef ;
-typedef union _USB_OTG_GAHBCFG_TypeDef
-{
- 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_GAHBCFG_TypeDef ;
-typedef union _USB_OTG_GUSBCFG_TypeDef
-{
- 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_GUSBCFG_TypeDef ;
-typedef union _USB_OTG_GRSTCTL_TypeDef
-{
- 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_GRSTCTL_TypeDef ;
-typedef union _USB_OTG_GINTMSK_TypeDef
-{
- 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_GINTMSK_TypeDef ;
-typedef union _USB_OTG_GINTSTS_TypeDef
-{
- 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 intimerrx :
- 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_GINTSTS_TypeDef ;
-typedef union _USB_OTG_DRXSTS_TypeDef
-{
- 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_DRXSTS_TypeDef ;
-typedef union _USB_OTG_GRXSTS_TypeDef
-{
- 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_GRXFSTS_TypeDef ;
-typedef union _USB_OTG_FSIZ_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t startaddr :
- 16;
-uint32_t depth :
- 16;
- }
- b;
-} USB_OTG_FSIZ_TypeDef ;
-typedef union _USB_OTG_HNPTXSTS_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t nptxfspcavail :
- 16;
-uint32_t nptxqspcavail :
- 8;
-uint32_t nptxqtop_terminate :
- 1;
-uint32_t nptxqtop_timer :
- 2;
-uint32_t nptxqtop :
- 2;
-uint32_t chnum :
- 2;
-uint32_t Reserved :
- 1;
- }
- b;
-} USB_OTG_HNPTXSTS_TypeDef ;
-typedef union _USB_OTG_DTXFSTSn_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t txfspcavail :
- 16;
-uint32_t Reserved :
- 16;
- }
- b;
-} USB_OTG_DTXFSTSn_TypeDef ;
-typedef union _USB_OTG_GI2CCTL_TypeDef
-{
- 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_GI2CCTL_TypeDef ;
-typedef union _USB_OTG_GCCFG_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t Reserved_in :
- 16;
-uint32_t pwdn :
- 1;
-uint32_t i2cifen :
- 1;
-uint32_t vbussensingA :
- 1;
-uint32_t vbussensingB :
- 1;
-uint32_t sofouten :
- 1;
-uint32_t disablevbussensing :
- 1;
-uint32_t Reserved_out :
- 10;
- }
- b;
-} USB_OTG_GCCFG_TypeDef ;
-
-typedef union _USB_OTG_DCFG_TypeDef
-{
- 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_DCFG_TypeDef ;
-typedef union _USB_OTG_DCTL_TypeDef
-{
- 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_DCTL_TypeDef ;
-typedef union _USB_OTG_DSTS_TypeDef
-{
- 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_DSTS_TypeDef ;
-typedef union _USB_OTG_DIEPINTn_TypeDef
-{
- 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_DIEPINTn_TypeDef ;
-typedef union _USB_OTG_DIEPINTn_TypeDef USB_OTG_DIEPMSK_TypeDef ;
-typedef union _USB_OTG_DOEPINTn_TypeDef
-{
- 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_DOEPINTn_TypeDef ;
-typedef union _USB_OTG_DOEPINTn_TypeDef USB_OTG_DOEPMSK_TypeDef ;
-
-typedef union _USB_OTG_DAINT_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t in :
- 16;
-uint32_t out :
- 16;
- }
- ep;
-} USB_OTG_DAINT_TypeDef ;
-
-typedef union _USB_OTG_DTHRCTL_TypeDef
-{
- 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_DTHRCTL_TypeDef ;
-typedef union _USB_OTG_DEPCTL_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t mps :
- 11;
-uint32_t reserved :
- 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_DEPCTL_TypeDef ;
-typedef union _USB_OTG_DEPXFRSIZ_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t xfersize :
- 19;
-uint32_t pktcnt :
- 10;
-uint32_t mc :
- 2;
-uint32_t Reserved :
- 1;
- }
- b;
-} USB_OTG_DEPXFRSIZ_TypeDef ;
-typedef union _USB_OTG_DEP0XFRSIZ_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t xfersize :
- 7;
-uint32_t Reserved7_18 :
- 12;
-uint32_t pktcnt :
- 2;
-uint32_t Reserved20_28 :
- 9;
-uint32_t supcnt :
- 2;
- uint32_t Reserved31;
- }
- b;
-} USB_OTG_DEP0XFRSIZ_TypeDef ;
-typedef union _USB_OTG_HCFG_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t fslspclksel :
- 2;
-uint32_t fslssupp :
- 1;
- }
- b;
-} USB_OTG_HCFG_TypeDef ;
-typedef union _USB_OTG_HFRMINTRVL_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t frint :
- 16;
-uint32_t Reserved :
- 16;
- }
- b;
-} USB_OTG_HFRMINTRVL_TypeDef ;
-
-typedef union _USB_OTG_HFNUM_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t frnum :
- 16;
-uint32_t frrem :
- 16;
- }
- b;
-} USB_OTG_HFNUM_TypeDef ;
-typedef union _USB_OTG_HPTXSTS_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t ptxfspcavail :
- 16;
-uint32_t ptxqspcavail :
- 8;
-uint32_t ptxqtop_terminate :
- 1;
-uint32_t ptxqtop_timer :
- 2;
-uint32_t ptxqtop :
- 2;
-uint32_t chnum :
- 2;
-uint32_t ptxqtop_odd :
- 1;
- }
- b;
-} USB_OTG_HPTXSTS_TypeDef ;
-typedef union _USB_OTG_HPRT0_TypeDef
-{
- 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_TypeDef ;
-typedef union _USB_OTG_HAINT_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t chint :
- 16;
-uint32_t Reserved :
- 16;
- }
- b;
-} USB_OTG_HAINT_TypeDef ;
-typedef union _USB_OTG_HAINTMSK_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t chint :
- 16;
-uint32_t Reserved :
- 16;
- }
- b;
-} USB_OTG_HAINTMSK_TypeDef ;
-typedef union _USB_OTG_HCCHAR_TypeDef
-{
- 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_HCCHAR_TypeDef ;
-typedef union _USB_OTG_HCSPLT_TypeDef
-{
- 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_HCSPLT_TypeDef ;
-typedef union _USB_OTG_HCINTn_TypeDef
-{
- 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_HCINTn_TypeDef ;
-typedef union _USB_OTG_HCTSIZn_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t xfersize :
- 19;
-uint32_t pktcnt :
- 10;
-uint32_t pid :
- 2;
-uint32_t dopng :
- 1;
- }
- b;
-} USB_OTG_HCTSIZn_TypeDef ;
-typedef union _USB_OTG_HCGINTMSK_TypeDef
-{
- 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_HCGINTMSK_TypeDef ;
-typedef union _USB_OTG_PCGCCTL_TypeDef
-{
- uint32_t d32;
- struct
- {
-uint32_t stoppclk :
- 1;
-uint32_t gatehclk :
- 1;
-uint32_t Reserved :
- 30;
- }
- b;
-} USB_OTG_PCGCCTL_TypeDef ;
-
-/**
- * @}
- */
-
-
-/** @defgroup USB_REGS_Exported_Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_REGS_Exported_Variables
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup USB_REGS_Exported_FunctionsPrototype
- * @{
- */
-/**
- * @}
- */
-
-
-#endif //__USB_OTG_REGS_H__
-
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
-
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/otg_driver.mk b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/otg_driver.mk
deleted file mode 100755
index 558fffc..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/otg_driver.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SUB_FOLDER += firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src
-INCLUDES += firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/inc
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_core.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_core.c
deleted file mode 100755
index 5d29245..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_core.c
+++ /dev/null
@@ -1,2187 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_core.c
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief USB-OTG Core Layer
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_core.h"
-#include "usb_bsp.h"
-
-
-/** @addtogroup USB_OTG_DRIVER
-* @{
-*/
-
-/** @defgroup USB_CORE
-* @brief This file includes the USB-OTG Core Layer
-* @{
-*/
-
-
-/** @defgroup USB_CORE_Private_Defines
-* @{
-*/
-
-/**
-* @}
-*/
-
-
-/** @defgroup USB_CORE_Private_TypesDefinitions
-* @{
-*/
-/**
-* @}
-*/
-
-
-
-/** @defgroup USB_CORE_Private_Macros
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_CORE_Private_Variables
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_CORE_Private_FunctionPrototypes
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_CORE_Private_Functions
-* @{
-*/
-
-/**
-* @brief USB_OTG_EnableCommonInt
-* Initializes the commmon interrupts, used in both device and modes
-* @param pdev : Selected device
-* @retval None
-*/
-static void USB_OTG_EnableCommonInt(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTMSK_TypeDef int_mask;
-
- int_mask.d32 = 0;
- /* Clear any pending USB_OTG Interrupts */
-#ifndef USE_OTG_MODE
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GOTGINT, 0xFFFFFFFF);
-#endif
- /* Clear any pending interrupts */
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTSTS, 0xFFFFFFFF);
- /* Enable the interrupts in the INTMSK */
- int_mask.b.wkupintr = 1;
- int_mask.b.usbsuspend = 1;
-
-#ifdef USE_OTG_MODE
- int_mask.b.otgintr = 1;
- int_mask.b.sessreqintr = 1;
- int_mask.b.conidstschng = 1;
-#endif
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTMSK, int_mask.d32);
-}
-
-/**
-* @brief USB_OTG_CoreReset : Soft reset of the core
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-static USB_OTG_STS USB_OTG_CoreReset(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- __IO USB_OTG_GRSTCTL_TypeDef greset;
- uint32_t count = 0;
-
- greset.d32 = 0;
- /* Wait for AHB master IDLE state. */
- do
- {
- USB_OTG_BSP_uDelay(3);
- greset.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GRSTCTL);
- if (++count > 200000)
- {
- return USB_OTG_OK;
- }
- }
- while (greset.b.ahbidle == 0);
- /* Core Soft Reset */
- count = 0;
- greset.b.csftrst = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRSTCTL, greset.d32 );
- do
- {
- greset.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GRSTCTL);
- if (++count > 200000)
- {
- break;
- }
- }
- while (greset.b.csftrst == 1);
- /* Wait for 3 PHY Clocks*/
- USB_OTG_BSP_uDelay(3);
- return status;
-}
-
-/**
-* @brief USB_OTG_WritePacket : Writes a packet into the Tx FIFO associated
-* with the EP
-* @param pdev : Selected device
-* @param src : source pointer
-* @param ch_ep_num : end point number
-* @param bytes : No. of bytes
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_WritePacket(USB_OTG_CORE_HANDLE *pdev,
- uint8_t *src,
- uint8_t ch_ep_num,
- uint16_t len)
-{
- USB_OTG_STS status = USB_OTG_OK;
- if (pdev->cfg.dma_enable == 0)
- {
- uint32_t count32b= 0 , i= 0;
- __IO uint32_t *fifo;
-
- count32b = (len + 3) / 4;
- fifo = pdev->regs.DFIFO[ch_ep_num];
- for (i = 0; i < count32b; i++, src+=4)
- {
- USB_OTG_WRITE_REG32( fifo, *((__packed uint32_t *)src) );
- }
- }
- return status;
-}
-
-
-/**
-* @brief USB_OTG_ReadPacket : Reads a packet from the Rx FIFO
-* @param pdev : Selected device
-* @param dest : Destination Pointer
-* @param bytes : No. of bytes
-* @retval None
-*/
-void *USB_OTG_ReadPacket(USB_OTG_CORE_HANDLE *pdev,
- uint8_t *dest,
- uint16_t len)
-{
- uint32_t i=0;
- uint32_t count32b = (len + 3) / 4;
-
- __IO uint32_t *fifo = pdev->regs.DFIFO[0];
-
- for ( i = 0; i < count32b; i++, dest += 4 )
- {
- *(__packed uint32_t *)dest = USB_OTG_READ_REG32(fifo);
-
- }
- return ((void *)dest);
-}
-
-/**
-* @brief USB_OTG_SelectCore
-* Initialize core registers address.
-* @param pdev : Selected device
-* @param coreID : USB OTG Core ID
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_SelectCore(USB_OTG_CORE_HANDLE *pdev,
- USB_OTG_CORE_ID_TypeDef coreID)
-{
- uint32_t i , baseAddress = 0;
- USB_OTG_STS status = USB_OTG_OK;
-
- pdev->cfg.dma_enable = 0;
-
- /* at startup the core is in FS mode */
- pdev->cfg.speed = USB_OTG_SPEED_FULL;
- pdev->cfg.mps = USB_OTG_FS_MAX_PACKET_SIZE ;
-
- /* initialize device cfg following its address */
- if (coreID == USB_OTG_FS_CORE_ID)
- {
- baseAddress = USB_OTG_FS_BASE_ADDR;
- pdev->cfg.coreID = USB_OTG_FS_CORE_ID;
- pdev->cfg.host_channels = 8 ;
- pdev->cfg.dev_endpoints = 4 ;
- pdev->cfg.TotalFifoSize = 320; /* in 32-bits */
- pdev->cfg.phy_itface = USB_OTG_EMBEDDED_PHY;
-
-#ifdef USB_OTG_FS_SOF_OUTPUT_ENABLED
- pdev->cfg.Sof_output = 1;
-#endif
-
-#ifdef USB_OTG_FS_LOW_PWR_MGMT_SUPPORT
- pdev->cfg.low_power = 1;
-#endif
- }
- else if (coreID == USB_OTG_HS_CORE_ID)
- {
- baseAddress = USB_OTG_HS_BASE_ADDR;
- pdev->cfg.coreID = USB_OTG_HS_CORE_ID;
- pdev->cfg.host_channels = 12 ;
- pdev->cfg.dev_endpoints = 6 ;
- pdev->cfg.TotalFifoSize = 1280;/* in 32-bits */
-
-#ifdef USB_OTG_ULPI_PHY_ENABLED
- pdev->cfg.phy_itface = USB_OTG_ULPI_PHY;
-#else
- #ifdef USB_OTG_EMBEDDED_PHY_ENABLED
- pdev->cfg.phy_itface = USB_OTG_EMBEDDED_PHY;
- #else
- #ifdef USB_OTG_I2C_PHY_ENABLED
- pdev->cfg.phy_itface = USB_OTG_I2C_PHY;
- #endif
- #endif
-#endif
-
-#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
- pdev->cfg.dma_enable = 1;
-#endif
-
-#ifdef USB_OTG_HS_SOF_OUTPUT_ENABLED
- pdev->cfg.Sof_output = 1;
-#endif
-
-#ifdef USB_OTG_HS_LOW_PWR_MGMT_SUPPORT
- pdev->cfg.low_power = 1;
-#endif
-
- }
-
- pdev->regs.GREGS = (USB_OTG_GREGS *)(baseAddress + \
- USB_OTG_CORE_GLOBAL_REGS_OFFSET);
- pdev->regs.DREGS = (USB_OTG_DREGS *) (baseAddress + \
- USB_OTG_DEV_GLOBAL_REG_OFFSET);
-
- for (i = 0; i < pdev->cfg.dev_endpoints; i++)
- {
- pdev->regs.INEP_REGS[i] = (USB_OTG_INEPREGS *) \
- (baseAddress + USB_OTG_DEV_IN_EP_REG_OFFSET + \
- (i * USB_OTG_EP_REG_OFFSET));
- pdev->regs.OUTEP_REGS[i] = (USB_OTG_OUTEPREGS *) \
- (baseAddress + USB_OTG_DEV_OUT_EP_REG_OFFSET + \
- (i * USB_OTG_EP_REG_OFFSET));
- }
- pdev->regs.HREGS = (USB_OTG_HREGS *)(baseAddress + \
- USB_OTG_HOST_GLOBAL_REG_OFFSET);
- pdev->regs.HPRT0 = (uint32_t *)(baseAddress + USB_OTG_HOST_PORT_REGS_OFFSET);
-
- for (i = 0; i < pdev->cfg.host_channels; i++)
- {
- pdev->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 < pdev->cfg.host_channels; i++)
- {
- pdev->regs.DFIFO[i] = (uint32_t *)(baseAddress + USB_OTG_DATA_FIFO_OFFSET +\
- (i * USB_OTG_DATA_FIFO_SIZE));
- }
- pdev->regs.PCGCCTL = (uint32_t *)(baseAddress + USB_OTG_PCGCCTL_OFFSET);
-
- return status;
-}
-
-
-/**
-* @brief USB_OTG_CoreInit
-* Initializes the USB_OTG controller registers and prepares the core
-* device mode or host mode operation.
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_CoreInit(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_GUSBCFG_TypeDef usbcfg;
- USB_OTG_GCCFG_TypeDef gccfg;
- USB_OTG_GI2CCTL_TypeDef i2cctl;
- USB_OTG_GAHBCFG_TypeDef ahbcfg;
-
- usbcfg.d32 = 0;
- gccfg.d32 = 0;
- ahbcfg.d32 = 0;
-
-
-
- if (pdev->cfg.phy_itface == USB_OTG_ULPI_PHY)
- {
- gccfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GCCFG);
- gccfg.b.pwdn = 0;
-
- if (pdev->cfg.Sof_output)
- {
- gccfg.b.sofouten = 1;
- }
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GCCFG, gccfg.d32);
-
- /* Init The ULPI Interface */
- usbcfg.d32 = 0;
- usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG);
-
- usbcfg.b.physel = 0; /* HS Interface */
-#ifdef USB_OTG_INTERNAL_VBUS_ENABLED
- usbcfg.b.ulpi_ext_vbus_drv = 0; /* Use internal VBUS */
-#else
- #ifdef USB_OTG_EXTERNAL_VBUS_ENABLED
- usbcfg.b.ulpi_ext_vbus_drv = 1; /* Use external VBUS */
- #endif
-#endif
- usbcfg.b.term_sel_dl_pulse = 0; /* Data line pulsing using utmi_txvalid */
- usbcfg.b.ulpi_utmi_sel = 1; /* ULPI seleInterfacect */
-
- usbcfg.b.phyif = 0; /* 8 bits */
- usbcfg.b.ddrsel = 0; /* single data rate */
-
- usbcfg.b.ulpi_fsls = 0;
- usbcfg.b.ulpi_clk_sus_m = 0;
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GUSBCFG, usbcfg.d32);
-
- /* Reset after a PHY select */
- USB_OTG_CoreReset(pdev);
-
- if(pdev->cfg.dma_enable == 1)
- {
-
- ahbcfg.b.hburstlen = 5; /* 64 x 32-bits*/
- ahbcfg.b.dmaenable = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GAHBCFG, ahbcfg.d32);
-
- }
- }
- else /* FS interface (embedded Phy or I2C Phy) */
- {
-
- usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG);;
- usbcfg.b.physel = 1; /* FS Interface */
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GUSBCFG, usbcfg.d32);
- /* Reset after a PHY select and set Host mode */
- USB_OTG_CoreReset(pdev);
- /* Enable the I2C interface and deactivate the power down*/
- gccfg.d32 = 0;
- gccfg.b.pwdn = 1;
-
- if(pdev->cfg.phy_itface == USB_OTG_I2C_PHY)
- {
- gccfg.b.i2cifen = 1;
- }
- gccfg.b.vbussensingA = 1 ;
- gccfg.b.vbussensingB = 1 ;
-#ifndef VBUS_SENSING_ENABLED
- gccfg.b.disablevbussensing = 1;
-#endif
-
- if(pdev->cfg.Sof_output)
- {
- gccfg.b.sofouten = 1;
- }
-
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GCCFG, gccfg.d32);
- USB_OTG_BSP_mDelay(20);
- /* Program GUSBCFG.OtgUtmifsSel to I2C*/
- usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG);
-
- if(pdev->cfg.phy_itface == USB_OTG_I2C_PHY)
- {
- usbcfg.b.otgutmifssel = 1;
- }
-
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GUSBCFG, usbcfg.d32);
-
- if(pdev->cfg.phy_itface == USB_OTG_I2C_PHY)
- {
- /*Program GI2CCTL.I2CEn*/
- i2cctl.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GI2CCTL);
- i2cctl.b.i2cdevaddr = 1;
- i2cctl.b.i2cen = 0;
- i2cctl.b.dat_se0 = 1;
- i2cctl.b.addr = 0x2D;
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GI2CCTL, i2cctl.d32);
-
- USB_OTG_BSP_mDelay(200);
-
- i2cctl.b.i2cen = 1;
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GI2CCTL, i2cctl.d32);
- USB_OTG_BSP_mDelay(200);
- }
- }
- /* case the HS core is working in FS mode */
- if(pdev->cfg.dma_enable == 1)
- {
-
- ahbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GAHBCFG);
- ahbcfg.b.hburstlen = 5; /* 64 x 32-bits*/
- ahbcfg.b.dmaenable = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GAHBCFG, ahbcfg.d32);
-
- }
- /* initialize OTG features */
-#ifdef USE_OTG_MODE
- usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG);
- usbcfg.b.hnpcap = 1;
- usbcfg.b.srpcap = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GUSBCFG, usbcfg.d32);
- USB_OTG_EnableCommonInt(pdev);
-#endif
- return status;
-}
-/**
-* @brief USB_OTG_EnableGlobalInt
-* Enables the controller's Global Int in the AHB Config reg
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EnableGlobalInt(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_GAHBCFG_TypeDef ahbcfg;
-
- ahbcfg.d32 = 0;
- ahbcfg.b.glblintrmsk = 1; /* Enable interrupts */
- USB_OTG_MODIFY_REG32(&pdev->regs.GREGS->GAHBCFG, 0, ahbcfg.d32);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_DisableGlobalInt
-* Enables the controller's Global Int in the AHB Config reg
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_DisableGlobalInt(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_GAHBCFG_TypeDef ahbcfg;
- ahbcfg.d32 = 0;
- ahbcfg.b.glblintrmsk = 1; /* Enable interrupts */
- USB_OTG_MODIFY_REG32(&pdev->regs.GREGS->GAHBCFG, ahbcfg.d32, 0);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_FlushTxFifo : Flush a Tx FIFO
-* @param pdev : Selected device
-* @param num : FO num
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_FlushTxFifo (USB_OTG_CORE_HANDLE *pdev , uint32_t num )
-{
- USB_OTG_STS status = USB_OTG_OK;
- __IO USB_OTG_GRSTCTL_TypeDef greset;
-
- uint32_t count = 0;
- greset.d32 = 0;
- greset.b.txfflsh = 1;
- greset.b.txfnum = num;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GRSTCTL, greset.d32 );
- do
- {
- greset.d32 = USB_OTG_READ_REG32( &pdev->regs.GREGS->GRSTCTL);
- if (++count > 200000)
- {
- break;
- }
- }
- while (greset.b.txfflsh == 1);
- /* Wait for 3 PHY Clocks*/
- USB_OTG_BSP_uDelay(3);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_FlushRxFifo : Flush a Rx FIFO
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_FlushRxFifo( USB_OTG_CORE_HANDLE *pdev )
-{
- USB_OTG_STS status = USB_OTG_OK;
- __IO USB_OTG_GRSTCTL_TypeDef greset;
- uint32_t count = 0;
-
- greset.d32 = 0;
- greset.b.rxfflsh = 1;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GRSTCTL, greset.d32 );
- do
- {
- greset.d32 = USB_OTG_READ_REG32( &pdev->regs.GREGS->GRSTCTL);
- if (++count > 200000)
- {
- break;
- }
- }
- while (greset.b.rxfflsh == 1);
- /* Wait for 3 PHY Clocks*/
- USB_OTG_BSP_uDelay(3);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_SetCurrentMode : Set ID line
-* @param pdev : Selected device
-* @param mode : (Host/device)
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_SetCurrentMode(USB_OTG_CORE_HANDLE *pdev , uint8_t mode)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_GUSBCFG_TypeDef usbcfg;
-
- usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG);
-
- usbcfg.b.force_host = 0;
- usbcfg.b.force_dev = 0;
-
- if ( mode == HOST_MODE)
- {
- usbcfg.b.force_host = 1;
- }
- else if ( mode == DEVICE_MODE)
- {
- usbcfg.b.force_dev = 1;
- }
-
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GUSBCFG, usbcfg.d32);
- USB_OTG_BSP_mDelay(50);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_GetMode : Get current mode
-* @param pdev : Selected device
-* @retval current mode
-*/
-uint32_t USB_OTG_GetMode(USB_OTG_CORE_HANDLE *pdev)
-{
- return (USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTSTS ) & 0x1);
-}
-
-
-/**
-* @brief USB_OTG_IsDeviceMode : Check if it is device mode
-* @param pdev : Selected device
-* @retval num_in_ep
-*/
-uint8_t USB_OTG_IsDeviceMode(USB_OTG_CORE_HANDLE *pdev)
-{
- return (USB_OTG_GetMode(pdev) != HOST_MODE);
-}
-
-
-/**
-* @brief USB_OTG_IsHostMode : Check if it is host mode
-* @param pdev : Selected device
-* @retval num_in_ep
-*/
-uint8_t USB_OTG_IsHostMode(USB_OTG_CORE_HANDLE *pdev)
-{
- return (USB_OTG_GetMode(pdev) == HOST_MODE);
-}
-
-
-/**
-* @brief USB_OTG_ReadCoreItr : returns the Core Interrupt register
-* @param pdev : Selected device
-* @retval Status
-*/
-uint32_t USB_OTG_ReadCoreItr(USB_OTG_CORE_HANDLE *pdev)
-{
- uint32_t v = 0;
- v = USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTSTS);
- v &= USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTMSK);
- return v;
-}
-
-
-/**
-* @brief USB_OTG_ReadOtgItr : returns the USB_OTG Interrupt register
-* @param pdev : Selected device
-* @retval Status
-*/
-uint32_t USB_OTG_ReadOtgItr (USB_OTG_CORE_HANDLE *pdev)
-{
- return (USB_OTG_READ_REG32 (&pdev->regs.GREGS->GOTGINT));
-}
-
-#ifdef USE_HOST_MODE
-/**
-* @brief USB_OTG_CoreInitHost : Initializes USB_OTG controller for host mode
-* @param pdev : Selected device
-* @retval status
-*/
-USB_OTG_STS USB_OTG_CoreInitHost(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_FSIZ_TypeDef nptxfifosize;
- USB_OTG_FSIZ_TypeDef ptxfifosize;
- USB_OTG_HCFG_TypeDef hcfg;
-
-#ifdef USE_OTG_MODE
- USB_OTG_OTGCTL_TypeDef gotgctl;
-#endif
-
- uint32_t i = 0;
-
- nptxfifosize.d32 = 0;
- ptxfifosize.d32 = 0;
-#ifdef USE_OTG_MODE
- gotgctl.d32 = 0;
-#endif
- hcfg.d32 = 0;
-
-
- /* configure charge pump IO */
- USB_OTG_BSP_ConfigVBUS(pdev);
-
- /* Restart the Phy Clock */
- USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, 0);
-
- /* Initialize Host Configuration Register */
- USB_OTG_InitFSLSPClkSel(pdev , HCFG_48_MHZ); /* in init phase */
-
- hcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HCFG);
- hcfg.b.fslssupp = 0;
- USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HCFG, hcfg.d32);
-
- /* Configure data FIFO sizes */
- /* Rx FIFO */
-#ifdef USB_OTG_FS_CORE
- if(pdev->cfg.coreID == USB_OTG_FS_CORE_ID)
- {
- /* set Rx FIFO size */
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_FS_SIZE);
- nptxfifosize.b.startaddr = RX_FIFO_FS_SIZE;
- nptxfifosize.b.depth = TXH_NP_FS_FIFOSIZ;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->DIEPTXF0_HNPTXFSIZ, nptxfifosize.d32);
-
- ptxfifosize.b.startaddr = RX_FIFO_FS_SIZE + TXH_NP_FS_FIFOSIZ;
- ptxfifosize.b.depth = TXH_P_FS_FIFOSIZ;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->HPTXFSIZ, ptxfifosize.d32);
- }
-#endif
-#ifdef USB_OTG_HS_CORE
- if (pdev->cfg.coreID == USB_OTG_HS_CORE_ID)
- {
- /* set Rx FIFO size */
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_HS_SIZE);
- nptxfifosize.b.startaddr = RX_FIFO_HS_SIZE;
- nptxfifosize.b.depth = TXH_NP_HS_FIFOSIZ;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->DIEPTXF0_HNPTXFSIZ, nptxfifosize.d32);
-
- ptxfifosize.b.startaddr = RX_FIFO_HS_SIZE + TXH_NP_HS_FIFOSIZ;
- ptxfifosize.b.depth = TXH_P_HS_FIFOSIZ;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->HPTXFSIZ, ptxfifosize.d32);
- }
-#endif
-
-#ifdef USE_OTG_MODE
- /* Clear Host Set HNP Enable in the USB_OTG Control Register */
- gotgctl.b.hstsethnpen = 1;
- USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GOTGCTL, gotgctl.d32, 0);
-#endif
-
- /* Make sure the FIFOs are flushed. */
- USB_OTG_FlushTxFifo(pdev, 0x10 ); /* all Tx FIFOs */
- USB_OTG_FlushRxFifo(pdev);
-
-
- /* Clear all pending HC Interrupts */
- for (i = 0; i < pdev->cfg.host_channels; i++)
- {
- USB_OTG_WRITE_REG32( &pdev->regs.HC_REGS[i]->HCINT, 0xFFFFFFFF );
- USB_OTG_WRITE_REG32( &pdev->regs.HC_REGS[i]->HCGINTMSK, 0 );
- }
-#ifndef USE_OTG_MODE
- USB_OTG_DriveVbus(pdev, 1);
-#endif
-
- USB_OTG_EnableHostInt(pdev);
- return status;
-}
-
-/**
-* @brief USB_OTG_IsEvenFrame
-* This function returns the frame number for sof packet
-* @param pdev : Selected device
-* @retval Frame number
-*/
-uint8_t USB_OTG_IsEvenFrame (USB_OTG_CORE_HANDLE *pdev)
-{
- return !(USB_OTG_READ_REG32(&pdev->regs.HREGS->HFNUM) & 0x1);
-}
-
-/**
-* @brief USB_OTG_DriveVbus : set/reset vbus
-* @param pdev : Selected device
-* @param state : VBUS state
-* @retval None
-*/
-void USB_OTG_DriveVbus (USB_OTG_CORE_HANDLE *pdev, uint8_t state)
-{
- USB_OTG_HPRT0_TypeDef hprt0;
-
- hprt0.d32 = 0;
-
- /* enable disable the external charge pump */
- USB_OTG_BSP_DriveVBUS(pdev, state);
-
- /* Turn on the Host port power. */
- hprt0.d32 = USB_OTG_ReadHPRT0(pdev);
- if ((hprt0.b.prtpwr == 0 ) && (state == 1 ))
- {
- hprt0.b.prtpwr = 1;
- USB_OTG_WRITE_REG32(pdev->regs.HPRT0, hprt0.d32);
- }
- if ((hprt0.b.prtpwr == 1 ) && (state == 0 ))
- {
- hprt0.b.prtpwr = 0;
- USB_OTG_WRITE_REG32(pdev->regs.HPRT0, hprt0.d32);
- }
-
- USB_OTG_BSP_mDelay(200);
-}
-/**
-* @brief USB_OTG_EnableHostInt: Enables the Host mode interrupts
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EnableHostInt(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_GINTMSK_TypeDef intmsk;
- intmsk.d32 = 0;
- /* Disable all interrupts. */
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTMSK, 0);
-
- /* Clear any pending interrupts. */
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, 0xFFFFFFFF);
-
- /* Enable the common interrupts */
- USB_OTG_EnableCommonInt(pdev);
-
- if (pdev->cfg.dma_enable == 0)
- {
- intmsk.b.rxstsqlvl = 1;
- }
- intmsk.b.portintr = 1;
- intmsk.b.hcintr = 1;
- intmsk.b.disconnect = 1;
- intmsk.b.sofintr = 1;
- intmsk.b.incomplisoout = 1;
- USB_OTG_MODIFY_REG32(&pdev->regs.GREGS->GINTMSK, intmsk.d32, intmsk.d32);
- return status;
-}
-
-/**
-* @brief USB_OTG_InitFSLSPClkSel : Initializes the FSLSPClkSel field of the
-* HCFG register on the PHY type
-* @param pdev : Selected device
-* @param freq : clock frequency
-* @retval None
-*/
-void USB_OTG_InitFSLSPClkSel(USB_OTG_CORE_HANDLE *pdev , uint8_t freq)
-{
- USB_OTG_HCFG_TypeDef hcfg;
-
- hcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HCFG);
- hcfg.b.fslspclksel = freq;
- USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HCFG, hcfg.d32);
-}
-
-
-/**
-* @brief USB_OTG_ReadHPRT0 : Reads HPRT0 to modify later
-* @param pdev : Selected device
-* @retval HPRT0 value
-*/
-uint32_t USB_OTG_ReadHPRT0(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_HPRT0_TypeDef hprt0;
-
- hprt0.d32 = USB_OTG_READ_REG32(pdev->regs.HPRT0);
- hprt0.b.prtena = 0;
- hprt0.b.prtconndet = 0;
- hprt0.b.prtenchng = 0;
- hprt0.b.prtovrcurrchng = 0;
- return hprt0.d32;
-}
-
-
-/**
-* @brief USB_OTG_ReadHostAllChannels_intr : Register PCD Callbacks
-* @param pdev : Selected device
-* @retval Status
-*/
-uint32_t USB_OTG_ReadHostAllChannels_intr (USB_OTG_CORE_HANDLE *pdev)
-{
- return (USB_OTG_READ_REG32 (&pdev->regs.HREGS->HAINT));
-}
-
-
-/**
-* @brief USB_OTG_ResetPort : Reset Host Port
-* @param pdev : Selected device
-* @retval status
-* @note : (1)The application must wait at least 10 ms (+ 10 ms security)
-* before clearing the reset bit.
-*/
-uint32_t USB_OTG_ResetPort(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_HPRT0_TypeDef hprt0;
-
- hprt0.d32 = USB_OTG_ReadHPRT0(pdev);
- hprt0.b.prtrst = 1;
- USB_OTG_WRITE_REG32(pdev->regs.HPRT0, hprt0.d32);
- USB_OTG_BSP_mDelay (10); /* See Note #1 */
- hprt0.b.prtrst = 0;
- USB_OTG_WRITE_REG32(pdev->regs.HPRT0, hprt0.d32);
- USB_OTG_BSP_mDelay (20);
- return 1;
-}
-
-
-/**
-* @brief USB_OTG_HC_Init : Prepares a host channel for transferring packets
-* @param pdev : Selected device
-* @param hc_num : channel number
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_HC_Init(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num)
-{
- USB_OTG_STS status = USB_OTG_OK;
- uint32_t intr_enable = 0;
- USB_OTG_HCGINTMSK_TypeDef hcintmsk;
- USB_OTG_GINTMSK_TypeDef gintmsk;
- USB_OTG_HCCHAR_TypeDef hcchar;
- USB_OTG_HCINTn_TypeDef hcint;
-
-
- gintmsk.d32 = 0;
- hcintmsk.d32 = 0;
- hcchar.d32 = 0;
-
- /* Clear old interrupt conditions for this host channel. */
- hcint.d32 = 0xFFFFFFFF;
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCINT, hcint.d32);
-
- /* Enable channel interrupts required for this transfer. */
- hcintmsk.d32 = 0;
-
- if (pdev->cfg.dma_enable == 1)
- {
- hcintmsk.b.ahberr = 1;
- }
-
- switch (pdev->host.hc[hc_num].ep_type)
- {
- case EP_TYPE_CTRL:
- case EP_TYPE_BULK:
- hcintmsk.b.xfercompl = 1;
- hcintmsk.b.stall = 1;
- hcintmsk.b.xacterr = 1;
- hcintmsk.b.datatglerr = 1;
- hcintmsk.b.nak = 1;
- if (pdev->host.hc[hc_num].ep_is_in)
- {
- hcintmsk.b.bblerr = 1;
- }
- else
- {
- hcintmsk.b.nyet = 1;
- if (pdev->host.hc[hc_num].do_ping)
- {
- hcintmsk.b.ack = 1;
- }
- }
- break;
- case EP_TYPE_INTR:
- hcintmsk.b.xfercompl = 1;
- hcintmsk.b.nak = 1;
- hcintmsk.b.stall = 1;
- hcintmsk.b.xacterr = 1;
- hcintmsk.b.datatglerr = 1;
- hcintmsk.b.frmovrun = 1;
-
- if (pdev->host.hc[hc_num].ep_is_in)
- {
- hcintmsk.b.bblerr = 1;
- }
-
- break;
- case EP_TYPE_ISOC:
- hcintmsk.b.xfercompl = 1;
- hcintmsk.b.frmovrun = 1;
- hcintmsk.b.ack = 1;
-
- if (pdev->host.hc[hc_num].ep_is_in)
- {
- hcintmsk.b.xacterr = 1;
- hcintmsk.b.bblerr = 1;
- }
- break;
- }
-
-
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, hcintmsk.d32);
-
-
- /* Enable the top level host channel interrupt. */
- intr_enable = (1 << hc_num);
- USB_OTG_MODIFY_REG32(&pdev->regs.HREGS->HAINTMSK, 0, intr_enable);
-
- /* Make sure host channel interrupts are enabled. */
- gintmsk.b.hcintr = 1;
- USB_OTG_MODIFY_REG32(&pdev->regs.GREGS->GINTMSK, 0, gintmsk.d32);
-
- /* Program the HCCHAR register */
- hcchar.d32 = 0;
- hcchar.b.devaddr = pdev->host.hc[hc_num].dev_addr;
- hcchar.b.epnum = pdev->host.hc[hc_num].ep_num;
- hcchar.b.epdir = pdev->host.hc[hc_num].ep_is_in;
- hcchar.b.lspddev = (pdev->host.hc[hc_num].speed == HPRT0_PRTSPD_LOW_SPEED);
- hcchar.b.eptype = pdev->host.hc[hc_num].ep_type;
- hcchar.b.mps = pdev->host.hc[hc_num].max_packet;
- if (pdev->host.hc[hc_num].ep_type == HCCHAR_INTR)
- {
- hcchar.b.oddfrm = 1;
- }
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_HC_StartXfer : Start transfer
-* @param pdev : Selected device
-* @param hc_num : channel number
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_HC_StartXfer(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_HCCHAR_TypeDef hcchar;
- USB_OTG_HCTSIZn_TypeDef hctsiz;
- USB_OTG_HNPTXSTS_TypeDef hnptxsts;
- USB_OTG_HPTXSTS_TypeDef hptxsts;
- USB_OTG_GINTMSK_TypeDef intmsk;
- uint16_t len_words = 0;
-
- uint16_t num_packets;
- uint16_t max_hc_pkt_count;
-
- max_hc_pkt_count = 256;
- hctsiz.d32 = 0;
- hcchar.d32 = 0;
- intmsk.d32 = 0;
-
- /* Compute the expected number of packets associated to the transfer */
- if (pdev->host.hc[hc_num].xfer_len > 0)
- {
- num_packets = (pdev->host.hc[hc_num].xfer_len + \
- pdev->host.hc[hc_num].max_packet - 1) / pdev->host.hc[hc_num].max_packet;
-
- if (num_packets > max_hc_pkt_count)
- {
- num_packets = max_hc_pkt_count;
- pdev->host.hc[hc_num].xfer_len = num_packets * \
- pdev->host.hc[hc_num].max_packet;
- }
- }
- else
- {
- num_packets = 1;
- }
- if (pdev->host.hc[hc_num].ep_is_in)
- {
- pdev->host.hc[hc_num].xfer_len = num_packets * \
- pdev->host.hc[hc_num].max_packet;
- }
- /* Initialize the HCTSIZn register */
- hctsiz.b.xfersize = pdev->host.hc[hc_num].xfer_len;
- hctsiz.b.pktcnt = num_packets;
- hctsiz.b.pid = pdev->host.hc[hc_num].data_pid;
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCTSIZ, hctsiz.d32);
-
- if (pdev->cfg.dma_enable == 1)
- {
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCDMA, (unsigned int)pdev->host.hc[hc_num].xfer_buff);
- }
-
-
- hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR);
- hcchar.b.oddfrm = USB_OTG_IsEvenFrame(pdev);
-
- /* Set host channel enable */
- hcchar.b.chen = 1;
- hcchar.b.chdis = 0;
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32);
-
- if (pdev->cfg.dma_enable == 0) /* Slave mode */
- {
- if((pdev->host.hc[hc_num].ep_is_in == 0) &&
- (pdev->host.hc[hc_num].xfer_len > 0))
- {
- switch(pdev->host.hc[hc_num].ep_type)
- {
- /* Non periodic transfer */
- case EP_TYPE_CTRL:
- case EP_TYPE_BULK:
-
- hnptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->HNPTXSTS);
- len_words = (pdev->host.hc[hc_num].xfer_len + 3) / 4;
-
- /* check if there is enough space in FIFO space */
- if(len_words > hnptxsts.b.nptxfspcavail)
- {
- /* need to process data in nptxfempty interrupt */
- intmsk.b.nptxfempty = 1;
- USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, 0, intmsk.d32);
- }
-
- break;
- /* Periodic transfer */
- case EP_TYPE_INTR:
- case EP_TYPE_ISOC:
- hptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HPTXSTS);
- len_words = (pdev->host.hc[hc_num].xfer_len + 3) / 4;
- /* check if there is enough space in FIFO space */
- if(len_words > hptxsts.b.ptxfspcavail) /* split the transfer */
- {
- /* need to process data in ptxfempty interrupt */
- intmsk.b.ptxfempty = 1;
- USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, 0, intmsk.d32);
- }
- break;
-
- default:
- break;
- }
-
- /* Write packet into the Tx FIFO. */
- USB_OTG_WritePacket(pdev,
- pdev->host.hc[hc_num].xfer_buff ,
- hc_num, pdev->host.hc[hc_num].xfer_len);
- }
- }
- return status;
-}
-
-
-/**
-* @brief USB_OTG_HC_Halt : Halt channel
-* @param pdev : Selected device
-* @param hc_num : channel number
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_HC_Halt(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_HNPTXSTS_TypeDef nptxsts;
- USB_OTG_HPTXSTS_TypeDef hptxsts;
- USB_OTG_HCCHAR_TypeDef hcchar;
-
- nptxsts.d32 = 0;
- hptxsts.d32 = 0;
- hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR);
- hcchar.b.chen = 1;
- hcchar.b.chdis = 1;
-
- /* Check for space in the request queue to issue the halt. */
- if (hcchar.b.eptype == HCCHAR_CTRL || hcchar.b.eptype == HCCHAR_BULK)
- {
- nptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->HNPTXSTS);
- if (nptxsts.b.nptxqspcavail == 0)
- {
- hcchar.b.chen = 0;
- }
- }
- else
- {
- hptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HPTXSTS);
- if (hptxsts.b.ptxqspcavail == 0)
- {
- hcchar.b.chen = 0;
- }
- }
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32);
- return status;
-}
-
-/**
-* @brief Issue a ping token
-* @param None
-* @retval : None
-*/
-USB_OTG_STS USB_OTG_HC_DoPing(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_HCCHAR_TypeDef hcchar;
- USB_OTG_HCTSIZn_TypeDef hctsiz;
-
- hctsiz.d32 = 0;
- hctsiz.b.dopng = 1;
- hctsiz.b.pktcnt = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCTSIZ, hctsiz.d32);
-
- hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR);
- hcchar.b.chen = 1;
- hcchar.b.chdis = 0;
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32);
- return status;
-}
-
-/**
-* @brief Stop the device and clean up fifo's
-* @param None
-* @retval : None
-*/
-void USB_OTG_StopHost(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_HCCHAR_TypeDef hcchar;
- uint32_t i;
-
- USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HAINTMSK , 0);
- USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HAINT, 0xFFFFFFFF);
- /* Flush out any leftover queued requests. */
-
- for (i = 0; i < pdev->cfg.host_channels; i++)
- {
- hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[i]->HCCHAR);
- hcchar.b.chen = 0;
- hcchar.b.chdis = 1;
- hcchar.b.epdir = 0;
- USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[i]->HCCHAR, hcchar.d32);
- }
-
- /* Flush the FIFO */
- USB_OTG_FlushRxFifo(pdev);
- USB_OTG_FlushTxFifo(pdev , 0x10 );
-}
-#endif
-#ifdef USE_DEVICE_MODE
-/* PCD Core Layer */
-
-/**
-* @brief USB_OTG_InitDevSpeed :Initializes the DevSpd field of DCFG register
-* depending the PHY type and the enumeration speed of the device.
-* @param pdev : Selected device
-* @retval : None
-*/
-void USB_OTG_InitDevSpeed(USB_OTG_CORE_HANDLE *pdev , uint8_t speed)
-{
- USB_OTG_DCFG_TypeDef dcfg;
-
- dcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DCFG);
- dcfg.b.devspd = speed;
- USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DCFG, dcfg.d32);
-}
-
-
-/**
-* @brief USB_OTG_CoreInitDev : Initializes the USB_OTG controller registers
-* for device mode
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_CoreInitDev (USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_DEPCTL_TypeDef depctl;
- uint32_t i;
- USB_OTG_DCFG_TypeDef dcfg;
- USB_OTG_FSIZ_TypeDef nptxfifosize;
- USB_OTG_FSIZ_TypeDef txfifosize;
- USB_OTG_DIEPMSK_TypeDef msk;
- USB_OTG_DTHRCTL_TypeDef dthrctl;
-
- depctl.d32 = 0;
- dcfg.d32 = 0;
- nptxfifosize.d32 = 0;
- txfifosize.d32 = 0;
- msk.d32 = 0;
-
- /* Restart the Phy Clock */
- USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, 0);
- /* Device configuration register */
- dcfg.d32 = USB_OTG_READ_REG32( &pdev->regs.DREGS->DCFG);
- dcfg.b.perfrint = DCFG_FRAME_INTERVAL_80;
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DCFG, dcfg.d32 );
-
-#ifdef USB_OTG_FS_CORE
- if(pdev->cfg.coreID == USB_OTG_FS_CORE_ID )
- {
-
- /* Set Full speed phy */
- USB_OTG_InitDevSpeed (pdev , USB_OTG_SPEED_PARAM_FULL);
-
- /* set Rx FIFO size */
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_FS_SIZE);
-
- /* EP0 TX*/
- nptxfifosize.b.depth = TX0_FIFO_FS_SIZE;
- nptxfifosize.b.startaddr = RX_FIFO_FS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF0_HNPTXFSIZ, nptxfifosize.d32 );
-
-
- /* EP1 TX*/
- txfifosize.b.startaddr = nptxfifosize.b.startaddr + nptxfifosize.b.depth;
- txfifosize.b.depth = TX1_FIFO_FS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[0], txfifosize.d32 );
-
-
- /* EP2 TX*/
- txfifosize.b.startaddr += txfifosize.b.depth;
- txfifosize.b.depth = TX2_FIFO_FS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[1], txfifosize.d32 );
-
-
- /* EP3 TX*/
- txfifosize.b.startaddr += txfifosize.b.depth;
- txfifosize.b.depth = TX3_FIFO_FS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[2], txfifosize.d32 );
- }
-#endif
-#ifdef USB_OTG_HS_CORE
- if(pdev->cfg.coreID == USB_OTG_HS_CORE_ID )
- {
-
- /* Set High speed phy */
-
- if(pdev->cfg.phy_itface == USB_OTG_ULPI_PHY)
- {
- USB_OTG_InitDevSpeed (pdev , USB_OTG_SPEED_PARAM_HIGH);
- }
- else /* set High speed phy in Full speed mode */
- {
- USB_OTG_InitDevSpeed (pdev , USB_OTG_SPEED_PARAM_HIGH_IN_FULL);
- }
-
- /* set Rx FIFO size */
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_HS_SIZE);
-
- /* EP0 TX*/
- nptxfifosize.b.depth = TX0_FIFO_HS_SIZE;
- nptxfifosize.b.startaddr = RX_FIFO_HS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF0_HNPTXFSIZ, nptxfifosize.d32 );
-
-
- /* EP1 TX*/
- txfifosize.b.startaddr = nptxfifosize.b.startaddr + nptxfifosize.b.depth;
- txfifosize.b.depth = TX1_FIFO_HS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[0], txfifosize.d32 );
-
-
- /* EP2 TX*/
- txfifosize.b.startaddr += txfifosize.b.depth;
- txfifosize.b.depth = TX2_FIFO_HS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[1], txfifosize.d32 );
-
-
- /* EP3 TX*/
- txfifosize.b.startaddr += txfifosize.b.depth;
- txfifosize.b.depth = TX3_FIFO_HS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[2], txfifosize.d32 );
-
- /* EP4 TX*/
- txfifosize.b.startaddr += txfifosize.b.depth;
- txfifosize.b.depth = TX4_FIFO_HS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[3], txfifosize.d32 );
-
-
- /* EP5 TX*/
- txfifosize.b.startaddr += txfifosize.b.depth;
- txfifosize.b.depth = TX5_FIFO_HS_SIZE;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[4], txfifosize.d32 );
- }
-#endif
- /* Flush the FIFOs */
- USB_OTG_FlushTxFifo(pdev , 0x10); /* all Tx FIFOs */
- USB_OTG_FlushRxFifo(pdev);
- /* Clear all pending Device Interrupts */
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DIEPMSK, 0 );
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DOEPMSK, 0 );
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINT, 0xFFFFFFFF );
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINTMSK, 0 );
-
- for (i = 0; i < pdev->cfg.dev_endpoints; i++)
- {
- depctl.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[i]->DIEPCTL);
- if (depctl.b.epena)
- {
- depctl.d32 = 0;
- depctl.b.epdis = 1;
- depctl.b.snak = 1;
- }
- else
- {
- depctl.d32 = 0;
- }
- USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPCTL, depctl.d32);
- USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPTSIZ, 0);
- USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPINT, 0xFF);
- }
- for (i = 0; i < pdev->cfg.dev_endpoints; i++)
- {
- USB_OTG_DEPCTL_TypeDef depctl;
- depctl.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[i]->DOEPCTL);
- if (depctl.b.epena)
- {
- depctl.d32 = 0;
- depctl.b.epdis = 1;
- depctl.b.snak = 1;
- }
- else
- {
- depctl.d32 = 0;
- }
- USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPCTL, depctl.d32);
- USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPTSIZ, 0);
- USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPINT, 0xFF);
- }
- msk.d32 = 0;
- msk.b.txfifoundrn = 1;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPMSK, msk.d32, msk.d32);
-
- if (pdev->cfg.dma_enable == 1)
- {
- dthrctl.d32 = 0;
- dthrctl.b.non_iso_thr_en = 1;
- dthrctl.b.iso_thr_en = 1;
- dthrctl.b.tx_thr_len = 64;
- dthrctl.b.rx_thr_en = 1;
- dthrctl.b.rx_thr_len = 64;
- USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DTHRCTL, dthrctl.d32);
- }
- USB_OTG_EnableDevInt(pdev);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_EnableDevInt : Enables the Device mode interrupts
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EnableDevInt(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_GINTMSK_TypeDef intmsk;
-
- intmsk.d32 = 0;
-
- /* Disable all interrupts. */
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTMSK, 0);
- /* Clear any pending interrupts */
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTSTS, 0xFFFFFFFF);
- /* Enable the common interrupts */
- USB_OTG_EnableCommonInt(pdev);
-
- if (pdev->cfg.dma_enable == 0)
- {
- intmsk.b.rxstsqlvl = 1;
- }
-
- /* Enable interrupts matching to the Device mode ONLY */
- intmsk.b.usbsuspend = 1;
- intmsk.b.usbreset = 1;
- intmsk.b.enumdone = 1;
- intmsk.b.inepintr = 1;
- intmsk.b.outepintr = 1;
- intmsk.b.sofintr = 1;
-
- intmsk.b.incomplisoin = 1;
- intmsk.b.incomplisoout = 1;
-#ifdef VBUS_SENSING_ENABLED
- intmsk.b.sessreqintr = 1;
- intmsk.b.otgintr = 1;
-#endif
- USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, intmsk.d32, intmsk.d32);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_GetDeviceSpeed
-* Get the device speed from the device status register
-* @param None
-* @retval status
-*/
-enum USB_OTG_SPEED USB_OTG_GetDeviceSpeed (USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_DSTS_TypeDef dsts;
- enum USB_OTG_SPEED speed = USB_SPEED_UNKNOWN;
-
-
- dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS);
-
- 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;
-}
-/**
-* @brief enables EP0 OUT to receive SETUP packets and configures EP0
-* for transmitting packets
-* @param None
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EP0Activate(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_DSTS_TypeDef dsts;
- USB_OTG_DEPCTL_TypeDef diepctl;
- USB_OTG_DCTL_TypeDef dctl;
-
- dctl.d32 = 0;
- /* Read the Device Status and Endpoint 0 Control registers */
- dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS);
- diepctl.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[0]->DIEPCTL);
- /* 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;
- }
- USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[0]->DIEPCTL, diepctl.d32);
- dctl.b.cgnpinnak = 1;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, dctl.d32, dctl.d32);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_EPActivate : Activates an EP
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EPActivate(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_DEPCTL_TypeDef depctl;
- USB_OTG_DAINT_TypeDef daintmsk;
- __IO uint32_t *addr;
-
-
- depctl.d32 = 0;
- daintmsk.d32 = 0;
- /* Read DEPCTLn register */
- if (ep->is_in == 1)
- {
- addr = &pdev->regs.INEP_REGS[ep->num]->DIEPCTL;
- daintmsk.ep.in = 1 << ep->num;
- }
- else
- {
- addr = &pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL;
- daintmsk.ep.out = 1 << ep->num;
- }
- /* If the EP is already active don't change the EP Control
- * register. */
- depctl.d32 = USB_OTG_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;
- USB_OTG_WRITE_REG32(addr, depctl.d32);
- }
- /* Enable the Interrupt for this EP */
-#ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED
- if((ep->num == 1)&&(pdev->cfg.coreID == USB_OTG_HS_CORE_ID))
- {
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DEACHMSK, 0, daintmsk.d32);
- }
- else
-#endif
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DAINTMSK, 0, daintmsk.d32);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_EPDeactivate : Deactivates an EP
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EPDeactivate(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_DEPCTL_TypeDef depctl;
- USB_OTG_DAINT_TypeDef daintmsk;
- __IO uint32_t *addr;
-
- depctl.d32 = 0;
- daintmsk.d32 = 0;
- /* Read DEPCTLn register */
- if (ep->is_in == 1)
- {
- addr = &pdev->regs.INEP_REGS[ep->num]->DIEPCTL;
- daintmsk.ep.in = 1 << ep->num;
- }
- else
- {
- addr = &pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL;
- daintmsk.ep.out = 1 << ep->num;
- }
- depctl.b.usbactep = 0;
- USB_OTG_WRITE_REG32(addr, depctl.d32);
- /* Disable the Interrupt for this EP */
-
-#ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED
- if((ep->num == 1)&&(pdev->cfg.coreID == USB_OTG_HS_CORE_ID))
- {
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DEACHMSK, daintmsk.d32, 0);
- }
- else
-#endif
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DAINTMSK, daintmsk.d32, 0);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_EPStartXfer : Handle the setup for data xfer for an EP and
-* starts the xfer
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EPStartXfer(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_DEPCTL_TypeDef depctl;
- USB_OTG_DEPXFRSIZ_TypeDef deptsiz;
- USB_OTG_DSTS_TypeDef dsts;
- uint32_t fifoemptymsk = 0;
-
- depctl.d32 = 0;
- deptsiz.d32 = 0;
- /* IN endpoint */
- if (ep->is_in == 1)
- {
- depctl.d32 = USB_OTG_READ_REG32(&(pdev->regs.INEP_REGS[ep->num]->DIEPCTL));
- deptsiz.d32 = USB_OTG_READ_REG32(&(pdev->regs.INEP_REGS[ep->num]->DIEPTSIZ));
- /* 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;
-
- if (ep->type == EP_TYPE_ISOC)
- {
- deptsiz.b.mc = 1;
- }
- }
- USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPTSIZ, deptsiz.d32);
-
- if (pdev->cfg.dma_enable == 1)
- {
- USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPDMA, ep->dma_addr);
- }
- else
- {
- if (ep->type != EP_TYPE_ISOC)
- {
- /* Enable the Tx FIFO Empty Interrupt for this EP */
- if (ep->xfer_len > 0)
- {
- fifoemptymsk = 1 << ep->num;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, 0, fifoemptymsk);
- }
- }
- }
-
-
- if (ep->type == EP_TYPE_ISOC)
- {
- dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS);
-
- if (((dsts.b.soffn)&0x1) == 0)
- {
- depctl.b.setd1pid = 1;
- }
- else
- {
- depctl.b.setd0pid = 1;
- }
- }
-
- /* EP enable, IN data in FIFO */
- depctl.b.cnak = 1;
- depctl.b.epena = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPCTL, depctl.d32);
-
- if (ep->type == EP_TYPE_ISOC)
- {
- USB_OTG_WritePacket(pdev, ep->xfer_buff, ep->num, ep->xfer_len);
- }
- }
- else
- {
- /* OUT endpoint */
- depctl.d32 = USB_OTG_READ_REG32(&(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL));
- deptsiz.d32 = USB_OTG_READ_REG32(&(pdev->regs.OUTEP_REGS[ep->num]->DOEPTSIZ));
- /* 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;
- }
- USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPTSIZ, deptsiz.d32);
-
- if (pdev->cfg.dma_enable == 1)
- {
- USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPDMA, ep->dma_addr);
- }
-
- 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;
- USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL, depctl.d32);
- }
- return status;
-}
-
-
-/**
-* @brief USB_OTG_EP0StartXfer : Handle the setup for a data xfer for EP0 and
-* starts the xfer
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EP0StartXfer(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_DEPCTL_TypeDef depctl;
- USB_OTG_DEP0XFRSIZ_TypeDef deptsiz;
- USB_OTG_INEPREGS *in_regs;
- uint32_t fifoemptymsk = 0;
-
- depctl.d32 = 0;
- deptsiz.d32 = 0;
- /* IN endpoint */
- if (ep->is_in == 1)
- {
- in_regs = pdev->regs.INEP_REGS[0];
- depctl.d32 = USB_OTG_READ_REG32(&in_regs->DIEPCTL);
- deptsiz.d32 = USB_OTG_READ_REG32(&in_regs->DIEPTSIZ);
- /* 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;
- }
- USB_OTG_WRITE_REG32(&in_regs->DIEPTSIZ, deptsiz.d32);
-
- if (pdev->cfg.dma_enable == 1)
- {
- USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPDMA, ep->dma_addr);
- }
-
- /* EP enable, IN data in FIFO */
- depctl.b.cnak = 1;
- depctl.b.epena = 1;
- USB_OTG_WRITE_REG32(&in_regs->DIEPCTL, depctl.d32);
-
-
-
- if (pdev->cfg.dma_enable == 0)
- {
- /* Enable the Tx FIFO Empty Interrupt for this EP */
- if (ep->xfer_len > 0)
- {
- {
- fifoemptymsk |= 1 << ep->num;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, 0, fifoemptymsk);
- }
- }
- }
- }
- else
- {
- /* OUT endpoint */
- depctl.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL);
- deptsiz.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPTSIZ);
- /* 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
- {
- ep->xfer_len = ep->maxpacket;
- deptsiz.b.xfersize = ep->maxpacket;
- deptsiz.b.pktcnt = 1;
- }
- USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPTSIZ, deptsiz.d32);
- if (pdev->cfg.dma_enable == 1)
- {
- USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPDMA, ep->dma_addr);
- }
- /* EP enable */
- depctl.b.cnak = 1;
- depctl.b.epena = 1;
- USB_OTG_WRITE_REG32 (&(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL), depctl.d32);
-
- }
- return status;
-}
-
-
-/**
-* @brief USB_OTG_EPSetStall : Set the EP STALL
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EPSetStall(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_DEPCTL_TypeDef depctl;
- __IO uint32_t *depctl_addr;
-
- depctl.d32 = 0;
- if (ep->is_in == 1)
- {
- depctl_addr = &(pdev->regs.INEP_REGS[ep->num]->DIEPCTL);
- depctl.d32 = USB_OTG_READ_REG32(depctl_addr);
- /* set the disable and stall bits */
- if (depctl.b.epena)
- {
- depctl.b.epdis = 1;
- }
- depctl.b.stall = 1;
- USB_OTG_WRITE_REG32(depctl_addr, depctl.d32);
- }
- else
- {
- depctl_addr = &(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL);
- depctl.d32 = USB_OTG_READ_REG32(depctl_addr);
- /* set the stall bit */
- depctl.b.stall = 1;
- USB_OTG_WRITE_REG32(depctl_addr, depctl.d32);
- }
- return status;
-}
-
-
-/**
-* @brief Clear the EP STALL
-* @param pdev : Selected device
-* @retval USB_OTG_STS : status
-*/
-USB_OTG_STS USB_OTG_EPClearStall(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep)
-{
- USB_OTG_STS status = USB_OTG_OK;
- USB_OTG_DEPCTL_TypeDef depctl;
- __IO uint32_t *depctl_addr;
-
- depctl.d32 = 0;
-
- if (ep->is_in == 1)
- {
- depctl_addr = &(pdev->regs.INEP_REGS[ep->num]->DIEPCTL);
- }
- else
- {
- depctl_addr = &(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL);
- }
- depctl.d32 = USB_OTG_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 */
- }
- USB_OTG_WRITE_REG32(depctl_addr, depctl.d32);
- return status;
-}
-
-
-/**
-* @brief USB_OTG_ReadDevAllOutEp_itr : returns OUT endpoint interrupt bits
-* @param pdev : Selected device
-* @retval OUT endpoint interrupt bits
-*/
-uint32_t USB_OTG_ReadDevAllOutEp_itr(USB_OTG_CORE_HANDLE *pdev)
-{
- uint32_t v;
- v = USB_OTG_READ_REG32(&pdev->regs.DREGS->DAINT);
- v &= USB_OTG_READ_REG32(&pdev->regs.DREGS->DAINTMSK);
- return ((v & 0xffff0000) >> 16);
-}
-
-
-/**
-* @brief USB_OTG_ReadDevOutEP_itr : returns Device OUT EP Interrupt register
-* @param pdev : Selected device
-* @param ep : end point number
-* @retval Device OUT EP Interrupt register
-*/
-uint32_t USB_OTG_ReadDevOutEP_itr(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum)
-{
- uint32_t v;
- v = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[epnum]->DOEPINT);
- v &= USB_OTG_READ_REG32(&pdev->regs.DREGS->DOEPMSK);
- return v;
-}
-
-
-/**
-* @brief USB_OTG_ReadDevAllInEPItr : Get int status register
-* @param pdev : Selected device
-* @retval int status register
-*/
-uint32_t USB_OTG_ReadDevAllInEPItr(USB_OTG_CORE_HANDLE *pdev)
-{
- uint32_t v;
- v = USB_OTG_READ_REG32(&pdev->regs.DREGS->DAINT);
- v &= USB_OTG_READ_REG32(&pdev->regs.DREGS->DAINTMSK);
- return (v & 0xffff);
-}
-
-/**
-* @brief configures EPO to receive SETUP packets
-* @param None
-* @retval : None
-*/
-void USB_OTG_EP0_OutStart(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_DEP0XFRSIZ_TypeDef doeptsize0;
- doeptsize0.d32 = 0;
- doeptsize0.b.supcnt = 3;
- doeptsize0.b.pktcnt = 1;
- doeptsize0.b.xfersize = 8 * 3;
- USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[0]->DOEPTSIZ, doeptsize0.d32 );
-
- if (pdev->cfg.dma_enable == 1)
- {
- USB_OTG_DEPCTL_TypeDef doepctl;
- doepctl.d32 = 0;
- USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[0]->DOEPDMA,
- (uint32_t)&pdev->dev.setup_packet);
-
- /* EP enable */
- doepctl.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[0]->DOEPCTL);
- doepctl.b.epena = 1;
- doepctl.d32 = 0x80008000;
- USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[0]->DOEPCTL, doepctl.d32);
- }
-}
-
-/**
-* @brief USB_OTG_RemoteWakeup : active remote wakeup signalling
-* @param None
-* @retval : None
-*/
-void USB_OTG_ActiveRemoteWakeup(USB_OTG_CORE_HANDLE *pdev)
-{
-
- USB_OTG_DCTL_TypeDef dctl;
- USB_OTG_DSTS_TypeDef dsts;
- USB_OTG_PCGCCTL_TypeDef power;
-
- if (pdev->dev.DevRemoteWakeup)
- {
- dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS);
- if(dsts.b.suspsts == 1)
- {
- if(pdev->cfg.low_power)
- {
- /* un-gate USB Core clock */
- power.d32 = USB_OTG_READ_REG32(&pdev->regs.PCGCCTL);
- power.b.gatehclk = 0;
- power.b.stoppclk = 0;
- USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, power.d32);
- }
- /* active Remote wakeup signaling */
- dctl.d32 = 0;
- dctl.b.rmtwkupsig = 1;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, 0, dctl.d32);
- USB_OTG_BSP_mDelay(5);
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, dctl.d32, 0 );
- }
- }
-}
-
-
-/**
-* @brief USB_OTG_UngateClock : active USB Core clock
-* @param None
-* @retval : None
-*/
-void USB_OTG_UngateClock(USB_OTG_CORE_HANDLE *pdev)
-{
- if(pdev->cfg.low_power)
- {
-
- USB_OTG_DSTS_TypeDef dsts;
- USB_OTG_PCGCCTL_TypeDef power;
-
- dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS);
-
- if(dsts.b.suspsts == 1)
- {
- /* un-gate USB Core clock */
- power.d32 = USB_OTG_READ_REG32(&pdev->regs.PCGCCTL);
- power.b.gatehclk = 0;
- power.b.stoppclk = 0;
- USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, power.d32);
-
- }
- }
-}
-
-/**
-* @brief Stop the device and clean up fifo's
-* @param None
-* @retval : None
-*/
-void USB_OTG_StopDevice(USB_OTG_CORE_HANDLE *pdev)
-{
- uint32_t i;
-
- pdev->dev.device_status = 1;
-
- for (i = 0; i < pdev->cfg.dev_endpoints ; i++)
- {
- USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPINT, 0xFF);
- USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPINT, 0xFF);
- }
-
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DIEPMSK, 0 );
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DOEPMSK, 0 );
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINTMSK, 0 );
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINT, 0xFFFFFFFF );
-
- /* Flush the FIFO */
- USB_OTG_FlushRxFifo(pdev);
- USB_OTG_FlushTxFifo(pdev , 0x10 );
-}
-
-/**
-* @brief returns the EP Status
-* @param pdev : Selected device
-* ep : endpoint structure
-* @retval : EP status
-*/
-
-uint32_t USB_OTG_GetEPStatus(USB_OTG_CORE_HANDLE *pdev ,USB_OTG_EP *ep)
-{
- USB_OTG_DEPCTL_TypeDef depctl;
- __IO uint32_t *depctl_addr;
- uint32_t Status = 0;
-
- depctl.d32 = 0;
- if (ep->is_in == 1)
- {
- depctl_addr = &(pdev->regs.INEP_REGS[ep->num]->DIEPCTL);
- depctl.d32 = USB_OTG_READ_REG32(depctl_addr);
-
- if (depctl.b.stall == 1)
- Status = USB_OTG_EP_TX_STALL;
- else if (depctl.b.naksts == 1)
- Status = USB_OTG_EP_TX_NAK;
- else
- Status = USB_OTG_EP_TX_VALID;
-
- }
- else
- {
- depctl_addr = &(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL);
- depctl.d32 = USB_OTG_READ_REG32(depctl_addr);
- if (depctl.b.stall == 1)
- Status = USB_OTG_EP_RX_STALL;
- else if (depctl.b.naksts == 1)
- Status = USB_OTG_EP_RX_NAK;
- else
- Status = USB_OTG_EP_RX_VALID;
- }
-
- /* Return the current status */
- return Status;
-}
-
-/**
-* @brief Set the EP Status
-* @param pdev : Selected device
-* Status : new Status
-* ep : EP structure
-* @retval : None
-*/
-void USB_OTG_SetEPStatus (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep , uint32_t Status)
-{
- USB_OTG_DEPCTL_TypeDef depctl;
- __IO uint32_t *depctl_addr;
-
- depctl.d32 = 0;
-
- /* Process for IN endpoint */
- if (ep->is_in == 1)
- {
- depctl_addr = &(pdev->regs.INEP_REGS[ep->num]->DIEPCTL);
- depctl.d32 = USB_OTG_READ_REG32(depctl_addr);
-
- if (Status == USB_OTG_EP_TX_STALL)
- {
- USB_OTG_EPSetStall(pdev, ep); return;
- }
- else if (Status == USB_OTG_EP_TX_NAK)
- depctl.b.snak = 1;
- else if (Status == USB_OTG_EP_TX_VALID)
- {
- if (depctl.b.stall == 1)
- {
- ep->even_odd_frame = 0;
- USB_OTG_EPClearStall(pdev, ep);
- return;
- }
- depctl.b.cnak = 1;
- depctl.b.usbactep = 1;
- depctl.b.epena = 1;
- }
- else if (Status == USB_OTG_EP_TX_DIS)
- depctl.b.usbactep = 0;
- }
- else /* Process for OUT endpoint */
- {
- depctl_addr = &(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL);
- depctl.d32 = USB_OTG_READ_REG32(depctl_addr);
-
- if (Status == USB_OTG_EP_RX_STALL) {
- depctl.b.stall = 1;
- }
- else if (Status == USB_OTG_EP_RX_NAK)
- depctl.b.snak = 1;
- else if (Status == USB_OTG_EP_RX_VALID)
- {
- if (depctl.b.stall == 1)
- {
- ep->even_odd_frame = 0;
- USB_OTG_EPClearStall(pdev, ep);
- return;
- }
- depctl.b.cnak = 1;
- depctl.b.usbactep = 1;
- depctl.b.epena = 1;
- }
- else if (Status == USB_OTG_EP_RX_DIS)
- {
- depctl.b.usbactep = 0;
- }
- }
-
- USB_OTG_WRITE_REG32(depctl_addr, depctl.d32);
-}
-
-#endif
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_dcd.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_dcd.c
deleted file mode 100755
index 3afb025..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_dcd.c
+++ /dev/null
@@ -1,472 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_dcd.c
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Peripheral Device Interface Layer
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_dcd.h"
-#include "usb_bsp.h"
-
-
-/** @addtogroup USB_OTG_DRIVER
-* @{
-*/
-
-/** @defgroup USB_DCD
-* @brief This file is the interface between EFSL ans Host mass-storage class
-* @{
-*/
-
-
-/** @defgroup USB_DCD_Private_Defines
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_Private_TypesDefinitions
-* @{
-*/
-/**
-* @}
-*/
-
-
-
-/** @defgroup USB_DCD_Private_Macros
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_Private_Variables
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_Private_FunctionPrototypes
-* @{
-*/
-
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_Private_Functions
-* @{
-*/
-
-
-
-void DCD_Init(USB_OTG_CORE_HANDLE *pdev ,
- USB_OTG_CORE_ID_TypeDef coreID)
-{
- uint32_t i;
- USB_OTG_EP *ep;
-
- USB_OTG_SelectCore (pdev , coreID);
-
- pdev->dev.device_status = USB_OTG_DEFAULT;
- pdev->dev.device_address = 0;
-
- /* Init ep structure */
- for (i = 0; i < pdev->cfg.dev_endpoints ; i++)
- {
- ep = &pdev->dev.in_ep[i];
- /* 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 = USB_OTG_MAX_EP0_SIZE;
- ep->xfer_buff = 0;
- ep->xfer_len = 0;
- }
-
- for (i = 0; i < pdev->cfg.dev_endpoints; i++)
- {
- ep = &pdev->dev.out_ep[i];
- /* 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 = USB_OTG_MAX_EP0_SIZE;
- ep->xfer_buff = 0;
- ep->xfer_len = 0;
- }
-
- USB_OTG_DisableGlobalInt(pdev);
-
- /*Init the Core (common init.) */
- USB_OTG_CoreInit(pdev);
-
-
- /* Force Device Mode*/
- USB_OTG_SetCurrentMode(pdev, DEVICE_MODE);
-
- /* Init Device */
- USB_OTG_CoreInitDev(pdev);
-
-
- /* Enable USB Global interrupt */
- USB_OTG_EnableGlobalInt(pdev);
-}
-
-
-/**
-* @brief Configure an EP
-* @param pdev : Device instance
-* @param epdesc : Endpoint Descriptor
-* @retval : status
-*/
-uint32_t DCD_EP_Open(USB_OTG_CORE_HANDLE *pdev ,
- uint8_t ep_addr,
- uint16_t ep_mps,
- uint8_t ep_type)
-{
- USB_OTG_EP *ep;
-
- if ((ep_addr & 0x80) == 0x80)
- {
- ep = &pdev->dev.in_ep[ep_addr & 0x7F];
- }
- else
- {
- ep = &pdev->dev.out_ep[ep_addr & 0x7F];
- }
- ep->num = ep_addr & 0x7F;
-
- ep->is_in = (0x80 & ep_addr) != 0;
- ep->maxpacket = ep_mps;
- ep->type = ep_type;
- if (ep->is_in)
- {
- /* Assign a Tx FIFO */
- ep->tx_fifo_num = ep->num;
- }
- /* Set initial data PID. */
- if (ep_type == USB_OTG_EP_BULK )
- {
- ep->data_pid_start = 0;
- }
- USB_OTG_EPActivate(pdev , ep );
- return 0;
-}
-/**
-* @brief called when an EP is disabled
-* @param pdev: device instance
-* @param ep_addr: endpoint address
-* @retval : status
-*/
-uint32_t DCD_EP_Close(USB_OTG_CORE_HANDLE *pdev , uint8_t ep_addr)
-{
- USB_OTG_EP *ep;
-
- if ((ep_addr&0x80) == 0x80)
- {
- ep = &pdev->dev.in_ep[ep_addr & 0x7F];
- }
- else
- {
- ep = &pdev->dev.out_ep[ep_addr & 0x7F];
- }
- ep->num = ep_addr & 0x7F;
- ep->is_in = (0x80 & ep_addr) != 0;
- USB_OTG_EPDeactivate(pdev , ep );
- return 0;
-}
-
-
-/**
-* @brief DCD_EP_PrepareRx
-* @param pdev: device instance
-* @param ep_addr: endpoint address
-* @param pbuf: pointer to Rx buffer
-* @param buf_len: data length
-* @retval : status
-*/
-uint32_t DCD_EP_PrepareRx( USB_OTG_CORE_HANDLE *pdev,
- uint8_t ep_addr,
- uint8_t *pbuf,
- uint16_t buf_len)
-{
- USB_OTG_EP *ep;
-
- ep = &pdev->dev.out_ep[ep_addr & 0x7F];
-
- /*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 (pdev->cfg.dma_enable == 1)
- {
- ep->dma_addr = (uint32_t)pbuf;
- }
-
- if ( ep->num == 0 )
- {
- USB_OTG_EP0StartXfer(pdev , ep);
- }
- else
- {
- USB_OTG_EPStartXfer(pdev, ep );
- }
- return 0;
-}
-
-/**
-* @brief Transmit data over USB
-* @param pdev: device instance
-* @param ep_addr: endpoint address
-* @param pbuf: pointer to Tx buffer
-* @param buf_len: data length
-* @retval : status
-*/
-uint32_t DCD_EP_Tx ( USB_OTG_CORE_HANDLE *pdev,
- uint8_t ep_addr,
- uint8_t *pbuf,
- uint32_t buf_len)
-{
- USB_OTG_EP *ep;
-
- ep = &pdev->dev.in_ep[ep_addr & 0x7F];
-
- /* Setup and start the Transfer */
- ep->is_in = 1;
- ep->num = ep_addr & 0x7F;
- ep->xfer_buff = pbuf;
- ep->dma_addr = (uint32_t)pbuf;
- ep->xfer_count = 0;
- ep->xfer_len = buf_len;
-
- if ( ep->num == 0 )
- {
- USB_OTG_EP0StartXfer(pdev , ep);
- }
- else
- {
- USB_OTG_EPStartXfer(pdev, ep );
- }
- return 0;
-}
-
-
-/**
-* @brief Stall an endpoint.
-* @param pdev: device instance
-* @param epnum: endpoint address
-* @retval : status
-*/
-uint32_t DCD_EP_Stall (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum)
-{
- USB_OTG_EP *ep;
- if ((0x80 & epnum) == 0x80)
- {
- ep = &pdev->dev.in_ep[epnum & 0x7F];
- }
- else
- {
- ep = &pdev->dev.out_ep[epnum];
- }
-
- ep->is_stall = 1;
- ep->num = epnum & 0x7F;
- ep->is_in = ((epnum & 0x80) == 0x80);
-
- USB_OTG_EPSetStall(pdev , ep);
- return (0);
-}
-
-
-/**
-* @brief Clear stall condition on endpoints.
-* @param pdev: device instance
-* @param epnum: endpoint address
-* @retval : status
-*/
-uint32_t DCD_EP_ClrStall (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum)
-{
- USB_OTG_EP *ep;
- if ((0x80 & epnum) == 0x80)
- {
- ep = &pdev->dev.in_ep[epnum & 0x7F];
- }
- else
- {
- ep = &pdev->dev.out_ep[epnum];
- }
-
- ep->is_stall = 0;
- ep->num = epnum & 0x7F;
- ep->is_in = ((epnum & 0x80) == 0x80);
-
- USB_OTG_EPClearStall(pdev , ep);
- return (0);
-}
-
-
-/**
-* @brief This Function flushes the FIFOs.
-* @param pdev: device instance
-* @param epnum: endpoint address
-* @retval : status
-*/
-uint32_t DCD_EP_Flush (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum)
-{
-
- if ((epnum & 0x80) == 0x80)
- {
- USB_OTG_FlushTxFifo(pdev, epnum & 0x7F);
- }
- else
- {
- USB_OTG_FlushRxFifo(pdev);
- }
-
- return (0);
-}
-
-
-/**
-* @brief This Function set USB device address
-* @param pdev: device instance
-* @param address: new device address
-* @retval : status
-*/
-void DCD_EP_SetAddress (USB_OTG_CORE_HANDLE *pdev, uint8_t address)
-{
- USB_OTG_DCFG_TypeDef dcfg;
- dcfg.d32 = 0;
- dcfg.b.devaddr = address;
- USB_OTG_MODIFY_REG32( &pdev->regs.DREGS->DCFG, 0, dcfg.d32);
-}
-
-/**
-* @brief Connect device (enable internal pull-up)
-* @param pdev: device instance
-* @retval : None
-*/
-void DCD_DevConnect (USB_OTG_CORE_HANDLE *pdev)
-{
-#ifndef USE_OTG_MODE
- USB_OTG_DCTL_TypeDef dctl;
- dctl.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DCTL);
- /* Connect device */
- dctl.b.sftdiscon = 0;
- USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DCTL, dctl.d32);
- USB_OTG_BSP_mDelay(3);
-#endif
-}
-
-
-/**
-* @brief Disconnect device (disable internal pull-up)
-* @param pdev: device instance
-* @retval : None
-*/
-void DCD_DevDisconnect (USB_OTG_CORE_HANDLE *pdev)
-{
-#ifndef USE_OTG_MODE
- USB_OTG_DCTL_TypeDef dctl;
- dctl.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DCTL);
- /* Disconnect device for 3ms */
- dctl.b.sftdiscon = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DCTL, dctl.d32);
- USB_OTG_BSP_mDelay(3);
-#endif
-}
-
-
-/**
-* @brief returns the EP Status
-* @param pdev : Selected device
-* epnum : endpoint address
-* @retval : EP status
-*/
-
-uint32_t DCD_GetEPStatus(USB_OTG_CORE_HANDLE *pdev ,uint8_t epnum)
-{
- USB_OTG_EP *ep;
- uint32_t Status = 0;
-
- if ((0x80 & epnum) == 0x80)
- {
- ep = &pdev->dev.in_ep[epnum & 0x7F];
- }
- else
- {
- ep = &pdev->dev.out_ep[epnum];
- }
-
- Status = USB_OTG_GetEPStatus(pdev ,ep);
-
- /* Return the current status */
- return Status;
-}
-
-/**
-* @brief Set the EP Status
-* @param pdev : Selected device
-* Status : new Status
-* epnum : EP address
-* @retval : None
-*/
-void DCD_SetEPStatus (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum , uint32_t Status)
-{
- USB_OTG_EP *ep;
-
- if ((0x80 & epnum) == 0x80)
- {
- ep = &pdev->dev.in_ep[epnum & 0x7F];
- }
- else
- {
- ep = &pdev->dev.out_ep[epnum];
- }
-
- USB_OTG_SetEPStatus(pdev ,ep , Status);
-}
-
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_dcd_int.c b/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_dcd_int.c
deleted file mode 100755
index d0bdcf5..0000000
--- a/source/firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/src/usb_dcd_int.c
+++ /dev/null
@@ -1,912 +0,0 @@
-/**
- ******************************************************************************
- * @file usb_dcd_int.c
- * @author MCD Application Team
- * @version V2.0.0
- * @date 22-July-2011
- * @brief Peripheral Device interrupt subroutines
- ******************************************************************************
- * @attention
- *
- * 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.
- *
- * © COPYRIGHT 2011 STMicroelectronics
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usb_dcd_int.h"
-/** @addtogroup USB_OTG_DRIVER
-* @{
-*/
-
-/** @defgroup USB_DCD_INT
-* @brief This file contains the interrupt subroutines for the Device mode.
-* @{
-*/
-
-
-/** @defgroup USB_DCD_INT_Private_Defines
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_INT_Private_TypesDefinitions
-* @{
-*/
-/**
-* @}
-*/
-
-
-
-/** @defgroup USB_DCD_INT_Private_Macros
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_INT_Private_Variables
-* @{
-*/
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_INT_Private_FunctionPrototypes
-* @{
-*/
-/* static functions */
-static uint32_t DCD_ReadDevInEP (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum);
-
-/* Interrupt Handlers */
-static uint32_t DCD_HandleInEP_ISR(USB_OTG_CORE_HANDLE *pdev);
-static uint32_t DCD_HandleOutEP_ISR(USB_OTG_CORE_HANDLE *pdev);
-static uint32_t DCD_HandleSof_ISR(USB_OTG_CORE_HANDLE *pdev);
-
-static uint32_t DCD_HandleRxStatusQueueLevel_ISR(USB_OTG_CORE_HANDLE *pdev);
-static uint32_t DCD_WriteEmptyTxFifo(USB_OTG_CORE_HANDLE *pdev , uint32_t epnum);
-
-static uint32_t DCD_HandleUsbReset_ISR(USB_OTG_CORE_HANDLE *pdev);
-static uint32_t DCD_HandleEnumDone_ISR(USB_OTG_CORE_HANDLE *pdev);
-static uint32_t DCD_HandleResume_ISR(USB_OTG_CORE_HANDLE *pdev);
-static uint32_t DCD_HandleUSBSuspend_ISR(USB_OTG_CORE_HANDLE *pdev);
-
-static uint32_t DCD_IsoINIncomplete_ISR(USB_OTG_CORE_HANDLE *pdev);
-static uint32_t DCD_IsoOUTIncomplete_ISR(USB_OTG_CORE_HANDLE *pdev);
-#ifdef VBUS_SENSING_ENABLED
-static uint32_t DCD_SessionRequest_ISR(USB_OTG_CORE_HANDLE *pdev);
-static uint32_t DCD_OTG_ISR(USB_OTG_CORE_HANDLE *pdev);
-#endif
-
-/**
-* @}
-*/
-
-
-/** @defgroup USB_DCD_INT_Private_Functions
-* @{
-*/
-
-uint8_t run = 1;
-
-#ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED
-/**
-* @brief USBD_OTG_EP1OUT_ISR_Handler
-* handles all USB Interrupts
-* @param pdev: device instance
-* @retval status
-*/
-uint32_t USBD_OTG_EP1OUT_ISR_Handler (USB_OTG_CORE_HANDLE *pdev)
-{
-
- USB_OTG_DOEPINTn_TypeDef doepint;
- USB_OTG_DEPXFRSIZ_TypeDef deptsiz;
-
- doepint.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[1]->DOEPINT);
- doepint.d32&= USB_OTG_READ_REG32(&pdev->regs.DREGS->DOUTEP1MSK);
-
- /* Transfer complete */
- if ( doepint.b.xfercompl )
- {
- /* Clear the bit in DOEPINTn for this interrupt */
- CLEAR_OUT_EP_INTR(1, xfercompl);
- if (pdev->cfg.dma_enable == 1)
- {
- deptsiz.d32 = USB_OTG_READ_REG32(&(pdev->regs.OUTEP_REGS[1]->DOEPTSIZ));
- /*ToDo : handle more than one single MPS size packet */
- pdev->dev.out_ep[1].xfer_count = pdev->dev.out_ep[1].maxpacket - \
- deptsiz.b.xfersize;
- }
- /* Inform upper layer: data ready */
- /* RX COMPLETE */
- USBD_DCD_INT_fops->DataOutStage(pdev , 1);
-
- }
-
- /* Endpoint disable */
- if ( doepint.b.epdisabled )
- {
- /* Clear the bit in DOEPINTn for this interrupt */
- CLEAR_OUT_EP_INTR(1, epdisabled);
- }
- /* AHB Error */
- if ( doepint.b.ahberr )
- {
- CLEAR_OUT_EP_INTR(1, ahberr);
- }
- return 1;
-}
-
-/**
-* @brief USBD_OTG_EP1IN_ISR_Handler
-* handles all USB Interrupts
-* @param pdev: device instance
-* @retval status
-*/
-uint32_t USBD_OTG_EP1IN_ISR_Handler (USB_OTG_CORE_HANDLE *pdev)
-{
-
- USB_OTG_DIEPINTn_TypeDef diepint;
- uint32_t fifoemptymsk, msk, emp;
-
- msk = USB_OTG_READ_REG32(&pdev->regs.DREGS->DINEP1MSK);
- emp = USB_OTG_READ_REG32(&pdev->regs.DREGS->DIEPEMPMSK);
- msk |= ((emp >> 1 ) & 0x1) << 7;
- diepint.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[1]->DIEPINT) & msk;
-
- if ( diepint.b.xfercompl )
- {
- fifoemptymsk = 0x1 << 1;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0);
- CLEAR_IN_EP_INTR(1, xfercompl);
- /* TX COMPLETE */
- USBD_DCD_INT_fops->DataInStage(pdev , 1);
- }
- if ( diepint.b.ahberr )
- {
- CLEAR_IN_EP_INTR(1, ahberr);
- }
- if ( diepint.b.epdisabled )
- {
- CLEAR_IN_EP_INTR(1, epdisabled);
- }
- if ( diepint.b.timeout )
- {
- CLEAR_IN_EP_INTR(1, timeout);
- }
- if (diepint.b.intktxfemp)
- {
- CLEAR_IN_EP_INTR(1, intktxfemp);
- }
- if (diepint.b.intknepmis)
- {
- CLEAR_IN_EP_INTR(1, intknepmis);
- }
- if (diepint.b.inepnakeff)
- {
- CLEAR_IN_EP_INTR(1, inepnakeff);
- }
- if (diepint.b.emptyintr)
- {
- DCD_WriteEmptyTxFifo(pdev , 1);
- CLEAR_IN_EP_INTR(1, emptyintr);
- }
- return 1;
-}
-#endif
-
-/**
-* @brief STM32_USBF_OTG_ISR_Handler
-* handles all USB Interrupts
-* @param pdev: device instance
-* @retval status
-*/
-uint32_t USBD_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTSTS_TypeDef gintr_status;
- uint32_t retval = 0;
-
- if (USB_OTG_IsDeviceMode(pdev)) /* ensure that we are in device mode */
- {
- gintr_status.d32 = USB_OTG_ReadCoreItr(pdev);
- if (!gintr_status.d32) /* avoid spurious interrupt */
- {
- return 0;
- }
-
- if (gintr_status.b.outepintr)
- {
- retval |= DCD_HandleOutEP_ISR(pdev);
- }
-
- if (gintr_status.b.inepint)
- {
- retval |= DCD_HandleInEP_ISR(pdev);
- }
-
- if (gintr_status.b.modemismatch)
- {
- USB_OTG_GINTSTS_TypeDef gintsts;
-
- /* Clear interrupt */
- gintsts.d32 = 0;
- gintsts.b.modemismatch = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, gintsts.d32);
- }
-
- if (gintr_status.b.wkupintr)
- {
- retval |= DCD_HandleResume_ISR(pdev);
- }
-
- if (gintr_status.b.usbsuspend)
- {
- retval |= DCD_HandleUSBSuspend_ISR(pdev);
- }
- if (gintr_status.b.sofintr)
- {
- retval |= DCD_HandleSof_ISR(pdev);
-
- }
-
- if (gintr_status.b.rxstsqlvl)
- {
- retval |= DCD_HandleRxStatusQueueLevel_ISR(pdev);
-
- }
-
- if (gintr_status.b.usbreset)
- {
- retval |= DCD_HandleUsbReset_ISR(pdev);
-
- }
- if (gintr_status.b.enumdone)
- {
- retval |= DCD_HandleEnumDone_ISR(pdev);
- }
-
- if (gintr_status.b.incomplisoin)
- {
- retval |= DCD_IsoINIncomplete_ISR(pdev);
- }
-
- if (gintr_status.b.incomplisoout)
- {
- retval |= DCD_IsoOUTIncomplete_ISR(pdev);
- }
-#ifdef VBUS_SENSING_ENABLED
- if (gintr_status.b.sessreqintr)
- {
- retval |= DCD_SessionRequest_ISR(pdev);
- }
-
- if (gintr_status.b.otgintr)
- {
- retval |= DCD_OTG_ISR(pdev);
- }
-#endif
- }
- return retval;
-}
-
-#ifdef VBUS_SENSING_ENABLED
-/**
-* @brief DCD_SessionRequest_ISR
-* Indicates that the USB_OTG controller has detected a connection
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_SessionRequest_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTSTS_TypeDef gintsts;
- USBD_DCD_INT_fops->DevConnected (pdev);
-
- /* Clear interrupt */
- gintsts.d32 = 0;
- gintsts.b.sessreqintr = 1;
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GINTSTS, gintsts.d32);
- return 1;
-}
-
-/**
-* @brief DCD_OTG_ISR
-* Indicates that the USB_OTG controller has detected an OTG event:
-* used to detect the end of session i.e. disconnection
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_OTG_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
-
- USB_OTG_GOTGINT_TypeDef gotgint;
-
- gotgint.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GOTGINT);
-
- if (gotgint.b.sesenddet)
- {
- USBD_DCD_INT_fops->DevDisconnected (pdev);
- }
- /* Clear OTG interrupt */
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GOTGINT, gotgint.d32);
- return 1;
-}
-#endif
-/**
-* @brief DCD_HandleResume_ISR
-* Indicates that the USB_OTG controller has detected a resume or
-* remote Wake-up sequence
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_HandleResume_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTSTS_TypeDef gintsts;
- USB_OTG_DCTL_TypeDef devctl;
- USB_OTG_PCGCCTL_TypeDef power;
-
- if(pdev->cfg.low_power)
- {
- /* un-gate USB Core clock */
- power.d32 = USB_OTG_READ_REG32(&pdev->regs.PCGCCTL);
- power.b.gatehclk = 0;
- power.b.stoppclk = 0;
- USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, power.d32);
- }
-
- /* Clear the Remote Wake-up Signaling */
- devctl.d32 = 0;
- devctl.b.rmtwkupsig = 1;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, devctl.d32, 0);
-
- /* Inform upper layer by the Resume Event */
- USBD_DCD_INT_fops->Resume (pdev);
-
- /* Clear interrupt */
- gintsts.d32 = 0;
- gintsts.b.wkupintr = 1;
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GINTSTS, gintsts.d32);
- return 1;
-}
-
-/**
-* @brief USB_OTG_HandleUSBSuspend_ISR
-* Indicates that SUSPEND state has been detected on the USB
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_HandleUSBSuspend_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTSTS_TypeDef gintsts;
- USB_OTG_PCGCCTL_TypeDef power;
- USB_OTG_DSTS_TypeDef dsts;
-
- USBD_DCD_INT_fops->Suspend (pdev);
-
- dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS);
-
- /* Clear interrupt */
- gintsts.d32 = 0;
- gintsts.b.usbsuspend = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, gintsts.d32);
-
- if((pdev->cfg.low_power) && (dsts.b.suspsts == 1))
- {
- /* switch-off the clocks */
- power.d32 = 0;
- power.b.stoppclk = 1;
- USB_OTG_MODIFY_REG32(pdev->regs.PCGCCTL, 0, power.d32);
-
- power.b.gatehclk = 1;
- USB_OTG_MODIFY_REG32(pdev->regs.PCGCCTL, 0, power.d32);
-
- /* Request to enter Sleep mode after exit from current ISR */
- SCB->SCR |= (SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk);
- }
- return 1;
-}
-
-/**
-* @brief DCD_HandleInEP_ISR
-* Indicates that an IN EP has a pending Interrupt
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_HandleInEP_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_DIEPINTn_TypeDef diepint;
-
-
- uint32_t ep_intr;
- uint32_t epnum = 0;
- uint32_t fifoemptymsk;
- diepint.d32 = 0;
- ep_intr = USB_OTG_ReadDevAllInEPItr(pdev);
-
- while ( ep_intr )
- {
- if (ep_intr&0x1) /* In ITR */
- {
- diepint.d32 = DCD_ReadDevInEP(pdev , epnum); /* Get In ITR status */
- if ( diepint.b.xfercompl )
- {
- fifoemptymsk = 0x1 << epnum;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0);
- CLEAR_IN_EP_INTR(epnum, xfercompl);
- /* TX COMPLETE */
- USBD_DCD_INT_fops->DataInStage(pdev , epnum);
-
- if (pdev->cfg.dma_enable == 1)
- {
- if((epnum == 0) && (pdev->dev.device_state == USB_OTG_EP0_STATUS_IN))
- {
- /* prepare to rx more setup packets */
- USB_OTG_EP0_OutStart(pdev);
- }
- }
- }
- 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.epdisabled )
- {
- CLEAR_IN_EP_INTR(epnum, epdisabled);
- }
- if (diepint.b.emptyintr)
- {
-
- DCD_WriteEmptyTxFifo(pdev , epnum);
-
- //CLEAR_IN_EP_INTR(epnum, emptyintr);
- diepint.d32=0;
- diepint.b.emptyintr = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[epnum]->DIEPINT,diepint.d32);
- }
- }
- epnum++;
- ep_intr >>= 1;
- }
-
- return 1;
-}
-
-/**
-* @brief DCD_HandleOutEP_ISR
-* Indicates that an OUT EP has a pending Interrupt
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_HandleOutEP_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- uint32_t ep_intr;
- USB_OTG_DOEPINTn_TypeDef doepint;
- USB_OTG_DEPXFRSIZ_TypeDef deptsiz;
- uint32_t epnum = 0;
-
- doepint.d32 = 0;
-
- /* Read in the device interrupt bits */
- ep_intr = USB_OTG_ReadDevAllOutEp_itr(pdev);
-
- while ( ep_intr )
- {
- if (ep_intr&0x1)
- {
-
- doepint.d32 = USB_OTG_ReadDevOutEP_itr(pdev, epnum);
-
- /* Transfer complete */
- if ( doepint.b.xfercompl )
- {
- /* Clear the bit in DOEPINTn for this interrupt */
- CLEAR_OUT_EP_INTR(epnum, xfercompl);
- if (pdev->cfg.dma_enable == 1)
- {
- deptsiz.d32 = USB_OTG_READ_REG32(&(pdev->regs.OUTEP_REGS[epnum]->DOEPTSIZ));
- /*ToDo : handle more than one single MPS size packet */
- pdev->dev.out_ep[epnum].xfer_count = pdev->dev.out_ep[epnum].maxpacket - \
- deptsiz.b.xfersize;
- }
- /* Inform upper layer: data ready */
- /* RX COMPLETE */
- USBD_DCD_INT_fops->DataOutStage(pdev , epnum);
-
- if (pdev->cfg.dma_enable == 1)
- {
- if((epnum == 0) && (pdev->dev.device_state == USB_OTG_EP0_STATUS_OUT))
- {
- /* prepare to rx more setup packets */
- USB_OTG_EP0_OutStart(pdev);
- }
- }
- }
- /* 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 )
- {
-
- /* inform the upper layer that a setup packet is available */
- /* SETUP COMPLETE */
- USBD_DCD_INT_fops->SetupStage(pdev);
- CLEAR_OUT_EP_INTR(epnum, setup);
- }
- }
- epnum++;
- ep_intr >>= 1;
- }
- return 1;
-}
-
-/**
-* @brief DCD_HandleSof_ISR
-* Handles the SOF Interrupts
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_HandleSof_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTSTS_TypeDef GINTSTS;
-
-
- USBD_DCD_INT_fops->SOF(pdev);
-
- /* Clear interrupt */
- GINTSTS.d32 = 0;
- GINTSTS.b.sofintr = 1;
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GINTSTS, GINTSTS.d32);
-
- return 1;
-}
-
-/**
-* @brief DCD_HandleRxStatusQueueLevel_ISR
-* Handles the Rx Status Queue Level Interrupt
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_HandleRxStatusQueueLevel_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTMSK_TypeDef int_mask;
- USB_OTG_DRXSTS_TypeDef status;
- USB_OTG_EP *ep;
-
- /* Disable the Rx Status Queue Level interrupt */
- int_mask.d32 = 0;
- int_mask.b.rxstsqlvl = 1;
- USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, int_mask.d32, 0);
-
- /* Get the Status from the top of the FIFO */
- status.d32 = USB_OTG_READ_REG32( &pdev->regs.GREGS->GRXSTSP );
-
- ep = &pdev->dev.out_ep[status.b.epnum];
-
- switch (status.b.pktsts)
- {
- case STS_GOUT_NAK:
- break;
- case STS_DATA_UPDT:
- if (status.b.bcnt)
- {
- USB_OTG_ReadPacket(pdev,ep->xfer_buff, status.b.bcnt);
- ep->xfer_buff += 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 */
- USB_OTG_ReadPacket(pdev , pdev->dev.setup_packet, 8);
- ep->xfer_count += status.b.bcnt;
- break;
- default:
- break;
- }
-
- /* Enable the Rx Status Queue Level interrupt */
- USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, 0, int_mask.d32);
-
- return 1;
-}
-
-/**
-* @brief DCD_WriteEmptyTxFifo
-* check FIFO for the next packet to be loaded
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_WriteEmptyTxFifo(USB_OTG_CORE_HANDLE *pdev, uint32_t epnum)
-{
- USB_OTG_DTXFSTSn_TypeDef txstatus;
- USB_OTG_EP *ep;
- uint32_t len = 0;
- uint32_t len32b;
- static uint32_t count = 0;
- txstatus.d32 = 0;
-
- ep = &pdev->dev.in_ep[epnum];
-
- len = ep->xfer_len - ep->xfer_count;
-
- if (len > ep->maxpacket)
- {
- len = ep->maxpacket;
- }
-
- len32b = (len + 3) / 4;
- txstatus.d32 = USB_OTG_READ_REG32( &pdev->regs.INEP_REGS[epnum]->DTXFSTS);
-
-
-
- while (txstatus.b.txfspcavail > len32b &&
- ep->xfer_count < ep->xfer_len &&
- ep->xfer_len != 0)
- {
- /* Write the FIFO */
- len = ep->xfer_len - ep->xfer_count;
-
- if (len > ep->maxpacket)
- {
- len = ep->maxpacket;
- }
- len32b = (len + 3) / 4;
-
- USB_OTG_WritePacket (pdev , ep->xfer_buff, epnum, len);
-
- ep->xfer_buff += len;
- ep->xfer_count += len;
-
- txstatus.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[epnum]->DTXFSTS);
- }
-
-
- if(len == 0)
- {
-
- uint32_t fifoemptymsk;
-
- count++;
- if(count == 10)
- {
- fifoemptymsk = 0x1 << epnum;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0);
- count = 0;
- }
- }
- else
- {
- count = 0;
- }
-
-
- return 1;
-}
-
-/**
-* @brief DCD_HandleUsbReset_ISR
-* This interrupt occurs when a USB Reset is detected
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_HandleUsbReset_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_DAINT_TypeDef daintmsk;
- USB_OTG_DOEPMSK_TypeDef doepmsk;
- USB_OTG_DIEPMSK_TypeDef diepmsk;
- USB_OTG_DCFG_TypeDef dcfg;
- USB_OTG_DCTL_TypeDef dctl;
- USB_OTG_GINTSTS_TypeDef gintsts;
- uint32_t i;
-
- dctl.d32 = 0;
- daintmsk.d32 = 0;
- doepmsk.d32 = 0;
- diepmsk.d32 = 0;
- dcfg.d32 = 0;
- gintsts.d32 = 0;
-
- /* Clear the Remote Wake-up Signaling */
- dctl.b.rmtwkupsig = 1;
- USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, dctl.d32, 0 );
-
- /* Flush the Tx FIFO */
- USB_OTG_FlushTxFifo(pdev , 0 );
-
- for (i = 0; i < pdev->cfg.dev_endpoints ; i++)
- {
- USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPINT, 0xFF);
- USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPINT, 0xFF);
- }
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINT, 0xFFFFFFFF );
-
- daintmsk.ep.in = 1;
- daintmsk.ep.out = 1;
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINTMSK, daintmsk.d32 );
-
- doepmsk.b.setup = 1;
- doepmsk.b.xfercompl = 1;
- doepmsk.b.ahberr = 1;
- doepmsk.b.epdisabled = 1;
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DOEPMSK, doepmsk.d32 );
-#ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DOUTEP1MSK, doepmsk.d32 );
-#endif
- diepmsk.b.xfercompl = 1;
- diepmsk.b.timeout = 1;
- diepmsk.b.epdisabled = 1;
- diepmsk.b.ahberr = 1;
- diepmsk.b.intknepmis = 1;
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DIEPMSK, diepmsk.d32 );
-#ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DINEP1MSK, diepmsk.d32 );
-#endif
- /* Reset Device Address */
- dcfg.d32 = USB_OTG_READ_REG32( &pdev->regs.DREGS->DCFG);
- dcfg.b.devaddr = 0;
- USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DCFG, dcfg.d32);
-
-
- /* setup EP0 to receive SETUP packets */
- USB_OTG_EP0_OutStart(pdev);
-
- /* Clear interrupt */
- gintsts.d32 = 0;
- gintsts.b.usbreset = 1;
- USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GINTSTS, gintsts.d32);
-
- /*Reset internal state machine */
- USBD_DCD_INT_fops->Reset(pdev);
- return 1;
-}
-
-/**
-* @brief DCD_HandleEnumDone_ISR
-* Read the device status register and set the device speed
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_HandleEnumDone_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTSTS_TypeDef gintsts;
- USB_OTG_GUSBCFG_TypeDef gusbcfg;
-
- USB_OTG_EP0Activate(pdev);
-
- /* Set USB turn-around time based on device speed and PHY interface. */
- gusbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG);
-
- /* Full or High speed */
- if ( USB_OTG_GetDeviceSpeed(pdev) == USB_SPEED_HIGH)
- {
- pdev->cfg.speed = USB_OTG_SPEED_HIGH;
- pdev->cfg.mps = USB_OTG_HS_MAX_PACKET_SIZE ;
- gusbcfg.b.usbtrdtim = 9;
- }
- else
- {
- pdev->cfg.speed = USB_OTG_SPEED_FULL;
- pdev->cfg.mps = USB_OTG_FS_MAX_PACKET_SIZE ;
- gusbcfg.b.usbtrdtim = 5;
- }
-
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GUSBCFG, gusbcfg.d32);
-
- /* Clear interrupt */
- gintsts.d32 = 0;
- gintsts.b.enumdone = 1;
- USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTSTS, gintsts.d32 );
- return 1;
-}
-
-
-/**
-* @brief DCD_IsoINIncomplete_ISR
-* handle the ISO IN incomplete interrupt
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_IsoINIncomplete_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTSTS_TypeDef gintsts;
-
- gintsts.d32 = 0;
-
- USBD_DCD_INT_fops->IsoINIncomplete (pdev);
-
- /* Clear interrupt */
- gintsts.b.incomplisoin = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, gintsts.d32);
-
- return 1;
-}
-
-/**
-* @brief DCD_IsoOUTIncomplete_ISR
-* handle the ISO OUT incomplete interrupt
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_IsoOUTIncomplete_ISR(USB_OTG_CORE_HANDLE *pdev)
-{
- USB_OTG_GINTSTS_TypeDef gintsts;
-
- gintsts.d32 = 0;
-
- USBD_DCD_INT_fops->IsoOUTIncomplete (pdev);
-
- /* Clear interrupt */
- gintsts.b.incomplisoout = 1;
- USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, gintsts.d32);
- return 1;
-}
-/**
-* @brief DCD_ReadDevInEP
-* Reads ep flags
-* @param pdev: device instance
-* @retval status
-*/
-static uint32_t DCD_ReadDevInEP (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum)
-{
- uint32_t v, msk, emp;
- msk = USB_OTG_READ_REG32(&pdev->regs.DREGS->DIEPMSK);
- emp = USB_OTG_READ_REG32(&pdev->regs.DREGS->DIEPEMPMSK);
- msk |= ((emp >> epnum) & 0x1) << 7;
- v = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[epnum]->DIEPINT) & msk;
- return v;
-}
-
-
-
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/**
-* @}
-*/
-
-/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
diff --git a/source/firmware/arch/stm32f4xx/lib/lib.mk b/source/firmware/arch/stm32f4xx/lib/lib.mk
index 638ce82..a924afd 100755
--- a/source/firmware/arch/stm32f4xx/lib/lib.mk
+++ b/source/firmware/arch/stm32f4xx/lib/lib.mk
@@ -1,6 +1 @@
-#SUB_FOLDER += firmware/arch/stm32f4xx/lib
-#INCLUDES += firmware/arch/stm32f4xx/lib
-
include firmware/arch/stm32f4xx/lib/stdperiph/stdperiph.mk
-#include firmware/arch/stm32f4xx/lib/STM32_USB_Device_Library/dev_lib.mk
-#include firmware/arch/stm32f4xx/lib/STM32_USB_OTG_Driver/otg_driver.mk
diff --git a/source/firmware/arch/stm32f4xx/stm32f4xx.mk b/source/firmware/arch/stm32f4xx/stm32f4xx.mk
index e2535d1..9dafce6 100755
--- a/source/firmware/arch/stm32f4xx/stm32f4xx.mk
+++ b/source/firmware/arch/stm32f4xx/stm32f4xx.mk
@@ -1,6 +1,6 @@
CHECK_FOLDER += firmware/arch/stm32f4xx
SUB_FOLDER += firmware/arch/stm32f4xx
-INCLUDES += firmware/arch/stm32f4xx
+INCLUDES += firmware/arch/stm32f4xx/include
DOC_SRC += firmware/arch/stm32f4xx
include firmware/arch/stm32f4xx/board/board.mk
diff --git a/source/firmware/kernel/driver/driver.mk b/source/firmware/kernel/driver/driver.mk
index a96a3e3..dfdaaba 100755
--- a/source/firmware/kernel/driver/driver.mk
+++ b/source/firmware/kernel/driver/driver.mk
@@ -1,4 +1,4 @@
CHECK_FOLDER += firmware/kernel/driver
SUB_FOLDER += firmware/kernel/driver
-INCLUDES += firmware/kernel/driver
+INCLUDES += firmware/kernel/driver/include
DOC_SRC += firmware/kernel/driver
diff --git a/source/firmware/kernel/kernel.mk b/source/firmware/kernel/kernel.mk
index 2f0ec1b..8e2ef30 100755
--- a/source/firmware/kernel/kernel.mk
+++ b/source/firmware/kernel/kernel.mk
@@ -1,6 +1,6 @@
CHECK_FOLDER += firmware/kernel
SUB_FOLDER += firmware/kernel
-INCLUDES += firmware/kernel
+INCLUDES += firmware/kernel/include
DOC_SRC += firmware/kernel
include firmware/kernel/driver/driver.mk