@@ -0,0 +1,2 @@ | |||
Project/Debug/ | |||
Project/settings/ |
@@ -0,0 +1,66 @@ | |||
/*********************************************************************************************/ | |||
【*】 程序简介 | |||
-工程名称:GPIO输出--多彩流水灯 | |||
-实验平台: 野火STM32 F407 开发板 | |||
-MDK版本:5.16 | |||
-ST固件库版本:1.8.0 | |||
【 !】功能简介: | |||
控制开发板上的RGB彩灯,轮流显示“红绿蓝黄紫青白”颜色。 | |||
学习目的:了解如何使用库开发以及为库与寄存器操作的区别,学会如何控制GPIO输出。 | |||
【 !!】注意事项: | |||
给开发板供电时,注意要用USB接口或DC电源接口供电, | |||
若只用下载器给开发板供电,功率不足,LED灯是不会亮的。 | |||
(所以一般不使用下载器供电,可能会出现各种问题) | |||
/*********************************************************************************************/ | |||
【*】 引脚分配 | |||
LED: | |||
RGB彩灯的三个阴极接到STM32三个引脚上,LED低电平亮。 | |||
R<--->PF6 | |||
G<--->PF7 | |||
B<--->PF8 | |||
LED4<--->PC3 | |||
/*********************************************************************************************/ | |||
【*】 时钟 | |||
A.晶振: | |||
-外部高速晶振:25MHz | |||
-RTC晶振:32.768KHz | |||
B.各总线运行时钟: | |||
-系统时钟 = SYCCLK = AHB1 = 168MHz | |||
-APB2 = 84MHz | |||
-APB1 = 42MHz | |||
C.浮点运算单元: | |||
不使用 | |||
/*********************************************************************************************/ | |||
【*】 版本 | |||
-程序版本:1.0 | |||
-发布日期:2015-10 | |||
-版本更新说明:首次发布 | |||
/*********************************************************************************************/ | |||
【*】 联系我们 | |||
-野火论坛 :http://www.firebbs.cn | |||
-淘宝店铺 :https://fire-stm32.taobao.com | |||
/*********************************************************************************************/ |
@@ -0,0 +1,269 @@ | |||
/** | |||
****************************************************************************** | |||
* @file stm32f4xx.h | |||
* @author MCD Application Team | |||
* @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 | |||
* rather than drivers API), this option is controlled by | |||
* "#define USE_HAL_DRIVER" | |||
* | |||
****************************************************************************** | |||
* @attention | |||
* | |||
* <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. Redistributions of source code must retain the above copyright notice, | |||
* this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright notice, | |||
* this list of conditions and the following disclaimer in the documentation | |||
* and/or other materials provided with the distribution. | |||
* 3. Neither the name of STMicroelectronics nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
* | |||
****************************************************************************** | |||
*/ | |||
/** @addtogroup CMSIS | |||
* @{ | |||
*/ | |||
/** @addtogroup stm32f4xx | |||
* @{ | |||
*/ | |||
#ifndef __STM32F4xx_H | |||
#define __STM32F4xx_H | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif /* __cplusplus */ | |||
/** @addtogroup Library_configuration_section | |||
* @{ | |||
*/ | |||
/** | |||
* @brief STM32 Family | |||
*/ | |||
#if !defined (STM32F4) | |||
#define STM32F4 | |||
#endif /* STM32F4 */ | |||
/* Uncomment the line below according to the target STM32 device used in your | |||
application | |||
*/ | |||
#if !defined (STM32F405xx) && !defined (STM32F415xx) && !defined (STM32F407xx) && !defined (STM32F417xx) && \ | |||
!defined (STM32F427xx) && !defined (STM32F437xx) && !defined (STM32F429xx) && !defined (STM32F439xx) && \ | |||
!defined (STM32F401xC) && !defined (STM32F401xE) && !defined (STM32F410Tx) && !defined (STM32F410Cx) && \ | |||
!defined (STM32F410Rx) && !defined (STM32F411xE) && !defined (STM32F446xx) && !defined (STM32F469xx) && \ | |||
!defined (STM32F479xx) && !defined (STM32F412Cx) && !defined (STM32F412Rx) && !defined (STM32F412Vx) && \ | |||
!defined (STM32F412Zx) && !defined (STM32F413xx) && !defined (STM32F423xx) | |||
/* #define STM32F405xx */ /*!< STM32F405RG, STM32F405VG and STM32F405ZG Devices */ | |||
/* #define STM32F415xx */ /*!< STM32F415RG, STM32F415VG and STM32F415ZG Devices */ | |||
/* #define STM32F407xx */ /*!< STM32F407VG, STM32F407VE, STM32F407ZG, STM32F407ZE, STM32F407IG and STM32F407IE Devices */ | |||
/* #define STM32F417xx */ /*!< STM32F417VG, STM32F417VE, STM32F417ZG, STM32F417ZE, STM32F417IG and STM32F417IE Devices */ | |||
/* #define STM32F427xx */ /*!< STM32F427VG, STM32F427VI, STM32F427ZG, STM32F427ZI, STM32F427IG and STM32F427II Devices */ | |||
/* #define STM32F437xx */ /*!< STM32F437VG, STM32F437VI, STM32F437ZG, STM32F437ZI, STM32F437IG and STM32F437II Devices */ | |||
/* #define STM32F429xx */ /*!< STM32F429VG, STM32F429VI, STM32F429ZG, STM32F429ZI, STM32F429BG, STM32F429BI, STM32F429NG, | |||
STM32F439NI, STM32F429IG and STM32F429II Devices */ | |||
/* #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 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 */ | |||
/* #define STM32F469xx */ /*!< STM32F469AI, STM32F469II, STM32F469BI, STM32F469NI, STM32F469AG, STM32F469IG, STM32F469BG, | |||
STM32F469NG, STM32F469AE, STM32F469IE, STM32F469BE and STM32F469NE Devices */ | |||
/* #define STM32F479xx */ /*!< STM32F479AI, STM32F479II, STM32F479BI, STM32F479NI, STM32F479AG, STM32F479IG, STM32F479BG | |||
and STM32F479NG Devices */ | |||
/* #define STM32F412Cx */ /*!< STM32F412CEU and STM32F412CGU Devices */ | |||
/* #define STM32F412Zx */ /*!< STM32F412ZET, STM32F412ZGT, STM32F412ZEJ and STM32F412ZGJ Devices */ | |||
/* #define STM32F412Vx */ /*!< STM32F412VET, STM32F412VGT, STM32F412VEH and STM32F412VGH Devices */ | |||
/* #define STM32F412Rx */ /*!< STM32F412RET, STM32F412RGT, STM32F412REY and STM32F412RGY Devices */ | |||
/* #define STM32F413xx */ /*!< STM32F413CH, STM32F413MH, STM32F413RH, STM32F413VH, STM32F413ZH, STM32F413CG, STM32F413MG, | |||
STM32F413RG, STM32F413VG and STM32F413ZG Devices */ | |||
/* #define STM32F423xx */ /*!< STM32F423CH, STM32F423RH, STM32F423VH and STM32F423ZH Devices */ | |||
#endif | |||
/* Tip: To avoid modifying this file each time you need to switch between these | |||
devices, you can define the device in your toolchain compiler preprocessor. | |||
*/ | |||
#if !defined (USE_HAL_DRIVER) | |||
/** | |||
* @brief Comment the line below if you will not use the peripherals drivers. | |||
In this case, these drivers will not be included and the application code will | |||
be based on direct access to peripherals registers | |||
*/ | |||
/*#define USE_HAL_DRIVER */ | |||
#endif /* USE_HAL_DRIVER */ | |||
/** | |||
* @brief CMSIS version number V2.6.3 | |||
*/ | |||
#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 (0x03U) /*!< [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)\ | |||
|(__STM32F4xx_CMSIS_VERSION_SUB2 << 8 )\ | |||
|(__STM32F4xx_CMSIS_VERSION)) | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup Device_Included | |||
* @{ | |||
*/ | |||
#if defined(STM32F405xx) | |||
#include "stm32f405xx.h" | |||
#elif defined(STM32F415xx) | |||
#include "stm32f415xx.h" | |||
#elif defined(STM32F407xx) | |||
#include "stm32f407xx.h" | |||
#elif defined(STM32F417xx) | |||
#include "stm32f417xx.h" | |||
#elif defined(STM32F427xx) | |||
#include "stm32f427xx.h" | |||
#elif defined(STM32F437xx) | |||
#include "stm32f437xx.h" | |||
#elif defined(STM32F429xx) | |||
#include "stm32f429xx.h" | |||
#elif defined(STM32F439xx) | |||
#include "stm32f439xx.h" | |||
#elif defined(STM32F401xC) | |||
#include "stm32f401xc.h" | |||
#elif defined(STM32F401xE) | |||
#include "stm32f401xe.h" | |||
#elif defined(STM32F410Tx) | |||
#include "stm32f410tx.h" | |||
#elif defined(STM32F410Cx) | |||
#include "stm32f410cx.h" | |||
#elif defined(STM32F410Rx) | |||
#include "stm32f410rx.h" | |||
#elif defined(STM32F411xE) | |||
#include "stm32f411xe.h" | |||
#elif defined(STM32F446xx) | |||
#include "stm32f446xx.h" | |||
#elif defined(STM32F469xx) | |||
#include "stm32f469xx.h" | |||
#elif defined(STM32F479xx) | |||
#include "stm32f479xx.h" | |||
#elif defined(STM32F412Cx) | |||
#include "stm32f412cx.h" | |||
#elif defined(STM32F412Zx) | |||
#include "stm32f412zx.h" | |||
#elif defined(STM32F412Rx) | |||
#include "stm32f412rx.h" | |||
#elif defined(STM32F412Vx) | |||
#include "stm32f412vx.h" | |||
#elif defined(STM32F413xx) | |||
#include "stm32f413xx.h" | |||
#elif defined(STM32F423xx) | |||
#include "stm32f423xx.h" | |||
#else | |||
#error "Please select first the target STM32F4xx device used in your application (in stm32f4xx.h file)" | |||
#endif | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup Exported_types | |||
* @{ | |||
*/ | |||
typedef enum | |||
{ | |||
RESET = 0U, | |||
SET = !RESET | |||
} FlagStatus, ITStatus; | |||
typedef enum | |||
{ | |||
DISABLE = 0U, | |||
ENABLE = !DISABLE | |||
} FunctionalState; | |||
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE)) | |||
typedef enum | |||
{ | |||
SUCCESS = 0U, | |||
ERROR = !SUCCESS | |||
} ErrorStatus; | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup Exported_macro | |||
* @{ | |||
*/ | |||
#define SET_BIT(REG, BIT) ((REG) |= (BIT)) | |||
#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT)) | |||
#define READ_BIT(REG, BIT) ((REG) & (BIT)) | |||
#define CLEAR_REG(REG) ((REG) = (0x0)) | |||
#define WRITE_REG(REG, VAL) ((REG) = (VAL)) | |||
#define READ_REG(REG) ((REG)) | |||
#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK))) | |||
#define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL))) | |||
/** | |||
* @} | |||
*/ | |||
#if defined (USE_HAL_DRIVER) | |||
#include "stm32f4xx_hal.h" | |||
#endif /* USE_HAL_DRIVER */ | |||
#ifdef __cplusplus | |||
} | |||
#endif /* __cplusplus */ | |||
#endif /* __STM32F4xx_H */ | |||
/** | |||
* @} | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,122 @@ | |||
/** | |||
****************************************************************************** | |||
* @file system_stm32f4xx.h | |||
* @author MCD Application Team | |||
* @brief CMSIS Cortex-M4 Device System Source File for STM32F4xx devices. | |||
****************************************************************************** | |||
* @attention | |||
* | |||
* <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. Redistributions of source code must retain the above copyright notice, | |||
* this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright notice, | |||
* this list of conditions and the following disclaimer in the documentation | |||
* and/or other materials provided with the distribution. | |||
* 3. Neither the name of STMicroelectronics nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
* | |||
****************************************************************************** | |||
*/ | |||
/** @addtogroup CMSIS | |||
* @{ | |||
*/ | |||
/** @addtogroup stm32f4xx_system | |||
* @{ | |||
*/ | |||
/** | |||
* @brief Define to prevent recursive inclusion | |||
*/ | |||
#ifndef __SYSTEM_STM32F4XX_H | |||
#define __SYSTEM_STM32F4XX_H | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
/** @addtogroup STM32F4xx_System_Includes | |||
* @{ | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Exported_types | |||
* @{ | |||
*/ | |||
/* This variable is updated in three ways: | |||
1) by calling CMSIS function SystemCoreClockUpdate() | |||
2) by calling HAL API function HAL_RCC_GetSysClockFreq() | |||
3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency | |||
Note: If you use this function to configure the system clock; then there | |||
is no need to call the 2 first functions listed above, since SystemCoreClock | |||
variable is updated automatically. | |||
*/ | |||
extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ | |||
extern const uint8_t AHBPrescTable[16]; /*!< AHB prescalers table values */ | |||
extern const uint8_t APBPrescTable[8]; /*!< APB prescalers table values */ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Exported_Constants | |||
* @{ | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Exported_Macros | |||
* @{ | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Exported_Functions | |||
* @{ | |||
*/ | |||
extern void SystemInit(void); | |||
extern void SystemCoreClockUpdate(void); | |||
/** | |||
* @} | |||
*/ | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif /*__SYSTEM_STM32F4XX_H */ | |||
/** | |||
* @} | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0803FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x20007FFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20008000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x20017FFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2000FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20010000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x20017FFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2000FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20010000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2000FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20010000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x20003FFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20004000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x20003FFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20004000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x20003FFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20004000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2000FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20010000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20020000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20020000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20020000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20020000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0817FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20030000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2000FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20010000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2000FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20010000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0817FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20030000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x081FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20020000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x081FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20020000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x081FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20020000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x081FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2001FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20020000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,31 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2000FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20010000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x081FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2003FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20040000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x081FFFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,34 @@ | |||
/*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
/*-Editor annotation file-*/ | |||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
/*-Specials-*/ | |||
define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
/*-Memory Regions-*/ | |||
define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; | |||
define symbol __ICFEDIT_region_ROM_end__ = 0x2003FFFF; | |||
define symbol __ICFEDIT_region_RAM_start__ = 0x20040000; | |||
define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; | |||
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000; | |||
define symbol __ICFEDIT_region_CCMRAM_end__ = 0x1000FFFF; | |||
/*-Sizes-*/ | |||
define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
define symbol __ICFEDIT_size_heap__ = 0x200; | |||
/**** End of ICF editor section. ###ICF###*/ | |||
define memory mem with size = 4G; | |||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
define region CCMRAM_region = mem:[from __ICFEDIT_region_CCMRAM_start__ to __ICFEDIT_region_CCMRAM_end__]; | |||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
initialize by copy { readwrite }; | |||
do not initialize { section .noinit }; | |||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
place in ROM_region { readonly }; | |||
place in RAM_region { readwrite, | |||
block CSTACK, block HEAP }; |
@@ -0,0 +1,502 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f401xc.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F401xCxx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 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 | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,502 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f401xe.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F401xExx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 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 | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,608 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f405xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F405xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FSMC_IRQHandler ; FSMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD HASH_RNG_IRQHandler ; Hash and RNG | |||
DCD FPU_IRQHandler ; FPU | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FSMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FSMC_IRQHandler | |||
B FSMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,623 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f407xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F407xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FSMC_IRQHandler ; FSMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 ETH_IRQHandler ; Ethernet | |||
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
DCD 0 ; Reserved | |||
DCD HASH_RNG_IRQHandler ; Hash and RNG | |||
DCD FPU_IRQHandler ; FPU | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FSMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FSMC_IRQHandler | |||
B FSMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK ETH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_IRQHandler | |||
B ETH_IRQHandler | |||
PUBWEAK ETH_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_WKUP_IRQHandler | |||
B ETH_WKUP_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,495 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f410cx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F410Cx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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_IRQHandler ; TIM1 Update | |||
DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11 | |||
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
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 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC | |||
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 0 ; Reserved | |||
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 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
DCD LPTIM1_IRQHandler ; LP TIM1 | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_UP_IRQHandler | |||
B TIM1_UP_IRQHandler | |||
PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
PUBWEAK LPTIM1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LPTIM1_IRQHandler | |||
B LPTIM1_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,495 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f410rx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F410Rx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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_IRQHandler ; TIM1 Update | |||
DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11 | |||
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
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 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC | |||
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 0 ; Reserved | |||
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 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
DCD LPTIM1_IRQHandler ; LP TIM1 | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_UP_IRQHandler | |||
B TIM1_UP_IRQHandler | |||
PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
PUBWEAK LPTIM1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LPTIM1_IRQHandler | |||
B LPTIM1_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,480 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f410tx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F410Tx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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_IRQHandler ; TIM1 Update | |||
DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11 | |||
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
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 0 ; Reserved | |||
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 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC | |||
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 0 ; Reserved | |||
DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5 | |||
DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6 | |||
DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
DCD LPTIM1_IRQHandler ; LP TIM1 | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_UP_IRQHandler | |||
B TIM1_UP_IRQHandler | |||
PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
PUBWEAK LPTIM1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LPTIM1_IRQHandler | |||
B LPTIM1_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,508 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f411xe.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F411xExx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 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 SPI5_IRQHandler ; SPI5 | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,615 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f412cx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F412Cx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
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 TIM6_IRQHandler ; TIM6 | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 DFSDM1_FLT0_IRQHandler ; DFSDM1 Filter0 | |||
DCD DFSDM1_FLT1_IRQHandler ; DFSDM1 Filter1 | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK TIM6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_IRQHandler | |||
B TIM6_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DFSDM1_FLT0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT0_IRQHandler | |||
B DFSDM1_FLT0_IRQHandler | |||
PUBWEAK DFSDM1_FLT1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT1_IRQHandler | |||
B DFSDM1_FLT1_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,625 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f412rx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F412Rx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
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 TIM6_IRQHandler ; TIM6 | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 DFSDM1_FLT0_IRQHandler ; DFSDM1 Filter0 | |||
DCD DFSDM1_FLT1_IRQHandler ; DFSDM1 Filter1 | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD QUADSPI_IRQHandler ; QuadSPI | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK TIM6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_IRQHandler | |||
B TIM6_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DFSDM1_FLT0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT0_IRQHandler | |||
B DFSDM1_FLT0_IRQHandler | |||
PUBWEAK DFSDM1_FLT1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT1_IRQHandler | |||
B DFSDM1_FLT1_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK QUADSPI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
QUADSPI_IRQHandler | |||
B QUADSPI_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,624 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f412vx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F412Vx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
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 TIM6_IRQHandler ; TIM6 | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 DFSDM1_FLT0_IRQHandler ; DFSDM1 Filter0 | |||
DCD DFSDM1_FLT1_IRQHandler ; DFSDM1 Filter1 | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD QUADSPI_IRQHandler ; QuadSPI | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK TIM6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_IRQHandler | |||
B TIM6_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DFSDM1_FLT0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT0_IRQHandler | |||
B DFSDM1_FLT0_IRQHandler | |||
PUBWEAK DFSDM1_FLT1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT1_IRQHandler | |||
B DFSDM1_FLT1_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK QUADSPI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
QUADSPI_IRQHandler | |||
B QUADSPI_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,624 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f412zx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F412Zx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
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 TIM6_IRQHandler ; TIM6 | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 DFSDM1_FLT0_IRQHandler ; DFSDM1 Filter0 | |||
DCD DFSDM1_FLT1_IRQHandler ; DFSDM1 Filter1 | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD QUADSPI_IRQHandler ; QuadSPI | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK TIM6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_IRQHandler | |||
B TIM6_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DFSDM1_FLT0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT0_IRQHandler | |||
B DFSDM1_FLT0_IRQHandler | |||
PUBWEAK DFSDM1_FLT1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT1_IRQHandler | |||
B DFSDM1_FLT1_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK QUADSPI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
QUADSPI_IRQHandler | |||
B QUADSPI_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,714 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f413xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F413xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FSMC_IRQHandler ; FSMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6, DAC1 and DAC2 | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 DFSDM1_FLT0_IRQHandler ; DFSDM1 Filter0 | |||
DCD DFSDM1_FLT1_IRQHandler ; DFSDM1 Filter1 | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 CAN3_TX_IRQHandler ; CAN3 TX | |||
DCD CAN3_RX0_IRQHandler ; CAN3 RX0 | |||
DCD CAN3_RX1_IRQHandler ; CAN3 RX1 | |||
DCD CAN3_SCE_IRQHandler ; CAN3 SCE | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD UART7_IRQHandler ; UART7 | |||
DCD UART8_IRQHandler ; UART8 | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD 0 ; Reserved | |||
DCD SAI1_IRQHandler ; SAI1 | |||
DCD UART9_IRQHandler ; UART9 | |||
DCD UART10_IRQHandler ; UART10 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD QUADSPI_IRQHandler ; QuadSPI | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
DCD LPTIM1_IRQHandler ; LPTIM1 | |||
DCD DFSDM2_FLT0_IRQHandler ; DFSDM2 Filter0 | |||
DCD DFSDM2_FLT1_IRQHandler ; DFSDM2 Filter1 | |||
DCD DFSDM2_FLT2_IRQHandler ; DFSDM2 Filter2 | |||
DCD DFSDM2_FLT3_IRQHandler ; DFSDM2 Filter3 | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FSMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FSMC_IRQHandler | |||
B FSMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DFSDM1_FLT0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT0_IRQHandler | |||
B DFSDM1_FLT0_IRQHandler | |||
PUBWEAK DFSDM1_FLT1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT1_IRQHandler | |||
B DFSDM1_FLT1_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK CAN3_TX_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
CAN3_TX_IRQHandler | |||
B CAN3_TX_IRQHandler | |||
PUBWEAK CAN3_RX0_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
CAN3_RX0_IRQHandler | |||
B CAN3_RX0_IRQHandler | |||
PUBWEAK CAN3_RX1_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
CAN3_RX1_IRQHandler | |||
B CAN3_RX1_IRQHandler | |||
PUBWEAK CAN3_SCE_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
CAN3_SCE_IRQHandler | |||
B CAN3_SCE_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK UART7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART7_IRQHandler | |||
B UART7_IRQHandler | |||
PUBWEAK UART8_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART8_IRQHandler | |||
B UART8_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK UART9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART9_IRQHandler | |||
B UART9_IRQHandler | |||
PUBWEAK UART10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART10_IRQHandler | |||
B UART10_IRQHandler | |||
PUBWEAK QUADSPI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
QUADSPI_IRQHandler | |||
B QUADSPI_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
PUBWEAK LPTIM1_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
LPTIM1_IRQHandler | |||
B LPTIM1_IRQHandler | |||
PUBWEAK DFSDM2_FLT0_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
DFSDM2_FLT0_IRQHandler | |||
B DFSDM2_FLT0_IRQHandler | |||
PUBWEAK DFSDM2_FLT1_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
DFSDM2_FLT1_IRQHandler | |||
B DFSDM2_FLT1_IRQHandler | |||
PUBWEAK DFSDM2_FLT2_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
DFSDM2_FLT2_IRQHandler | |||
B DFSDM2_FLT2_IRQHandler | |||
PUBWEAK DFSDM2_FLT3_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
DFSDM2_FLT3_IRQHandler | |||
B DFSDM2_FLT3_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,613 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f415xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F415xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FSMC_IRQHandler ; FSMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD 0 ; Reserved | |||
DCD CRYP_IRQHandler ; CRYP crypto | |||
DCD HASH_RNG_IRQHandler ; Hash and Rng | |||
DCD FPU_IRQHandler ; FPU | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FSMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FSMC_IRQHandler | |||
B FSMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK CRYP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CRYP_IRQHandler | |||
B CRYP_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,628 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f417xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F417xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FSMC_IRQHandler ; FSMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 ETH_IRQHandler ; Ethernet | |||
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
DCD CRYP_IRQHandler ; CRYP crypto | |||
DCD HASH_RNG_IRQHandler ; Hash and Rng | |||
DCD FPU_IRQHandler ; FPU | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FSMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FSMC_IRQHandler | |||
B FSMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK ETH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_IRQHandler | |||
B ETH_IRQHandler | |||
PUBWEAK ETH_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_WKUP_IRQHandler | |||
B ETH_WKUP_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK CRYP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CRYP_IRQHandler | |||
B CRYP_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,719 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f423xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F423xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Configure the system clock | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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 CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FSMC_IRQHandler ; FSMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6, DAC1 and DAC2 | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 DFSDM1_FLT0_IRQHandler ; DFSDM1 Filter0 | |||
DCD DFSDM1_FLT1_IRQHandler ; DFSDM1 Filter1 | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 CAN3_TX_IRQHandler ; CAN3 TX | |||
DCD CAN3_RX0_IRQHandler ; CAN3 RX0 | |||
DCD CAN3_RX1_IRQHandler ; CAN3 RX1 | |||
DCD CAN3_SCE_IRQHandler ; CAN3 SCE | |||
DCD 0 ; Reserved | |||
DCD AES_IRQHandler ; AES | |||
DCD RNG_IRQHandler ; RNG | |||
DCD FPU_IRQHandler ; FPU | |||
DCD UART7_IRQHandler ; UART7 | |||
DCD UART8_IRQHandler ; UART8 | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD 0 ; Reserved | |||
DCD SAI1_IRQHandler ; SAI1 | |||
DCD UART9_IRQHandler ; UART9 | |||
DCD UART10_IRQHandler ; UART10 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD QUADSPI_IRQHandler ; QuadSPI | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
DCD LPTIM1_IRQHandler ; LPTIM1 | |||
DCD DFSDM2_FLT0_IRQHandler ; DFSDM2 Filter0 | |||
DCD DFSDM2_FLT1_IRQHandler ; DFSDM2 Filter1 | |||
DCD DFSDM2_FLT2_IRQHandler ; DFSDM2 Filter2 | |||
DCD DFSDM2_FLT3_IRQHandler ; DFSDM2 Filter3 | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FSMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FSMC_IRQHandler | |||
B FSMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK DFSDM1_FLT0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT0_IRQHandler | |||
B DFSDM1_FLT0_IRQHandler | |||
PUBWEAK DFSDM1_FLT1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DFSDM1_FLT1_IRQHandler | |||
B DFSDM1_FLT1_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK CAN3_TX_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
CAN3_TX_IRQHandler | |||
B CAN3_TX_IRQHandler | |||
PUBWEAK CAN3_RX0_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
CAN3_RX0_IRQHandler | |||
B CAN3_RX0_IRQHandler | |||
PUBWEAK CAN3_RX1_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
CAN3_RX1_IRQHandler | |||
B CAN3_RX1_IRQHandler | |||
PUBWEAK CAN3_SCE_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
CAN3_SCE_IRQHandler | |||
B CAN3_SCE_IRQHandler | |||
PUBWEAK AES_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
AES_IRQHandler | |||
B AES_IRQHandler | |||
PUBWEAK RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RNG_IRQHandler | |||
B RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK UART7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART7_IRQHandler | |||
B UART7_IRQHandler | |||
PUBWEAK UART8_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART8_IRQHandler | |||
B UART8_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK UART9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART9_IRQHandler | |||
B UART9_IRQHandler | |||
PUBWEAK UART10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART10_IRQHandler | |||
B UART10_IRQHandler | |||
PUBWEAK QUADSPI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
QUADSPI_IRQHandler | |||
B QUADSPI_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
PUBWEAK LPTIM1_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
LPTIM1_IRQHandler | |||
B LPTIM1_IRQHandler | |||
PUBWEAK DFSDM2_FLT0_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
DFSDM2_FLT0_IRQHandler | |||
B DFSDM2_FLT0_IRQHandler | |||
PUBWEAK DFSDM2_FLT1_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
DFSDM2_FLT1_IRQHandler | |||
B DFSDM2_FLT1_IRQHandler | |||
PUBWEAK DFSDM2_FLT2_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
DFSDM2_FLT2_IRQHandler | |||
B DFSDM2_FLT2_IRQHandler | |||
PUBWEAK DFSDM2_FLT3_IRQHandler | |||
SECTION .text:CODE:NOROOT:REORDER(1) | |||
DFSDM2_FLT3_IRQHandler | |||
B DFSDM2_FLT3_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,668 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f427xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F427xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FMC_IRQHandler ; FMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 ETH_IRQHandler ; Ethernet | |||
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
DCD 0 ; Reserved | |||
DCD HASH_RNG_IRQHandler ; Hash and Rng | |||
DCD FPU_IRQHandler ; FPU | |||
DCD UART7_IRQHandler ; UART7 | |||
DCD UART8_IRQHandler ; UART8 | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD SPI6_IRQHandler ; SPI6 | |||
DCD SAI1_IRQHandler ; SAI1 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD DMA2D_IRQHandler ; DMA2D | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMC_IRQHandler | |||
B FMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK ETH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_IRQHandler | |||
B ETH_IRQHandler | |||
PUBWEAK ETH_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_WKUP_IRQHandler | |||
B ETH_WKUP_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK UART7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART7_IRQHandler | |||
B UART7_IRQHandler | |||
PUBWEAK UART8_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART8_IRQHandler | |||
B UART8_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK SPI6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI6_IRQHandler | |||
B SPI6_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK DMA2D_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2D_IRQHandler | |||
B DMA2D_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,678 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f429xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F429xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FMC_IRQHandler ; FMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 ETH_IRQHandler ; Ethernet | |||
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
DCD 0 ; Reserved | |||
DCD HASH_RNG_IRQHandler ; Hash and Rng | |||
DCD FPU_IRQHandler ; FPU | |||
DCD UART7_IRQHandler ; UART7 | |||
DCD UART8_IRQHandler ; UART8 | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD SPI6_IRQHandler ; SPI6 | |||
DCD SAI1_IRQHandler ; SAI1 | |||
DCD LTDC_IRQHandler ; LTDC | |||
DCD LTDC_ER_IRQHandler ; LTDC error | |||
DCD DMA2D_IRQHandler ; DMA2D | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMC_IRQHandler | |||
B FMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK ETH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_IRQHandler | |||
B ETH_IRQHandler | |||
PUBWEAK ETH_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_WKUP_IRQHandler | |||
B ETH_WKUP_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK UART7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART7_IRQHandler | |||
B UART7_IRQHandler | |||
PUBWEAK UART8_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART8_IRQHandler | |||
B UART8_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK SPI6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI6_IRQHandler | |||
B SPI6_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK LTDC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LTDC_IRQHandler | |||
B LTDC_IRQHandler | |||
PUBWEAK LTDC_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LTDC_ER_IRQHandler | |||
B LTDC_ER_IRQHandler | |||
PUBWEAK DMA2D_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2D_IRQHandler | |||
B DMA2D_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,673 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f437xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F437xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FMC_IRQHandler ; FMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 ETH_IRQHandler ; Ethernet | |||
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
DCD CRYP_IRQHandler ; CRYP crypto | |||
DCD HASH_RNG_IRQHandler ; Hash and Rng | |||
DCD FPU_IRQHandler ; FPU | |||
DCD UART7_IRQHandler ; UART7 | |||
DCD UART8_IRQHandler ; UART8 | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD SPI6_IRQHandler ; SPI6 | |||
DCD SAI1_IRQHandler ; SAI1 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD DMA2D_IRQHandler ; DMA2D | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMC_IRQHandler | |||
B FMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK ETH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_IRQHandler | |||
B ETH_IRQHandler | |||
PUBWEAK ETH_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_WKUP_IRQHandler | |||
B ETH_WKUP_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK CRYP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CRYP_IRQHandler | |||
B CRYP_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK UART7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART7_IRQHandler | |||
B UART7_IRQHandler | |||
PUBWEAK UART8_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART8_IRQHandler | |||
B UART8_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK SPI6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI6_IRQHandler | |||
B SPI6_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK DMA2D_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2D_IRQHandler | |||
B DMA2D_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,683 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f439xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F439xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FMC_IRQHandler ; FMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 ETH_IRQHandler ; Ethernet | |||
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
DCD CRYP_IRQHandler ; CRYP crypto | |||
DCD HASH_RNG_IRQHandler ; Hash and Rng | |||
DCD FPU_IRQHandler ; FPU | |||
DCD UART7_IRQHandler ; UART7 | |||
DCD UART8_IRQHandler ; UART8 | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD SPI6_IRQHandler ; SPI6 | |||
DCD SAI1_IRQHandler ; SAI1 | |||
DCD LTDC_IRQHandler ; LTDC | |||
DCD LTDC_ER_IRQHandler ; LTDC error | |||
DCD DMA2D_IRQHandler ; DMA2D | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMC_IRQHandler | |||
B FMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK ETH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_IRQHandler | |||
B ETH_IRQHandler | |||
PUBWEAK ETH_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_WKUP_IRQHandler | |||
B ETH_WKUP_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK CRYP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CRYP_IRQHandler | |||
B CRYP_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK UART7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART7_IRQHandler | |||
B UART7_IRQHandler | |||
PUBWEAK UART8_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART8_IRQHandler | |||
B UART8_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK SPI6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI6_IRQHandler | |||
B SPI6_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK LTDC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LTDC_IRQHandler | |||
B LTDC_IRQHandler | |||
PUBWEAK LTDC_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LTDC_ER_IRQHandler | |||
B LTDC_ER_IRQHandler | |||
PUBWEAK DMA2D_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2D_IRQHandler | |||
B DMA2D_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,663 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f446xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F446xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FMC_IRQHandler ; FMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
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 SAI1_IRQHandler ; SAI1 | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SAI2_IRQHandler ; SAI2 | |||
DCD QUADSPI_IRQHandler ; QuadSPI | |||
DCD CEC_IRQHandler ; CEC | |||
DCD SPDIF_RX_IRQHandler ; SPDIF RX | |||
DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event | |||
DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMC_IRQHandler | |||
B FMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK SAI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI2_IRQHandler | |||
B SAI2_IRQHandler | |||
PUBWEAK QUADSPI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
QUADSPI_IRQHandler | |||
B QUADSPI_IRQHandler | |||
PUBWEAK CEC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CEC_IRQHandler | |||
B CEC_IRQHandler | |||
PUBWEAK SPDIF_RX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPDIF_RX_IRQHandler | |||
B SPDIF_RX_IRQHandler | |||
PUBWEAK FMPI2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_EV_IRQHandler | |||
B FMPI2C1_EV_IRQHandler | |||
PUBWEAK FMPI2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMPI2C1_ER_IRQHandler | |||
B FMPI2C1_ER_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,689 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f469xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F469xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FMC_IRQHandler ; FMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 ETH_IRQHandler ; Ethernet | |||
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
DCD 0 ; Reserved | |||
DCD HASH_RNG_IRQHandler ; Hash and Rng | |||
DCD FPU_IRQHandler ; FPU | |||
DCD UART7_IRQHandler ; UART7 | |||
DCD UART8_IRQHandler ; UART8 | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD SPI6_IRQHandler ; SPI6 | |||
DCD SAI1_IRQHandler ; SAI1 | |||
DCD LTDC_IRQHandler ; LTDC | |||
DCD LTDC_ER_IRQHandler ; LTDC error | |||
DCD DMA2D_IRQHandler ; DMA2D | |||
DCD QUADSPI_IRQHandler ; QUADSPI | |||
DCD DSI_IRQHandler ; DSI Controller | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMC_IRQHandler | |||
B FMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK ETH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_IRQHandler | |||
B ETH_IRQHandler | |||
PUBWEAK ETH_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_WKUP_IRQHandler | |||
B ETH_WKUP_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK UART7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART7_IRQHandler | |||
B UART7_IRQHandler | |||
PUBWEAK UART8_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART8_IRQHandler | |||
B UART8_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK SPI6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI6_IRQHandler | |||
B SPI6_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK LTDC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LTDC_IRQHandler | |||
B LTDC_IRQHandler | |||
PUBWEAK LTDC_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LTDC_ER_IRQHandler | |||
B LTDC_ER_IRQHandler | |||
PUBWEAK DMA2D_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2D_IRQHandler | |||
B DMA2D_IRQHandler | |||
PUBWEAK QUADSPI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
QUADSPI_IRQHandler | |||
B QUADSPI_IRQHandler | |||
PUBWEAK DSI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DSI_IRQHandler | |||
B DSI_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,694 @@ | |||
;******************************************************************************** | |||
;* File Name : startup_stm32f479xx.s | |||
;* Author : MCD Application Team | |||
;* Description : STM32F479xx devices vector table for EWARM toolchain. | |||
;* This module performs: | |||
;* - Set the initial SP | |||
;* - Set the initial PC == _iar_program_start, | |||
;* - Set the vector table entries with the exceptions ISR | |||
;* address. | |||
;* - Branches to main in the C library (which eventually | |||
;* calls main()). | |||
;* After Reset the Cortex-M4 processor is in Thread mode, | |||
;* priority is Privileged, and the Stack is set to Main. | |||
;******************************************************************************** | |||
;* @attention | |||
;* | |||
;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
;* All rights reserved.</center></h2> | |||
;* | |||
;* This software component is licensed by ST under BSD 3-Clause license, | |||
;* the "License"; You may not use this file except in compliance with the | |||
;* License. You may obtain a copy of the License at: | |||
;* opensource.org/licenses/BSD-3-Clause | |||
;* | |||
;******************************************************************************* | |||
; | |||
; | |||
; The modules in this file are included in the libraries, and may be replaced | |||
; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
; a user defined start symbol. | |||
; To override the cstartup defined in the library, simply add your modified | |||
; version to the workbench project. | |||
; | |||
; The vector table is normally located at address 0. | |||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
; The name "__vector_table" has special meaning for C-SPY: | |||
; it is where the SP start value is found, and the NVIC vector | |||
; table register (VTOR) is initialized to this address if != 0. | |||
; | |||
; Cortex-M version | |||
; | |||
MODULE ?cstartup | |||
;; Forward declaration of sections. | |||
SECTION CSTACK:DATA:NOROOT(3) | |||
SECTION .intvec:CODE:NOROOT(2) | |||
EXTERN __iar_program_start | |||
EXTERN SystemInit | |||
PUBLIC __vector_table | |||
DATA | |||
__vector_table | |||
DCD sfe(CSTACK) | |||
DCD Reset_Handler ; Reset Handler | |||
DCD NMI_Handler ; NMI Handler | |||
DCD HardFault_Handler ; Hard Fault Handler | |||
DCD MemManage_Handler ; MPU Fault Handler | |||
DCD BusFault_Handler ; Bus Fault Handler | |||
DCD UsageFault_Handler ; Usage Fault Handler | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD 0 ; Reserved | |||
DCD SVC_Handler ; SVCall Handler | |||
DCD DebugMon_Handler ; Debug Monitor Handler | |||
DCD 0 ; Reserved | |||
DCD PendSV_Handler ; PendSV Handler | |||
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, ADC2 and ADC3s | |||
DCD CAN1_TX_IRQHandler ; CAN1 TX | |||
DCD CAN1_RX0_IRQHandler ; CAN1 RX0 | |||
DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
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 USART3_IRQHandler ; USART3 | |||
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 TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 | |||
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 | |||
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 | |||
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare | |||
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 | |||
DCD FMC_IRQHandler ; FMC | |||
DCD SDIO_IRQHandler ; SDIO | |||
DCD TIM5_IRQHandler ; TIM5 | |||
DCD SPI3_IRQHandler ; SPI3 | |||
DCD UART4_IRQHandler ; UART4 | |||
DCD UART5_IRQHandler ; UART5 | |||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors | |||
DCD TIM7_IRQHandler ; TIM7 | |||
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 ETH_IRQHandler ; Ethernet | |||
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line | |||
DCD CAN2_TX_IRQHandler ; CAN2 TX | |||
DCD CAN2_RX0_IRQHandler ; CAN2 RX0 | |||
DCD CAN2_RX1_IRQHandler ; CAN2 RX1 | |||
DCD CAN2_SCE_IRQHandler ; CAN2 SCE | |||
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 OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out | |||
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In | |||
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI | |||
DCD OTG_HS_IRQHandler ; USB OTG HS | |||
DCD DCMI_IRQHandler ; DCMI | |||
DCD CRYP_IRQHandler ; CRYP crypto | |||
DCD HASH_RNG_IRQHandler ; Hash and Rng | |||
DCD FPU_IRQHandler ; FPU | |||
DCD UART7_IRQHandler ; UART7 | |||
DCD UART8_IRQHandler ; UART8 | |||
DCD SPI4_IRQHandler ; SPI4 | |||
DCD SPI5_IRQHandler ; SPI5 | |||
DCD SPI6_IRQHandler ; SPI6 | |||
DCD SAI1_IRQHandler ; SAI1 | |||
DCD LTDC_IRQHandler ; LTDC | |||
DCD LTDC_ER_IRQHandler ; LTDC error | |||
DCD DMA2D_IRQHandler ; DMA2D | |||
DCD QUADSPI_IRQHandler ; QUADSPI | |||
DCD DSI_IRQHandler ; DSI Controller | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; | |||
;; Default interrupt handlers. | |||
;; | |||
THUMB | |||
PUBWEAK Reset_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(2) | |||
Reset_Handler | |||
LDR R0, =SystemInit | |||
BLX R0 | |||
LDR R0, =__iar_program_start | |||
BX R0 | |||
PUBWEAK NMI_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
NMI_Handler | |||
B NMI_Handler | |||
PUBWEAK HardFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HardFault_Handler | |||
B HardFault_Handler | |||
PUBWEAK MemManage_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
MemManage_Handler | |||
B MemManage_Handler | |||
PUBWEAK BusFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
BusFault_Handler | |||
B BusFault_Handler | |||
PUBWEAK UsageFault_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UsageFault_Handler | |||
B UsageFault_Handler | |||
PUBWEAK SVC_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SVC_Handler | |||
B SVC_Handler | |||
PUBWEAK DebugMon_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DebugMon_Handler | |||
B DebugMon_Handler | |||
PUBWEAK PendSV_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PendSV_Handler | |||
B PendSV_Handler | |||
PUBWEAK SysTick_Handler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SysTick_Handler | |||
B SysTick_Handler | |||
PUBWEAK WWDG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
WWDG_IRQHandler | |||
B WWDG_IRQHandler | |||
PUBWEAK PVD_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
PVD_IRQHandler | |||
B PVD_IRQHandler | |||
PUBWEAK TAMP_STAMP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TAMP_STAMP_IRQHandler | |||
B TAMP_STAMP_IRQHandler | |||
PUBWEAK RTC_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_WKUP_IRQHandler | |||
B RTC_WKUP_IRQHandler | |||
PUBWEAK FLASH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FLASH_IRQHandler | |||
B FLASH_IRQHandler | |||
PUBWEAK RCC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RCC_IRQHandler | |||
B RCC_IRQHandler | |||
PUBWEAK EXTI0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI0_IRQHandler | |||
B EXTI0_IRQHandler | |||
PUBWEAK EXTI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI1_IRQHandler | |||
B EXTI1_IRQHandler | |||
PUBWEAK EXTI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI2_IRQHandler | |||
B EXTI2_IRQHandler | |||
PUBWEAK EXTI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI3_IRQHandler | |||
B EXTI3_IRQHandler | |||
PUBWEAK EXTI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI4_IRQHandler | |||
B EXTI4_IRQHandler | |||
PUBWEAK DMA1_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream0_IRQHandler | |||
B DMA1_Stream0_IRQHandler | |||
PUBWEAK DMA1_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream1_IRQHandler | |||
B DMA1_Stream1_IRQHandler | |||
PUBWEAK DMA1_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream2_IRQHandler | |||
B DMA1_Stream2_IRQHandler | |||
PUBWEAK DMA1_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream3_IRQHandler | |||
B DMA1_Stream3_IRQHandler | |||
PUBWEAK DMA1_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream4_IRQHandler | |||
B DMA1_Stream4_IRQHandler | |||
PUBWEAK DMA1_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream5_IRQHandler | |||
B DMA1_Stream5_IRQHandler | |||
PUBWEAK DMA1_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream6_IRQHandler | |||
B DMA1_Stream6_IRQHandler | |||
PUBWEAK ADC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ADC_IRQHandler | |||
B ADC_IRQHandler | |||
PUBWEAK CAN1_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_TX_IRQHandler | |||
B CAN1_TX_IRQHandler | |||
PUBWEAK CAN1_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX0_IRQHandler | |||
B CAN1_RX0_IRQHandler | |||
PUBWEAK CAN1_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_RX1_IRQHandler | |||
B CAN1_RX1_IRQHandler | |||
PUBWEAK CAN1_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN1_SCE_IRQHandler | |||
B CAN1_SCE_IRQHandler | |||
PUBWEAK EXTI9_5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI9_5_IRQHandler | |||
B EXTI9_5_IRQHandler | |||
PUBWEAK TIM1_BRK_TIM9_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_BRK_TIM9_IRQHandler | |||
B TIM1_BRK_TIM9_IRQHandler | |||
PUBWEAK TIM1_UP_TIM10_IRQHandler | |||
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:NOROOT(1) | |||
TIM1_TRG_COM_TIM11_IRQHandler | |||
B TIM1_TRG_COM_TIM11_IRQHandler | |||
PUBWEAK TIM1_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM1_CC_IRQHandler | |||
B TIM1_CC_IRQHandler | |||
PUBWEAK TIM2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM2_IRQHandler | |||
B TIM2_IRQHandler | |||
PUBWEAK TIM3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM3_IRQHandler | |||
B TIM3_IRQHandler | |||
PUBWEAK TIM4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM4_IRQHandler | |||
B TIM4_IRQHandler | |||
PUBWEAK I2C1_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_EV_IRQHandler | |||
B I2C1_EV_IRQHandler | |||
PUBWEAK I2C1_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C1_ER_IRQHandler | |||
B I2C1_ER_IRQHandler | |||
PUBWEAK I2C2_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_EV_IRQHandler | |||
B I2C2_EV_IRQHandler | |||
PUBWEAK I2C2_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C2_ER_IRQHandler | |||
B I2C2_ER_IRQHandler | |||
PUBWEAK SPI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI1_IRQHandler | |||
B SPI1_IRQHandler | |||
PUBWEAK SPI2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI2_IRQHandler | |||
B SPI2_IRQHandler | |||
PUBWEAK USART1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART1_IRQHandler | |||
B USART1_IRQHandler | |||
PUBWEAK USART2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART2_IRQHandler | |||
B USART2_IRQHandler | |||
PUBWEAK USART3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART3_IRQHandler | |||
B USART3_IRQHandler | |||
PUBWEAK EXTI15_10_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
EXTI15_10_IRQHandler | |||
B EXTI15_10_IRQHandler | |||
PUBWEAK RTC_Alarm_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
RTC_Alarm_IRQHandler | |||
B RTC_Alarm_IRQHandler | |||
PUBWEAK OTG_FS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_WKUP_IRQHandler | |||
B OTG_FS_WKUP_IRQHandler | |||
PUBWEAK TIM8_BRK_TIM12_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_BRK_TIM12_IRQHandler | |||
B TIM8_BRK_TIM12_IRQHandler | |||
PUBWEAK TIM8_UP_TIM13_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_UP_TIM13_IRQHandler | |||
B TIM8_UP_TIM13_IRQHandler | |||
PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_TRG_COM_TIM14_IRQHandler | |||
B TIM8_TRG_COM_TIM14_IRQHandler | |||
PUBWEAK TIM8_CC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM8_CC_IRQHandler | |||
B TIM8_CC_IRQHandler | |||
PUBWEAK DMA1_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA1_Stream7_IRQHandler | |||
B DMA1_Stream7_IRQHandler | |||
PUBWEAK FMC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FMC_IRQHandler | |||
B FMC_IRQHandler | |||
PUBWEAK SDIO_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SDIO_IRQHandler | |||
B SDIO_IRQHandler | |||
PUBWEAK TIM5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM5_IRQHandler | |||
B TIM5_IRQHandler | |||
PUBWEAK SPI3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI3_IRQHandler | |||
B SPI3_IRQHandler | |||
PUBWEAK UART4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART4_IRQHandler | |||
B UART4_IRQHandler | |||
PUBWEAK UART5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART5_IRQHandler | |||
B UART5_IRQHandler | |||
PUBWEAK TIM6_DAC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM6_DAC_IRQHandler | |||
B TIM6_DAC_IRQHandler | |||
PUBWEAK TIM7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
TIM7_IRQHandler | |||
B TIM7_IRQHandler | |||
PUBWEAK DMA2_Stream0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream0_IRQHandler | |||
B DMA2_Stream0_IRQHandler | |||
PUBWEAK DMA2_Stream1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream1_IRQHandler | |||
B DMA2_Stream1_IRQHandler | |||
PUBWEAK DMA2_Stream2_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream2_IRQHandler | |||
B DMA2_Stream2_IRQHandler | |||
PUBWEAK DMA2_Stream3_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream3_IRQHandler | |||
B DMA2_Stream3_IRQHandler | |||
PUBWEAK DMA2_Stream4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream4_IRQHandler | |||
B DMA2_Stream4_IRQHandler | |||
PUBWEAK ETH_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_IRQHandler | |||
B ETH_IRQHandler | |||
PUBWEAK ETH_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
ETH_WKUP_IRQHandler | |||
B ETH_WKUP_IRQHandler | |||
PUBWEAK CAN2_TX_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_TX_IRQHandler | |||
B CAN2_TX_IRQHandler | |||
PUBWEAK CAN2_RX0_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX0_IRQHandler | |||
B CAN2_RX0_IRQHandler | |||
PUBWEAK CAN2_RX1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_RX1_IRQHandler | |||
B CAN2_RX1_IRQHandler | |||
PUBWEAK CAN2_SCE_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CAN2_SCE_IRQHandler | |||
B CAN2_SCE_IRQHandler | |||
PUBWEAK OTG_FS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_FS_IRQHandler | |||
B OTG_FS_IRQHandler | |||
PUBWEAK DMA2_Stream5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream5_IRQHandler | |||
B DMA2_Stream5_IRQHandler | |||
PUBWEAK DMA2_Stream6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream6_IRQHandler | |||
B DMA2_Stream6_IRQHandler | |||
PUBWEAK DMA2_Stream7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2_Stream7_IRQHandler | |||
B DMA2_Stream7_IRQHandler | |||
PUBWEAK USART6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
USART6_IRQHandler | |||
B USART6_IRQHandler | |||
PUBWEAK I2C3_EV_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_EV_IRQHandler | |||
B I2C3_EV_IRQHandler | |||
PUBWEAK I2C3_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
I2C3_ER_IRQHandler | |||
B I2C3_ER_IRQHandler | |||
PUBWEAK OTG_HS_EP1_OUT_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_OUT_IRQHandler | |||
B OTG_HS_EP1_OUT_IRQHandler | |||
PUBWEAK OTG_HS_EP1_IN_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_EP1_IN_IRQHandler | |||
B OTG_HS_EP1_IN_IRQHandler | |||
PUBWEAK OTG_HS_WKUP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_WKUP_IRQHandler | |||
B OTG_HS_WKUP_IRQHandler | |||
PUBWEAK OTG_HS_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
OTG_HS_IRQHandler | |||
B OTG_HS_IRQHandler | |||
PUBWEAK DCMI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DCMI_IRQHandler | |||
B DCMI_IRQHandler | |||
PUBWEAK CRYP_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
CRYP_IRQHandler | |||
B CRYP_IRQHandler | |||
PUBWEAK HASH_RNG_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
HASH_RNG_IRQHandler | |||
B HASH_RNG_IRQHandler | |||
PUBWEAK FPU_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
FPU_IRQHandler | |||
B FPU_IRQHandler | |||
PUBWEAK UART7_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART7_IRQHandler | |||
B UART7_IRQHandler | |||
PUBWEAK UART8_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
UART8_IRQHandler | |||
B UART8_IRQHandler | |||
PUBWEAK SPI4_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI4_IRQHandler | |||
B SPI4_IRQHandler | |||
PUBWEAK SPI5_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI5_IRQHandler | |||
B SPI5_IRQHandler | |||
PUBWEAK SPI6_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SPI6_IRQHandler | |||
B SPI6_IRQHandler | |||
PUBWEAK SAI1_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
SAI1_IRQHandler | |||
B SAI1_IRQHandler | |||
PUBWEAK LTDC_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LTDC_IRQHandler | |||
B LTDC_IRQHandler | |||
PUBWEAK LTDC_ER_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
LTDC_ER_IRQHandler | |||
B LTDC_ER_IRQHandler | |||
PUBWEAK DMA2D_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DMA2D_IRQHandler | |||
B DMA2D_IRQHandler | |||
PUBWEAK QUADSPI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
QUADSPI_IRQHandler | |||
B QUADSPI_IRQHandler | |||
PUBWEAK DSI_IRQHandler | |||
SECTION .text:CODE:REORDER:NOROOT(1) | |||
DSI_IRQHandler | |||
B DSI_IRQHandler | |||
END | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,761 @@ | |||
/** | |||
****************************************************************************** | |||
* @file system_stm32f4xx.c | |||
* @author MCD Application Team | |||
* @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. | |||
* | |||
* This file provides two functions and one global variable to be called from | |||
* user application: | |||
* - SystemInit(): This function is called at startup just after reset and | |||
* before branch to main program. This call is made inside | |||
* the "startup_stm32f4xx.s" file. | |||
* | |||
* - SystemCoreClock variable: Contains the core clock (HCLK), it can be used | |||
* by the user application to setup the SysTick | |||
* timer or configure other parameters. | |||
* | |||
* - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must | |||
* be called whenever the core clock is changed | |||
* during program execution. | |||
* | |||
* | |||
****************************************************************************** | |||
* @attention | |||
* | |||
* <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. Redistributions of source code must retain the above copyright notice, | |||
* this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright notice, | |||
* this list of conditions and the following disclaimer in the documentation | |||
* and/or other materials provided with the distribution. | |||
* 3. Neither the name of STMicroelectronics nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
* | |||
****************************************************************************** | |||
*/ | |||
/** @addtogroup CMSIS | |||
* @{ | |||
*/ | |||
/** @addtogroup stm32f4xx_system | |||
* @{ | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Private_Includes | |||
* @{ | |||
*/ | |||
#include "stm32f4xx.h" | |||
#if !defined (HSE_VALUE) | |||
#define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */ | |||
#endif /* HSE_VALUE */ | |||
#if !defined (HSI_VALUE) | |||
#define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/ | |||
#endif /* HSI_VALUE */ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Private_TypesDefinitions | |||
* @{ | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Private_Defines | |||
* @{ | |||
*/ | |||
/************************* Miscellaneous Configuration ************************/ | |||
/*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */ | |||
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ | |||
|| defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ | |||
|| defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) | |||
/* #define DATA_IN_ExtSRAM */ | |||
#endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||\ | |||
STM32F412Zx || STM32F412Vx */ | |||
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ | |||
|| defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) | |||
/* #define DATA_IN_ExtSDRAM */ | |||
#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\ | |||
STM32F479xx */ | |||
/*!< Uncomment the following line if you need to relocate your vector Table in | |||
Internal SRAM. */ | |||
/* #define VECT_TAB_SRAM */ | |||
#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. | |||
This value must be a multiple of 0x200. */ | |||
/******************************************************************************/ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Private_Macros | |||
* @{ | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Private_Variables | |||
* @{ | |||
*/ | |||
/* This variable is updated in three ways: | |||
1) by calling CMSIS function SystemCoreClockUpdate() | |||
2) by calling HAL API function HAL_RCC_GetHCLKFreq() | |||
3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency | |||
Note: If you use this function to configure the system clock; then there | |||
is no need to call the 2 first functions listed above, since SystemCoreClock | |||
variable is updated automatically. | |||
*/ | |||
uint32_t SystemCoreClock = 16000000; | |||
const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; | |||
const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Private_FunctionPrototypes | |||
* @{ | |||
*/ | |||
#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) | |||
static void SystemInit_ExtMemCtl(void); | |||
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ | |||
/** | |||
* @} | |||
*/ | |||
/** @addtogroup STM32F4xx_System_Private_Functions | |||
* @{ | |||
*/ | |||
/** | |||
* @brief Setup the microcontroller system | |||
* Initialize the FPU setting, vector table location and External memory | |||
* configuration. | |||
* @param None | |||
* @retval None | |||
*/ | |||
void SystemInit(void) | |||
{ | |||
/* FPU settings ------------------------------------------------------------*/ | |||
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) | |||
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ | |||
#endif | |||
/* Reset the RCC clock configuration to the default reset state ------------*/ | |||
/* Set HSION bit */ | |||
RCC->CR |= (uint32_t)0x00000001; | |||
/* Reset CFGR register */ | |||
RCC->CFGR = 0x00000000; | |||
/* Reset HSEON, CSSON and PLLON bits */ | |||
RCC->CR &= (uint32_t)0xFEF6FFFF; | |||
/* Reset PLLCFGR register */ | |||
RCC->PLLCFGR = 0x24003010; | |||
/* Reset HSEBYP bit */ | |||
RCC->CR &= (uint32_t)0xFFFBFFFF; | |||
/* Disable all interrupts */ | |||
RCC->CIR = 0x00000000; | |||
#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) | |||
SystemInit_ExtMemCtl(); | |||
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ | |||
/* Configure the Vector Table location add offset address ------------------*/ | |||
#ifdef VECT_TAB_SRAM | |||
SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ | |||
#else | |||
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ | |||
#endif | |||
} | |||
/** | |||
* @brief Update SystemCoreClock variable according to Clock Register Values. | |||
* The SystemCoreClock variable contains the core clock (HCLK), it can | |||
* be used by the user application to setup the SysTick timer or configure | |||
* other parameters. | |||
* | |||
* @note Each time the core clock (HCLK) changes, this function must be called | |||
* to update SystemCoreClock variable value. Otherwise, any configuration | |||
* based on this variable will be incorrect. | |||
* | |||
* @note - The system frequency computed by this function is not the real | |||
* frequency in the chip. It is calculated based on the predefined | |||
* constant and the selected clock source: | |||
* | |||
* - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) | |||
* | |||
* - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) | |||
* | |||
* - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) | |||
* or HSI_VALUE(*) multiplied/divided by the PLL factors. | |||
* | |||
* (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value | |||
* 16 MHz) but the real value may vary depending on the variations | |||
* in voltage and temperature. | |||
* | |||
* (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value | |||
* depends on the application requirements), user has to ensure that HSE_VALUE | |||
* is same as the real frequency of the crystal used. Otherwise, this function | |||
* may have wrong result. | |||
* | |||
* - The result of this function could be not correct when using fractional | |||
* value for HSE crystal. | |||
* | |||
* @param None | |||
* @retval None | |||
*/ | |||
void SystemCoreClockUpdate(void) | |||
{ | |||
uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2; | |||
/* Get SYSCLK source -------------------------------------------------------*/ | |||
tmp = RCC->CFGR & RCC_CFGR_SWS; | |||
switch (tmp) | |||
{ | |||
case 0x00: /* HSI used as system clock source */ | |||
SystemCoreClock = HSI_VALUE; | |||
break; | |||
case 0x04: /* HSE used as system clock source */ | |||
SystemCoreClock = HSE_VALUE; | |||
break; | |||
case 0x08: /* PLL used as system clock source */ | |||
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N | |||
SYSCLK = PLL_VCO / PLL_P | |||
*/ | |||
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22; | |||
pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; | |||
if (pllsource != 0) | |||
{ | |||
/* HSE used as PLL clock source */ | |||
pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); | |||
} | |||
else | |||
{ | |||
/* HSI used as PLL clock source */ | |||
pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); | |||
} | |||
pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2; | |||
SystemCoreClock = pllvco/pllp; | |||
break; | |||
default: | |||
SystemCoreClock = HSI_VALUE; | |||
break; | |||
} | |||
/* Compute HCLK frequency --------------------------------------------------*/ | |||
/* Get HCLK prescaler */ | |||
tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; | |||
/* HCLK frequency */ | |||
SystemCoreClock >>= tmp; | |||
} | |||
#if defined (DATA_IN_ExtSRAM) && defined (DATA_IN_ExtSDRAM) | |||
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ | |||
|| defined(STM32F469xx) || defined(STM32F479xx) | |||
/** | |||
* @brief Setup the external memory controller. | |||
* Called in startup_stm32f4xx.s before jump to main. | |||
* This function configures the external memories (SRAM/SDRAM) | |||
* This SRAM/SDRAM will be used as program data memory (including heap and stack). | |||
* @param None | |||
* @retval None | |||
*/ | |||
void SystemInit_ExtMemCtl(void) | |||
{ | |||
__IO uint32_t tmp = 0x00; | |||
register uint32_t tmpreg = 0, timeout = 0xFFFF; | |||
register __IO uint32_t index; | |||
/* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */ | |||
RCC->AHB1ENR |= 0x000001F8; | |||
/* Delay after an RCC peripheral clock enabling */ | |||
tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); | |||
/* Connect PDx pins to FMC Alternate function */ | |||
GPIOD->AFR[0] = 0x00CCC0CC; | |||
GPIOD->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PDx pins in Alternate function mode */ | |||
GPIOD->MODER = 0xAAAA0A8A; | |||
/* Configure PDx pins speed to 100 MHz */ | |||
GPIOD->OSPEEDR = 0xFFFF0FCF; | |||
/* Configure PDx pins Output type to push-pull */ | |||
GPIOD->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PDx pins */ | |||
GPIOD->PUPDR = 0x00000000; | |||
/* Connect PEx pins to FMC Alternate function */ | |||
GPIOE->AFR[0] = 0xC00CC0CC; | |||
GPIOE->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PEx pins in Alternate function mode */ | |||
GPIOE->MODER = 0xAAAA828A; | |||
/* Configure PEx pins speed to 100 MHz */ | |||
GPIOE->OSPEEDR = 0xFFFFC3CF; | |||
/* Configure PEx pins Output type to push-pull */ | |||
GPIOE->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PEx pins */ | |||
GPIOE->PUPDR = 0x00000000; | |||
/* Connect PFx pins to FMC Alternate function */ | |||
GPIOF->AFR[0] = 0xCCCCCCCC; | |||
GPIOF->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PFx pins in Alternate function mode */ | |||
GPIOF->MODER = 0xAA800AAA; | |||
/* Configure PFx pins speed to 50 MHz */ | |||
GPIOF->OSPEEDR = 0xAA800AAA; | |||
/* Configure PFx pins Output type to push-pull */ | |||
GPIOF->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PFx pins */ | |||
GPIOF->PUPDR = 0x00000000; | |||
/* Connect PGx pins to FMC Alternate function */ | |||
GPIOG->AFR[0] = 0xCCCCCCCC; | |||
GPIOG->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PGx pins in Alternate function mode */ | |||
GPIOG->MODER = 0xAAAAAAAA; | |||
/* Configure PGx pins speed to 50 MHz */ | |||
GPIOG->OSPEEDR = 0xAAAAAAAA; | |||
/* Configure PGx pins Output type to push-pull */ | |||
GPIOG->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PGx pins */ | |||
GPIOG->PUPDR = 0x00000000; | |||
/* Connect PHx pins to FMC Alternate function */ | |||
GPIOH->AFR[0] = 0x00C0CC00; | |||
GPIOH->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PHx pins in Alternate function mode */ | |||
GPIOH->MODER = 0xAAAA08A0; | |||
/* Configure PHx pins speed to 50 MHz */ | |||
GPIOH->OSPEEDR = 0xAAAA08A0; | |||
/* Configure PHx pins Output type to push-pull */ | |||
GPIOH->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PHx pins */ | |||
GPIOH->PUPDR = 0x00000000; | |||
/* Connect PIx pins to FMC Alternate function */ | |||
GPIOI->AFR[0] = 0xCCCCCCCC; | |||
GPIOI->AFR[1] = 0x00000CC0; | |||
/* Configure PIx pins in Alternate function mode */ | |||
GPIOI->MODER = 0x0028AAAA; | |||
/* Configure PIx pins speed to 50 MHz */ | |||
GPIOI->OSPEEDR = 0x0028AAAA; | |||
/* Configure PIx pins Output type to push-pull */ | |||
GPIOI->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PIx pins */ | |||
GPIOI->PUPDR = 0x00000000; | |||
/*-- FMC Configuration -------------------------------------------------------*/ | |||
/* Enable the FMC interface clock */ | |||
RCC->AHB3ENR |= 0x00000001; | |||
/* Delay after an RCC peripheral clock enabling */ | |||
tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); | |||
FMC_Bank5_6->SDCR[0] = 0x000019E4; | |||
FMC_Bank5_6->SDTR[0] = 0x01115351; | |||
/* SDRAM initialization sequence */ | |||
/* Clock enable command */ | |||
FMC_Bank5_6->SDCMR = 0x00000011; | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
while((tmpreg != 0) && (timeout-- > 0)) | |||
{ | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
} | |||
/* Delay */ | |||
for (index = 0; index<1000; index++); | |||
/* PALL command */ | |||
FMC_Bank5_6->SDCMR = 0x00000012; | |||
timeout = 0xFFFF; | |||
while((tmpreg != 0) && (timeout-- > 0)) | |||
{ | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
} | |||
/* Auto refresh command */ | |||
FMC_Bank5_6->SDCMR = 0x00000073; | |||
timeout = 0xFFFF; | |||
while((tmpreg != 0) && (timeout-- > 0)) | |||
{ | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
} | |||
/* MRD register program */ | |||
FMC_Bank5_6->SDCMR = 0x00046014; | |||
timeout = 0xFFFF; | |||
while((tmpreg != 0) && (timeout-- > 0)) | |||
{ | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
} | |||
/* Set refresh count */ | |||
tmpreg = FMC_Bank5_6->SDRTR; | |||
FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); | |||
/* Disable write protection */ | |||
tmpreg = FMC_Bank5_6->SDCR[0]; | |||
FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); | |||
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) | |||
/* Configure and enable Bank1_SRAM2 */ | |||
FMC_Bank1->BTCR[2] = 0x00001011; | |||
FMC_Bank1->BTCR[3] = 0x00000201; | |||
FMC_Bank1E->BWTR[2] = 0x0fffffff; | |||
#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ | |||
#if defined(STM32F469xx) || defined(STM32F479xx) | |||
/* Configure and enable Bank1_SRAM2 */ | |||
FMC_Bank1->BTCR[2] = 0x00001091; | |||
FMC_Bank1->BTCR[3] = 0x00110212; | |||
FMC_Bank1E->BWTR[2] = 0x0fffffff; | |||
#endif /* STM32F469xx || STM32F479xx */ | |||
(void)(tmp); | |||
} | |||
#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ | |||
#elif defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) | |||
/** | |||
* @brief Setup the external memory controller. | |||
* Called in startup_stm32f4xx.s before jump to main. | |||
* This function configures the external memories (SRAM/SDRAM) | |||
* This SRAM/SDRAM will be used as program data memory (including heap and stack). | |||
* @param None | |||
* @retval None | |||
*/ | |||
void SystemInit_ExtMemCtl(void) | |||
{ | |||
__IO uint32_t tmp = 0x00; | |||
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ | |||
|| defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) | |||
#if defined (DATA_IN_ExtSDRAM) | |||
register uint32_t tmpreg = 0, timeout = 0xFFFF; | |||
register __IO uint32_t index; | |||
#if defined(STM32F446xx) | |||
/* Enable GPIOA, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG interface | |||
clock */ | |||
RCC->AHB1ENR |= 0x0000007D; | |||
#else | |||
/* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface | |||
clock */ | |||
RCC->AHB1ENR |= 0x000001F8; | |||
#endif /* STM32F446xx */ | |||
/* Delay after an RCC peripheral clock enabling */ | |||
tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); | |||
#if defined(STM32F446xx) | |||
/* Connect PAx pins to FMC Alternate function */ | |||
GPIOA->AFR[0] |= 0xC0000000; | |||
GPIOA->AFR[1] |= 0x00000000; | |||
/* Configure PDx pins in Alternate function mode */ | |||
GPIOA->MODER |= 0x00008000; | |||
/* Configure PDx pins speed to 50 MHz */ | |||
GPIOA->OSPEEDR |= 0x00008000; | |||
/* Configure PDx pins Output type to push-pull */ | |||
GPIOA->OTYPER |= 0x00000000; | |||
/* No pull-up, pull-down for PDx pins */ | |||
GPIOA->PUPDR |= 0x00000000; | |||
/* Connect PCx pins to FMC Alternate function */ | |||
GPIOC->AFR[0] |= 0x00CC0000; | |||
GPIOC->AFR[1] |= 0x00000000; | |||
/* Configure PDx pins in Alternate function mode */ | |||
GPIOC->MODER |= 0x00000A00; | |||
/* Configure PDx pins speed to 50 MHz */ | |||
GPIOC->OSPEEDR |= 0x00000A00; | |||
/* Configure PDx pins Output type to push-pull */ | |||
GPIOC->OTYPER |= 0x00000000; | |||
/* No pull-up, pull-down for PDx pins */ | |||
GPIOC->PUPDR |= 0x00000000; | |||
#endif /* STM32F446xx */ | |||
/* Connect PDx pins to FMC Alternate function */ | |||
GPIOD->AFR[0] = 0x000000CC; | |||
GPIOD->AFR[1] = 0xCC000CCC; | |||
/* Configure PDx pins in Alternate function mode */ | |||
GPIOD->MODER = 0xA02A000A; | |||
/* Configure PDx pins speed to 50 MHz */ | |||
GPIOD->OSPEEDR = 0xA02A000A; | |||
/* Configure PDx pins Output type to push-pull */ | |||
GPIOD->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PDx pins */ | |||
GPIOD->PUPDR = 0x00000000; | |||
/* Connect PEx pins to FMC Alternate function */ | |||
GPIOE->AFR[0] = 0xC00000CC; | |||
GPIOE->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PEx pins in Alternate function mode */ | |||
GPIOE->MODER = 0xAAAA800A; | |||
/* Configure PEx pins speed to 50 MHz */ | |||
GPIOE->OSPEEDR = 0xAAAA800A; | |||
/* Configure PEx pins Output type to push-pull */ | |||
GPIOE->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PEx pins */ | |||
GPIOE->PUPDR = 0x00000000; | |||
/* Connect PFx pins to FMC Alternate function */ | |||
GPIOF->AFR[0] = 0xCCCCCCCC; | |||
GPIOF->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PFx pins in Alternate function mode */ | |||
GPIOF->MODER = 0xAA800AAA; | |||
/* Configure PFx pins speed to 50 MHz */ | |||
GPIOF->OSPEEDR = 0xAA800AAA; | |||
/* Configure PFx pins Output type to push-pull */ | |||
GPIOF->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PFx pins */ | |||
GPIOF->PUPDR = 0x00000000; | |||
/* Connect PGx pins to FMC Alternate function */ | |||
GPIOG->AFR[0] = 0xCCCCCCCC; | |||
GPIOG->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PGx pins in Alternate function mode */ | |||
GPIOG->MODER = 0xAAAAAAAA; | |||
/* Configure PGx pins speed to 50 MHz */ | |||
GPIOG->OSPEEDR = 0xAAAAAAAA; | |||
/* Configure PGx pins Output type to push-pull */ | |||
GPIOG->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PGx pins */ | |||
GPIOG->PUPDR = 0x00000000; | |||
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ | |||
|| defined(STM32F469xx) || defined(STM32F479xx) | |||
/* Connect PHx pins to FMC Alternate function */ | |||
GPIOH->AFR[0] = 0x00C0CC00; | |||
GPIOH->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PHx pins in Alternate function mode */ | |||
GPIOH->MODER = 0xAAAA08A0; | |||
/* Configure PHx pins speed to 50 MHz */ | |||
GPIOH->OSPEEDR = 0xAAAA08A0; | |||
/* Configure PHx pins Output type to push-pull */ | |||
GPIOH->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PHx pins */ | |||
GPIOH->PUPDR = 0x00000000; | |||
/* Connect PIx pins to FMC Alternate function */ | |||
GPIOI->AFR[0] = 0xCCCCCCCC; | |||
GPIOI->AFR[1] = 0x00000CC0; | |||
/* Configure PIx pins in Alternate function mode */ | |||
GPIOI->MODER = 0x0028AAAA; | |||
/* Configure PIx pins speed to 50 MHz */ | |||
GPIOI->OSPEEDR = 0x0028AAAA; | |||
/* Configure PIx pins Output type to push-pull */ | |||
GPIOI->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PIx pins */ | |||
GPIOI->PUPDR = 0x00000000; | |||
#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ | |||
/*-- FMC Configuration -------------------------------------------------------*/ | |||
/* Enable the FMC interface clock */ | |||
RCC->AHB3ENR |= 0x00000001; | |||
/* Delay after an RCC peripheral clock enabling */ | |||
tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); | |||
/* Configure and enable SDRAM bank1 */ | |||
#if defined(STM32F446xx) | |||
FMC_Bank5_6->SDCR[0] = 0x00001954; | |||
#else | |||
FMC_Bank5_6->SDCR[0] = 0x000019E4; | |||
#endif /* STM32F446xx */ | |||
FMC_Bank5_6->SDTR[0] = 0x01115351; | |||
/* SDRAM initialization sequence */ | |||
/* Clock enable command */ | |||
FMC_Bank5_6->SDCMR = 0x00000011; | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
while((tmpreg != 0) && (timeout-- > 0)) | |||
{ | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
} | |||
/* Delay */ | |||
for (index = 0; index<1000; index++); | |||
/* PALL command */ | |||
FMC_Bank5_6->SDCMR = 0x00000012; | |||
timeout = 0xFFFF; | |||
while((tmpreg != 0) && (timeout-- > 0)) | |||
{ | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
} | |||
/* Auto refresh command */ | |||
#if defined(STM32F446xx) | |||
FMC_Bank5_6->SDCMR = 0x000000F3; | |||
#else | |||
FMC_Bank5_6->SDCMR = 0x00000073; | |||
#endif /* STM32F446xx */ | |||
timeout = 0xFFFF; | |||
while((tmpreg != 0) && (timeout-- > 0)) | |||
{ | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
} | |||
/* MRD register program */ | |||
#if defined(STM32F446xx) | |||
FMC_Bank5_6->SDCMR = 0x00044014; | |||
#else | |||
FMC_Bank5_6->SDCMR = 0x00046014; | |||
#endif /* STM32F446xx */ | |||
timeout = 0xFFFF; | |||
while((tmpreg != 0) && (timeout-- > 0)) | |||
{ | |||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020; | |||
} | |||
/* Set refresh count */ | |||
tmpreg = FMC_Bank5_6->SDRTR; | |||
#if defined(STM32F446xx) | |||
FMC_Bank5_6->SDRTR = (tmpreg | (0x0000050C<<1)); | |||
#else | |||
FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); | |||
#endif /* STM32F446xx */ | |||
/* Disable write protection */ | |||
tmpreg = FMC_Bank5_6->SDCR[0]; | |||
FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); | |||
#endif /* DATA_IN_ExtSDRAM */ | |||
#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */ | |||
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ | |||
|| defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ | |||
|| defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) | |||
#if defined(DATA_IN_ExtSRAM) | |||
/*-- GPIOs Configuration -----------------------------------------------------*/ | |||
/* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ | |||
RCC->AHB1ENR |= 0x00000078; | |||
/* Delay after an RCC peripheral clock enabling */ | |||
tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIODEN); | |||
/* Connect PDx pins to FMC Alternate function */ | |||
GPIOD->AFR[0] = 0x00CCC0CC; | |||
GPIOD->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PDx pins in Alternate function mode */ | |||
GPIOD->MODER = 0xAAAA0A8A; | |||
/* Configure PDx pins speed to 100 MHz */ | |||
GPIOD->OSPEEDR = 0xFFFF0FCF; | |||
/* Configure PDx pins Output type to push-pull */ | |||
GPIOD->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PDx pins */ | |||
GPIOD->PUPDR = 0x00000000; | |||
/* Connect PEx pins to FMC Alternate function */ | |||
GPIOE->AFR[0] = 0xC00CC0CC; | |||
GPIOE->AFR[1] = 0xCCCCCCCC; | |||
/* Configure PEx pins in Alternate function mode */ | |||
GPIOE->MODER = 0xAAAA828A; | |||
/* Configure PEx pins speed to 100 MHz */ | |||
GPIOE->OSPEEDR = 0xFFFFC3CF; | |||
/* Configure PEx pins Output type to push-pull */ | |||
GPIOE->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PEx pins */ | |||
GPIOE->PUPDR = 0x00000000; | |||
/* Connect PFx pins to FMC Alternate function */ | |||
GPIOF->AFR[0] = 0x00CCCCCC; | |||
GPIOF->AFR[1] = 0xCCCC0000; | |||
/* Configure PFx pins in Alternate function mode */ | |||
GPIOF->MODER = 0xAA000AAA; | |||
/* Configure PFx pins speed to 100 MHz */ | |||
GPIOF->OSPEEDR = 0xFF000FFF; | |||
/* Configure PFx pins Output type to push-pull */ | |||
GPIOF->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PFx pins */ | |||
GPIOF->PUPDR = 0x00000000; | |||
/* Connect PGx pins to FMC Alternate function */ | |||
GPIOG->AFR[0] = 0x00CCCCCC; | |||
GPIOG->AFR[1] = 0x000000C0; | |||
/* Configure PGx pins in Alternate function mode */ | |||
GPIOG->MODER = 0x00085AAA; | |||
/* Configure PGx pins speed to 100 MHz */ | |||
GPIOG->OSPEEDR = 0x000CAFFF; | |||
/* Configure PGx pins Output type to push-pull */ | |||
GPIOG->OTYPER = 0x00000000; | |||
/* No pull-up, pull-down for PGx pins */ | |||
GPIOG->PUPDR = 0x00000000; | |||
/*-- FMC/FSMC Configuration --------------------------------------------------*/ | |||
/* Enable the FMC/FSMC interface clock */ | |||
RCC->AHB3ENR |= 0x00000001; | |||
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) | |||
/* Delay after an RCC peripheral clock enabling */ | |||
tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); | |||
/* Configure and enable Bank1_SRAM2 */ | |||
FMC_Bank1->BTCR[2] = 0x00001011; | |||
FMC_Bank1->BTCR[3] = 0x00000201; | |||
FMC_Bank1E->BWTR[2] = 0x0fffffff; | |||
#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ | |||
#if defined(STM32F469xx) || defined(STM32F479xx) | |||
/* Delay after an RCC peripheral clock enabling */ | |||
tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); | |||
/* Configure and enable Bank1_SRAM2 */ | |||
FMC_Bank1->BTCR[2] = 0x00001091; | |||
FMC_Bank1->BTCR[3] = 0x00110212; | |||
FMC_Bank1E->BWTR[2] = 0x0fffffff; | |||
#endif /* STM32F469xx || STM32F479xx */ | |||
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx)|| defined(STM32F417xx)\ | |||
|| defined(STM32F412Zx) || defined(STM32F412Vx) | |||
/* Delay after an RCC peripheral clock enabling */ | |||
tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FSMCEN); | |||
/* Configure and enable Bank1_SRAM2 */ | |||
FSMC_Bank1->BTCR[2] = 0x00001011; | |||
FSMC_Bank1->BTCR[3] = 0x00000201; | |||
FSMC_Bank1E->BWTR[2] = 0x0FFFFFFF; | |||
#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx */ | |||
#endif /* DATA_IN_ExtSRAM */ | |||
#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\ | |||
STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Vx */ | |||
(void)(tmp); | |||
} | |||
#endif /* DATA_IN_ExtSRAM && DATA_IN_ExtSDRAM */ | |||
/** | |||
* @} | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/** | |||
* @} | |||
*/ | |||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
@@ -0,0 +1,865 @@ | |||
/**************************************************************************//** | |||
* @file cmsis_armcc.h | |||
* @brief CMSIS compiler ARMCC (Arm Compiler 5) header file | |||
* @version V5.0.4 | |||
* @date 10. January 2018 | |||
******************************************************************************/ | |||
/* | |||
* Copyright (c) 2009-2018 Arm Limited. All rights reserved. | |||
* | |||
* SPDX-License-Identifier: Apache-2.0 | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the License); you may | |||
* not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT | |||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
#ifndef __CMSIS_ARMCC_H | |||
#define __CMSIS_ARMCC_H | |||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677) | |||
#error "Please use Arm Compiler Toolchain V4.0.677 or later!" | |||
#endif | |||
/* CMSIS compiler control architecture macros */ | |||
#if ((defined (__TARGET_ARCH_6_M ) && (__TARGET_ARCH_6_M == 1)) || \ | |||
(defined (__TARGET_ARCH_6S_M ) && (__TARGET_ARCH_6S_M == 1)) ) | |||
#define __ARM_ARCH_6M__ 1 | |||
#endif | |||
#if (defined (__TARGET_ARCH_7_M ) && (__TARGET_ARCH_7_M == 1)) | |||
#define __ARM_ARCH_7M__ 1 | |||
#endif | |||
#if (defined (__TARGET_ARCH_7E_M) && (__TARGET_ARCH_7E_M == 1)) | |||
#define __ARM_ARCH_7EM__ 1 | |||
#endif | |||
/* __ARM_ARCH_8M_BASE__ not applicable */ | |||
/* __ARM_ARCH_8M_MAIN__ not applicable */ | |||
/* CMSIS compiler specific defines */ | |||
#ifndef __ASM | |||
#define __ASM __asm | |||
#endif | |||
#ifndef __INLINE | |||
#define __INLINE __inline | |||
#endif | |||
#ifndef __STATIC_INLINE | |||
#define __STATIC_INLINE static __inline | |||
#endif | |||
#ifndef __STATIC_FORCEINLINE | |||
#define __STATIC_FORCEINLINE static __forceinline | |||
#endif | |||
#ifndef __NO_RETURN | |||
#define __NO_RETURN __declspec(noreturn) | |||
#endif | |||
#ifndef __USED | |||
#define __USED __attribute__((used)) | |||
#endif | |||
#ifndef __WEAK | |||
#define __WEAK __attribute__((weak)) | |||
#endif | |||
#ifndef __PACKED | |||
#define __PACKED __attribute__((packed)) | |||
#endif | |||
#ifndef __PACKED_STRUCT | |||
#define __PACKED_STRUCT __packed struct | |||
#endif | |||
#ifndef __PACKED_UNION | |||
#define __PACKED_UNION __packed union | |||
#endif | |||
#ifndef __UNALIGNED_UINT32 /* deprecated */ | |||
#define __UNALIGNED_UINT32(x) (*((__packed uint32_t *)(x))) | |||
#endif | |||
#ifndef __UNALIGNED_UINT16_WRITE | |||
#define __UNALIGNED_UINT16_WRITE(addr, val) ((*((__packed uint16_t *)(addr))) = (val)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT16_READ | |||
#define __UNALIGNED_UINT16_READ(addr) (*((const __packed uint16_t *)(addr))) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32_WRITE | |||
#define __UNALIGNED_UINT32_WRITE(addr, val) ((*((__packed uint32_t *)(addr))) = (val)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32_READ | |||
#define __UNALIGNED_UINT32_READ(addr) (*((const __packed uint32_t *)(addr))) | |||
#endif | |||
#ifndef __ALIGNED | |||
#define __ALIGNED(x) __attribute__((aligned(x))) | |||
#endif | |||
#ifndef __RESTRICT | |||
#define __RESTRICT __restrict | |||
#endif | |||
/* ########################### Core Function Access ########################### */ | |||
/** \ingroup CMSIS_Core_FunctionInterface | |||
\defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions | |||
@{ | |||
*/ | |||
/** | |||
\brief Enable IRQ Interrupts | |||
\details Enables IRQ interrupts by clearing the I-bit in the CPSR. | |||
Can only be executed in Privileged modes. | |||
*/ | |||
/* intrinsic void __enable_irq(); */ | |||
/** | |||
\brief Disable IRQ Interrupts | |||
\details Disables IRQ interrupts by setting the I-bit in the CPSR. | |||
Can only be executed in Privileged modes. | |||
*/ | |||
/* intrinsic void __disable_irq(); */ | |||
/** | |||
\brief Get Control Register | |||
\details Returns the content of the Control Register. | |||
\return Control Register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_CONTROL(void) | |||
{ | |||
register uint32_t __regControl __ASM("control"); | |||
return(__regControl); | |||
} | |||
/** | |||
\brief Set Control Register | |||
\details Writes the given value to the Control Register. | |||
\param [in] control Control Register value to set | |||
*/ | |||
__STATIC_INLINE void __set_CONTROL(uint32_t control) | |||
{ | |||
register uint32_t __regControl __ASM("control"); | |||
__regControl = control; | |||
} | |||
/** | |||
\brief Get IPSR Register | |||
\details Returns the content of the IPSR Register. | |||
\return IPSR Register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_IPSR(void) | |||
{ | |||
register uint32_t __regIPSR __ASM("ipsr"); | |||
return(__regIPSR); | |||
} | |||
/** | |||
\brief Get APSR Register | |||
\details Returns the content of the APSR Register. | |||
\return APSR Register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_APSR(void) | |||
{ | |||
register uint32_t __regAPSR __ASM("apsr"); | |||
return(__regAPSR); | |||
} | |||
/** | |||
\brief Get xPSR Register | |||
\details Returns the content of the xPSR Register. | |||
\return xPSR Register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_xPSR(void) | |||
{ | |||
register uint32_t __regXPSR __ASM("xpsr"); | |||
return(__regXPSR); | |||
} | |||
/** | |||
\brief Get Process Stack Pointer | |||
\details Returns the current value of the Process Stack Pointer (PSP). | |||
\return PSP Register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_PSP(void) | |||
{ | |||
register uint32_t __regProcessStackPointer __ASM("psp"); | |||
return(__regProcessStackPointer); | |||
} | |||
/** | |||
\brief Set Process Stack Pointer | |||
\details Assigns the given value to the Process Stack Pointer (PSP). | |||
\param [in] topOfProcStack Process Stack Pointer value to set | |||
*/ | |||
__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) | |||
{ | |||
register uint32_t __regProcessStackPointer __ASM("psp"); | |||
__regProcessStackPointer = topOfProcStack; | |||
} | |||
/** | |||
\brief Get Main Stack Pointer | |||
\details Returns the current value of the Main Stack Pointer (MSP). | |||
\return MSP Register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_MSP(void) | |||
{ | |||
register uint32_t __regMainStackPointer __ASM("msp"); | |||
return(__regMainStackPointer); | |||
} | |||
/** | |||
\brief Set Main Stack Pointer | |||
\details Assigns the given value to the Main Stack Pointer (MSP). | |||
\param [in] topOfMainStack Main Stack Pointer value to set | |||
*/ | |||
__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) | |||
{ | |||
register uint32_t __regMainStackPointer __ASM("msp"); | |||
__regMainStackPointer = topOfMainStack; | |||
} | |||
/** | |||
\brief Get Priority Mask | |||
\details Returns the current state of the priority mask bit from the Priority Mask Register. | |||
\return Priority Mask value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_PRIMASK(void) | |||
{ | |||
register uint32_t __regPriMask __ASM("primask"); | |||
return(__regPriMask); | |||
} | |||
/** | |||
\brief Set Priority Mask | |||
\details Assigns the given value to the Priority Mask Register. | |||
\param [in] priMask Priority Mask | |||
*/ | |||
__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) | |||
{ | |||
register uint32_t __regPriMask __ASM("primask"); | |||
__regPriMask = (priMask); | |||
} | |||
#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ | |||
(defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) | |||
/** | |||
\brief Enable FIQ | |||
\details Enables FIQ interrupts by clearing the F-bit in the CPSR. | |||
Can only be executed in Privileged modes. | |||
*/ | |||
#define __enable_fault_irq __enable_fiq | |||
/** | |||
\brief Disable FIQ | |||
\details Disables FIQ interrupts by setting the F-bit in the CPSR. | |||
Can only be executed in Privileged modes. | |||
*/ | |||
#define __disable_fault_irq __disable_fiq | |||
/** | |||
\brief Get Base Priority | |||
\details Returns the current value of the Base Priority register. | |||
\return Base Priority register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_BASEPRI(void) | |||
{ | |||
register uint32_t __regBasePri __ASM("basepri"); | |||
return(__regBasePri); | |||
} | |||
/** | |||
\brief Set Base Priority | |||
\details Assigns the given value to the Base Priority register. | |||
\param [in] basePri Base Priority value to set | |||
*/ | |||
__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) | |||
{ | |||
register uint32_t __regBasePri __ASM("basepri"); | |||
__regBasePri = (basePri & 0xFFU); | |||
} | |||
/** | |||
\brief Set Base Priority with condition | |||
\details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, | |||
or the new value increases the BASEPRI priority level. | |||
\param [in] basePri Base Priority value to set | |||
*/ | |||
__STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) | |||
{ | |||
register uint32_t __regBasePriMax __ASM("basepri_max"); | |||
__regBasePriMax = (basePri & 0xFFU); | |||
} | |||
/** | |||
\brief Get Fault Mask | |||
\details Returns the current value of the Fault Mask register. | |||
\return Fault Mask register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_FAULTMASK(void) | |||
{ | |||
register uint32_t __regFaultMask __ASM("faultmask"); | |||
return(__regFaultMask); | |||
} | |||
/** | |||
\brief Set Fault Mask | |||
\details Assigns the given value to the Fault Mask register. | |||
\param [in] faultMask Fault Mask value to set | |||
*/ | |||
__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) | |||
{ | |||
register uint32_t __regFaultMask __ASM("faultmask"); | |||
__regFaultMask = (faultMask & (uint32_t)1U); | |||
} | |||
#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ | |||
(defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ | |||
/** | |||
\brief Get FPSCR | |||
\details Returns the current value of the Floating Point Status/Control register. | |||
\return Floating Point Status/Control register value | |||
*/ | |||
__STATIC_INLINE uint32_t __get_FPSCR(void) | |||
{ | |||
#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ | |||
(defined (__FPU_USED ) && (__FPU_USED == 1U)) ) | |||
register uint32_t __regfpscr __ASM("fpscr"); | |||
return(__regfpscr); | |||
#else | |||
return(0U); | |||
#endif | |||
} | |||
/** | |||
\brief Set FPSCR | |||
\details Assigns the given value to the Floating Point Status/Control register. | |||
\param [in] fpscr Floating Point Status/Control value to set | |||
*/ | |||
__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) | |||
{ | |||
#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ | |||
(defined (__FPU_USED ) && (__FPU_USED == 1U)) ) | |||
register uint32_t __regfpscr __ASM("fpscr"); | |||
__regfpscr = (fpscr); | |||
#else | |||
(void)fpscr; | |||
#endif | |||
} | |||
/*@} end of CMSIS_Core_RegAccFunctions */ | |||
/* ########################## Core Instruction Access ######################### */ | |||
/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface | |||
Access to dedicated instructions | |||
@{ | |||
*/ | |||
/** | |||
\brief No Operation | |||
\details No Operation does nothing. This instruction can be used for code alignment purposes. | |||
*/ | |||
#define __NOP __nop | |||
/** | |||
\brief Wait For Interrupt | |||
\details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. | |||
*/ | |||
#define __WFI __wfi | |||
/** | |||
\brief Wait For Event | |||
\details Wait For Event is a hint instruction that permits the processor to enter | |||
a low-power state until one of a number of events occurs. | |||
*/ | |||
#define __WFE __wfe | |||
/** | |||
\brief Send Event | |||
\details Send Event is a hint instruction. It causes an event to be signaled to the CPU. | |||
*/ | |||
#define __SEV __sev | |||
/** | |||
\brief Instruction Synchronization Barrier | |||
\details Instruction Synchronization Barrier flushes the pipeline in the processor, | |||
so that all instructions following the ISB are fetched from cache or memory, | |||
after the instruction has been completed. | |||
*/ | |||
#define __ISB() do {\ | |||
__schedule_barrier();\ | |||
__isb(0xF);\ | |||
__schedule_barrier();\ | |||
} while (0U) | |||
/** | |||
\brief Data Synchronization Barrier | |||
\details Acts as a special kind of Data Memory Barrier. | |||
It completes when all explicit memory accesses before this instruction complete. | |||
*/ | |||
#define __DSB() do {\ | |||
__schedule_barrier();\ | |||
__dsb(0xF);\ | |||
__schedule_barrier();\ | |||
} while (0U) | |||
/** | |||
\brief Data Memory Barrier | |||
\details Ensures the apparent order of the explicit memory operations before | |||
and after the instruction, without ensuring their completion. | |||
*/ | |||
#define __DMB() do {\ | |||
__schedule_barrier();\ | |||
__dmb(0xF);\ | |||
__schedule_barrier();\ | |||
} while (0U) | |||
/** | |||
\brief Reverse byte order (32 bit) | |||
\details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. | |||
\param [in] value Value to reverse | |||
\return Reversed value | |||
*/ | |||
#define __REV __rev | |||
/** | |||
\brief Reverse byte order (16 bit) | |||
\details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. | |||
\param [in] value Value to reverse | |||
\return Reversed value | |||
*/ | |||
#ifndef __NO_EMBEDDED_ASM | |||
__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) | |||
{ | |||
rev16 r0, r0 | |||
bx lr | |||
} | |||
#endif | |||
/** | |||
\brief Reverse byte order (16 bit) | |||
\details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. | |||
\param [in] value Value to reverse | |||
\return Reversed value | |||
*/ | |||
#ifndef __NO_EMBEDDED_ASM | |||
__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) | |||
{ | |||
revsh r0, r0 | |||
bx lr | |||
} | |||
#endif | |||
/** | |||
\brief Rotate Right in unsigned value (32 bit) | |||
\details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. | |||
\param [in] op1 Value to rotate | |||
\param [in] op2 Number of Bits to rotate | |||
\return Rotated value | |||
*/ | |||
#define __ROR __ror | |||
/** | |||
\brief Breakpoint | |||
\details Causes the processor to enter Debug state. | |||
Debug tools can use this to investigate system state when the instruction at a particular address is reached. | |||
\param [in] value is ignored by the processor. | |||
If required, a debugger can use it to store additional information about the breakpoint. | |||
*/ | |||
#define __BKPT(value) __breakpoint(value) | |||
/** | |||
\brief Reverse bit order of value | |||
\details Reverses the bit order of the given value. | |||
\param [in] value Value to reverse | |||
\return Reversed value | |||
*/ | |||
#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ | |||
(defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) | |||
#define __RBIT __rbit | |||
#else | |||
__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) | |||
{ | |||
uint32_t result; | |||
uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ | |||
result = value; /* r will be reversed bits of v; first get LSB of v */ | |||
for (value >>= 1U; value != 0U; value >>= 1U) | |||
{ | |||
result <<= 1U; | |||
result |= value & 1U; | |||
s--; | |||
} | |||
result <<= s; /* shift when v's highest bits are zero */ | |||
return result; | |||
} | |||
#endif | |||
/** | |||
\brief Count leading zeros | |||
\details Counts the number of leading zeros of a data value. | |||
\param [in] value Value to count the leading zeros | |||
\return number of leading zeros in value | |||
*/ | |||
#define __CLZ __clz | |||
#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ | |||
(defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) | |||
/** | |||
\brief LDR Exclusive (8 bit) | |||
\details Executes a exclusive LDR instruction for 8 bit value. | |||
\param [in] ptr Pointer to data | |||
\return value of type uint8_t at (*ptr) | |||
*/ | |||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) | |||
#define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) | |||
#else | |||
#define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop") | |||
#endif | |||
/** | |||
\brief LDR Exclusive (16 bit) | |||
\details Executes a exclusive LDR instruction for 16 bit values. | |||
\param [in] ptr Pointer to data | |||
\return value of type uint16_t at (*ptr) | |||
*/ | |||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) | |||
#define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) | |||
#else | |||
#define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop") | |||
#endif | |||
/** | |||
\brief LDR Exclusive (32 bit) | |||
\details Executes a exclusive LDR instruction for 32 bit values. | |||
\param [in] ptr Pointer to data | |||
\return value of type uint32_t at (*ptr) | |||
*/ | |||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) | |||
#define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) | |||
#else | |||
#define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop") | |||
#endif | |||
/** | |||
\brief STR Exclusive (8 bit) | |||
\details Executes a exclusive STR instruction for 8 bit values. | |||
\param [in] value Value to store | |||
\param [in] ptr Pointer to location | |||
\return 0 Function succeeded | |||
\return 1 Function failed | |||
*/ | |||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) | |||
#define __STREXB(value, ptr) __strex(value, ptr) | |||
#else | |||
#define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") | |||
#endif | |||
/** | |||
\brief STR Exclusive (16 bit) | |||
\details Executes a exclusive STR instruction for 16 bit values. | |||
\param [in] value Value to store | |||
\param [in] ptr Pointer to location | |||
\return 0 Function succeeded | |||
\return 1 Function failed | |||
*/ | |||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) | |||
#define __STREXH(value, ptr) __strex(value, ptr) | |||
#else | |||
#define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") | |||
#endif | |||
/** | |||
\brief STR Exclusive (32 bit) | |||
\details Executes a exclusive STR instruction for 32 bit values. | |||
\param [in] value Value to store | |||
\param [in] ptr Pointer to location | |||
\return 0 Function succeeded | |||
\return 1 Function failed | |||
*/ | |||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) | |||
#define __STREXW(value, ptr) __strex(value, ptr) | |||
#else | |||
#define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") | |||
#endif | |||
/** | |||
\brief Remove the exclusive lock | |||
\details Removes the exclusive lock which is created by LDREX. | |||
*/ | |||
#define __CLREX __clrex | |||
/** | |||
\brief Signed Saturate | |||
\details Saturates a signed value. | |||
\param [in] value Value to be saturated | |||
\param [in] sat Bit position to saturate to (1..32) | |||
\return Saturated value | |||
*/ | |||
#define __SSAT __ssat | |||
/** | |||
\brief Unsigned Saturate | |||
\details Saturates an unsigned value. | |||
\param [in] value Value to be saturated | |||
\param [in] sat Bit position to saturate to (0..31) | |||
\return Saturated value | |||
*/ | |||
#define __USAT __usat | |||
/** | |||
\brief Rotate Right with Extend (32 bit) | |||
\details Moves each bit of a bitstring right by one bit. | |||
The carry input is shifted in at the left end of the bitstring. | |||
\param [in] value Value to rotate | |||
\return Rotated value | |||
*/ | |||
#ifndef __NO_EMBEDDED_ASM | |||
__attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value) | |||
{ | |||
rrx r0, r0 | |||
bx lr | |||
} | |||
#endif | |||
/** | |||
\brief LDRT Unprivileged (8 bit) | |||
\details Executes a Unprivileged LDRT instruction for 8 bit value. | |||
\param [in] ptr Pointer to data | |||
\return value of type uint8_t at (*ptr) | |||
*/ | |||
#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr)) | |||
/** | |||
\brief LDRT Unprivileged (16 bit) | |||
\details Executes a Unprivileged LDRT instruction for 16 bit values. | |||
\param [in] ptr Pointer to data | |||
\return value of type uint16_t at (*ptr) | |||
*/ | |||
#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr)) | |||
/** | |||
\brief LDRT Unprivileged (32 bit) | |||
\details Executes a Unprivileged LDRT instruction for 32 bit values. | |||
\param [in] ptr Pointer to data | |||
\return value of type uint32_t at (*ptr) | |||
*/ | |||
#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr)) | |||
/** | |||
\brief STRT Unprivileged (8 bit) | |||
\details Executes a Unprivileged STRT instruction for 8 bit values. | |||
\param [in] value Value to store | |||
\param [in] ptr Pointer to location | |||
*/ | |||
#define __STRBT(value, ptr) __strt(value, ptr) | |||
/** | |||
\brief STRT Unprivileged (16 bit) | |||
\details Executes a Unprivileged STRT instruction for 16 bit values. | |||
\param [in] value Value to store | |||
\param [in] ptr Pointer to location | |||
*/ | |||
#define __STRHT(value, ptr) __strt(value, ptr) | |||
/** | |||
\brief STRT Unprivileged (32 bit) | |||
\details Executes a Unprivileged STRT instruction for 32 bit values. | |||
\param [in] value Value to store | |||
\param [in] ptr Pointer to location | |||
*/ | |||
#define __STRT(value, ptr) __strt(value, ptr) | |||
#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ | |||
(defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ | |||
/** | |||
\brief Signed Saturate | |||
\details Saturates a signed value. | |||
\param [in] value Value to be saturated | |||
\param [in] sat Bit position to saturate to (1..32) | |||
\return Saturated value | |||
*/ | |||
__attribute__((always_inline)) __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) | |||
{ | |||
if ((sat >= 1U) && (sat <= 32U)) | |||
{ | |||
const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); | |||
const int32_t min = -1 - max ; | |||
if (val > max) | |||
{ | |||
return max; | |||
} | |||
else if (val < min) | |||
{ | |||
return min; | |||
} | |||
} | |||
return val; | |||
} | |||
/** | |||
\brief Unsigned Saturate | |||
\details Saturates an unsigned value. | |||
\param [in] value Value to be saturated | |||
\param [in] sat Bit position to saturate to (0..31) | |||
\return Saturated value | |||
*/ | |||
__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) | |||
{ | |||
if (sat <= 31U) | |||
{ | |||
const uint32_t max = ((1U << sat) - 1U); | |||
if (val > (int32_t)max) | |||
{ | |||
return max; | |||
} | |||
else if (val < 0) | |||
{ | |||
return 0U; | |||
} | |||
} | |||
return (uint32_t)val; | |||
} | |||
#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ | |||
(defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ | |||
/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ | |||
/* ################### Compiler specific Intrinsics ########################### */ | |||
/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics | |||
Access to dedicated SIMD instructions | |||
@{ | |||
*/ | |||
#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) | |||
#define __SADD8 __sadd8 | |||
#define __QADD8 __qadd8 | |||
#define __SHADD8 __shadd8 | |||
#define __UADD8 __uadd8 | |||
#define __UQADD8 __uqadd8 | |||
#define __UHADD8 __uhadd8 | |||
#define __SSUB8 __ssub8 | |||
#define __QSUB8 __qsub8 | |||
#define __SHSUB8 __shsub8 | |||
#define __USUB8 __usub8 | |||
#define __UQSUB8 __uqsub8 | |||
#define __UHSUB8 __uhsub8 | |||
#define __SADD16 __sadd16 | |||
#define __QADD16 __qadd16 | |||
#define __SHADD16 __shadd16 | |||
#define __UADD16 __uadd16 | |||
#define __UQADD16 __uqadd16 | |||
#define __UHADD16 __uhadd16 | |||
#define __SSUB16 __ssub16 | |||
#define __QSUB16 __qsub16 | |||
#define __SHSUB16 __shsub16 | |||
#define __USUB16 __usub16 | |||
#define __UQSUB16 __uqsub16 | |||
#define __UHSUB16 __uhsub16 | |||
#define __SASX __sasx | |||
#define __QASX __qasx | |||
#define __SHASX __shasx | |||
#define __UASX __uasx | |||
#define __UQASX __uqasx | |||
#define __UHASX __uhasx | |||
#define __SSAX __ssax | |||
#define __QSAX __qsax | |||
#define __SHSAX __shsax | |||
#define __USAX __usax | |||
#define __UQSAX __uqsax | |||
#define __UHSAX __uhsax | |||
#define __USAD8 __usad8 | |||
#define __USADA8 __usada8 | |||
#define __SSAT16 __ssat16 | |||
#define __USAT16 __usat16 | |||
#define __UXTB16 __uxtb16 | |||
#define __UXTAB16 __uxtab16 | |||
#define __SXTB16 __sxtb16 | |||
#define __SXTAB16 __sxtab16 | |||
#define __SMUAD __smuad | |||
#define __SMUADX __smuadx | |||
#define __SMLAD __smlad | |||
#define __SMLADX __smladx | |||
#define __SMLALD __smlald | |||
#define __SMLALDX __smlaldx | |||
#define __SMUSD __smusd | |||
#define __SMUSDX __smusdx | |||
#define __SMLSD __smlsd | |||
#define __SMLSDX __smlsdx | |||
#define __SMLSLD __smlsld | |||
#define __SMLSLDX __smlsldx | |||
#define __SEL __sel | |||
#define __QADD __qadd | |||
#define __QSUB __qsub | |||
#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ | |||
((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) | |||
#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ | |||
((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) | |||
#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \ | |||
((int64_t)(ARG3) << 32U) ) >> 32U)) | |||
#endif /* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ | |||
/*@} end of group CMSIS_SIMD_intrinsics */ | |||
#endif /* __CMSIS_ARMCC_H */ |
@@ -0,0 +1,266 @@ | |||
/**************************************************************************//** | |||
* @file cmsis_compiler.h | |||
* @brief CMSIS compiler generic header file | |||
* @version V5.0.4 | |||
* @date 10. January 2018 | |||
******************************************************************************/ | |||
/* | |||
* Copyright (c) 2009-2018 Arm Limited. All rights reserved. | |||
* | |||
* SPDX-License-Identifier: Apache-2.0 | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the License); you may | |||
* not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT | |||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
#ifndef __CMSIS_COMPILER_H | |||
#define __CMSIS_COMPILER_H | |||
#include <stdint.h> | |||
/* | |||
* Arm Compiler 4/5 | |||
*/ | |||
#if defined ( __CC_ARM ) | |||
#include "cmsis_armcc.h" | |||
/* | |||
* Arm Compiler 6 (armclang) | |||
*/ | |||
#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) | |||
#include "cmsis_armclang.h" | |||
/* | |||
* GNU Compiler | |||
*/ | |||
#elif defined ( __GNUC__ ) | |||
#include "cmsis_gcc.h" | |||
/* | |||
* IAR Compiler | |||
*/ | |||
#elif defined ( __ICCARM__ ) | |||
#include <cmsis_iccarm.h> | |||
/* | |||
* TI Arm Compiler | |||
*/ | |||
#elif defined ( __TI_ARM__ ) | |||
#include <cmsis_ccs.h> | |||
#ifndef __ASM | |||
#define __ASM __asm | |||
#endif | |||
#ifndef __INLINE | |||
#define __INLINE inline | |||
#endif | |||
#ifndef __STATIC_INLINE | |||
#define __STATIC_INLINE static inline | |||
#endif | |||
#ifndef __STATIC_FORCEINLINE | |||
#define __STATIC_FORCEINLINE __STATIC_INLINE | |||
#endif | |||
#ifndef __NO_RETURN | |||
#define __NO_RETURN __attribute__((noreturn)) | |||
#endif | |||
#ifndef __USED | |||
#define __USED __attribute__((used)) | |||
#endif | |||
#ifndef __WEAK | |||
#define __WEAK __attribute__((weak)) | |||
#endif | |||
#ifndef __PACKED | |||
#define __PACKED __attribute__((packed)) | |||
#endif | |||
#ifndef __PACKED_STRUCT | |||
#define __PACKED_STRUCT struct __attribute__((packed)) | |||
#endif | |||
#ifndef __PACKED_UNION | |||
#define __PACKED_UNION union __attribute__((packed)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32 /* deprecated */ | |||
struct __attribute__((packed)) T_UINT32 { uint32_t v; }; | |||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) | |||
#endif | |||
#ifndef __UNALIGNED_UINT16_WRITE | |||
__PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; | |||
#define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT16_READ | |||
__PACKED_STRUCT T_UINT16_READ { uint16_t v; }; | |||
#define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32_WRITE | |||
__PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; | |||
#define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32_READ | |||
__PACKED_STRUCT T_UINT32_READ { uint32_t v; }; | |||
#define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) | |||
#endif | |||
#ifndef __ALIGNED | |||
#define __ALIGNED(x) __attribute__((aligned(x))) | |||
#endif | |||
#ifndef __RESTRICT | |||
#warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. | |||
#define __RESTRICT | |||
#endif | |||
/* | |||
* TASKING Compiler | |||
*/ | |||
#elif defined ( __TASKING__ ) | |||
/* | |||
* The CMSIS functions have been implemented as intrinsics in the compiler. | |||
* Please use "carm -?i" to get an up to date list of all intrinsics, | |||
* Including the CMSIS ones. | |||
*/ | |||
#ifndef __ASM | |||
#define __ASM __asm | |||
#endif | |||
#ifndef __INLINE | |||
#define __INLINE inline | |||
#endif | |||
#ifndef __STATIC_INLINE | |||
#define __STATIC_INLINE static inline | |||
#endif | |||
#ifndef __STATIC_FORCEINLINE | |||
#define __STATIC_FORCEINLINE __STATIC_INLINE | |||
#endif | |||
#ifndef __NO_RETURN | |||
#define __NO_RETURN __attribute__((noreturn)) | |||
#endif | |||
#ifndef __USED | |||
#define __USED __attribute__((used)) | |||
#endif | |||
#ifndef __WEAK | |||
#define __WEAK __attribute__((weak)) | |||
#endif | |||
#ifndef __PACKED | |||
#define __PACKED __packed__ | |||
#endif | |||
#ifndef __PACKED_STRUCT | |||
#define __PACKED_STRUCT struct __packed__ | |||
#endif | |||
#ifndef __PACKED_UNION | |||
#define __PACKED_UNION union __packed__ | |||
#endif | |||
#ifndef __UNALIGNED_UINT32 /* deprecated */ | |||
struct __packed__ T_UINT32 { uint32_t v; }; | |||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) | |||
#endif | |||
#ifndef __UNALIGNED_UINT16_WRITE | |||
__PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; | |||
#define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT16_READ | |||
__PACKED_STRUCT T_UINT16_READ { uint16_t v; }; | |||
#define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32_WRITE | |||
__PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; | |||
#define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32_READ | |||
__PACKED_STRUCT T_UINT32_READ { uint32_t v; }; | |||
#define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) | |||
#endif | |||
#ifndef __ALIGNED | |||
#define __ALIGNED(x) __align(x) | |||
#endif | |||
#ifndef __RESTRICT | |||
#warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. | |||
#define __RESTRICT | |||
#endif | |||
/* | |||
* COSMIC Compiler | |||
*/ | |||
#elif defined ( __CSMC__ ) | |||
#include <cmsis_csm.h> | |||
#ifndef __ASM | |||
#define __ASM _asm | |||
#endif | |||
#ifndef __INLINE | |||
#define __INLINE inline | |||
#endif | |||
#ifndef __STATIC_INLINE | |||
#define __STATIC_INLINE static inline | |||
#endif | |||
#ifndef __STATIC_FORCEINLINE | |||
#define __STATIC_FORCEINLINE __STATIC_INLINE | |||
#endif | |||
#ifndef __NO_RETURN | |||
// NO RETURN is automatically detected hence no warning here | |||
#define __NO_RETURN | |||
#endif | |||
#ifndef __USED | |||
#warning No compiler specific solution for __USED. __USED is ignored. | |||
#define __USED | |||
#endif | |||
#ifndef __WEAK | |||
#define __WEAK __weak | |||
#endif | |||
#ifndef __PACKED | |||
#define __PACKED @packed | |||
#endif | |||
#ifndef __PACKED_STRUCT | |||
#define __PACKED_STRUCT @packed struct | |||
#endif | |||
#ifndef __PACKED_UNION | |||
#define __PACKED_UNION @packed union | |||
#endif | |||
#ifndef __UNALIGNED_UINT32 /* deprecated */ | |||
@packed struct T_UINT32 { uint32_t v; }; | |||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) | |||
#endif | |||
#ifndef __UNALIGNED_UINT16_WRITE | |||
__PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; | |||
#define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT16_READ | |||
__PACKED_STRUCT T_UINT16_READ { uint16_t v; }; | |||
#define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32_WRITE | |||
__PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; | |||
#define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) | |||
#endif | |||
#ifndef __UNALIGNED_UINT32_READ | |||
__PACKED_STRUCT T_UINT32_READ { uint32_t v; }; | |||
#define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) | |||
#endif | |||
#ifndef __ALIGNED | |||
#warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. | |||
#define __ALIGNED(x) | |||
#endif | |||
#ifndef __RESTRICT | |||
#warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. | |||
#define __RESTRICT | |||
#endif | |||
#else | |||
#error Unknown compiler. | |||
#endif | |||
#endif /* __CMSIS_COMPILER_H */ | |||