stm32f10x_startup.s的代码

来源:互联网 发布:牛肉干市场调查数据 编辑:程序博客网 时间:2024/05/16 05:48
一、stm32f10x_startup.s的代码;***************************************************************************************; Amount of memory (in bytes) allocated for Stack and Heap; Tailor those values to your application needs        分配堆栈和堆的内存量(以字节为单位)4096根据您的应用需求定制这些值汇编语言伪指令EQU:等价语句一般使用格式: 符号名 EQU 表达式 作用是左边的符号名代表右边的表达式。注意:等价语句不会给符号名分配存储空间,符号名不能与其它符号同名,也不能被重新定义(类似宏定义)。;***************************************************************************************Stack_Size   EQU     0x400Heap_Size    EQU     0x400;*******************************************************************************; Allocate space for the Stack为堆栈分配空间;*******************************************************************************  AREA    STACK, NOINIT, READWRITE, ALIGN=3Stack    SPACE   Stack_Size;*******************************************************************************; Allocate space for the Heap;*******************************************************************************  AREA    HEAP, NOINIT, READWRITE, ALIGN=3Heap    SPACE   Heap_Size;********************************************************************************;*  Declarations for the interrupt handlers that are used by the application.   应用程序使用的中断处理程序的声明。                                                                  ;********************************************************************************        IMPORT  __main        IMPORT  OSPendSV        IMPORT  SysTickHandler        IMPORT  WWDG_IRQHandler        IMPORT  PVD_IRQHandler        IMPORT  TAMPER_IRQHandler        IMPORT  RTC_IRQHandler        IMPORT  FLASH_IRQHandler        IMPORT  RCC_IRQHandler        IMPORT  EXTI0_IRQHandler        IMPORT  EXTI1_IRQHandler        IMPORT  EXTI2_IRQHandler        IMPORT  EXTI3_IRQHandler        IMPORT  EXTI4_IRQHandler        IMPORT  DMAChannel1_IRQHandler        IMPORT  DMAChannel2_IRQHandler        IMPORT  DMAChannel3_IRQHandler        IMPORT  DMAChannel4_IRQHandler        IMPORT  DMAChannel5_IRQHandler        IMPORT  DMAChannel6_IRQHandler        IMPORT  DMAChannel7_IRQHandler        IMPORT  ADC_IRQHandler        IMPORT  USB_HP_CAN_TX_IRQHandler        IMPORT  USB_LP_CAN_RX0_IRQHandler        IMPORT  CAN_RX1_IRQHandler        IMPORT  CAN_SCE_IRQHandler        IMPORT  EXTI9_5_IRQHandler        IMPORT  TIM1_BRK_IRQHandler        IMPORT  TIM1_UP_IRQHandler        IMPORT  TIM1_TRG_COM_IRQHandler        IMPORT  TIM1_CC_IRQHandler        IMPORT  TIM2_IRQHandler        IMPORT  TIM3_IRQHandler        IMPORT  TIM4_IRQHandler        IMPORT  I2C1_EV_IRQHandler        IMPORT  I2C1_ER_IRQHandler        IMPORT  I2C2_EV_IRQHandler        IMPORT  I2C2_ER_IRQHandler        IMPORT  SPI1_IRQHandler        IMPORT  SPI2_IRQHandler        IMPORT  USART1_IRQHandler        IMPORT  USART2_IRQHandler        IMPORT  USART3_IRQHandler        IMPORT  EXTI15_10_IRQHandler        IMPORT  RTCAlarm_IRQHandler        IMPORT  USBWakeUp_IRQHandler        PRESERVE8;**********************************************************************************;*  Reset code section.      重置代码段。                                                                                                     ;**********************************************************************************        AREA    RESET, CODE, READONLY        THUMB;*******************************************************************************; Fill-up the Vector Table entries with the exceptions ISR address填写向量表条目与例外ISR地址;*******************************************************************************        EXPORT  __Vectors__Vectors                              DCD  Stack + Stack_Size            ; Top of Stack        DCD  Reset_Handler        DCD  NMIException        DCD  HardFaultException        DCD  MemManageException        DCD  BusFaultException        DCD  UsageFaultException        DCD  0                 ; Reserved        DCD  0                 ; Reserved        DCD  0                 ; Reserved        DCD  0                 ; Reserved        DCD  SVCHandler        DCD  DebugMonitor        DCD  0                 ; Reserved        DCD  OSPendSV        DCD  SysTickHandler        DCD  WWDG_IRQHandler        DCD  PVD_IRQHandler        DCD  TAMPER_IRQHandler        DCD  RTC_IRQHandler        DCD  FLASH_IRQHandler        DCD  RCC_IRQHandler        DCD  EXTI0_IRQHandler        DCD  EXTI1_IRQHandler        DCD  EXTI2_IRQHandler        DCD  EXTI3_IRQHandler        DCD  EXTI4_IRQHandler        DCD  DMAChannel1_IRQHandler        DCD  DMAChannel2_IRQHandler        DCD  DMAChannel3_IRQHandler        DCD  DMAChannel4_IRQHandler        DCD  DMAChannel5_IRQHandler        DCD  DMAChannel6_IRQHandler        DCD  DMAChannel7_IRQHandler        DCD  ADC_IRQHandler        DCD  USB_HP_CAN_TX_IRQHandler        DCD  USB_LP_CAN_RX0_IRQHandler        DCD  CAN_RX1_IRQHandler        DCD  CAN_SCE_IRQHandler        DCD  EXTI9_5_IRQHandler        DCD  TIM1_BRK_IRQHandler        DCD  TIM1_UP_IRQHandler        DCD  TIM1_TRG_COM_IRQHandler        DCD  TIM1_CC_IRQHandler        DCD  TIM2_IRQHandler        DCD  TIM3_IRQHandler        DCD  TIM4_IRQHandler        DCD  I2C1_EV_IRQHandler        DCD  I2C1_ER_IRQHandler        DCD  I2C2_EV_IRQHandler        DCD  I2C2_ER_IRQHandler        DCD  SPI1_IRQHandler        DCD  SPI2_IRQHandler        DCD  USART1_IRQHandler        DCD  USART2_IRQHandler        DCD  USART3_IRQHandler        DCD  EXTI15_10_IRQHandler        DCD  RTCAlarm_IRQHandler        DCD  USBWakeUp_IRQHandler         DCD  0                 ; Reserved        DCD  0                 ; Reserved        DCD  0                 ; Reserved        DCD  0                 ; Reserved        DCD  0                 ; Reserved;******************************************************************************************;*  Reset entry;******************************************************************************************        EXPORT  Reset_HandlerReset_Handler        IMPORT  __main        LDR     R0, =__main        BX      R0;******************************************************************************************;*  NMI exception handler. ;*  It simply enters an infinite loop.NMI的异常处理程序。*它只是进入一个无限循环。;******************************************************************************************NMIException        B       NMIException;******************************************************************************************;*  Fault interrupt handler. ;*  It simply enters an infinite loop.故障中断处理程序。*它只是进入一个无限循环。;******************************************************************************************HardFaultException        B       HardFaultException;******************************************************************************************;*  MemManage interrupt handler. ;*  It simply enters an infinite loop.memmanage中断处理程序。*它只是进入一个无限循环。;******************************************************************************************MemManageException        B       MemManageException;******************************************************************************************;*  Bus Fault interrupt handler. ;*  It simply enters an infinite loop.;******************************************************************************************BusFaultException        B       BusFaultException;******************************************************************************************;*  UsageFault interrupt handler. ;*  It simply enters an infinite loop.;******************************************************************************************UsageFaultException        B       UsageFaultException;******************************************************************************************;*  DebugMonitor interrupt handler. ;*  It simply enters an infinite loop.;******************************************************************************************DebugMonitor        B       DebugMonitor;******************************************************************************************;*  SVCall interrupt handler. ;*  It simply enters an infinite loop.;******************************************************************************************SVCHandler        B       SVCHandler;*******************************************************************************************;*  Make sure the end of this section is aligned.确保本节的结束是对齐的。;*******************************************************************************************        ALIGN;********************************************************************************************;*  Code section for initializing the heap and stack       初始化堆和堆栈的代码部分                                                                                                  ;********************************************************************************************        AREA    |.text|, CODE, READONLY;********************************************************************************************;*  The function expected of the C library startup ;*  code for defining the stack and heap memory locations. C库启动的函数期望定义堆栈和堆内存位置的代码。;********************************************************************************************        IMPORT  __use_two_region_memory        EXPORT  __user_initial_stackheap __user_initial_stackheap        LDR     R0, =Heap        LDR     R1, =(Stack + Stack_Size)        LDR     R2, =(Heap + Heap_Size)        LDR     R3, =Stack        BX      LR;******************************************************************************************;*  Make sure the end of this section is aligned.;******************************************************************************************        ALIGN;*******************************************************************************************;*  End Of File                                                     ;*******************************************************************************************        END
0 0