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

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

相关文章

    stm32单片机5v电压怎么提供;STM32单片机一般需要供电电压为3.3V,但也有一些型号的单片机可以工作在5V电压下。在供电电压方面,有几种方法可以为STM32单片机提供5V电压:使用......
    STM32单片机一般有几种调试方式(stm32与TDC SPI通信调试);STM32单片机介绍 STM32单片机是由意法半导体(STMicroelectronics)公司开发和生产的一系列32位......
    on Chip) 5.可编程片上系统SoPC(System on a Programmable Chip) 而我们单片机就属于嵌入式控制器MCU这类,所以单片机当然是属于嵌入式系统。 从上面的处理器分类......
    的干扰传播路径是通过导线的传导和空间的辐射。 敏感器件。指容易被干扰的对象。如:A/D、D/A变换器,单片机,数字IC,弱信号放大器等。干扰的分类干扰的分类有好多种,通常可以按照噪声产生的原因、传导方式、波形特性等等进行不同的分类。按产......
    要看你使用MCU的系列了,MCU+DP83848,MCU+DM9000或者MCU+LA8720等等,有很多方案可选的,主要还是看你的需求。MCU的分类有很多的,有的是带MAC的,有的不带的。不带......
    STM32的中断机制 stm32中断方式有几种;STM32的中断机制stm32中断方式有几种 中断机制在单片机中是很重要的环节,中断代码默认地从上往下执行,遇到特定条件或特定语句,将按......
    MCS-51单片机指令系统(2);指令系统的分类 该指令系统使用44种助记符,它们代表着33种可能,可以实现51种操作。因此,有的功能可以有几种助记符。指令......
    干扰的分类有......
    变频器的分类有哪几种;变频器是工业自动化产品家族中不可或缺的一员,是后续高端技术应用和产品开发的基础,它的作用和功能,如今已非常完善和成熟,变频器是应用变频技术与微电子技术,它能够根据电机的......
    充电桩的分类有哪些 充电桩慢充和快充原理的区别;充电桩的分类有哪些 充电桩按照不同的分类标准可以分为多种不同的类型,以下是常见的几种充电桩分类方式: 1. 按充电速度分类: - 慢充电桩(Slow......

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

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

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

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

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

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

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