STM32单片机的启动文件及FLASH分配

发布时间:2023-10-20  

STM32的启动文件


STM32作为一款单片机,它的启动方式很简单,即当Boot配置了从内部Flash启动模式之后,一上电程序就会从0x8000000地址处开始执行文件,因此我们在使用Keil设置程序起始地址的时候,需要将这个Flash地址设置成0x8000000,只有将这个地址设置成0x8000000,生成的hex文件才可以被正常烧录到此地址,单片机上电之后才可以正常启动。而如果使用J-Flash工具烧写Hex文件时,这个地址会自动根据Hex文件解析出来。然而如果当你烧写二进制Bin文件时,还需要手动将单片机的起始地址制定出来,关于Hex文件和Bin文件的异同点,这个又是可以长篇大论一番了,我们下次特别写文章来讲。


图1 Keil设置起始地址和空间


STM32启动文件


;********************* (C) COPYRIGHT 2017 STMicroelectronics ********************;* File Name          : startup_stm32l151xb.s

;* Author             : MCD Application Team

;* Description        : STM32L151XB Devices vector for MDK-ARM toolchain.

;*                      This module performs:

;*                      - Set the initial SP

;*                      - Set the initial PC == Reset_Handler

;*                      - 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-M3 processor is in Thread mode,

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

;********************************************************************************;*;* Copyright (c) 2017 STMicroelectronics. All rights reserved.

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

;*

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

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

;

; Amount of memory (in bytes) allocated for Stack

; Tailor this value to your application needs

; Stack Configuration

;    Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>

; h>Stack_Size      EQU     0x00000400



                AREA    STACK, NOINIT, READWRITE, ALIGN=3

Stack_Mem       SPACE   Stack_Size__initial_sp





; Heap Configuration

;     Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>

; h>Heap_Size       EQU     0x00000200



                AREA    HEAP, NOINIT, READWRITE, ALIGN=3

__heap_base

Heap_Mem        SPACE   Heap_Size

__heap_limit



                PRESERVE8

                THUMB





; Vector Table Mapped to Address 0 at Reset

                AREA    RESET, DATA, READONLY

                EXPORT  __Vectors

                EXPORT  __Vectors_End

                EXPORT  __Vectors_Size__Vectors       DCD     __initial_sp              ; Top of Stack

                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 detect

                DCD     TAMPER_STAMP_IRQHandler   ; Tamper and Time Stamp

                DCD     RTC_WKUP_IRQHandler       ; RTC Wakeup

                DCD     FLASH_IRQHandler          ; FLASH

                DCD     RCC_IRQHandler            ; RCC

                DCD     EXTI0_IRQHandler          ; EXTI Line 0

                DCD     EXTI1_IRQHandler          ; EXTI Line 1

                DCD     EXTI2_IRQHandler          ; EXTI Line 2

                DCD     EXTI3_IRQHandler          ; EXTI Line 3

                DCD     EXTI4_IRQHandler          ; EXTI Line 4

                DCD     DMA1_Channel1_IRQHandler  ; DMA1 Channel 1

                DCD     DMA1_Channel2_IRQHandler  ; DMA1 Channel 2

                DCD     DMA1_Channel3_IRQHandler  ; DMA1 Channel 3

                DCD     DMA1_Channel4_IRQHandler  ; DMA1 Channel 4

                DCD     DMA1_Channel5_IRQHandler  ; DMA1 Channel 5

                DCD     DMA1_Channel6_IRQHandler  ; DMA1 Channel 6

                DCD     DMA1_Channel7_IRQHandler  ; DMA1 Channel 7

                DCD     ADC1_IRQHandler           ; ADC1

                DCD     USB_HP_IRQHandler         ; USB High Priority

                DCD     USB_LP_IRQHandler         ; USB Low  Priority

                DCD     DAC_IRQHandler            ; DAC

                DCD     COMP_IRQHandler           ; COMP through EXTI Line

                DCD     EXTI9_5_IRQHandler        ; EXTI Line 9..5

                DCD     0                         ; Reserved

                DCD     TIM9_IRQHandler           ; TIM9

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>