STM32F4启动文件分析

发布者:EnchantedHeart最新更新时间:2018-12-21 来源: eefocus关键字:STM32F4  启动文件 手机看文章 扫描二维码
随时随地手机看文章

;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************

;* File Name          : startup_stm32f429_439xx.s

;* Author             : MCD Application Team

;* @version           : V1.5.0

;* @date              : 06-March-2015

;* Description        : STM32F429xx/439xx devices vector table for MDK-ARM toolchain. 

;*                      This module performs:

;*                      - Set the initial SP

;*                      - 初始化栈指针SP(ARM R13)

;*                      - Set the initial PC == Reset_Handler

;*                      - 初始化程序计数器PC == 复位异常(ARM USER模式下的R15)

;*                      - Set the vector table entries with the exceptions ISR address

;*                      - 把异常中断服务程序入口地址设置到中断向量表中

;*                      - Configure the system clock and the external SRAM/SDRAM mounted

;*                        on STM324x9I-EVAL boards to be used as data memory

;*                        (optional, to be enabled by user)

;*                      - 配置系统时钟和用作数据存储的外部挂载的SRAM/SDRAM(可选,由用户使能)

;*                      - Branches to __main in the C library (which eventually

;*                        calls main()).

;*                      - 设置分支到C库中的__main(用来最后调用main()函数)

;*                      After Reset the CortexM4 processor is in Thread mode,

;*                      priority is Privileged, and the Stack is set to Main.

;* <<< Use Configuration Wizard in Context Menu >>>   

;*******************************************************************************

; Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");

; You may not use this file except in compliance with the License.

; You may obtain a copy of the License at:

;        http://www.st.com/software_license_agreement_liberty_v2

; 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.

;*******************************************************************************


; Amount of memory (in bytes) allocated for Stack

; Tailor this value to your application needs

;

;   

;


Stack_Size      EQU     0x00000400

;栈大小Stack_Size为0x00000400,即1KB。 


                AREA    STACK, NOINIT, READWRITE, ALIGN=3

;AREA伪指令新建代码段或数据段,STACK表示可变的段名,未初始化,可读可写,2^3=8字节(双字)边界对齐。

Stack_Mem       SPACE   Stack_Size

;Stack_Mem为标号,SPACE伪指令分配了一片连续的大小为Stack_Size字节的存储区域并初始化为0。

__initial_sp

;__initial_sp是个标号,代表当前指令的地址,即栈顶地址。



;

;   

;


Heap_Size       EQU     0x00000200

;堆大小Heap_Size为0x00000200,即512B。 

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3

;新建堆段,未初始化,可读可写,8字节对齐。

__heap_base

;标号,堆的起始地址。

Heap_Mem        SPACE   Heap_Size

;分配并初始化一片连续的存储空间。

__heap_limit

;标号,堆的结束地址。堆是由低向高生长的,跟栈相反。



                PRESERVE8

;等于PRESERVE8 {TRUE},设置文件的PRSE8编译属性,使代码保持堆栈8字节对齐。

                THUMB

;THUMB必须位于使用新语法的任何Thumb代码之前,后面指令兼容THUMB指令。


; Vector Table Mapped to Address 0 at Reset

;向量表在复位时映射到地址0

                AREA    RESET, DATA, READONLY

;定义一个数据段RESET,只读。

                EXPORT  __Vectors

                EXPORT  __Vectors_End

                EXPORT  __Vectors_Size

;声明三个全局标号,该标号可在其他的文件中被引用。

__Vectors       DCD     __initial_sp               ; Top of Stack    栈顶

;中断向量表起始地址,DCD伪指令用于分配一篇连续的字存储单元并用伪指令中制定的表达式初始化。

;用DCD分配的字存储单元是字(4字节)对齐的。

                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    总线错误中断

                                                   ;一般发生在数据访问异常,比如fsmc访问不当

                DCD     UsageFault_Handler         ; Usage Fault Handler    用法错误中断

                                                   ;一般是预取值、位置指令或者数据处理错误

                DCD     0                          ; Reserved

                DCD     0                          ; Reserved

                DCD     0                          ; Reserved

                DCD     0                          ; Reserved

                DCD     SVC_Handler                ; SVCall Handler    系统调用异常

                                                   ;SVC是用户模式代码中的主进程

                                                   ;用于创造对特权操作系统代码的调用

                DCD     DebugMon_Handler           ; Debug Monitor Handler    ???    

                DCD     0                          ; Reserved

                DCD     PendSV_Handler             ; PendSV Handler    挂起异常

                                                   ;用作上下文切换异常。

                DCD     SysTick_Handler            ; SysTick Handler    系统滴答定时器

                                                   ;操作系统内核时钟


                ; External Interrupts    以上都是Coretex M3内核自带的,以下为外部中断向量表

                DCD     WWDG_IRQHandler                   ; Window WatchDog

                DCD     PVD_IRQHandler                    ; PVD through EXTI Line detection    

                                                          ;PVD = Programmable Voltage Detector 

                                                          ;可编程电压监测器(Vdd和Vdda都要参与比较)                           

                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    

                                                          ;OTG = On-The-Go

                                                          ;主要应用于各种不同的设备或移动设备间的联接和数据交换

                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    

                                                          ;SDIO = Secure Digital Input and Output

                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    

                                                          ;DCMI = Digital Camera Interface  

                                                          ;快速摄像头接口                                      

                DCD     CRYP_IRQHandler                   ; CRYP crypto    

                                                          ;CRYP = Cryptographic Processor  

                                                          ;加密处理器                             

                DCD     HASH_RNG_IRQHandler               ; Hash and Rng    

                                                          ;Hash Processor 哈希处理器 

                                                          ;RNG = Random Number Generator 

                                                          ;随机数发生器

                DCD     FPU_IRQHandler                    ; FPU    

                                                          ;FPU = Float Point Unit 

                                                          ;浮点运算单元 

                DCD     UART7_IRQHandler                  ; UART7

                DCD     UART8_IRQHandler                  ; UART8

                DCD     SPI4_IRQHandler                   ; SPI4

                DCD     SPI5_IRQHandler                   ; SPI5

                DCD     SPI6_IRQHandler                   ; SPI6

                DCD     SAI1_IRQHandler                   ; SAI1    

                                                          ;SAI = Serial Audio Interface 

                                                          ;串行音频接口

                DCD     LTDC_IRQHandler                   ; LTDC    液晶分层显示功能

                DCD     LTDC_ER_IRQHandler                ; LTDC error

                DCD     DMA2D_IRQHandler                  ; DMA2D     2D图形加速器


__Vectors_End

;中断向量表结束地址


__Vectors_Size  EQU  __Vectors_End - __Vectors

;计算中断向量表地址空间大小


                AREA    |.text|, CODE, READONLY

 ;|.text|表示由 C 编译程序产生的代码段,或用于以某种方式与 C 库关联的代码段。


; Reset handler

Reset_Handler    PROC

;PROC、ENDP为过程定义伪指令,一个过程可以被其他程序所调用(用CALL指令)。

                 EXPORT  Reset_Handler             [WEAK]

;EXPORT伪指令声明一个全局标号,[WEAK]声明其他的同名标号优先于该标号被引用。               

        IMPORT  SystemInit

;IMPORT伪指令用于通知编译器要使用的标号在其他的源文件中定义,但要在当前源文件中引用,

;而且无论当前源文件是否引用该标号,该标号均会被加入到当前源文件的符号表中。    

        IMPORT  __main


                 LDR     R0, =SystemInit

;LDR将跳转地址放入寄存器R0,准备调用SystemInit                

                 BLX     R0

;带链接和状态切换的跳转,根据最低位切换指令集,调用完子程序后返回。               

                 LDR     R0, =__main

                 BX      R0

;带状态切换的跳转,根据最低位切换指令集,不返回。              

                 ENDP


; Dummy Exception Handlers (infinite loops which can be modified)

;虚拟的中断处理程序(可被修改的无限循环)

;这些中断服务程序都是死循环,真正的中断服务函数需要我们在外部C文件里重新实现。

;如果开了某个中断但没有重新实现中断服务函数,或者写错函数名,

;则当中断到来时程序将跳转到这里进入死循环。

NMI_Handler     PROC

                EXPORT  NMI_Handler                [WEAK]

                B       .

                ENDP

HardFault_Handler\

                PROC

                EXPORT  HardFault_Handler          [WEAK]

                B       .

                ENDP

MemManage_Handler\

                PROC

                EXPORT  MemManage_Handler          [WEAK]

                B       .

                ENDP

BusFault_Handler\

                PROC

                EXPORT  BusFault_Handler           [WEAK]

                B       .

                ENDP

UsageFault_Handler\

                PROC

                EXPORT  UsageFault_Handler         [WEAK]

                B       .

                ENDP

SVC_Handler     PROC

                EXPORT  SVC_Handler                [WEAK]

                B       .

                ENDP

DebugMon_Handler\

                PROC

                EXPORT  DebugMon_Handler           [WEAK]

                B       .

                ENDP

PendSV_Handler  PROC

                EXPORT  PendSV_Handler             [WEAK]

                B       .

                ENDP

SysTick_Handler PROC

                EXPORT  SysTick_Handler            [WEAK]

                B       .

                ENDP


Default_Handler PROC


                EXPORT  WWDG_IRQHandler                   [WEAK]                                        

                EXPORT  PVD_IRQHandler                    [WEAK]                      

                EXPORT  TAMP_STAMP_IRQHandler             [WEAK]         

                EXPORT  RTC_WKUP_IRQHandler               [WEAK]                     

                EXPORT  FLASH_IRQHandler                  [WEAK]                                         

                EXPORT  RCC_IRQHandler                    [WEAK]                                            

                EXPORT  EXTI0_IRQHandler                  [WEAK]                                            

                EXPORT  EXTI1_IRQHandler                  [WEAK]                                             

                EXPORT  EXTI2_IRQHandler                  [WEAK]                                            

                EXPORT  EXTI3_IRQHandler                  [WEAK]                                           

                EXPORT  EXTI4_IRQHandler                  [WEAK]                                            

                EXPORT  DMA1_Stream0_IRQHandler           [WEAK]                                

                EXPORT  DMA1_Stream1_IRQHandler           [WEAK]                                   

                EXPORT  DMA1_Stream2_IRQHandler           [WEAK]                                   

                EXPORT  DMA1_Stream3_IRQHandler           [WEAK]                                   

                EXPORT  DMA1_Stream4_IRQHandler           [WEAK]                                   

                EXPORT  DMA1_Stream5_IRQHandler           [WEAK]                                   

                EXPORT  DMA1_Stream6_IRQHandler           [WEAK]                                   

                EXPORT  ADC_IRQHandler                    [WEAK]                         

                EXPORT  CAN1_TX_IRQHandler                [WEAK]                                                

                EXPORT  CAN1_RX0_IRQHandler               [WEAK]                                               

                EXPORT  CAN1_RX1_IRQHandler               [WEAK]                                                

                EXPORT  CAN1_SCE_IRQHandler               [WEAK]                                                

                EXPORT  EXTI9_5_IRQHandler                [WEAK]                                    

                EXPORT  TIM1_BRK_TIM9_IRQHandler          [WEAK]                  

                EXPORT  TIM1_UP_TIM10_IRQHandler          [WEAK]                

                EXPORT  TIM1_TRG_COM_TIM11_IRQHandler     [WEAK] 

                EXPORT  TIM1_CC_IRQHandler                [WEAK]                                   

                EXPORT  TIM2_IRQHandler                   [WEAK]                                            

                EXPORT  TIM3_IRQHandler                   [WEAK]                                            

                EXPORT  TIM4_IRQHandler                   [WEAK]                                            

                EXPORT  I2C1_EV_IRQHandler                [WEAK]                                             

                EXPORT  I2C1_ER_IRQHandler                [WEAK]                                             

                EXPORT  I2C2_EV_IRQHandler                [WEAK]                                            

                EXPORT  I2C2_ER_IRQHandler                [WEAK]                                               

                EXPORT  SPI1_IRQHandler                   [WEAK]                                           

                EXPORT  SPI2_IRQHandler                   [WEAK]                                            

                EXPORT  USART1_IRQHandler                 [WEAK]                                          

                EXPORT  USART2_IRQHandler                 [WEAK]                                          

                EXPORT  USART3_IRQHandler                 [WEAK]                                         

                EXPORT  EXTI15_10_IRQHandler              [WEAK]                                  

                EXPORT  RTC_Alarm_IRQHandler              [WEAK]                  

                EXPORT  OTG_FS_WKUP_IRQHandler            [WEAK]                        

                EXPORT  TIM8_BRK_TIM12_IRQHandler         [WEAK]                 

                EXPORT  TIM8_UP_TIM13_IRQHandler          [WEAK]                 

                EXPORT  TIM8_TRG_COM_TIM14_IRQHandler     [WEAK] 

                EXPORT  TIM8_CC_IRQHandler                [WEAK]                                   

                EXPORT  DMA1_Stream7_IRQHandler           [WEAK]                                          

                EXPORT  FMC_IRQHandler                    [WEAK]                                             

                EXPORT  SDIO_IRQHandler                   [WEAK]                                             

                EXPORT  TIM5_IRQHandler                   [WEAK]                                             

                EXPORT  SPI3_IRQHandler                   [WEAK]                                             

                EXPORT  UART4_IRQHandler                  [WEAK]                                            

                EXPORT  UART5_IRQHandler                  [WEAK]                                            

                EXPORT  TIM6_DAC_IRQHandler               [WEAK]                   

                EXPORT  TIM7_IRQHandler                   [WEAK]                    

                EXPORT  DMA2_Stream0_IRQHandler           [WEAK]                                  

                EXPORT  DMA2_Stream1_IRQHandler           [WEAK]                                   

                EXPORT  DMA2_Stream2_IRQHandler           [WEAK]                                    

                EXPORT  DMA2_Stream3_IRQHandler           [WEAK]                                    

                EXPORT  DMA2_Stream4_IRQHandler           [WEAK]                                 

                EXPORT  ETH_IRQHandler                    [WEAK]                                         

                EXPORT  ETH_WKUP_IRQHandler               [WEAK]                     

                EXPORT  CAN2_TX_IRQHandler                [WEAK]                                               

                EXPORT  CAN2_RX0_IRQHandler               [WEAK]                                               

                EXPORT  CAN2_RX1_IRQHandler               [WEAK]                                               

                EXPORT  CAN2_SCE_IRQHandler               [WEAK]                                               

                EXPORT  OTG_FS_IRQHandler                 [WEAK]                                       

                EXPORT  DMA2_Stream5_IRQHandler           [WEAK]                                   

                EXPORT  DMA2_Stream6_IRQHandler           [WEAK]                                   

                EXPORT  DMA2_Stream7_IRQHandler           [WEAK]                                   

                EXPORT  USART6_IRQHandler                 [WEAK]                                           

                EXPORT  I2C3_EV_IRQHandler                [WEAK]                                              

                EXPORT  I2C3_ER_IRQHandler                [WEAK]                                              

                EXPORT  OTG_HS_EP1_OUT_IRQHandler         [WEAK]                      

                EXPORT  OTG_HS_EP1_IN_IRQHandler          [WEAK]                      

                EXPORT  OTG_HS_WKUP_IRQHandler            [WEAK]                        

                EXPORT  OTG_HS_IRQHandler                 [WEAK]                                      

                EXPORT  DCMI_IRQHandler                   [WEAK]                                             

                EXPORT  CRYP_IRQHandler                   [WEAK]                                     

                EXPORT  HASH_RNG_IRQHandler               [WEAK]

                EXPORT  FPU_IRQHandler                    [WEAK]

                EXPORT  UART7_IRQHandler                  [WEAK]

                EXPORT  UART8_IRQHandler                  [WEAK]

                EXPORT  SPI4_IRQHandler                   [WEAK]

                EXPORT  SPI5_IRQHandler                   [WEAK]

                EXPORT  SPI6_IRQHandler                   [WEAK]

                EXPORT  SAI1_IRQHandler                   [WEAK]

                EXPORT  LTDC_IRQHandler                   [WEAK]

                EXPORT  LTDC_ER_IRQHandler                [WEAK]

                EXPORT  DMA2D_IRQHandler                  [WEAK]


WWDG_IRQHandler                                                       

PVD_IRQHandler                                      

TAMP_STAMP_IRQHandler                  

RTC_WKUP_IRQHandler                                

FLASH_IRQHandler                                                       

RCC_IRQHandler                                                            

EXTI0_IRQHandler                                                          

EXTI1_IRQHandler                                                           

EXTI2_IRQHandler                                                          

EXTI3_IRQHandler                                                         

EXTI4_IRQHandler                                                          

DMA1_Stream0_IRQHandler                                       

DMA1_Stream1_IRQHandler                                          

DMA1_Stream2_IRQHandler                                          

DMA1_Stream3_IRQHandler                                          

DMA1_Stream4_IRQHandler                                          

DMA1_Stream5_IRQHandler                                          

DMA1_Stream6_IRQHandler                                          

ADC_IRQHandler                                         

CAN1_TX_IRQHandler                                                            

CAN1_RX0_IRQHandler                                                          

CAN1_RX1_IRQHandler                                                           

CAN1_SCE_IRQHandler                                                           

EXTI9_5_IRQHandler                                                

TIM1_BRK_TIM9_IRQHandler                        

TIM1_UP_TIM10_IRQHandler                      

TIM1_TRG_COM_TIM11_IRQHandler  

TIM1_CC_IRQHandler                                               

TIM2_IRQHandler                                                           

TIM3_IRQHandler                                                           

TIM4_IRQHandler                                                           

I2C1_EV_IRQHandler                                                         

I2C1_ER_IRQHandler                                                         

I2C2_EV_IRQHandler                                                        

I2C2_ER_IRQHandler                                                           

SPI1_IRQHandler                                                          

SPI2_IRQHandler                                                           

USART1_IRQHandler                                                       

USART2_IRQHandler                                                       

USART3_IRQHandler                                                      

EXTI15_10_IRQHandler                                            

RTC_Alarm_IRQHandler                            

OTG_FS_WKUP_IRQHandler                                

TIM8_BRK_TIM12_IRQHandler                      

TIM8_UP_TIM13_IRQHandler                       

TIM8_TRG_COM_TIM14_IRQHandler  

TIM8_CC_IRQHandler                                               

DMA1_Stream7_IRQHandler                                                 

FMC_IRQHandler                                                            

SDIO_IRQHandler                                                            

TIM5_IRQHandler                                                            

SPI3_IRQHandler                                                            

UART4_IRQHandler                                                          

UART5_IRQHandler                                                          

TIM6_DAC_IRQHandler                            

TIM7_IRQHandler                              

DMA2_Stream0_IRQHandler                                         

DMA2_Stream1_IRQHandler                                          

DMA2_Stream2_IRQHandler                                           

DMA2_Stream3_IRQHandler                                           

DMA2_Stream4_IRQHandler                                        

ETH_IRQHandler                                                         

ETH_WKUP_IRQHandler                                

CAN2_TX_IRQHandler                                                           

CAN2_RX0_IRQHandler                                                          

CAN2_RX1_IRQHandler                                                          

CAN2_SCE_IRQHandler                                                          

OTG_FS_IRQHandler                                                    

DMA2_Stream5_IRQHandler                                          

DMA2_Stream6_IRQHandler                                          

DMA2_Stream7_IRQHandler                                          

USART6_IRQHandler                                                        

I2C3_EV_IRQHandler                                                          

I2C3_ER_IRQHandler                                                          

OTG_HS_EP1_OUT_IRQHandler                           

OTG_HS_EP1_IN_IRQHandler                            

OTG_HS_WKUP_IRQHandler                                

OTG_HS_IRQHandler                                                   

DCMI_IRQHandler                                                            

CRYP_IRQHandler                                                    

HASH_RNG_IRQHandler

FPU_IRQHandler  

UART7_IRQHandler                  

UART8_IRQHandler                  

SPI4_IRQHandler                   

SPI5_IRQHandler                   

SPI6_IRQHandler                   

SAI1_IRQHandler                   

LTDC_IRQHandler                   

LTDC_ER_IRQHandler                 

DMA2D_IRQHandler                  

                B       .


                ENDP


                ALIGN

;ALIGN伪指令可通过添加填充字节的方式,使当前位置满足一定的对齐方式。

;后面的表达式未指定则将当前位置对齐到下一个字的位置。


;*******************************************************************************

; User Stack and Heap initialization

;*******************************************************************************

                 IF      :DEF:__MICROLIB

;如果定义了__MICROLIB,则为以下三个标号赋予全局属性。


                 EXPORT  __initial_sp

                 EXPORT  __heap_base

                 EXPORT  __heap_limit


                 ELSE

;否则,则引入在其他源文件中定义的标号__use_two_region_memory,

;声明全局标号__user_initial_stackheap。           


                 IMPORT  __use_two_region_memory

                 EXPORT  __user_initial_stackheap


__user_initial_stackheap

;堆栈初始化,R0保存堆起始地址,R1保存栈顶地址,R2保存堆的结束地址,R3保存栈底地址。


                 LDR     R0, =  Heap_Mem

                 LDR     R1, =(Stack_Mem + Stack_Size)

                 LDR     R2, = (Heap_Mem +  Heap_Size)

                 LDR     R3, = Stack_Mem

                 BX      LR


                 ALIGN


                 ENDIF


                 END

;ENTRY伪指令标识程序的入口点,END指示代码段结束。                


;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****

关键字:STM32F4  启动文件 引用地址:STM32F4启动文件分析

上一篇:使用ST-Link Utility去除STM32芯片读写保护
下一篇:STM32 串口中断里面使用printf 出现错误

推荐阅读最新更新时间:2024-03-16 16:21

基于STM32L151//STM32F407的矩阵键盘程序(不规则接口)
最近在做一个有关按键的项目,需要用到矩阵键盘,上网找了很多都是基于一些规则接口的程序,感觉无语,因为画PCB由于布线原因 不太可能矩阵键盘的几条线是连接连续的GPIO口,所以经过我自己思考,做出了自己基于STM32的不规则程序, 由于每种矩阵键盘的连接原理有时是不同,所以首先先讲明我的矩阵键盘的连接原理 4条行线初始化时全为1,列线全为0,由于我的列先有接10K的电阻,有按键按下时,被按下的列线为1, 行线一次置为1、0、0、0,1,0,0�,0,1,0�,0,0,1 基于STM32L151//STM32F407的矩阵键盘程序(不规则接口): 行接口:PA8,PA12,PB3,PB4 列接口:PA11,P
[单片机]
基于STM32L151//<font color='red'>STM32F4</font>07的矩阵键盘程序(不规则接口)
STM32F4 EXTI外部中断(一)
STM32中共有23根中断总线 外部中断配置步骤 1.使能IO时钟,初始化IO为输入 详见 2.开启SYSCFG时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟 3.设置IO口与中断线映射关系 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); 参数1:端口组 EXTI_PortSourceGPIOA, EXTI_PortSourceGPIOB, EXTI_PortSourceGPIOC ~~~ 参数2:中断线:EXTI_PinSource0 ~ EXTI_
[单片机]
<font color='red'>STM32F4</font> EXTI外部中断(一)
基础——STM32F4的GPIO模式
stm32的GPIO的配置模式包括: 1. 模拟输入; 2. 浮空输入; 3. 上拉输入; 4. 下拉输入; 5. 开漏输出; 6. 推挽输出; 7. 复用开漏输出; 8. 复用推挽输出 1.模拟输入 从上图我们可以看到,我觉得模拟输入最重要的一点就是,他不经过输入数据寄存器,所以我们无法通过读取输入数据寄存器来获取模拟输入的值,我觉得这一点也是很好理解的,因为输入数据寄存器中存放的不是0就是1,而模拟输入信号不符合这一要求,所以自然不能放进输入数据寄存器。该输入模式,使我们可以获得外部的模拟信号。 2.浮空输入 该输入状态,我的理解是,它的输入完全由外部决定,我觉得在数据通信中应该可以使用该模式。应为在数
[单片机]
基础——<font color='red'>STM32F4</font>的GPIO模式
STM32F4微控制器家族再添新成员 主打整体均衡与高性能
近期,意法半导体STM32F4系列微控制器再推新品,整体均衡的STM32F401和高性能的STM32F429/39,进一步丰富了嵌入式开发系统。据意法半导体全球市场总监Daniel Colonna介绍,两个最新产品将突破F4系列低功率、低成本和优性能的极限。他这样强调:STM32F401可以在性能、功耗、集成度、成本四个方面达到最佳均衡,而STM32F429/39可以提供更多资源、更高性能、更多功能。 整体均衡的STM32F401 STM32F401是系列产品中低功率和低成本的代表,意法半导体中国区微控制器市场部经理曹锦东先生讲到,作为一款入门级的微控制器,在保证32位单片机性能的基础上,STM32F401尽可能地满足用户
[单片机]
STM32F405与STM32F407CAN配置
STM32F405与STM32F407CAN配置略有不同,不同之处在于407多了一个电平拉高拉低模式,配置时一定要注意。 其次,要开CAN2,必须开CAN1,因为CAN1是主,CAN2是从;开了CAN中断,一定要写中断处理函数并及时清除中断标志位,否则程序会卡死。 405的配置: GPIO_InitTypeDef GPIO_InitStruct; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_A
[单片机]
关于ARM MDK使用STM32F4xx 硬件浮点单元的话题
一. 前言 有工程师反应说Keil 下无法使用 STM32F4 xx 硬件浮点单元, 导致当运算浮点时运算时间过长,还有一些人反应不知如何使用芯片芯片内部的复杂数学运算,比如三角函数运算。针对这个部分本文将详细介绍如何使用硬件浮点单元以及相关数学运算。 二.问题产生原因 1. ------对于Keil MDK Version 5 版本, 编译器已经完全支持STM32F4xx 的FPU(浮点运算单元),可以直接使用芯片内部的浮点运算单元。 2. ------对于Keil MDK Version 4 版本, 高版本v4,比如当前 keil 官网可下载的v4.74.0.0 版本也已经支持FPU,可以直接使用芯片内部浮点运算。但如果使
[单片机]
关于ARM MDK使用<font color='red'>STM32F4</font>xx 硬件浮点单元的话题
STM32F4设置NVIC中断优先级分组
中断管理方法: 首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。 分组配置是在寄存器SCB- AIRCR中配置: 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。 抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。 抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。 如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行。 中断设置相关寄存器 __IO uint8_t IP ; //中断优先级控制的寄存器组 __IO uint32_t ISER ; //中断使能寄存器组 __IO uin
[单片机]
STM32F4——定时器原理及应用中断、输入捕获、PWM输出
一、简介: 不同的STM32系列有不同数量的定时器,针对现在学习的STM32F40x系列总共有14个定时器,针对这14个定时器可以将其分为3类,高级定时器、通用定时器和基本定时器,三种定时器大同小异,下边会针对通用定时器来介绍定时器的原理和应用。对于通用定时器根据位数和计数方式的不同又可以分为3类,相关分类的图表如下: 二、应用: 1、更新:计数器的上溢或下溢。2、事件触发。3、输入捕获。4、输出比较。5、支持针对定位的增量编码和霍尔传感器电路。5、触发输入作为外部时钟或按周期电源管理。下边会针对部分应用做相关介绍和代码分析。 三、框图: 下图是通用定时器TIM2~TIM5的框图,其他定时器的框图和该框图是
[单片机]
<font color='red'>STM32F4</font>——定时器原理及应用中断、输入捕获、PWM输出
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved