mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			STM32F4 Cube v1.19.0 update : ST CMSIS files
Previous version was v1.16.0pull/6112/head
							parent
							
								
									0d8d3e01db
								
							
						
					
					
						commit
						ea9c1f29a1
					
				| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f405xx.s
 | 
					;* File Name          : startup_stm32f405xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F405xx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F405xx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f405xx.s
 | 
					;* File Name          : startup_stm32f405xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F405xx devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F405xx devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f405xx.s
 | 
					;* File Name          : startup_stm32f405xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F405xx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F405xx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,16 +2,14 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
  *          is using in the C source code, usually in main.c. This file contains:
 | 
					  *          is using in the C source code, usually in main.c. This file contains:
 | 
				
			||||||
  *           - Configuration section that allows to select:
 | 
					  *           - Configuration section that allows to select:
 | 
				
			||||||
  *              - The STM32F4xx device used in the target application
 | 
					  *              - The STM32F4xx device used in the target application
 | 
				
			||||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
					  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
				
			||||||
  *                code will be based on direct access to peripheral’s registers 
 | 
					  *                code will be based on direct access to peripheral's registers 
 | 
				
			||||||
  *                rather than drivers API), this option is controlled by 
 | 
					  *                rather than drivers API), this option is controlled by 
 | 
				
			||||||
  *                "#define USE_HAL_DRIVER"
 | 
					  *                "#define USE_HAL_DRIVER"
 | 
				
			||||||
  *  
 | 
					  *  
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f411xe.s
 | 
					  * @file      startup_stm32f411xe.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.3.0
 | 
					  * @brief     STM32F411xExx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  * @date      02-March-2015
 | 
					 | 
				
			||||||
  * @brief     STM32F411xExx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
					 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
  *                - Set the initial PC == Reset_Handler,
 | 
					  *                - Set the initial PC == Reset_Handler,
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,18 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
/* Call static constructors */
 | 
					/* Call static constructors */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f401xc.s
 | 
					  * @file      startup_stm32f401xc.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.3.0
 | 
					  * @brief     STM32F401xCxx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  * @date      02-March-2015
 | 
					 | 
				
			||||||
  * @brief     STM32F401xCxx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
					 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
  *                - Set the initial PC == Reset_Handler,
 | 
					  *                - Set the initial PC == Reset_Handler,
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f401xc.h
 | 
					  * @file    stm32f401xc.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F401xC Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F401xC Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -656,7 +656,6 @@ typedef struct
 | 
				
			||||||
#define FLASH_BASE            0x08000000U /*!< FLASH(up to 1 MB) base address in the alias region                         */
 | 
					#define FLASH_BASE            0x08000000U /*!< FLASH(up to 1 MB) base address in the alias region                         */
 | 
				
			||||||
#define SRAM1_BASE            0x20000000U /*!< SRAM1(64 KB) base address in the alias region                              */
 | 
					#define SRAM1_BASE            0x20000000U /*!< SRAM1(64 KB) base address in the alias region                              */
 | 
				
			||||||
#define PERIPH_BASE           0x40000000U /*!< Peripheral base address in the alias region                                */
 | 
					#define PERIPH_BASE           0x40000000U /*!< Peripheral base address in the alias region                                */
 | 
				
			||||||
#define BKPSRAM_BASE          0x40024000U /*!< Backup SRAM(4 KB) base address in the alias region                         */
 | 
					 | 
				
			||||||
#define SRAM1_BB_BASE         0x22000000U /*!< SRAM1(64 KB) base address in the bit-band region                           */
 | 
					#define SRAM1_BB_BASE         0x22000000U /*!< SRAM1(64 KB) base address in the bit-band region                           */
 | 
				
			||||||
#define PERIPH_BB_BASE        0x42000000U /*!< Peripheral base address in the bit-band region                             */
 | 
					#define PERIPH_BB_BASE        0x42000000U /*!< Peripheral base address in the bit-band region                             */
 | 
				
			||||||
#define BKPSRAM_BB_BASE       0x42480000U /*!< Backup SRAM(4 KB) base address in the bit-band region                      */
 | 
					#define BKPSRAM_BB_BASE       0x42480000U /*!< Backup SRAM(4 KB) base address in the bit-band region                      */
 | 
				
			||||||
| 
						 | 
					@ -6679,7 +6678,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -7514,92 +7513,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -8245,6 +8158,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f401xe.s
 | 
					;* File Name          : startup_stm32f401xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F401xe devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F401xe devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f401xe.s
 | 
					;* File Name          : startup_stm32f401xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F401xe devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F401xe devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f401xe.s
 | 
					  * @file      startup_stm32f401xe.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.3.0
 | 
					  * @brief     STM32F401xExx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  * @date      02-March-2015
 | 
					 | 
				
			||||||
  * @brief     STM32F401xExx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
					 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
  *                - Set the initial PC == Reset_Handler,
 | 
					  *                - Set the initial PC == Reset_Handler,
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f401xe.s
 | 
					;* File Name          : startup_stm32f401xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.0.0
 | 
					 | 
				
			||||||
;* Date               : 18-February-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F401xExx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F401xExx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					@ -180,7 +178,7 @@ __vector_table
 | 
				
			||||||
;;
 | 
					;;
 | 
				
			||||||
        THUMB
 | 
					        THUMB
 | 
				
			||||||
        PUBWEAK Reset_Handler
 | 
					        PUBWEAK Reset_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(2)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(2)
 | 
				
			||||||
Reset_Handler
 | 
					Reset_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LDR     R0, =SystemInit
 | 
					        LDR     R0, =SystemInit
 | 
				
			||||||
| 
						 | 
					@ -189,327 +187,327 @@ Reset_Handler
 | 
				
			||||||
        BX      R0
 | 
					        BX      R0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK NMI_Handler
 | 
					        PUBWEAK NMI_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
NMI_Handler
 | 
					NMI_Handler
 | 
				
			||||||
        B NMI_Handler
 | 
					        B NMI_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK HardFault_Handler
 | 
					        PUBWEAK HardFault_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
HardFault_Handler
 | 
					HardFault_Handler
 | 
				
			||||||
        B HardFault_Handler
 | 
					        B HardFault_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK MemManage_Handler
 | 
					        PUBWEAK MemManage_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
MemManage_Handler
 | 
					MemManage_Handler
 | 
				
			||||||
        B MemManage_Handler
 | 
					        B MemManage_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK BusFault_Handler
 | 
					        PUBWEAK BusFault_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
BusFault_Handler
 | 
					BusFault_Handler
 | 
				
			||||||
        B BusFault_Handler
 | 
					        B BusFault_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK UsageFault_Handler
 | 
					        PUBWEAK UsageFault_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
UsageFault_Handler
 | 
					UsageFault_Handler
 | 
				
			||||||
        B UsageFault_Handler
 | 
					        B UsageFault_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK SVC_Handler
 | 
					        PUBWEAK SVC_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
SVC_Handler
 | 
					SVC_Handler
 | 
				
			||||||
        B SVC_Handler
 | 
					        B SVC_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DebugMon_Handler
 | 
					        PUBWEAK DebugMon_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DebugMon_Handler
 | 
					DebugMon_Handler
 | 
				
			||||||
        B DebugMon_Handler
 | 
					        B DebugMon_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK PendSV_Handler
 | 
					        PUBWEAK PendSV_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
PendSV_Handler
 | 
					PendSV_Handler
 | 
				
			||||||
        B PendSV_Handler
 | 
					        B PendSV_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK SysTick_Handler
 | 
					        PUBWEAK SysTick_Handler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
SysTick_Handler
 | 
					SysTick_Handler
 | 
				
			||||||
        B SysTick_Handler
 | 
					        B SysTick_Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK WWDG_IRQHandler
 | 
					        PUBWEAK WWDG_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
WWDG_IRQHandler  
 | 
					WWDG_IRQHandler  
 | 
				
			||||||
        B WWDG_IRQHandler
 | 
					        B WWDG_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK PVD_IRQHandler
 | 
					        PUBWEAK PVD_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
PVD_IRQHandler  
 | 
					PVD_IRQHandler  
 | 
				
			||||||
        B PVD_IRQHandler
 | 
					        B PVD_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK TAMP_STAMP_IRQHandler
 | 
					        PUBWEAK TAMP_STAMP_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TAMP_STAMP_IRQHandler  
 | 
					TAMP_STAMP_IRQHandler  
 | 
				
			||||||
        B TAMP_STAMP_IRQHandler
 | 
					        B TAMP_STAMP_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK RTC_WKUP_IRQHandler
 | 
					        PUBWEAK RTC_WKUP_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)  
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
RTC_WKUP_IRQHandler  
 | 
					RTC_WKUP_IRQHandler  
 | 
				
			||||||
        B RTC_WKUP_IRQHandler
 | 
					        B RTC_WKUP_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK FLASH_IRQHandler
 | 
					        PUBWEAK FLASH_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
FLASH_IRQHandler  
 | 
					FLASH_IRQHandler  
 | 
				
			||||||
        B FLASH_IRQHandler
 | 
					        B FLASH_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK RCC_IRQHandler
 | 
					        PUBWEAK RCC_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
RCC_IRQHandler  
 | 
					RCC_IRQHandler  
 | 
				
			||||||
        B RCC_IRQHandler
 | 
					        B RCC_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK EXTI0_IRQHandler
 | 
					        PUBWEAK EXTI0_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
EXTI0_IRQHandler  
 | 
					EXTI0_IRQHandler  
 | 
				
			||||||
        B EXTI0_IRQHandler
 | 
					        B EXTI0_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK EXTI1_IRQHandler
 | 
					        PUBWEAK EXTI1_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
EXTI1_IRQHandler  
 | 
					EXTI1_IRQHandler  
 | 
				
			||||||
        B EXTI1_IRQHandler
 | 
					        B EXTI1_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK EXTI2_IRQHandler
 | 
					        PUBWEAK EXTI2_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
EXTI2_IRQHandler  
 | 
					EXTI2_IRQHandler  
 | 
				
			||||||
        B EXTI2_IRQHandler
 | 
					        B EXTI2_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK EXTI3_IRQHandler
 | 
					        PUBWEAK EXTI3_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
EXTI3_IRQHandler
 | 
					EXTI3_IRQHandler
 | 
				
			||||||
        B EXTI3_IRQHandler
 | 
					        B EXTI3_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK EXTI4_IRQHandler
 | 
					        PUBWEAK EXTI4_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
EXTI4_IRQHandler  
 | 
					EXTI4_IRQHandler  
 | 
				
			||||||
        B EXTI4_IRQHandler
 | 
					        B EXTI4_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA1_Stream0_IRQHandler
 | 
					        PUBWEAK DMA1_Stream0_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA1_Stream0_IRQHandler  
 | 
					DMA1_Stream0_IRQHandler  
 | 
				
			||||||
        B DMA1_Stream0_IRQHandler
 | 
					        B DMA1_Stream0_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA1_Stream1_IRQHandler
 | 
					        PUBWEAK DMA1_Stream1_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA1_Stream1_IRQHandler  
 | 
					DMA1_Stream1_IRQHandler  
 | 
				
			||||||
        B DMA1_Stream1_IRQHandler
 | 
					        B DMA1_Stream1_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA1_Stream2_IRQHandler
 | 
					        PUBWEAK DMA1_Stream2_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA1_Stream2_IRQHandler  
 | 
					DMA1_Stream2_IRQHandler  
 | 
				
			||||||
        B DMA1_Stream2_IRQHandler
 | 
					        B DMA1_Stream2_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA1_Stream3_IRQHandler
 | 
					        PUBWEAK DMA1_Stream3_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA1_Stream3_IRQHandler  
 | 
					DMA1_Stream3_IRQHandler  
 | 
				
			||||||
        B DMA1_Stream3_IRQHandler
 | 
					        B DMA1_Stream3_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA1_Stream4_IRQHandler
 | 
					        PUBWEAK DMA1_Stream4_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA1_Stream4_IRQHandler  
 | 
					DMA1_Stream4_IRQHandler  
 | 
				
			||||||
        B DMA1_Stream4_IRQHandler
 | 
					        B DMA1_Stream4_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA1_Stream5_IRQHandler
 | 
					        PUBWEAK DMA1_Stream5_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA1_Stream5_IRQHandler  
 | 
					DMA1_Stream5_IRQHandler  
 | 
				
			||||||
        B DMA1_Stream5_IRQHandler
 | 
					        B DMA1_Stream5_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA1_Stream6_IRQHandler
 | 
					        PUBWEAK DMA1_Stream6_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA1_Stream6_IRQHandler  
 | 
					DMA1_Stream6_IRQHandler  
 | 
				
			||||||
        B DMA1_Stream6_IRQHandler
 | 
					        B DMA1_Stream6_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK ADC_IRQHandler
 | 
					        PUBWEAK ADC_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
ADC_IRQHandler  
 | 
					ADC_IRQHandler  
 | 
				
			||||||
        B ADC_IRQHandler
 | 
					        B ADC_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK EXTI9_5_IRQHandler
 | 
					        PUBWEAK EXTI9_5_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
EXTI9_5_IRQHandler  
 | 
					EXTI9_5_IRQHandler  
 | 
				
			||||||
        B EXTI9_5_IRQHandler
 | 
					        B EXTI9_5_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK TIM1_BRK_TIM9_IRQHandler
 | 
					        PUBWEAK TIM1_BRK_TIM9_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TIM1_BRK_TIM9_IRQHandler  
 | 
					TIM1_BRK_TIM9_IRQHandler  
 | 
				
			||||||
        B TIM1_BRK_TIM9_IRQHandler
 | 
					        B TIM1_BRK_TIM9_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK TIM1_UP_TIM10_IRQHandler
 | 
					        PUBWEAK TIM1_UP_TIM10_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TIM1_UP_TIM10_IRQHandler  
 | 
					TIM1_UP_TIM10_IRQHandler  
 | 
				
			||||||
        B TIM1_UP_TIM10_IRQHandler
 | 
					        B TIM1_UP_TIM10_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
 | 
					        PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TIM1_TRG_COM_TIM11_IRQHandler  
 | 
					TIM1_TRG_COM_TIM11_IRQHandler  
 | 
				
			||||||
        B TIM1_TRG_COM_TIM11_IRQHandler
 | 
					        B TIM1_TRG_COM_TIM11_IRQHandler
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        PUBWEAK TIM1_CC_IRQHandler
 | 
					        PUBWEAK TIM1_CC_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TIM1_CC_IRQHandler  
 | 
					TIM1_CC_IRQHandler  
 | 
				
			||||||
        B TIM1_CC_IRQHandler
 | 
					        B TIM1_CC_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK TIM2_IRQHandler
 | 
					        PUBWEAK TIM2_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TIM2_IRQHandler  
 | 
					TIM2_IRQHandler  
 | 
				
			||||||
        B TIM2_IRQHandler
 | 
					        B TIM2_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK TIM3_IRQHandler
 | 
					        PUBWEAK TIM3_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TIM3_IRQHandler  
 | 
					TIM3_IRQHandler  
 | 
				
			||||||
        B TIM3_IRQHandler
 | 
					        B TIM3_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK TIM4_IRQHandler
 | 
					        PUBWEAK TIM4_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TIM4_IRQHandler  
 | 
					TIM4_IRQHandler  
 | 
				
			||||||
        B TIM4_IRQHandler
 | 
					        B TIM4_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK I2C1_EV_IRQHandler
 | 
					        PUBWEAK I2C1_EV_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
I2C1_EV_IRQHandler  
 | 
					I2C1_EV_IRQHandler  
 | 
				
			||||||
        B I2C1_EV_IRQHandler
 | 
					        B I2C1_EV_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK I2C1_ER_IRQHandler
 | 
					        PUBWEAK I2C1_ER_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
I2C1_ER_IRQHandler  
 | 
					I2C1_ER_IRQHandler  
 | 
				
			||||||
        B I2C1_ER_IRQHandler
 | 
					        B I2C1_ER_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK I2C2_EV_IRQHandler
 | 
					        PUBWEAK I2C2_EV_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
I2C2_EV_IRQHandler  
 | 
					I2C2_EV_IRQHandler  
 | 
				
			||||||
        B I2C2_EV_IRQHandler
 | 
					        B I2C2_EV_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK I2C2_ER_IRQHandler
 | 
					        PUBWEAK I2C2_ER_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
I2C2_ER_IRQHandler  
 | 
					I2C2_ER_IRQHandler  
 | 
				
			||||||
        B I2C2_ER_IRQHandler
 | 
					        B I2C2_ER_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK SPI1_IRQHandler
 | 
					        PUBWEAK SPI1_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
SPI1_IRQHandler  
 | 
					SPI1_IRQHandler  
 | 
				
			||||||
        B SPI1_IRQHandler
 | 
					        B SPI1_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK SPI2_IRQHandler
 | 
					        PUBWEAK SPI2_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
SPI2_IRQHandler  
 | 
					SPI2_IRQHandler  
 | 
				
			||||||
        B SPI2_IRQHandler
 | 
					        B SPI2_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK USART1_IRQHandler
 | 
					        PUBWEAK USART1_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
USART1_IRQHandler  
 | 
					USART1_IRQHandler  
 | 
				
			||||||
        B USART1_IRQHandler
 | 
					        B USART1_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK USART2_IRQHandler
 | 
					        PUBWEAK USART2_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
USART2_IRQHandler  
 | 
					USART2_IRQHandler  
 | 
				
			||||||
        B USART2_IRQHandler
 | 
					        B USART2_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK EXTI15_10_IRQHandler
 | 
					        PUBWEAK EXTI15_10_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)   
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
EXTI15_10_IRQHandler  
 | 
					EXTI15_10_IRQHandler  
 | 
				
			||||||
        B EXTI15_10_IRQHandler
 | 
					        B EXTI15_10_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK RTC_Alarm_IRQHandler
 | 
					        PUBWEAK RTC_Alarm_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)   
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
RTC_Alarm_IRQHandler  
 | 
					RTC_Alarm_IRQHandler  
 | 
				
			||||||
        B RTC_Alarm_IRQHandler
 | 
					        B RTC_Alarm_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK OTG_FS_WKUP_IRQHandler
 | 
					        PUBWEAK OTG_FS_WKUP_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
OTG_FS_WKUP_IRQHandler  
 | 
					OTG_FS_WKUP_IRQHandler  
 | 
				
			||||||
        B OTG_FS_WKUP_IRQHandler
 | 
					        B OTG_FS_WKUP_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA1_Stream7_IRQHandler
 | 
					        PUBWEAK DMA1_Stream7_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA1_Stream7_IRQHandler  
 | 
					DMA1_Stream7_IRQHandler  
 | 
				
			||||||
        B DMA1_Stream7_IRQHandler
 | 
					        B DMA1_Stream7_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK SDIO_IRQHandler
 | 
					        PUBWEAK SDIO_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
SDIO_IRQHandler  
 | 
					SDIO_IRQHandler  
 | 
				
			||||||
        B SDIO_IRQHandler
 | 
					        B SDIO_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK TIM5_IRQHandler
 | 
					        PUBWEAK TIM5_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
TIM5_IRQHandler  
 | 
					TIM5_IRQHandler  
 | 
				
			||||||
        B TIM5_IRQHandler
 | 
					        B TIM5_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK SPI3_IRQHandler
 | 
					        PUBWEAK SPI3_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
SPI3_IRQHandler  
 | 
					SPI3_IRQHandler  
 | 
				
			||||||
        B SPI3_IRQHandler
 | 
					        B SPI3_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA2_Stream0_IRQHandler
 | 
					        PUBWEAK DMA2_Stream0_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA2_Stream0_IRQHandler  
 | 
					DMA2_Stream0_IRQHandler  
 | 
				
			||||||
        B DMA2_Stream0_IRQHandler
 | 
					        B DMA2_Stream0_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA2_Stream1_IRQHandler
 | 
					        PUBWEAK DMA2_Stream1_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA2_Stream1_IRQHandler  
 | 
					DMA2_Stream1_IRQHandler  
 | 
				
			||||||
        B DMA2_Stream1_IRQHandler
 | 
					        B DMA2_Stream1_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA2_Stream2_IRQHandler
 | 
					        PUBWEAK DMA2_Stream2_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA2_Stream2_IRQHandler  
 | 
					DMA2_Stream2_IRQHandler  
 | 
				
			||||||
        B DMA2_Stream2_IRQHandler
 | 
					        B DMA2_Stream2_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA2_Stream3_IRQHandler
 | 
					        PUBWEAK DMA2_Stream3_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA2_Stream3_IRQHandler  
 | 
					DMA2_Stream3_IRQHandler  
 | 
				
			||||||
        B DMA2_Stream3_IRQHandler
 | 
					        B DMA2_Stream3_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA2_Stream4_IRQHandler
 | 
					        PUBWEAK DMA2_Stream4_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA2_Stream4_IRQHandler  
 | 
					DMA2_Stream4_IRQHandler  
 | 
				
			||||||
        B DMA2_Stream4_IRQHandler
 | 
					        B DMA2_Stream4_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK OTG_FS_IRQHandler
 | 
					        PUBWEAK OTG_FS_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
OTG_FS_IRQHandler  
 | 
					OTG_FS_IRQHandler  
 | 
				
			||||||
        B OTG_FS_IRQHandler
 | 
					        B OTG_FS_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA2_Stream5_IRQHandler
 | 
					        PUBWEAK DMA2_Stream5_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA2_Stream5_IRQHandler  
 | 
					DMA2_Stream5_IRQHandler  
 | 
				
			||||||
        B DMA2_Stream5_IRQHandler
 | 
					        B DMA2_Stream5_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA2_Stream6_IRQHandler
 | 
					        PUBWEAK DMA2_Stream6_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA2_Stream6_IRQHandler  
 | 
					DMA2_Stream6_IRQHandler  
 | 
				
			||||||
        B DMA2_Stream6_IRQHandler
 | 
					        B DMA2_Stream6_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK DMA2_Stream7_IRQHandler
 | 
					        PUBWEAK DMA2_Stream7_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)    
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
DMA2_Stream7_IRQHandler  
 | 
					DMA2_Stream7_IRQHandler  
 | 
				
			||||||
        B DMA2_Stream7_IRQHandler
 | 
					        B DMA2_Stream7_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK USART6_IRQHandler
 | 
					        PUBWEAK USART6_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
USART6_IRQHandler  
 | 
					USART6_IRQHandler  
 | 
				
			||||||
        B USART6_IRQHandler
 | 
					        B USART6_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK I2C3_EV_IRQHandler
 | 
					        PUBWEAK I2C3_EV_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
I2C3_EV_IRQHandler  
 | 
					I2C3_EV_IRQHandler  
 | 
				
			||||||
        B I2C3_EV_IRQHandler
 | 
					        B I2C3_EV_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK I2C3_ER_IRQHandler
 | 
					        PUBWEAK I2C3_ER_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
I2C3_ER_IRQHandler  
 | 
					I2C3_ER_IRQHandler  
 | 
				
			||||||
        B I2C3_ER_IRQHandler
 | 
					        B I2C3_ER_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK FPU_IRQHandler
 | 
					        PUBWEAK FPU_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)  
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
FPU_IRQHandler  
 | 
					FPU_IRQHandler  
 | 
				
			||||||
        B FPU_IRQHandler
 | 
					        B FPU_IRQHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK SPI4_IRQHandler
 | 
					        PUBWEAK SPI4_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER(1)
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
				
			||||||
SPI4_IRQHandler  
 | 
					SPI4_IRQHandler  
 | 
				
			||||||
        B SPI4_IRQHandler
 | 
					        B SPI4_IRQHandler
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f401xe.h
 | 
					  * @file    stm32f401xe.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F401xE Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F401xE Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -656,7 +656,6 @@ typedef struct
 | 
				
			||||||
#define FLASH_BASE            0x08000000U /*!< FLASH(up to 1 MB) base address in the alias region                         */
 | 
					#define FLASH_BASE            0x08000000U /*!< FLASH(up to 1 MB) base address in the alias region                         */
 | 
				
			||||||
#define SRAM1_BASE            0x20000000U /*!< SRAM1(96 KB) base address in the alias region                              */
 | 
					#define SRAM1_BASE            0x20000000U /*!< SRAM1(96 KB) base address in the alias region                              */
 | 
				
			||||||
#define PERIPH_BASE           0x40000000U /*!< Peripheral base address in the alias region                                */
 | 
					#define PERIPH_BASE           0x40000000U /*!< Peripheral base address in the alias region                                */
 | 
				
			||||||
#define BKPSRAM_BASE          0x40024000U /*!< Backup SRAM(4 KB) base address in the alias region                         */
 | 
					 | 
				
			||||||
#define SRAM1_BB_BASE         0x22000000U /*!< SRAM1(96 KB) base address in the bit-band region                           */
 | 
					#define SRAM1_BB_BASE         0x22000000U /*!< SRAM1(96 KB) base address in the bit-band region                           */
 | 
				
			||||||
#define PERIPH_BB_BASE        0x42000000U /*!< Peripheral base address in the bit-band region                             */
 | 
					#define PERIPH_BB_BASE        0x42000000U /*!< Peripheral base address in the bit-band region                             */
 | 
				
			||||||
#define BKPSRAM_BB_BASE       0x42480000U /*!< Backup SRAM(4 KB) base address in the bit-band region                      */
 | 
					#define BKPSRAM_BB_BASE       0x42480000U /*!< Backup SRAM(4 KB) base address in the bit-band region                      */
 | 
				
			||||||
| 
						 | 
					@ -6679,7 +6678,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -7514,92 +7513,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -8245,6 +8158,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f407xx.s
 | 
					  * @file      startup_stm32f407xx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.3.0
 | 
					  * @brief     STM32F407xx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  * @date      02-March-2015
 | 
					 | 
				
			||||||
  * @brief     STM32F407xx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
					 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
  *                - Set the initial PC == Reset_Handler,
 | 
					  *                - Set the initial PC == Reset_Handler,
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f407xx.h
 | 
					  * @file    stm32f407xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F407xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F407xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -174,9 +174,11 @@ typedef enum
 | 
				
			||||||
  OTG_HS_WKUP_IRQn            = 76,     /*!< USB OTG HS Wakeup through EXTI interrupt                          */
 | 
					  OTG_HS_WKUP_IRQn            = 76,     /*!< USB OTG HS Wakeup through EXTI interrupt                          */
 | 
				
			||||||
  OTG_HS_IRQn                 = 77,     /*!< USB OTG HS global interrupt                                       */
 | 
					  OTG_HS_IRQn                 = 77,     /*!< USB OTG HS global interrupt                                       */
 | 
				
			||||||
  DCMI_IRQn                   = 78,     /*!< DCMI global interrupt                                             */
 | 
					  DCMI_IRQn                   = 78,     /*!< DCMI global interrupt                                             */
 | 
				
			||||||
  HASH_RNG_IRQn               = 80,     /*!< Hash and Rng global interrupt                                     */
 | 
					  RNG_IRQn                    = 80,     /*!< RNG global Interrupt                                              */
 | 
				
			||||||
  FPU_IRQn                    = 81      /*!< FPU global interrupt                                               */
 | 
					  FPU_IRQn                    = 81      /*!< FPU global interrupt                                               */
 | 
				
			||||||
} IRQn_Type;
 | 
					} IRQn_Type;
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					#define  HASH_RNG_IRQn      RNG_IRQn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -12543,7 +12545,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -14355,92 +14357,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -15086,6 +15002,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,23 +2,21 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
  *          is using in the C source code, usually in main.c. This file contains:
 | 
					  *          is using in the C source code, usually in main.c. This file contains:
 | 
				
			||||||
  *           - Configuration section that allows to select:
 | 
					  *           - Configuration section that allows to select:
 | 
				
			||||||
  *              - The STM32F4xx device used in the target application
 | 
					  *              - The STM32F4xx device used in the target application
 | 
				
			||||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
					  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
				
			||||||
  *                code will be based on direct access to peripheral’s registers 
 | 
					  *                code will be based on direct access to peripheral's registers 
 | 
				
			||||||
  *                rather than drivers API), this option is controlled by 
 | 
					  *                rather than drivers API), this option is controlled by 
 | 
				
			||||||
  *                "#define USE_HAL_DRIVER"
 | 
					  *                "#define USE_HAL_DRIVER"
 | 
				
			||||||
  *  
 | 
					  *  
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -92,6 +90,9 @@
 | 
				
			||||||
                                   STM32F439NI, STM32F439IG and STM32F439II Devices */
 | 
					                                   STM32F439NI, STM32F439IG and STM32F439II Devices */
 | 
				
			||||||
  /* #define STM32F401xC */   /*!< STM32F401CB, STM32F401CC, STM32F401RB, STM32F401RC, STM32F401VB and STM32F401VC Devices */
 | 
					  /* #define STM32F401xC */   /*!< STM32F401CB, STM32F401CC, STM32F401RB, STM32F401RC, STM32F401VB and STM32F401VC Devices */
 | 
				
			||||||
  /* #define STM32F401xE */   /*!< STM32F401CD, STM32F401RD, STM32F401VD, STM32F401CE, STM32F401RE and STM32F401VE Devices */
 | 
					  /* #define STM32F401xE */   /*!< STM32F401CD, STM32F401RD, STM32F401VD, STM32F401CE, STM32F401RE and STM32F401VE Devices */
 | 
				
			||||||
 | 
					  /* #define STM32F410Tx */   /*!< STM32F410T8 and STM32F410TB Devices */
 | 
				
			||||||
 | 
					  /* #define STM32F410Cx */   /*!< STM32F410C8 and STM32F410CB Devices */
 | 
				
			||||||
 | 
					  /* #define STM32F410Rx */   /*!< STM32F410R8 and STM32F410RB Devices */
 | 
				
			||||||
  /* #define STM32F411xE */   /*!< STM32F411CC, STM32F411RC, STM32F411VC, STM32F411CE, STM32F411RE and STM32F411VE Devices */
 | 
					  /* #define STM32F411xE */   /*!< STM32F411CC, STM32F411RC, STM32F411VC, STM32F411CE, STM32F411RE and STM32F411VE Devices */
 | 
				
			||||||
  /* #define STM32F446xx */   /*!< STM32F446MC, STM32F446ME, STM32F446RC, STM32F446RE, STM32F446VC, STM32F446VE, STM32F446ZC, 
 | 
					  /* #define STM32F446xx */   /*!< STM32F446MC, STM32F446ME, STM32F446RC, STM32F446RE, STM32F446VC, STM32F446VE, STM32F446ZC, 
 | 
				
			||||||
                                   and STM32F446ZE Devices */
 | 
					                                   and STM32F446ZE Devices */
 | 
				
			||||||
| 
						 | 
					@ -121,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					@ -199,20 +200,20 @@
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
typedef enum 
 | 
					typedef enum 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  RESET = 0, 
 | 
					  RESET = 0U, 
 | 
				
			||||||
  SET = !RESET
 | 
					  SET = !RESET
 | 
				
			||||||
} FlagStatus, ITStatus;
 | 
					} FlagStatus, ITStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef enum 
 | 
					typedef enum 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  DISABLE = 0, 
 | 
					  DISABLE = 0U, 
 | 
				
			||||||
  ENABLE = !DISABLE
 | 
					  ENABLE = !DISABLE
 | 
				
			||||||
} FunctionalState;
 | 
					} FunctionalState;
 | 
				
			||||||
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
 | 
					#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef enum 
 | 
					typedef enum 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  ERROR = 0, 
 | 
					  ERROR = 0U, 
 | 
				
			||||||
  SUCCESS = !ERROR
 | 
					  SUCCESS = !ERROR
 | 
				
			||||||
} ErrorStatus;
 | 
					} ErrorStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,13 +2,11 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f410rx.s
 | 
					;* File Name          : startup_stm32f410rx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.1
 | 
					 | 
				
			||||||
;* Date               : 09-October-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F410Rx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F410Rx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f410rx.s
 | 
					;* File Name          : startup_stm32f410rx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.1
 | 
					 | 
				
			||||||
;* Date               : 09-October-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F410Rx devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F410Rx devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f410rx.s
 | 
					  * @file      startup_stm32f410rx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.4.1
 | 
					 | 
				
			||||||
  * @date      09-October-2015
 | 
					 | 
				
			||||||
  * @brief     STM32F410Rx Devices vector table for GCC based toolchains. 
 | 
					  * @brief     STM32F410Rx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f410rx.s
 | 
					;* File Name          : startup_stm32f410rx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.1
 | 
					 | 
				
			||||||
;* Date               : 09-October-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F410Rx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F410Rx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f410rx.h
 | 
					  * @file    stm32f410rx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F410Rx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F410Rx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -4199,9 +4199,15 @@ typedef struct
 | 
				
			||||||
#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
					#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
				
			||||||
#define PWR_CSR_BRR_Msk        (0x1U << PWR_CSR_BRR_Pos)                       /*!< 0x00000008 */
 | 
					#define PWR_CSR_BRR_Msk        (0x1U << PWR_CSR_BRR_Pos)                       /*!< 0x00000008 */
 | 
				
			||||||
#define PWR_CSR_BRR            PWR_CSR_BRR_Msk                                 /*!< Backup regulator ready                           */
 | 
					#define PWR_CSR_BRR            PWR_CSR_BRR_Msk                                 /*!< Backup regulator ready                           */
 | 
				
			||||||
#define PWR_CSR_EWUP_Pos       (8U)                                            
 | 
					#define PWR_CSR_EWUP3_Pos      (6U)                                            
 | 
				
			||||||
#define PWR_CSR_EWUP_Msk       (0x1U << PWR_CSR_EWUP_Pos)                      /*!< 0x00000100 */
 | 
					#define PWR_CSR_EWUP3_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000040 */
 | 
				
			||||||
#define PWR_CSR_EWUP           PWR_CSR_EWUP_Msk                                /*!< Enable WKUP pin                                  */
 | 
					#define PWR_CSR_EWUP3          PWR_CSR_EWUP3_Msk                               /*!< Enable WKUP pin 3                                */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2_Pos      (7U)                                            
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2_Msk      (0x1U << PWR_CSR_EWUP2_Pos)                     /*!< 0x00000080 */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2          PWR_CSR_EWUP2_Msk                               /*!< Enable WKUP pin 2                                */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1_Pos      (8U)                                            
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000100 */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1          PWR_CSR_EWUP1_Msk                               /*!< Enable WKUP pin 1                                */
 | 
				
			||||||
#define PWR_CSR_BRE_Pos        (9U)                                            
 | 
					#define PWR_CSR_BRE_Pos        (9U)                                            
 | 
				
			||||||
#define PWR_CSR_BRE_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
					#define PWR_CSR_BRE_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
				
			||||||
#define PWR_CSR_BRE            PWR_CSR_BRE_Msk                                 /*!< Backup regulator enable                          */
 | 
					#define PWR_CSR_BRE            PWR_CSR_BRE_Msk                                 /*!< Backup regulator enable                          */
 | 
				
			||||||
| 
						 | 
					@ -6789,7 +6795,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -7043,7 +7049,6 @@ typedef struct
 | 
				
			||||||
#define DBGMCU_APB2_FZ_DBG_TIM11_STOP_Pos            (18U)                     
 | 
					#define DBGMCU_APB2_FZ_DBG_TIM11_STOP_Pos            (18U)                     
 | 
				
			||||||
#define DBGMCU_APB2_FZ_DBG_TIM11_STOP_Msk            (0x1U << DBGMCU_APB2_FZ_DBG_TIM11_STOP_Pos) /*!< 0x00040000 */
 | 
					#define DBGMCU_APB2_FZ_DBG_TIM11_STOP_Msk            (0x1U << DBGMCU_APB2_FZ_DBG_TIM11_STOP_Pos) /*!< 0x00040000 */
 | 
				
			||||||
#define DBGMCU_APB2_FZ_DBG_TIM11_STOP                DBGMCU_APB2_FZ_DBG_TIM11_STOP_Msk 
 | 
					#define DBGMCU_APB2_FZ_DBG_TIM11_STOP                DBGMCU_APB2_FZ_DBG_TIM11_STOP_Msk 
 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,23 +2,21 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
  *          is using in the C source code, usually in main.c. This file contains:
 | 
					  *          is using in the C source code, usually in main.c. This file contains:
 | 
				
			||||||
  *           - Configuration section that allows to select:
 | 
					  *           - Configuration section that allows to select:
 | 
				
			||||||
  *              - The STM32F4xx device used in the target application
 | 
					  *              - The STM32F4xx device used in the target application
 | 
				
			||||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
					  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
				
			||||||
  *                code will be based on direct access to peripheral’s registers 
 | 
					  *                code will be based on direct access to peripheral's registers 
 | 
				
			||||||
  *                rather than drivers API), this option is controlled by 
 | 
					  *                rather than drivers API), this option is controlled by 
 | 
				
			||||||
  *                "#define USE_HAL_DRIVER"
 | 
					  *                "#define USE_HAL_DRIVER"
 | 
				
			||||||
  *  
 | 
					  *  
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					@ -202,20 +200,20 @@
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
typedef enum 
 | 
					typedef enum 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  RESET = 0, 
 | 
					  RESET = 0U, 
 | 
				
			||||||
  SET = !RESET
 | 
					  SET = !RESET
 | 
				
			||||||
} FlagStatus, ITStatus;
 | 
					} FlagStatus, ITStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef enum 
 | 
					typedef enum 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  DISABLE = 0, 
 | 
					  DISABLE = 0U, 
 | 
				
			||||||
  ENABLE = !DISABLE
 | 
					  ENABLE = !DISABLE
 | 
				
			||||||
} FunctionalState;
 | 
					} FunctionalState;
 | 
				
			||||||
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
 | 
					#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef enum 
 | 
					typedef enum 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  ERROR = 0, 
 | 
					  ERROR = 0U, 
 | 
				
			||||||
  SUCCESS = !ERROR
 | 
					  SUCCESS = !ERROR
 | 
				
			||||||
} ErrorStatus;
 | 
					} ErrorStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,13 +2,11 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f411xe.s
 | 
					  * @file      startup_stm32f411xe.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.3.0
 | 
					  * @brief     STM32F411xExx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  * @date      02-March-2015
 | 
					 | 
				
			||||||
  * @brief     STM32F411xExx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
					 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
  *                - Set the initial PC == Reset_Handler,
 | 
					  *                - Set the initial PC == Reset_Handler,
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f411xe.s
 | 
					;* File Name          : startup_stm32f411xe.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f411xe.h
 | 
					  * @file    stm32f411xe.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F411xE Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F411xE Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -657,7 +657,6 @@ typedef struct
 | 
				
			||||||
#define FLASH_BASE            0x08000000U /*!< FLASH(up to 1 MB) base address in the alias region                         */
 | 
					#define FLASH_BASE            0x08000000U /*!< FLASH(up to 1 MB) base address in the alias region                         */
 | 
				
			||||||
#define SRAM1_BASE            0x20000000U /*!< SRAM1(128 KB) base address in the alias region                             */
 | 
					#define SRAM1_BASE            0x20000000U /*!< SRAM1(128 KB) base address in the alias region                             */
 | 
				
			||||||
#define PERIPH_BASE           0x40000000U /*!< Peripheral base address in the alias region                                */
 | 
					#define PERIPH_BASE           0x40000000U /*!< Peripheral base address in the alias region                                */
 | 
				
			||||||
#define BKPSRAM_BASE          0x40024000U /*!< Backup SRAM(4 KB) base address in the alias region                         */
 | 
					 | 
				
			||||||
#define SRAM1_BB_BASE         0x22000000U /*!< SRAM1(128 KB) base address in the bit-band region                          */
 | 
					#define SRAM1_BB_BASE         0x22000000U /*!< SRAM1(128 KB) base address in the bit-band region                          */
 | 
				
			||||||
#define PERIPH_BB_BASE        0x42000000U /*!< Peripheral base address in the bit-band region                             */
 | 
					#define PERIPH_BB_BASE        0x42000000U /*!< Peripheral base address in the bit-band region                             */
 | 
				
			||||||
#define BKPSRAM_BB_BASE       0x42480000U /*!< Backup SRAM(4 KB) base address in the bit-band region                      */
 | 
					#define BKPSRAM_BB_BASE       0x42480000U /*!< Backup SRAM(4 KB) base address in the bit-band region                      */
 | 
				
			||||||
| 
						 | 
					@ -6710,7 +6709,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -7545,92 +7544,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -8276,6 +8189,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f412zx.s
 | 
					;* File Name          : startup_stm32f412zx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.5.1
 | 
					 | 
				
			||||||
;* Date               : 28-June-2016
 | 
					 | 
				
			||||||
;* Description        : STM32F412Zx devices vector table for MDK-ARM toolchain. 
 | 
					;* Description        : STM32F412Zx devices vector table for MDK-ARM toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f412zx.s
 | 
					;* File Name          : startup_stm32f412zx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.5.1
 | 
					 | 
				
			||||||
;* Date               : 28-June-2016
 | 
					 | 
				
			||||||
;* Description        : STM32F412Zx devices vector table for MDK-ARM toolchain. 
 | 
					;* Description        : STM32F412Zx devices vector table for MDK-ARM toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f412zx.s
 | 
					  * @file      startup_stm32f412zx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.5.1
 | 
					 | 
				
			||||||
  * @date      28-June-2016
 | 
					 | 
				
			||||||
  * @brief     STM32F412Zx Devices vector table for GCC based toolchains. 
 | 
					  * @brief     STM32F412Zx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2016 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f412zx.s
 | 
					;* File Name          : startup_stm32f412zx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.5.1
 | 
					 | 
				
			||||||
;* Date               : 28-June-2016
 | 
					 | 
				
			||||||
;* Description        : STM32F412Zx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F412Zx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f412zx.h
 | 
					  * @file    stm32f412zx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F412Zx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F412Zx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -8966,9 +8966,15 @@ typedef struct
 | 
				
			||||||
#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
					#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
				
			||||||
#define PWR_CSR_BRR_Msk        (0x1U << PWR_CSR_BRR_Pos)                       /*!< 0x00000008 */
 | 
					#define PWR_CSR_BRR_Msk        (0x1U << PWR_CSR_BRR_Pos)                       /*!< 0x00000008 */
 | 
				
			||||||
#define PWR_CSR_BRR            PWR_CSR_BRR_Msk                                 /*!< Backup regulator ready                           */
 | 
					#define PWR_CSR_BRR            PWR_CSR_BRR_Msk                                 /*!< Backup regulator ready                           */
 | 
				
			||||||
#define PWR_CSR_EWUP_Pos       (8U)                                            
 | 
					#define PWR_CSR_EWUP3_Pos      (6U)                                            
 | 
				
			||||||
#define PWR_CSR_EWUP_Msk       (0x1U << PWR_CSR_EWUP_Pos)                      /*!< 0x00000100 */
 | 
					#define PWR_CSR_EWUP3_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000040 */
 | 
				
			||||||
#define PWR_CSR_EWUP           PWR_CSR_EWUP_Msk                                /*!< Enable WKUP pin                                  */
 | 
					#define PWR_CSR_EWUP3          PWR_CSR_EWUP3_Msk                               /*!< Enable WKUP pin 3                                */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2_Pos      (7U)                                            
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2_Msk      (0x1U << PWR_CSR_EWUP2_Pos)                     /*!< 0x00000080 */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2          PWR_CSR_EWUP2_Msk                               /*!< Enable WKUP pin 2                                */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1_Pos      (8U)                                            
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000100 */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1          PWR_CSR_EWUP1_Msk                               /*!< Enable WKUP pin 1                                */
 | 
				
			||||||
#define PWR_CSR_BRE_Pos        (9U)                                            
 | 
					#define PWR_CSR_BRE_Pos        (9U)                                            
 | 
				
			||||||
#define PWR_CSR_BRE_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
					#define PWR_CSR_BRE_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
				
			||||||
#define PWR_CSR_BRE            PWR_CSR_BRE_Msk                                 /*!< Backup regulator enable                          */
 | 
					#define PWR_CSR_BRE            PWR_CSR_BRE_Msk                                 /*!< Backup regulator enable                          */
 | 
				
			||||||
| 
						 | 
					@ -12320,7 +12326,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -13222,92 +13228,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -14015,6 +13935,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f413xx.s
 | 
					;* File Name          : startup_stm32f413xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.6.1
 | 
					 | 
				
			||||||
;* Date               : 14-February-2017
 | 
					 | 
				
			||||||
;* Description        : STM32F413xx devices vector table for MDK-ARM toolchain. 
 | 
					;* Description        : STM32F413xx devices vector table for MDK-ARM toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f413xx.s
 | 
					;* File Name          : startup_stm32f413xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.6.1
 | 
					 | 
				
			||||||
;* Date               : 14-February-2017
 | 
					 | 
				
			||||||
;* Description        : STM32F413xx devices vector table for MDK-ARM toolchain. 
 | 
					;* Description        : STM32F413xx devices vector table for MDK-ARM toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f413xx.s
 | 
					  * @file      startup_stm32f413xx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.6.1
 | 
					 | 
				
			||||||
  * @date      14-February-2017
 | 
					 | 
				
			||||||
  * @brief     STM32F413xx Devices vector table for GCC based toolchains. 
 | 
					  * @brief     STM32F413xx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f413xx.s
 | 
					;* File Name          : startup_stm32f413xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.6.1
 | 
					 | 
				
			||||||
;* Date               : 14-February-2017
 | 
					 | 
				
			||||||
;* Description        : STM32F413xx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F413xx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,14 +2,12 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f413xx.h
 | 
					  * @file    stm32f413xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F413xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F413xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
  *           - Data structures and the address mapping for all peripherals
 | 
					  *           - Data structures and the address mapping for all peripherals
 | 
				
			||||||
  *           - peripherals registers declarations and bits definition
 | 
					  *           - peripherals registers declarations and bits definition
 | 
				
			||||||
  *           - Macros to access peripheral’s registers hardware
 | 
					  *           - Macros to access peripheral's registers hardware
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -8883,9 +8883,15 @@ typedef struct
 | 
				
			||||||
#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
					#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
				
			||||||
#define PWR_CSR_BRR_Msk        (0x1U << PWR_CSR_BRR_Pos)                       /*!< 0x00000008 */
 | 
					#define PWR_CSR_BRR_Msk        (0x1U << PWR_CSR_BRR_Pos)                       /*!< 0x00000008 */
 | 
				
			||||||
#define PWR_CSR_BRR            PWR_CSR_BRR_Msk                                 /*!< Backup regulator ready                           */
 | 
					#define PWR_CSR_BRR            PWR_CSR_BRR_Msk                                 /*!< Backup regulator ready                           */
 | 
				
			||||||
#define PWR_CSR_EWUP_Pos       (8U)                                            
 | 
					#define PWR_CSR_EWUP3_Pos      (6U)                                            
 | 
				
			||||||
#define PWR_CSR_EWUP_Msk       (0x1U << PWR_CSR_EWUP_Pos)                      /*!< 0x00000100 */
 | 
					#define PWR_CSR_EWUP3_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000040 */
 | 
				
			||||||
#define PWR_CSR_EWUP           PWR_CSR_EWUP_Msk                                /*!< Enable WKUP pin                                  */
 | 
					#define PWR_CSR_EWUP3          PWR_CSR_EWUP3_Msk                               /*!< Enable WKUP pin 3                                */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2_Pos      (7U)                                            
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2_Msk      (0x1U << PWR_CSR_EWUP2_Pos)                     /*!< 0x00000080 */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP2          PWR_CSR_EWUP2_Msk                               /*!< Enable WKUP pin 2                                */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1_Pos      (8U)                                            
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000100 */
 | 
				
			||||||
 | 
					#define PWR_CSR_EWUP1          PWR_CSR_EWUP1_Msk                               /*!< Enable WKUP pin 1                                */
 | 
				
			||||||
#define PWR_CSR_BRE_Pos        (9U)                                            
 | 
					#define PWR_CSR_BRE_Pos        (9U)                                            
 | 
				
			||||||
#define PWR_CSR_BRE_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
					#define PWR_CSR_BRE_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
				
			||||||
#define PWR_CSR_BRE            PWR_CSR_BRE_Msk                                 /*!< Backup regulator enable                          */
 | 
					#define PWR_CSR_BRE            PWR_CSR_BRE_Msk                                 /*!< Backup regulator enable                          */
 | 
				
			||||||
| 
						 | 
					@ -12887,7 +12893,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -13795,92 +13801,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -14588,6 +14508,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,16 +2,14 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
  *          is using in the C source code, usually in main.c. This file contains:
 | 
					  *          is using in the C source code, usually in main.c. This file contains:
 | 
				
			||||||
  *           - Configuration section that allows to select:
 | 
					  *           - Configuration section that allows to select:
 | 
				
			||||||
  *              - The STM32F4xx device used in the target application
 | 
					  *              - The STM32F4xx device used in the target application
 | 
				
			||||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
					  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
				
			||||||
  *                code will be based on direct access to peripheral’s registers 
 | 
					  *                code will be based on direct access to peripheral's registers 
 | 
				
			||||||
  *                rather than drivers API), this option is controlled by 
 | 
					  *                rather than drivers API), this option is controlled by 
 | 
				
			||||||
  *                "#define USE_HAL_DRIVER"
 | 
					  *                "#define USE_HAL_DRIVER"
 | 
				
			||||||
  *  
 | 
					  *  
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f429xx.s
 | 
					;* File Name          : startup_stm32f429xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.0
 | 
					 | 
				
			||||||
;* Date               : 14-August-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F429x devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F429x devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f429xx.s
 | 
					;* File Name          : startup_stm32f429xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.0
 | 
					 | 
				
			||||||
;* Date               : 14-August-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F429x devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F429x devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f429xx.s
 | 
					  * @file      startup_stm32f429xx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.3.0
 | 
					  * @brief     STM32F429xx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  * @date      02-March-2015 
 | 
					 | 
				
			||||||
  * @brief     STM32F429xx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
					 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
  *                - Set the initial PC == Reset_Handler,
 | 
					  *                - Set the initial PC == Reset_Handler,
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl SystemInitPre
 | 
					  bl SystemInitPre
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f429xx.s
 | 
					;* File Name          : startup_stm32f429xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.0
 | 
					 | 
				
			||||||
;* Date               : 14-August-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F429xx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F429xx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f429xx.h
 | 
					  * @file    stm32f429xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F429xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F429xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -14097,7 +14097,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -15909,92 +15909,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -16640,6 +16554,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f437xx.s
 | 
					;* File Name          : startup_stm32f437xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.0
 | 
					 | 
				
			||||||
;* Date               : 14-August-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F437x devices vector table for MDK-ARM_STD toolchain.
 | 
					;* Description        : STM32F437x devices vector table for MDK-ARM_STD toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f437xx.s
 | 
					  * @file      startup_stm32f437xx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.6.0
 | 
					 | 
				
			||||||
  * @date      04-November-2016
 | 
					 | 
				
			||||||
  * @brief     STM32F437xx Devices vector table for GCC based toolchains.
 | 
					  * @brief     STM32F437xx Devices vector table for GCC based toolchains.
 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2016 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -95,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit
 | 
					  bl  SystemInit
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f437xx.s
 | 
					;* File Name          : startup_stm32f437xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.1.0
 | 
					 | 
				
			||||||
;* Date               : 19-June-2014
 | 
					 | 
				
			||||||
;* Description        : STM32F437xx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F437xx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f437xx.h
 | 
					  * @file    stm32f437xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F437xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F437xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -14037,7 +14037,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -15849,92 +15849,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -16580,6 +16494,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,16 +2,14 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
  *          is using in the C source code, usually in main.c. This file contains:
 | 
					  *          is using in the C source code, usually in main.c. This file contains:
 | 
				
			||||||
  *           - Configuration section that allows to select:
 | 
					  *           - Configuration section that allows to select:
 | 
				
			||||||
  *              - The STM32F4xx device used in the target application
 | 
					  *              - The STM32F4xx device used in the target application
 | 
				
			||||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
					  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
				
			||||||
  *                code will be based on direct access to peripheral’s registers 
 | 
					  *                code will be based on direct access to peripheral's registers 
 | 
				
			||||||
  *                rather than drivers API), this option is controlled by 
 | 
					  *                rather than drivers API), this option is controlled by 
 | 
				
			||||||
  *                "#define USE_HAL_DRIVER"
 | 
					  *                "#define USE_HAL_DRIVER"
 | 
				
			||||||
  *  
 | 
					  *  
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f439xx.s
 | 
					;* File Name          : startup_stm32f439xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.6.0
 | 
					 | 
				
			||||||
;* Date               : 04-November-2016
 | 
					 | 
				
			||||||
;* Description        : STM32F439x devices vector table for MDK-ARM toolchain. 
 | 
					;* Description        : STM32F439x devices vector table for MDK-ARM toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f439xx.s
 | 
					;* File Name          : startup_stm32f439xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.6.0
 | 
					 | 
				
			||||||
;* Date               : 04-November-2016
 | 
					 | 
				
			||||||
;* Description        : STM32F439x devices vector table for MDK-ARM toolchain. 
 | 
					;* Description        : STM32F439x devices vector table for MDK-ARM toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f439xx.s
 | 
					  * @file      startup_stm32f439xx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.6.0
 | 
					 | 
				
			||||||
  * @date      04-November-2016
 | 
					 | 
				
			||||||
  * @brief     STM32F439xx Devices vector table for GCC based toolchains. 
 | 
					  * @brief     STM32F439xx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2016 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f439xx.s
 | 
					;* File Name          : startup_stm32f439xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.6.0
 | 
					 | 
				
			||||||
;* Date               : 04-November-2016
 | 
					 | 
				
			||||||
;* Description        : STM32F439xx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F439xx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f439xx.h
 | 
					  * @file    stm32f439xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F439xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F439xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -14385,7 +14385,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -16197,92 +16197,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -16928,6 +16842,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f446xx.s
 | 
					;* File Name          : startup_stm32f446xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.3.2
 | 
					 | 
				
			||||||
;* Date               : 26-June-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F446x devices vector table for MDK-ARM_MICRO toolchain. 
 | 
					;* Description        : STM32F446x devices vector table for MDK-ARM_MICRO toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f446xx.s
 | 
					;* File Name          : startup_stm32f446xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.3.2
 | 
					 | 
				
			||||||
;* Date               : 26-June-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F446x devices vector table for MDK-ARM_STD toolchain. 
 | 
					;* Description        : STM32F446x devices vector table for MDK-ARM_STD toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f446xx.s
 | 
					  * @file      startup_stm32f446xx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.3.0
 | 
					  * @brief     STM32F446xx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  * @date      02-March-2015
 | 
					 | 
				
			||||||
  * @brief     STM32F446xx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
					 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
  *                - Set the initial PC == Reset_Handler,
 | 
					  *                - Set the initial PC == Reset_Handler,
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f446xx.s
 | 
					;* File Name          : startup_stm32f446xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.3.2
 | 
					 | 
				
			||||||
;* Date               : 26-June-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F446xx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F446xx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					@ -179,7 +177,7 @@ __vector_table
 | 
				
			||||||
        DCD     0                                 ; Reserved
 | 
					        DCD     0                                 ; Reserved
 | 
				
			||||||
        DCD     0                                 ; Reserved
 | 
					        DCD     0                                 ; Reserved
 | 
				
			||||||
        DCD     SAI2_IRQHandler                   ; SAI2
 | 
					        DCD     SAI2_IRQHandler                   ; SAI2
 | 
				
			||||||
        DCD     QuadSPI_IRQHandler                ; QuadSPI
 | 
					        DCD     QUADSPI_IRQHandler                ; QuadSPI
 | 
				
			||||||
        DCD     CEC_IRQHandler                    ; CEC
 | 
					        DCD     CEC_IRQHandler                    ; CEC
 | 
				
			||||||
        DCD     SPDIF_RX_IRQHandler               ; SPDIF RX
 | 
					        DCD     SPDIF_RX_IRQHandler               ; SPDIF RX
 | 
				
			||||||
        DCD     FMPI2C1_Event_IRQHandler          ; FMPI2C1 Event
 | 
					        DCD     FMPI2C1_Event_IRQHandler          ; FMPI2C1 Event
 | 
				
			||||||
| 
						 | 
					@ -648,10 +646,10 @@ SAI1_IRQHandler
 | 
				
			||||||
SAI2_IRQHandler 
 | 
					SAI2_IRQHandler 
 | 
				
			||||||
        B SAI2_IRQHandler                     
 | 
					        B SAI2_IRQHandler                     
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK QuadSPI_IRQHandler
 | 
					        PUBWEAK QUADSPI_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
QuadSPI_IRQHandler 
 | 
					QUADSPI_IRQHandler 
 | 
				
			||||||
        B QuadSPI_IRQHandler                 
 | 
					        B QUADSPI_IRQHandler                 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PUBWEAK CEC_IRQHandler
 | 
					        PUBWEAK CEC_IRQHandler
 | 
				
			||||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
					        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f446xx.h
 | 
					  * @file    stm32f446xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F446xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F446xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -13770,7 +13770,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -14674,92 +14674,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -15443,6 +15357,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f469xx.s
 | 
					;* File Name          : startup_stm32f469xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.1
 | 
					 | 
				
			||||||
;* Date               : 09-October-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F469x devices vector table for MDK-ARM toolchain. 
 | 
					;* Description        : STM32F469x devices vector table for MDK-ARM toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f469xx.s
 | 
					;* File Name          : startup_stm32f469xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.1
 | 
					 | 
				
			||||||
;* Date               : 09-October-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F469x devices vector table for MDK-ARM toolchain. 
 | 
					;* Description        : STM32F469x devices vector table for MDK-ARM toolchain. 
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file      startup_stm32f469xx.s
 | 
					  * @file      startup_stm32f469xx.s
 | 
				
			||||||
  * @author    MCD Application Team
 | 
					  * @author    MCD Application Team
 | 
				
			||||||
  * @version   V2.4.1
 | 
					 | 
				
			||||||
  * @date      09-October-2015
 | 
					 | 
				
			||||||
  * @brief     STM32F469xx Devices vector table for GCC based toolchains. 
 | 
					  * @brief     STM32F469xx Devices vector table for GCC based toolchains. 
 | 
				
			||||||
  *            This module performs:
 | 
					  *            This module performs:
 | 
				
			||||||
  *                - Set the initial SP
 | 
					  *                - Set the initial SP
 | 
				
			||||||
| 
						 | 
					@ -16,7 +14,7 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
 | 
					  * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
					  * Redistribution and use in source and binary forms, with or without modification,
 | 
				
			||||||
  * are permitted provided that the following conditions are met:
 | 
					  * are permitted provided that the following conditions are met:
 | 
				
			||||||
| 
						 | 
					@ -58,6 +56,10 @@ defined in linker script */
 | 
				
			||||||
.word  _sdata
 | 
					.word  _sdata
 | 
				
			||||||
/* end address for the .data section. defined in linker script */
 | 
					/* end address for the .data section. defined in linker script */
 | 
				
			||||||
.word  _edata
 | 
					.word  _edata
 | 
				
			||||||
 | 
					/* start address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _sbss
 | 
				
			||||||
 | 
					/* end address for the .bss section. defined in linker script */
 | 
				
			||||||
 | 
					.word  _ebss
 | 
				
			||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
					/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
				
			||||||
  adds  r2, r0, r1
 | 
					  adds  r2, r0, r1
 | 
				
			||||||
  cmp  r2, r3
 | 
					  cmp  r2, r3
 | 
				
			||||||
  bcc  CopyDataInit
 | 
					  bcc  CopyDataInit
 | 
				
			||||||
 | 
					  ldr  r2, =_sbss
 | 
				
			||||||
 | 
					  b  LoopFillZerobss
 | 
				
			||||||
 | 
					/* Zero fill the bss segment. */  
 | 
				
			||||||
 | 
					FillZerobss:
 | 
				
			||||||
 | 
					  movs  r3, #0
 | 
				
			||||||
 | 
					  str  r3, [r2], #4
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					LoopFillZerobss:
 | 
				
			||||||
 | 
					  ldr  r3, = _ebss
 | 
				
			||||||
 | 
					  cmp  r2, r3
 | 
				
			||||||
 | 
					  bcc  FillZerobss
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call the clock system intitialization function.*/
 | 
					/* Call the clock system intitialization function.*/
 | 
				
			||||||
  bl  SystemInit   
 | 
					  bl  SystemInit   
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
;/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
					;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
				
			||||||
;* File Name          : startup_stm32f469xx.s
 | 
					;* File Name          : startup_stm32f469xx.s
 | 
				
			||||||
;* Author             : MCD Application Team
 | 
					;* Author             : MCD Application Team
 | 
				
			||||||
;* Version            : V2.4.1
 | 
					 | 
				
			||||||
;* Date               : 09-October-2015
 | 
					 | 
				
			||||||
;* Description        : STM32F469xx devices vector table for EWARM toolchain.
 | 
					;* Description        : STM32F469xx devices vector table for EWARM toolchain.
 | 
				
			||||||
;*                      This module performs:
 | 
					;*                      This module performs:
 | 
				
			||||||
;*                      - Set the initial SP
 | 
					;*                      - Set the initial SP
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f469xx.h
 | 
					  * @file    stm32f469xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F469xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F469xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  *          This file contains:
 | 
					  *          This file contains:
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
					#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
				
			||||||
#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
					#define __NVIC_PRIO_BITS          4U       /*!< STM32F4XX uses 4 Bits for the Priority Levels */
 | 
				
			||||||
#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
					#define __Vendor_SysTickConfig    0U       /*!< Set to 1 if different SysTick Config is used  */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
#ifndef __FPU_PRESENT
 | 
					#ifndef __FPU_PRESENT
 | 
				
			||||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
					#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
				
			||||||
#endif /* __FPU_PRESENT */
 | 
					#endif /* __FPU_PRESENT */
 | 
				
			||||||
 | 
					/* MBED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
| 
						 | 
					@ -17113,7 +17113,7 @@ typedef struct
 | 
				
			||||||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
					#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
				
			||||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
					#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
				
			||||||
#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
					#define USART_CR1_TXEIE_Msk           (0x1U << USART_CR1_TXEIE_Pos)            /*!< 0x00000080 */
 | 
				
			||||||
#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_TXEIE               USART_CR1_TXEIE_Msk                      /*!<TXE Interrupt Enable                   */
 | 
				
			||||||
#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
					#define USART_CR1_PEIE_Pos            (8U)                                     
 | 
				
			||||||
#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
					#define USART_CR1_PEIE_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
				
			||||||
#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
					#define USART_CR1_PEIE                USART_CR1_PEIE_Msk                       /*!<PE Interrupt Enable                    */
 | 
				
			||||||
| 
						 | 
					@ -18970,92 +18970,6 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
					#define USB_OTG_DAINTMSK_OEPM_Msk                (0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos) /*!< 0xFFFF0000 */
 | 
				
			||||||
#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
					#define USB_OTG_DAINTMSK_OEPM                    USB_OTG_DAINTMSK_OEPM_Msk     /*!< OUT EP interrupt mask bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for OTG register  ********************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
					 | 
				
			||||||
#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Pos                         (15U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
					 | 
				
			||||||
#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
					 | 
				
			||||||
#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
					 | 
				
			||||||
#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
					 | 
				
			||||||
#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
					/********************  Bit definition for USB_OTG_GRXFSIZ register  ********************/
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
				
			||||||
#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
					#define USB_OTG_GRXFSIZ_RXFD_Msk                 (0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos) /*!< 0x0000FFFF */
 | 
				
			||||||
| 
						 | 
					@ -19739,6 +19653,48 @@ typedef struct
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP_Msk              (0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos) /*!< 0x00000010 */
 | 
				
			||||||
#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
					#define USB_OTG_PCGCCTL_PHYSUSP                  USB_OTG_PCGCCTL_PHYSUSP_Msk   /*!<Bit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Legacy define */
 | 
				
			||||||
 | 
					/********************  Bit definition for OTG register  ********************/
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_Msk                        (0xFU << USB_OTG_CHNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM                            USB_OTG_CHNUM_Msk             /*!< Channel number */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_0                          (0x1U << USB_OTG_CHNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_1                          (0x2U << USB_OTG_CHNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_2                          (0x4U << USB_OTG_CHNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_CHNUM_3                          (0x8U << USB_OTG_CHNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Pos                         (4U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT_Msk                         (0x7FFU << USB_OTG_BCNT_Pos)  /*!< 0x00007FF0 */
 | 
				
			||||||
 | 
					#define USB_OTG_BCNT                             USB_OTG_BCNT_Msk              /*!< Byte count */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Pos                         (15U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_Msk                         (0x3U << USB_OTG_DPID_Pos)    /*!< 0x00018000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID                             USB_OTG_DPID_Msk              /*!< Data PID */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_0                           (0x1U << USB_OTG_DPID_Pos)    /*!< 0x00008000 */
 | 
				
			||||||
 | 
					#define USB_OTG_DPID_1                           (0x2U << USB_OTG_DPID_Pos)    /*!< 0x00010000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Pos                       (17U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_Msk                       (0xFU << USB_OTG_PKTSTS_Pos)  /*!< 0x001E0000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS                           USB_OTG_PKTSTS_Msk            /*!< Packet status */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_0                         (0x1U << USB_OTG_PKTSTS_Pos)  /*!< 0x00020000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_1                         (0x2U << USB_OTG_PKTSTS_Pos)  /*!< 0x00040000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_2                         (0x4U << USB_OTG_PKTSTS_Pos)  /*!< 0x00080000 */
 | 
				
			||||||
 | 
					#define USB_OTG_PKTSTS_3                         (0x8U << USB_OTG_PKTSTS_Pos)  /*!< 0x00100000 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Pos                        (0U)                          
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_Msk                        (0xFU << USB_OTG_EPNUM_Pos)   /*!< 0x0000000F */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM                            USB_OTG_EPNUM_Msk             /*!< Endpoint number */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_0                          (0x1U << USB_OTG_EPNUM_Pos)   /*!< 0x00000001 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_1                          (0x2U << USB_OTG_EPNUM_Pos)   /*!< 0x00000002 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_2                          (0x4U << USB_OTG_EPNUM_Pos)   /*!< 0x00000004 */
 | 
				
			||||||
 | 
					#define USB_OTG_EPNUM_3                          (0x8U << USB_OTG_EPNUM_Pos)   /*!< 0x00000008 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Pos                       (21U)                         
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_Msk                       (0xFU << USB_OTG_FRMNUM_Pos)  /*!< 0x01E00000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM                           USB_OTG_FRMNUM_Msk            /*!< Frame number */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_0                         (0x1U << USB_OTG_FRMNUM_Pos)  /*!< 0x00200000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_1                         (0x2U << USB_OTG_FRMNUM_Pos)  /*!< 0x00400000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_2                         (0x4U << USB_OTG_FRMNUM_Pos)  /*!< 0x00800000 */
 | 
				
			||||||
 | 
					#define USB_OTG_FRMNUM_3                         (0x8U << USB_OTG_FRMNUM_Pos)  /*!< 0x01000000 */
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @}
 | 
					  * @}
 | 
				
			||||||
  */ 
 | 
					  */ 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    stm32f4xx.h
 | 
					  * @file    stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
					  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
				
			||||||
  *            
 | 
					  *            
 | 
				
			||||||
  *          The file is the unique include file that the application programmer
 | 
					  *          The file is the unique include file that the application programmer
 | 
				
			||||||
| 
						 | 
					@ -124,11 +122,11 @@
 | 
				
			||||||
#endif /* USE_HAL_DRIVER */
 | 
					#endif /* USE_HAL_DRIVER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief CMSIS version number V2.6.1
 | 
					  * @brief CMSIS version number V2.6.2
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_MAIN   (0x02U) /*!< [31:24] main version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB1   (0x06U) /*!< [23:16] sub1 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x01U) /*!< [15:8]  sub2 version */
 | 
					#define __STM32F4xx_CMSIS_VERSION_SUB2   (0x02U) /*!< [15:8]  sub2 version */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
					#define __STM32F4xx_CMSIS_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */
 | 
				
			||||||
#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
					#define __STM32F4xx_CMSIS_VERSION        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
				
			||||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
					                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,6 @@
 | 
				
			||||||
  ******************************************************************************
 | 
					  ******************************************************************************
 | 
				
			||||||
  * @file    system_stm32f4xx.h
 | 
					  * @file    system_stm32f4xx.h
 | 
				
			||||||
  * @author  MCD Application Team
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
  * @version V2.6.1
 | 
					 | 
				
			||||||
  * @date    14-February-2017
 | 
					 | 
				
			||||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
					  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
				
			||||||
  ******************************************************************************  
 | 
					  ******************************************************************************  
 | 
				
			||||||
  * @attention
 | 
					  * @attention
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue