mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Merge pull request #6112 from jeromecoutant/PR_CUBE_UPDATE_F4
STM32F4: Update ST HAL driver with CubeF4 v1.19.0pull/6125/head
						commit
						38b7ae0ef5
					
				| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f405xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F405xx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f405xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F405xx devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f405xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F405xx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,16 +2,14 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          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:
 | 
			
		||||
  *           - Configuration section that allows to select:
 | 
			
		||||
  *              - The STM32F4xx device used in the target application
 | 
			
		||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral’s registers 
 | 
			
		||||
  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral's registers 
 | 
			
		||||
  *                rather than drivers API), this option is controlled by 
 | 
			
		||||
  *                "#define USE_HAL_DRIVER"
 | 
			
		||||
  *  
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,9 +2,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f411xe.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.3.0
 | 
			
		||||
  * @date      02-March-2015
 | 
			
		||||
  * @brief     STM32F411xExx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
			
		||||
  * @brief     STM32F411xExx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,18 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
/* Call static constructors */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,9 +2,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f401xc.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.3.0
 | 
			
		||||
  * @date      02-March-2015
 | 
			
		||||
  * @brief     STM32F401xCxx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
			
		||||
  * @brief     STM32F401xCxx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f401xc.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F401xC Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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 SRAM1_BASE            0x20000000U /*!< SRAM1(64 KB) 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 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                      */
 | 
			
		||||
| 
						 | 
				
			
			@ -6679,7 +6678,7 @@ typedef struct
 | 
			
		|||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
			
		||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f401xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F401xe devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f401xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F401xe devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,9 +2,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f401xe.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.3.0
 | 
			
		||||
  * @date      02-March-2015
 | 
			
		||||
  * @brief     STM32F401xExx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
			
		||||
  * @brief     STM32F401xExx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f401xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.0.0
 | 
			
		||||
;* Date               : 18-February-2014
 | 
			
		||||
;* Description        : STM32F401xExx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -88,91 +86,91 @@ __vector_table
 | 
			
		|||
        DCD     SysTick_Handler           ; SysTick Handler
 | 
			
		||||
 | 
			
		||||
         ; External Interrupts
 | 
			
		||||
        DCD     WWDG_IRQHandler                   ; Window WatchDog                                        
 | 
			
		||||
        DCD     PVD_IRQHandler                    ; PVD through EXTI Line detection                        
 | 
			
		||||
        DCD     TAMP_STAMP_IRQHandler             ; Tamper and TimeStamps through the EXTI line            
 | 
			
		||||
        DCD     RTC_WKUP_IRQHandler               ; RTC Wakeup through the EXTI line                       
 | 
			
		||||
        DCD     FLASH_IRQHandler                  ; FLASH                                           
 | 
			
		||||
        DCD     RCC_IRQHandler                    ; RCC                                             
 | 
			
		||||
        DCD     EXTI0_IRQHandler                  ; EXTI Line0                                             
 | 
			
		||||
        DCD     EXTI1_IRQHandler                  ; EXTI Line1                                             
 | 
			
		||||
        DCD     EXTI2_IRQHandler                  ; EXTI Line2                                             
 | 
			
		||||
        DCD     EXTI3_IRQHandler                  ; EXTI Line3                                             
 | 
			
		||||
        DCD     EXTI4_IRQHandler                  ; EXTI Line4                                             
 | 
			
		||||
        DCD     DMA1_Stream0_IRQHandler           ; DMA1 Stream 0                                   
 | 
			
		||||
        DCD     DMA1_Stream1_IRQHandler           ; DMA1 Stream 1                                   
 | 
			
		||||
        DCD     DMA1_Stream2_IRQHandler           ; DMA1 Stream 2                                   
 | 
			
		||||
        DCD     DMA1_Stream3_IRQHandler           ; DMA1 Stream 3                                   
 | 
			
		||||
        DCD     DMA1_Stream4_IRQHandler           ; DMA1 Stream 4                                   
 | 
			
		||||
        DCD     DMA1_Stream5_IRQHandler           ; DMA1 Stream 5                                   
 | 
			
		||||
        DCD     DMA1_Stream6_IRQHandler           ; DMA1 Stream 6                                   
 | 
			
		||||
        DCD     ADC_IRQHandler                    ; ADC1                            
 | 
			
		||||
        DCD     0                                 ; Reserved                                               
 | 
			
		||||
        DCD     0                                 ; Reserved                                               
 | 
			
		||||
        DCD     0                                 ; Reserved                                               
 | 
			
		||||
        DCD     0                                 ; Reserved                                               
 | 
			
		||||
        DCD     EXTI9_5_IRQHandler                ; External Line[9:5]s                                    
 | 
			
		||||
        DCD     TIM1_BRK_TIM9_IRQHandler          ; TIM1 Break and TIM9                   
 | 
			
		||||
        DCD     TIM1_UP_TIM10_IRQHandler          ; TIM1 Update and TIM10                 
 | 
			
		||||
        DCD     TIM1_TRG_COM_TIM11_IRQHandler     ; TIM1 Trigger and Commutation and TIM11
 | 
			
		||||
        DCD     TIM1_CC_IRQHandler                ; TIM1 Capture Compare                                   
 | 
			
		||||
        DCD     TIM2_IRQHandler                   ; TIM2                                            
 | 
			
		||||
        DCD     TIM3_IRQHandler                   ; TIM3                                            
 | 
			
		||||
        DCD     TIM4_IRQHandler                   ; TIM4                                            
 | 
			
		||||
        DCD     I2C1_EV_IRQHandler                ; I2C1 Event                                             
 | 
			
		||||
        DCD     I2C1_ER_IRQHandler                ; I2C1 Error                                             
 | 
			
		||||
        DCD     I2C2_EV_IRQHandler                ; I2C2 Event                                             
 | 
			
		||||
        DCD     I2C2_ER_IRQHandler                ; I2C2 Error                                               
 | 
			
		||||
        DCD     SPI1_IRQHandler                   ; SPI1                                            
 | 
			
		||||
        DCD     SPI2_IRQHandler                   ; SPI2                                            
 | 
			
		||||
        DCD     USART1_IRQHandler                 ; USART1                                          
 | 
			
		||||
        DCD     USART2_IRQHandler                 ; USART2                                          
 | 
			
		||||
        DCD     0                                 ; Reserved                                         
 | 
			
		||||
        DCD     EXTI15_10_IRQHandler              ; External Line[15:10]s                                  
 | 
			
		||||
        DCD     RTC_Alarm_IRQHandler              ; RTC Alarm (A and B) through EXTI Line                  
 | 
			
		||||
        DCD     OTG_FS_WKUP_IRQHandler            ; USB OTG FS Wakeup through EXTI line                        
 | 
			
		||||
        DCD     0                                 ; Reserved                 
 | 
			
		||||
        DCD     0                                 ; Reserved                 
 | 
			
		||||
        DCD     WWDG_IRQHandler                   ; Window WatchDog
 | 
			
		||||
        DCD     PVD_IRQHandler                    ; PVD through EXTI Line detection
 | 
			
		||||
        DCD     TAMP_STAMP_IRQHandler             ; Tamper and TimeStamps through the EXTI line
 | 
			
		||||
        DCD     RTC_WKUP_IRQHandler               ; RTC Wakeup through the EXTI line
 | 
			
		||||
        DCD     FLASH_IRQHandler                  ; FLASH
 | 
			
		||||
        DCD     RCC_IRQHandler                    ; RCC
 | 
			
		||||
        DCD     EXTI0_IRQHandler                  ; EXTI Line0
 | 
			
		||||
        DCD     EXTI1_IRQHandler                  ; EXTI Line1
 | 
			
		||||
        DCD     EXTI2_IRQHandler                  ; EXTI Line2
 | 
			
		||||
        DCD     EXTI3_IRQHandler                  ; EXTI Line3
 | 
			
		||||
        DCD     EXTI4_IRQHandler                  ; EXTI Line4
 | 
			
		||||
        DCD     DMA1_Stream0_IRQHandler           ; DMA1 Stream 0
 | 
			
		||||
        DCD     DMA1_Stream1_IRQHandler           ; DMA1 Stream 1
 | 
			
		||||
        DCD     DMA1_Stream2_IRQHandler           ; DMA1 Stream 2
 | 
			
		||||
        DCD     DMA1_Stream3_IRQHandler           ; DMA1 Stream 3
 | 
			
		||||
        DCD     DMA1_Stream4_IRQHandler           ; DMA1 Stream 4
 | 
			
		||||
        DCD     DMA1_Stream5_IRQHandler           ; DMA1 Stream 5
 | 
			
		||||
        DCD     DMA1_Stream6_IRQHandler           ; DMA1 Stream 6
 | 
			
		||||
        DCD     ADC_IRQHandler                    ; ADC1
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     EXTI9_5_IRQHandler                ; External Line[9:5]s
 | 
			
		||||
        DCD     TIM1_BRK_TIM9_IRQHandler          ; TIM1 Break and TIM9
 | 
			
		||||
        DCD     TIM1_UP_TIM10_IRQHandler          ; TIM1 Update and TIM10
 | 
			
		||||
        DCD     TIM1_TRG_COM_TIM11_IRQHandler     ; TIM1 Trigger and Commutation and TIM11
 | 
			
		||||
        DCD     TIM1_CC_IRQHandler                ; TIM1 Capture Compare
 | 
			
		||||
        DCD     TIM2_IRQHandler                   ; TIM2
 | 
			
		||||
        DCD     TIM3_IRQHandler                   ; TIM3
 | 
			
		||||
        DCD     TIM4_IRQHandler                   ; TIM4
 | 
			
		||||
        DCD     I2C1_EV_IRQHandler                ; I2C1 Event
 | 
			
		||||
        DCD     I2C1_ER_IRQHandler                ; I2C1 Error
 | 
			
		||||
        DCD     I2C2_EV_IRQHandler                ; I2C2 Event
 | 
			
		||||
        DCD     I2C2_ER_IRQHandler                ; I2C2 Error
 | 
			
		||||
        DCD     SPI1_IRQHandler                   ; SPI1
 | 
			
		||||
        DCD     SPI2_IRQHandler                   ; SPI2
 | 
			
		||||
        DCD     USART1_IRQHandler                 ; USART1
 | 
			
		||||
        DCD     USART2_IRQHandler                 ; USART2
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     EXTI15_10_IRQHandler              ; External Line[15:10]s
 | 
			
		||||
        DCD     RTC_Alarm_IRQHandler              ; RTC Alarm (A and B) through EXTI Line
 | 
			
		||||
        DCD     OTG_FS_WKUP_IRQHandler            ; USB OTG FS Wakeup through EXTI line
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     DMA1_Stream7_IRQHandler           ; DMA1 Stream7
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     SDIO_IRQHandler                   ; SDIO
 | 
			
		||||
        DCD     TIM5_IRQHandler                   ; TIM5
 | 
			
		||||
        DCD     SPI3_IRQHandler                   ; SPI3
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     DMA2_Stream0_IRQHandler           ; DMA2 Stream 0
 | 
			
		||||
        DCD     DMA2_Stream1_IRQHandler           ; DMA2 Stream 1
 | 
			
		||||
        DCD     DMA2_Stream2_IRQHandler           ; DMA2 Stream 2
 | 
			
		||||
        DCD     DMA2_Stream3_IRQHandler           ; DMA2 Stream 3
 | 
			
		||||
        DCD     DMA2_Stream4_IRQHandler           ; DMA2 Stream 4
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     OTG_FS_IRQHandler                 ; USB OTG FS
 | 
			
		||||
        DCD     DMA2_Stream5_IRQHandler           ; DMA2 Stream 5
 | 
			
		||||
        DCD     DMA2_Stream6_IRQHandler           ; DMA2 Stream 6
 | 
			
		||||
        DCD     DMA2_Stream7_IRQHandler           ; DMA2 Stream 7
 | 
			
		||||
        DCD     USART6_IRQHandler                 ; USART6
 | 
			
		||||
        DCD     I2C3_EV_IRQHandler                ; I2C3 event
 | 
			
		||||
        DCD     I2C3_ER_IRQHandler                ; I2C3 error
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved                                 
 | 
			
		||||
        DCD     DMA1_Stream7_IRQHandler           ; DMA1 Stream7                                           
 | 
			
		||||
        DCD     0                                 ; Reserved                                            
 | 
			
		||||
        DCD     SDIO_IRQHandler                   ; SDIO                                            
 | 
			
		||||
        DCD     TIM5_IRQHandler                   ; TIM5                                            
 | 
			
		||||
        DCD     SPI3_IRQHandler                   ; SPI3                                            
 | 
			
		||||
        DCD     0                                 ; Reserved                                          
 | 
			
		||||
        DCD     0                                 ; Reserved                                          
 | 
			
		||||
        DCD     0                                 ; Reserved                   
 | 
			
		||||
        DCD     0                                 ; Reserved                  
 | 
			
		||||
        DCD     DMA2_Stream0_IRQHandler           ; DMA2 Stream 0                                   
 | 
			
		||||
        DCD     DMA2_Stream1_IRQHandler           ; DMA2 Stream 1                                   
 | 
			
		||||
        DCD     DMA2_Stream2_IRQHandler           ; DMA2 Stream 2                                   
 | 
			
		||||
        DCD     DMA2_Stream3_IRQHandler           ; DMA2 Stream 3                                   
 | 
			
		||||
        DCD     DMA2_Stream4_IRQHandler           ; DMA2 Stream 4                                   
 | 
			
		||||
        DCD     0                                 ; Reserved                                        
 | 
			
		||||
        DCD     0                                 ; Reserved                      
 | 
			
		||||
        DCD     0                                 ; Reserved                                               
 | 
			
		||||
        DCD     0                                 ; Reserved                                               
 | 
			
		||||
        DCD     0                                 ; Reserved                                              
 | 
			
		||||
        DCD     0                                 ; Reserved                                               
 | 
			
		||||
        DCD     OTG_FS_IRQHandler                 ; USB OTG FS                                      
 | 
			
		||||
        DCD     DMA2_Stream5_IRQHandler           ; DMA2 Stream 5                                   
 | 
			
		||||
        DCD     DMA2_Stream6_IRQHandler           ; DMA2 Stream 6                                   
 | 
			
		||||
        DCD     DMA2_Stream7_IRQHandler           ; DMA2 Stream 7                                   
 | 
			
		||||
        DCD     USART6_IRQHandler                 ; USART6                                           
 | 
			
		||||
        DCD     I2C3_EV_IRQHandler                ; I2C3 event                                             
 | 
			
		||||
        DCD     I2C3_ER_IRQHandler                ; I2C3 error                                             
 | 
			
		||||
        DCD     0                                 ; Reserved                     
 | 
			
		||||
        DCD     0                                 ; Reserved                      
 | 
			
		||||
        DCD     0                                 ; Reserved                         
 | 
			
		||||
        DCD     0                                 ; Reserved                                      
 | 
			
		||||
        DCD     0                                 ; Reserved                                          
 | 
			
		||||
        DCD     0                                 ; Reserved                                     
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     FPU_IRQHandler                    ; FPU
 | 
			
		||||
        DCD     0                                 ; Reserved                                          
 | 
			
		||||
        DCD     0                                 ; Reserved  
 | 
			
		||||
        DCD     SPI4_IRQHandler                   ; SPI4 
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     SPI4_IRQHandler                   ; SPI4
 | 
			
		||||
    
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
;;
 | 
			
		||||
| 
						 | 
				
			
			@ -180,7 +178,7 @@ __vector_table
 | 
			
		|||
;;
 | 
			
		||||
        THUMB
 | 
			
		||||
        PUBWEAK Reset_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(2)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(2)
 | 
			
		||||
Reset_Handler
 | 
			
		||||
 | 
			
		||||
        LDR     R0, =SystemInit
 | 
			
		||||
| 
						 | 
				
			
			@ -189,327 +187,327 @@ Reset_Handler
 | 
			
		|||
        BX      R0
 | 
			
		||||
 | 
			
		||||
        PUBWEAK NMI_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
NMI_Handler
 | 
			
		||||
        B NMI_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK HardFault_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
HardFault_Handler
 | 
			
		||||
        B HardFault_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK MemManage_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
MemManage_Handler
 | 
			
		||||
        B MemManage_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK BusFault_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
BusFault_Handler
 | 
			
		||||
        B BusFault_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK UsageFault_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
UsageFault_Handler
 | 
			
		||||
        B UsageFault_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SVC_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SVC_Handler
 | 
			
		||||
        B SVC_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DebugMon_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DebugMon_Handler
 | 
			
		||||
        B DebugMon_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK PendSV_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
PendSV_Handler
 | 
			
		||||
        B PendSV_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SysTick_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SysTick_Handler
 | 
			
		||||
        B SysTick_Handler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK WWDG_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
WWDG_IRQHandler  
 | 
			
		||||
        B WWDG_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK PVD_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
PVD_IRQHandler  
 | 
			
		||||
        B PVD_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TAMP_STAMP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TAMP_STAMP_IRQHandler  
 | 
			
		||||
        B TAMP_STAMP_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK RTC_WKUP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)  
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
RTC_WKUP_IRQHandler  
 | 
			
		||||
        B RTC_WKUP_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK FLASH_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
FLASH_IRQHandler  
 | 
			
		||||
        B FLASH_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK RCC_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
RCC_IRQHandler  
 | 
			
		||||
        B RCC_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK EXTI0_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI0_IRQHandler  
 | 
			
		||||
        B EXTI0_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK EXTI1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI1_IRQHandler  
 | 
			
		||||
        B EXTI1_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK EXTI2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI2_IRQHandler  
 | 
			
		||||
        B EXTI2_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK EXTI3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI3_IRQHandler
 | 
			
		||||
        B EXTI3_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK EXTI4_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI4_IRQHandler  
 | 
			
		||||
        B EXTI4_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA1_Stream0_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Stream0_IRQHandler  
 | 
			
		||||
        B DMA1_Stream0_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA1_Stream1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Stream1_IRQHandler  
 | 
			
		||||
        B DMA1_Stream1_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA1_Stream2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Stream2_IRQHandler  
 | 
			
		||||
        B DMA1_Stream2_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA1_Stream3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Stream3_IRQHandler  
 | 
			
		||||
        B DMA1_Stream3_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA1_Stream4_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Stream4_IRQHandler  
 | 
			
		||||
        B DMA1_Stream4_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA1_Stream5_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Stream5_IRQHandler  
 | 
			
		||||
        B DMA1_Stream5_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA1_Stream6_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Stream6_IRQHandler  
 | 
			
		||||
        B DMA1_Stream6_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK ADC_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
ADC_IRQHandler  
 | 
			
		||||
        B ADC_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK EXTI9_5_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1) 
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
EXTI9_5_IRQHandler  
 | 
			
		||||
        B EXTI9_5_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM1_BRK_TIM9_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM1_BRK_TIM9_IRQHandler  
 | 
			
		||||
        B TIM1_BRK_TIM9_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM1_UP_TIM10_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM1_UP_TIM10_IRQHandler  
 | 
			
		||||
        B TIM1_UP_TIM10_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM1_TRG_COM_TIM11_IRQHandler  
 | 
			
		||||
        B TIM1_TRG_COM_TIM11_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK TIM1_CC_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM1_CC_IRQHandler  
 | 
			
		||||
        B TIM1_CC_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM2_IRQHandler  
 | 
			
		||||
        B TIM2_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM3_IRQHandler  
 | 
			
		||||
        B TIM3_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM4_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM4_IRQHandler  
 | 
			
		||||
        B TIM4_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK I2C1_EV_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1) 
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
I2C1_EV_IRQHandler  
 | 
			
		||||
        B I2C1_EV_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK I2C1_ER_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1) 
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
I2C1_ER_IRQHandler  
 | 
			
		||||
        B I2C1_ER_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK I2C2_EV_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1) 
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
I2C2_EV_IRQHandler  
 | 
			
		||||
        B I2C2_EV_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK I2C2_ER_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1) 
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
I2C2_ER_IRQHandler  
 | 
			
		||||
        B I2C2_ER_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SPI1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SPI1_IRQHandler  
 | 
			
		||||
        B SPI1_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SPI2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SPI2_IRQHandler  
 | 
			
		||||
        B SPI2_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK USART1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USART1_IRQHandler  
 | 
			
		||||
        B USART1_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK USART2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USART2_IRQHandler  
 | 
			
		||||
        B USART2_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK EXTI15_10_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)   
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
EXTI15_10_IRQHandler  
 | 
			
		||||
        B EXTI15_10_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK RTC_Alarm_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)   
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
RTC_Alarm_IRQHandler  
 | 
			
		||||
        B RTC_Alarm_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK OTG_FS_WKUP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
OTG_FS_WKUP_IRQHandler  
 | 
			
		||||
        B OTG_FS_WKUP_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA1_Stream7_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Stream7_IRQHandler  
 | 
			
		||||
        B DMA1_Stream7_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SDIO_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SDIO_IRQHandler  
 | 
			
		||||
        B SDIO_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM5_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM5_IRQHandler  
 | 
			
		||||
        B TIM5_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SPI3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SPI3_IRQHandler  
 | 
			
		||||
        B SPI3_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA2_Stream0_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA2_Stream0_IRQHandler  
 | 
			
		||||
        B DMA2_Stream0_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA2_Stream1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA2_Stream1_IRQHandler  
 | 
			
		||||
        B DMA2_Stream1_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA2_Stream2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA2_Stream2_IRQHandler  
 | 
			
		||||
        B DMA2_Stream2_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA2_Stream3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA2_Stream3_IRQHandler  
 | 
			
		||||
        B DMA2_Stream3_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA2_Stream4_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA2_Stream4_IRQHandler  
 | 
			
		||||
        B DMA2_Stream4_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK OTG_FS_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
OTG_FS_IRQHandler  
 | 
			
		||||
        B OTG_FS_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA2_Stream5_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA2_Stream5_IRQHandler  
 | 
			
		||||
        B DMA2_Stream5_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA2_Stream6_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA2_Stream6_IRQHandler  
 | 
			
		||||
        B DMA2_Stream6_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK DMA2_Stream7_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)    
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA2_Stream7_IRQHandler  
 | 
			
		||||
        B DMA2_Stream7_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK USART6_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USART6_IRQHandler  
 | 
			
		||||
        B USART6_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK I2C3_EV_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1) 
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
I2C3_EV_IRQHandler  
 | 
			
		||||
        B I2C3_EV_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK I2C3_ER_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1) 
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
I2C3_ER_IRQHandler  
 | 
			
		||||
        B I2C3_ER_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK FPU_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)  
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
FPU_IRQHandler  
 | 
			
		||||
        B FPU_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SPI4_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER(1)
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SPI4_IRQHandler  
 | 
			
		||||
        B SPI4_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f401xe.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F401xE Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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 SRAM1_BASE            0x20000000U /*!< SRAM1(96 KB) 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 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                      */
 | 
			
		||||
| 
						 | 
				
			
			@ -6679,7 +6678,7 @@ typedef struct
 | 
			
		|||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
			
		||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,9 +2,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f407xx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.3.0
 | 
			
		||||
  * @date      02-March-2015
 | 
			
		||||
  * @brief     STM32F407xx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
			
		||||
  * @brief     STM32F407xx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +93,18 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
/* Call static constructors */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f407xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F407xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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_IRQn                 = 77,     /*!< USB OTG HS 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                                               */
 | 
			
		||||
} 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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          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:
 | 
			
		||||
  *           - Configuration section that allows to select:
 | 
			
		||||
  *              - The STM32F4xx device used in the target application
 | 
			
		||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral’s registers 
 | 
			
		||||
  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral's registers 
 | 
			
		||||
  *                rather than drivers API), this option is controlled by 
 | 
			
		||||
  *                "#define USE_HAL_DRIVER"
 | 
			
		||||
  *  
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -92,6 +90,9 @@
 | 
			
		|||
                                   STM32F439NI, STM32F439IG and STM32F439II Devices */
 | 
			
		||||
  /* #define STM32F401xC */   /*!< STM32F401CB, STM32F401CC, STM32F401RB, STM32F401RC, STM32F401VB and STM32F401VC 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 STM32F446xx */   /*!< STM32F446MC, STM32F446ME, STM32F446RC, STM32F446RE, STM32F446VC, STM32F446VE, STM32F446ZC, 
 | 
			
		||||
                                   and STM32F446ZE Devices */
 | 
			
		||||
| 
						 | 
				
			
			@ -121,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			@ -199,20 +200,20 @@
 | 
			
		|||
  */ 
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  RESET = 0, 
 | 
			
		||||
  RESET = 0U, 
 | 
			
		||||
  SET = !RESET
 | 
			
		||||
} FlagStatus, ITStatus;
 | 
			
		||||
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  DISABLE = 0, 
 | 
			
		||||
  DISABLE = 0U, 
 | 
			
		||||
  ENABLE = !DISABLE
 | 
			
		||||
} FunctionalState;
 | 
			
		||||
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
 | 
			
		||||
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  ERROR = 0, 
 | 
			
		||||
  ERROR = 0U, 
 | 
			
		||||
  SUCCESS = !ERROR
 | 
			
		||||
} ErrorStatus;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,13 +2,11 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @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,
 | 
			
		||||
  * 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
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.1
 | 
			
		||||
;* Date               : 09-October-2015
 | 
			
		||||
;* Description        : STM32F410Rx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f410rx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.1
 | 
			
		||||
;* Date               : 09-October-2015
 | 
			
		||||
;* Description        : STM32F410Rx devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f410rx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.4.1
 | 
			
		||||
  * @date      09-October-2015
 | 
			
		||||
  * @brief     STM32F410Rx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f410rx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.1
 | 
			
		||||
;* Date               : 09-October-2015
 | 
			
		||||
;* Description        : STM32F410Rx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f410rx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F410Rx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
			
		||||
#endif /* __FPU_PRESENT */
 | 
			
		||||
/* MBED */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
| 
						 | 
				
			
			@ -4199,9 +4199,15 @@ typedef struct
 | 
			
		|||
#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
			
		||||
#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_EWUP_Pos       (8U)                                            
 | 
			
		||||
#define PWR_CSR_EWUP_Msk       (0x1U << PWR_CSR_EWUP_Pos)                      /*!< 0x00000100 */
 | 
			
		||||
#define PWR_CSR_EWUP           PWR_CSR_EWUP_Msk                                /*!< Enable WKUP pin                                  */
 | 
			
		||||
#define PWR_CSR_EWUP3_Pos      (6U)                                            
 | 
			
		||||
#define PWR_CSR_EWUP3_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000040 */
 | 
			
		||||
#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_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
			
		||||
#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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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_Msk            (0x1U << DBGMCU_APB2_FZ_DBG_TIM11_STOP_Pos) /*!< 0x00040000 */
 | 
			
		||||
#define DBGMCU_APB2_FZ_DBG_TIM11_STOP                DBGMCU_APB2_FZ_DBG_TIM11_STOP_Msk 
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */ 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,23 +2,21 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          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:
 | 
			
		||||
  *           - Configuration section that allows to select:
 | 
			
		||||
  *              - The STM32F4xx device used in the target application
 | 
			
		||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral’s registers 
 | 
			
		||||
  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral's registers 
 | 
			
		||||
  *                rather than drivers API), this option is controlled by 
 | 
			
		||||
  *                "#define USE_HAL_DRIVER"
 | 
			
		||||
  *  
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			@ -202,20 +200,20 @@
 | 
			
		|||
  */ 
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  RESET = 0, 
 | 
			
		||||
  RESET = 0U, 
 | 
			
		||||
  SET = !RESET
 | 
			
		||||
} FlagStatus, ITStatus;
 | 
			
		||||
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  DISABLE = 0, 
 | 
			
		||||
  DISABLE = 0U, 
 | 
			
		||||
  ENABLE = !DISABLE
 | 
			
		||||
} FunctionalState;
 | 
			
		||||
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
 | 
			
		||||
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  ERROR = 0, 
 | 
			
		||||
  ERROR = 0U, 
 | 
			
		||||
  SUCCESS = !ERROR
 | 
			
		||||
} ErrorStatus;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,13 +2,11 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @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,
 | 
			
		||||
  * 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
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,9 +2,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f411xe.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.3.0
 | 
			
		||||
  * @date      02-March-2015
 | 
			
		||||
  * @brief     STM32F411xExx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
			
		||||
  * @brief     STM32F411xExx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f411xe.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F411xExx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f411xe.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F411xE Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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 SRAM1_BASE            0x20000000U /*!< SRAM1(128 KB) 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 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                      */
 | 
			
		||||
| 
						 | 
				
			
			@ -6710,7 +6709,7 @@ typedef struct
 | 
			
		|||
#define USART_CR1_TCIE                USART_CR1_TCIE_Msk                       /*!<Transmission Complete Interrupt Enable */
 | 
			
		||||
#define USART_CR1_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f412zx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.5.1
 | 
			
		||||
;* Date               : 28-June-2016
 | 
			
		||||
;* Description        : STM32F412Zx devices vector table for MDK-ARM toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f412zx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.5.1
 | 
			
		||||
;* Date               : 28-June-2016
 | 
			
		||||
;* Description        : STM32F412Zx devices vector table for MDK-ARM toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f412zx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.5.1
 | 
			
		||||
  * @date      28-June-2016
 | 
			
		||||
  * @brief     STM32F412Zx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * 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
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.5.1
 | 
			
		||||
;* Date               : 28-June-2016
 | 
			
		||||
;* Description        : STM32F412Zx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f412zx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F412Zx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
			
		||||
#endif /* __FPU_PRESENT */
 | 
			
		||||
/* MBED */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
| 
						 | 
				
			
			@ -8966,9 +8966,15 @@ typedef struct
 | 
			
		|||
#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
			
		||||
#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_EWUP_Pos       (8U)                                            
 | 
			
		||||
#define PWR_CSR_EWUP_Msk       (0x1U << PWR_CSR_EWUP_Pos)                      /*!< 0x00000100 */
 | 
			
		||||
#define PWR_CSR_EWUP           PWR_CSR_EWUP_Msk                                /*!< Enable WKUP pin                                  */
 | 
			
		||||
#define PWR_CSR_EWUP3_Pos      (6U)                                            
 | 
			
		||||
#define PWR_CSR_EWUP3_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000040 */
 | 
			
		||||
#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_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
			
		||||
#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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f413xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.6.1
 | 
			
		||||
;* Date               : 14-February-2017
 | 
			
		||||
;* Description        : STM32F413xx devices vector table for MDK-ARM toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f413xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.6.1
 | 
			
		||||
;* Date               : 14-February-2017
 | 
			
		||||
;* Description        : STM32F413xx devices vector table for MDK-ARM toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f413xx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.6.1
 | 
			
		||||
  * @date      14-February-2017
 | 
			
		||||
  * @brief     STM32F413xx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f413xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.6.1
 | 
			
		||||
;* Date               : 14-February-2017
 | 
			
		||||
;* Description        : STM32F413xx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,14 +2,12 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f413xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F413xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
  *           - Data structures and the address mapping for all peripherals
 | 
			
		||||
  *           - peripherals registers declarations and bits definition
 | 
			
		||||
  *           - Macros to access peripheral’s registers hardware
 | 
			
		||||
  *           - Macros to access peripheral's registers hardware
 | 
			
		||||
  *
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< FPU present                                   */
 | 
			
		||||
#endif
 | 
			
		||||
/* MBED */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
| 
						 | 
				
			
			@ -8883,9 +8883,15 @@ typedef struct
 | 
			
		|||
#define PWR_CSR_BRR_Pos        (3U)                                            
 | 
			
		||||
#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_EWUP_Pos       (8U)                                            
 | 
			
		||||
#define PWR_CSR_EWUP_Msk       (0x1U << PWR_CSR_EWUP_Pos)                      /*!< 0x00000100 */
 | 
			
		||||
#define PWR_CSR_EWUP           PWR_CSR_EWUP_Msk                                /*!< Enable WKUP pin                                  */
 | 
			
		||||
#define PWR_CSR_EWUP3_Pos      (6U)                                            
 | 
			
		||||
#define PWR_CSR_EWUP3_Msk      (0x1U << PWR_CSR_EWUP1_Pos)                     /*!< 0x00000040 */
 | 
			
		||||
#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_Msk        (0x1U << PWR_CSR_BRE_Pos)                       /*!< 0x00000200 */
 | 
			
		||||
#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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          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:
 | 
			
		||||
  *           - Configuration section that allows to select:
 | 
			
		||||
  *              - The STM32F4xx device used in the target application
 | 
			
		||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral’s registers 
 | 
			
		||||
  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral's registers 
 | 
			
		||||
  *                rather than drivers API), this option is controlled by 
 | 
			
		||||
  *                "#define USE_HAL_DRIVER"
 | 
			
		||||
  *  
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f429xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.0
 | 
			
		||||
;* Date               : 14-August-2015
 | 
			
		||||
;* Description        : STM32F429x devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f429xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.0
 | 
			
		||||
;* Date               : 14-August-2015
 | 
			
		||||
;* Description        : STM32F429x devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,9 +2,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f429xx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.3.0
 | 
			
		||||
  * @date      02-March-2015 
 | 
			
		||||
  * @brief     STM32F429xx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
			
		||||
  * @brief     STM32F429xx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl SystemInitPre
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f429xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.0
 | 
			
		||||
;* Date               : 14-August-2015
 | 
			
		||||
;* Description        : STM32F429xx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f429xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F429xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +89,7 @@
 | 
			
		|||
  /* #define STM32F439xx */   /*!< STM32F439VG, STM32F439VI, STM32F439ZG, STM32F439ZI, STM32F439BG, STM32F439BI, STM32F439NG, 
 | 
			
		||||
                                   STM32F439NI, STM32F439IG and STM32F439II 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 */
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f437xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.0
 | 
			
		||||
;* Date               : 14-August-2015
 | 
			
		||||
;* Description        : STM32F437x devices vector table for MDK-ARM_STD toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f437xx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.6.0
 | 
			
		||||
  * @date      04-November-2016
 | 
			
		||||
  * @brief     STM32F437xx Devices vector table for GCC based toolchains.
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -95,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f437xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.1.0
 | 
			
		||||
;* Date               : 19-June-2014
 | 
			
		||||
;* Description        : STM32F437xx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f437xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F437xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          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:
 | 
			
		||||
  *           - Configuration section that allows to select:
 | 
			
		||||
  *              - The STM32F4xx device used in the target application
 | 
			
		||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral’s registers 
 | 
			
		||||
  *              - To use or not the peripheral's drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral's registers 
 | 
			
		||||
  *                rather than drivers API), this option is controlled by 
 | 
			
		||||
  *                "#define USE_HAL_DRIVER"
 | 
			
		||||
  *  
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f439xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.6.0
 | 
			
		||||
;* Date               : 04-November-2016
 | 
			
		||||
;* Description        : STM32F439x devices vector table for MDK-ARM toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f439xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.6.0
 | 
			
		||||
;* Date               : 04-November-2016
 | 
			
		||||
;* Description        : STM32F439x devices vector table for MDK-ARM toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f439xx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.6.0
 | 
			
		||||
  * @date      04-November-2016
 | 
			
		||||
  * @brief     STM32F439xx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f439xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.6.0
 | 
			
		||||
;* Date               : 04-November-2016
 | 
			
		||||
;* Description        : STM32F439xx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -649,13 +647,13 @@ FPU_IRQHandler
 | 
			
		|||
        B FPU_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK UART7_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
UART7_IRQHandler 
 | 
			
		||||
        B UART7_IRQHandler  
 | 
			
		||||
 | 
			
		||||
        PUBWEAK UART8_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
UART8_IRQHandler             
 | 
			
		||||
UART8_IRQHandler
 | 
			
		||||
        B UART8_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SPI4_IRQHandler
 | 
			
		||||
| 
						 | 
				
			
			@ -665,7 +663,7 @@ SPI4_IRQHandler
 | 
			
		|||
 | 
			
		||||
        PUBWEAK SPI5_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SPI5_IRQHandler   
 | 
			
		||||
SPI5_IRQHandler
 | 
			
		||||
        B SPI5_IRQHandler
 | 
			
		||||
 | 
			
		||||
        PUBWEAK SPI6_IRQHandler
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f439xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F439xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f446xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.3.2
 | 
			
		||||
;* Date               : 26-June-2015
 | 
			
		||||
;* Description        : STM32F446x devices vector table for MDK-ARM_MICRO toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f446xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.3.2
 | 
			
		||||
;* Date               : 26-June-2015
 | 
			
		||||
;* Description        : STM32F446x devices vector table for MDK-ARM_STD toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,9 +2,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f446xx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.3.0
 | 
			
		||||
  * @date      02-March-2015
 | 
			
		||||
  * @brief     STM32F446xx Devices vector table for Atollic TrueSTUDIO toolchain. 
 | 
			
		||||
  * @brief     STM32F446xx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f446xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.3.2
 | 
			
		||||
;* Date               : 26-June-2015
 | 
			
		||||
;* Description        : STM32F446xx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -179,7 +177,7 @@ __vector_table
 | 
			
		|||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     0                                 ; Reserved
 | 
			
		||||
        DCD     SAI2_IRQHandler                   ; SAI2
 | 
			
		||||
        DCD     QuadSPI_IRQHandler                ; QuadSPI
 | 
			
		||||
        DCD     QUADSPI_IRQHandler                ; QuadSPI
 | 
			
		||||
        DCD     CEC_IRQHandler                    ; CEC
 | 
			
		||||
        DCD     SPDIF_RX_IRQHandler               ; SPDIF RX
 | 
			
		||||
        DCD     FMPI2C1_Event_IRQHandler          ; FMPI2C1 Event
 | 
			
		||||
| 
						 | 
				
			
			@ -648,10 +646,10 @@ SAI1_IRQHandler
 | 
			
		|||
SAI2_IRQHandler 
 | 
			
		||||
        B SAI2_IRQHandler                     
 | 
			
		||||
 | 
			
		||||
        PUBWEAK QuadSPI_IRQHandler
 | 
			
		||||
        PUBWEAK QUADSPI_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
QuadSPI_IRQHandler 
 | 
			
		||||
        B QuadSPI_IRQHandler                 
 | 
			
		||||
QUADSPI_IRQHandler 
 | 
			
		||||
        B QUADSPI_IRQHandler                 
 | 
			
		||||
 | 
			
		||||
        PUBWEAK CEC_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1) 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f446xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F446xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f469xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.1
 | 
			
		||||
;* Date               : 09-October-2015
 | 
			
		||||
;* Description        : STM32F469x devices vector table for MDK-ARM toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f469xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.1
 | 
			
		||||
;* Date               : 09-October-2015
 | 
			
		||||
;* Description        : STM32F469x devices vector table for MDK-ARM toolchain. 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32f469xx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.4.1
 | 
			
		||||
  * @date      09-October-2015
 | 
			
		||||
  * @brief     STM32F469xx Devices vector table for GCC based toolchains. 
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +14,7 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @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,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +56,10 @@ defined in linker script */
 | 
			
		|||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.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 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +93,17 @@ LoopCopyDataInit:
 | 
			
		|||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  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.*/
 | 
			
		||||
  bl  SystemInit   
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
 | 
			
		||||
;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32f469xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.4.1
 | 
			
		||||
;* Date               : 09-October-2015
 | 
			
		||||
;* Description        : STM32F469xx devices vector table for EWARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32f469xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F469xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *
 | 
			
		||||
  *          This file contains:
 | 
			
		||||
| 
						 | 
				
			
			@ -67,9 +65,11 @@
 | 
			
		|||
#define __MPU_PRESENT             1U       /*!< STM32F4XX provides an MPU                     */
 | 
			
		||||
#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  */
 | 
			
		||||
/* MBED */
 | 
			
		||||
#ifndef __FPU_PRESENT
 | 
			
		||||
#define __FPU_PRESENT             1U       /*!< 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_TXEIE_Pos           (7U)                                     
 | 
			
		||||
#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_Msk            (0x1U << USART_CR1_PEIE_Pos)             /*!< 0x00000100 */
 | 
			
		||||
#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                    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  ********************/
 | 
			
		||||
#define USB_OTG_GRXFSIZ_RXFD_Pos                 (0U)                          
 | 
			
		||||
#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                  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
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS STM32F4xx Device Peripheral Access Layer Header File.
 | 
			
		||||
  *            
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
| 
						 | 
				
			
			@ -124,11 +122,11 @@
 | 
			
		|||
#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_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        ((__STM32F4xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32F4xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32f4xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.6.1
 | 
			
		||||
  * @date    14-February-2017
 | 
			
		||||
  * @brief   CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.       
 | 
			
		||||
  ******************************************************************************  
 | 
			
		||||
  * @attention
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue