目录
启动文件
链接文件
部分map文件内容
FLASH物理地址(0x08000000开始)的映射关系
0x08000000 之前地址空间
启动文件
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
;* File Name : startup_stm32f40_41xxx.s
;* Author : MCD Application Team
;* @version : V1.8.1
;* @date : 27-January-2022
;* Description : STM32F40xxx/41xxx devices vector table 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 and the external SRAM mounted on
;* STM324xG-EVAL board to be used as data memory (optional,
;* to be enabled by user)
;* - Branches to __main in the C library (which eventually
;* calls 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 >>>
;******************************************************************************
;* @attention
;*
;* Copyright (c) 2016 STMicroelectronics.
;* All rights reserved.
;*
;* This software is licensed under terms that can be found in the LICENSE file
;* in the root directory of this software component.
;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>Stack_Size EQU 0x00000400AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>Heap_Size EQU 0x00000200AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limitPRESERVE8THUMB; Vector Table Mapped to Address 0 at ResetAREA RESET, DATA, READONLYEXPORT __VectorsEXPORT __Vectors_EndEXPORT __Vectors_Size__Vectors DCD __initial_sp ; Top of StackDCD Reset_Handler ; Reset HandlerDCD NMI_Handler ; NMI HandlerDCD HardFault_Handler ; Hard Fault HandlerDCD MemManage_Handler ; MPU Fault HandlerDCD BusFault_Handler ; Bus Fault HandlerDCD UsageFault_Handler ; Usage Fault HandlerDCD 0 ; ReservedDCD 0 ; ReservedDCD 0 ; ReservedDCD 0 ; ReservedDCD SVC_Handler ; SVCall HandlerDCD DebugMon_Handler ; Debug Monitor HandlerDCD 0 ; ReservedDCD PendSV_Handler ; PendSV HandlerDCD SysTick_Handler ; SysTick Handler; External InterruptsDCD 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 TIM11DCD 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 TIM14DCD 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 RngDCD FPU_IRQHandler ; FPU__Vectors_End__Vectors_Size EQU __Vectors_End - __VectorsAREA |.text|, CODE, READONLY; Reset handler
Reset_Handler PROCEXPORT Reset_Handler [WEAK]IMPORT SystemInitIMPORT __mainLDR R0, =SystemInitBLX R0LDR R0, =__mainBX R0ENDP; Dummy Exception Handlers (infinite loops which can be modified)NMI_Handler PROCEXPORT NMI_Handler [WEAK]B .ENDP
HardFault_Handler\PROCEXPORT HardFault_Handler [WEAK]B .ENDP
MemManage_Handler\PROCEXPORT MemManage_Handler [WEAK]B .ENDP
BusFault_Handler\PROCEXPORT BusFault_Handler [WEAK]B .ENDP
UsageFault_Handler\PROCEXPORT UsageFault_Handler [WEAK]B .ENDP
SVC_Handler PROCEXPORT SVC_Handler [WEAK]B .ENDP
DebugMon_Handler\PROCEXPORT DebugMon_Handler [WEAK]B .ENDP
PendSV_Handler PROCEXPORT PendSV_Handler [WEAK]B .ENDP
SysTick_Handler PROCEXPORT SysTick_Handler [WEAK]B .ENDPDefault_Handler PROCEXPORT 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 FSMC_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]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
FSMC_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_IRQHandlerB .ENDPALIGN;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************IF :DEF:__MICROLIBEXPORT __initial_spEXPORT __heap_baseEXPORT __heap_limitELSEIMPORT __use_two_region_memoryEXPORT __user_initial_stackheap__user_initial_stackheapLDR R0, = Heap_MemLDR R1, =(Stack_Mem + Stack_Size)LDR R2, = (Heap_Mem + Heap_Size)LDR R3, = Stack_MemBX LRALIGNENDIFEND
链接文件
/** STM32F407ZET6 链接脚本* 硬件配置: 512KB FLASH, 128KB SRAM, 64KB CCMRAM* 支持标准库、CCMRAM使用、调试信息*//* 入口点定义 */
ENTRY(Reset_Handler)/* 栈顶地址定义 */
_estack = ORIGIN(RAM) + LENGTH(RAM);/* 堆和栈大小配置 */
_Min_Heap_Size = 0x800; /* 2KB堆 */
_Min_Stack_Size = 0x1000; /* 4KB栈 *//* 内存布局定义 */
MEMORY
{FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K /* 主FLASH */RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K /* 主SRAM */CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K /* CCMRAM */
}/* 段配置 */
SECTIONS
{/* 1. 中断向量表 */.isr_vector :{KEEP(*(.isr_vector)) /* 中断向量表必须保留 */} > FLASH /* 放置在FLASH起始位置 *//* 2. 代码段和只读数据 */.text :{. = ALIGN(4);*(.text) /* 程序代码 */*(.text*) /* 所有.text子段 */*(.rodata) /* 只读数据 */*(.rodata*) /* 所有.rodata子段 */*(.glue_7) /* ARM与Thumb指令交互 */*(.glue_7t) /* ARM与Thumb指令交互 */*(.gnu.linkonce.t*)/* 函数构造与析构 */KEEP(*(.init))KEEP(*(.fini)). = ALIGN(4);_etext = .; /* 代码段结束标记 */} > FLASH/* 3. 初始化数组 */.init_array :{PROVIDE_HIDDEN(__init_array_start = .);KEEP(*(SORT(.init_array.*)))KEEP(*(.init_array*))PROVIDE_HIDDEN(__init_array_end = .);} > FLASH/* 4. 反初始化数组 */.fini_array :{PROVIDE_HIDDEN(__fini_array_start = .);KEEP(*(SORT(.fini_array.*)))KEEP(*(.fini_array*))PROVIDE_HIDDEN(__fini_array_end = .);} > FLASH/* 5. 已初始化数据段 (RAM中,从FLASH加载) */_sidata = LOADADDR(.data);.data :{. = ALIGN(4);_sdata = .; /* 数据段起始地址 */*(.data) /* 数据段 */*(.data*) /* 所有.data子段 */*(.gnu.linkonce.d*). = ALIGN(4);_edata = .; /* 数据段结束地址 */} > RAM AT > FLASH/* 6. CCMRAM已初始化数据 (高速RAM) */_siccmram = LOADADDR(.ccmdata);.ccmdata :{. = ALIGN(4);_sccmdata = .; /* CCM数据起始 */*(.ccmdata)*(.ccmdata*). = ALIGN(4);_eccmdata = .; /* CCM数据结束 */} > CCMRAM AT > FLASH/* 7. 未初始化数据段 (BSS) */.bss :{. = ALIGN(4);__bss_start__ = .; /* BSS起始 */_sbss = .;*(.bss)*(.bss*)*(COMMON) /* 公共未初始化数据 */. = ALIGN(4);_ebss = .;__bss_end__ = .; /* BSS结束 */} > RAM/* 8. CCMRAM未初始化数据 */.ccmbss (NOLOAD) :{. = ALIGN(4);_sccmbss = .; /* CCM BSS起始 */*(.ccmbss)*(.ccmbss*). = ALIGN(4);_eccmbss = .; /* CCM BSS结束 */} > CCMRAM/* 9. 堆和栈 */._user_heap_stack (NOLOAD) :{. = ALIGN(8);PROVIDE(end = .);PROVIDE(_end = .);. = . + _Min_Heap_Size; /* 堆区域 */. = . + _Min_Stack_Size; /* 栈区域 */. = ALIGN(8);} > RAM/* 10. 特殊段定义 */.ARM.attributes 0 : { *(.ARM.attributes) } /* 架构属性 */.debug_info 0 : { *(.debug_info) } /* 调试信息 */.debug_line 0 : { *(.debug_line) } /* 调试行号 */.debug_frame 0 : { *(.debug_frame) } /* 调试帧信息 *//* 11. 丢弃不需要的段 *//DISCARD/ :{*(.ARM.exidx*) /* 不需要的异常索引 */*(.gnu.debuglink*) /* 调试链接信息 */*(.gnu.lto_*) /* LTO相关段 */}
}/* 提供给启动文件的堆/栈符号 */
PROVIDE(__heap_size = _Min_Heap_Size);
PROVIDE(__stack_size = _Min_Stack_Size);
PROVIDE(__heap_base = _ebss);
PROVIDE(__heap_limit = _ebss + _Min_Heap_Size);
部分map文件内容
d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o)0x0800062c __libc_init_array*(.rodata)*(.rodata*)*(.glue_7).glue_7 0x08000674 0x0 linker stubs*(.glue_7t).glue_7t 0x08000674 0x0 linker stubs*(.gnu.linkonce.t*)*(.init).init 0x08000674 0x4 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crti.o0x08000674 _init.init 0x08000678 0x8 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtn.o*(.fini).fini 0x08000680 0x4 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crti.o0x08000680 _fini.fini 0x08000684 0x8 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtn.o0x0800068c . = ALIGN (0x4)0x0800068c _etext = ..vfp11_veneer 0x0800068c 0x0.vfp11_veneer 0x0800068c 0x0 linker stubs.v4_bx 0x0800068c 0x0.v4_bx 0x0800068c 0x0 linker stubs.iplt 0x0800068c 0x0.iplt 0x0800068c 0x0 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtbegin.o.rel.dyn 0x0800068c 0x0.rel.iplt 0x0800068c 0x0 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtbegin.o.init_array 0x0800068c 0x40x0800068c PROVIDE (__init_array_start = .)*(SORT_BY_NAME(.init_array.*))*(.init_array*).init_array 0x0800068c 0x4 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtbegin.o0x08000690 PROVIDE (__init_array_end = .).fini_array 0x08000690 0x4[!provide] PROVIDE (__fini_array_start = .)*(SORT_BY_NAME(.fini_array.*))*(.fini_array*).fini_array 0x08000690 0x4 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtbegin.o[!provide] PROVIDE (__fini_array_end = .)0x08000694 _sidata = LOADADDR (.data).data 0x20000000 0x0 load address 0x080006940x20000000 . = ALIGN (0x4)0x20000000 _sdata = .*(.data)*(.data*)*(.gnu.linkonce.d*)0x20000000 . = ALIGN (0x4)0x20000000 _edata = .0x08000694 _siccmram = LOADADDR (.ccmdata).igot.plt 0x20000000 0x0 load address 0x08000694.igot.plt 0x20000000 0x0 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtbegin.o.ccmdata 0x10000000 0x0 load address 0x080006940x10000000 . = ALIGN (0x4)0x10000000 _sccmdata = .*(.ccmdata)*(.ccmdata*)0x10000000 . = ALIGN (0x4)0x10000000 _eccmdata = ..bss 0x20000000 0x240x20000000 . = ALIGN (0x4)0x20000000 __bss_start__ = .0x20000000 _sbss = .*(.bss).bss 0x20000000 0x1c d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtbegin.o*(.bss*).bss.num.9140 0x2000001c 0x4 build/timer.o*(COMMON)COMMON 0x20000020 0x4 build/main.o0x20000020 TimingDelay0x20000024 . = ALIGN (0x4)0x20000024 _ebss = .0x20000024 __bss_end__ = ..ccmbss 0x10000000 0x00x10000000 . = ALIGN (0x4)0x10000000 _sccmbss = .*(.ccmbss)*(.ccmbss*)0x10000000 . = ALIGN (0x4)0x10000000 _eccmbss = .._user_heap_stack0x20000024 0x18040x20000028 . = ALIGN (0x8)*fill* 0x20000024 0x4 [!provide] PROVIDE (end = .)[!provide] PROVIDE (_end = .)0x20000828 . = (. + _Min_Heap_Size)*fill* 0x20000028 0x800 0x20001828 . = (. + _Min_Stack_Size)*fill* 0x20000828 0x1000 0x20001828 . = ALIGN (0x8).ARM.attributes0x00000000 0x30*(.ARM.attributes).ARM.attributes0x00000000 0x1e d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crti.o.ARM.attributes0x0000001e 0x34 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtbegin.o.ARM.attributes0x00000052 0x34 build/stm32f4xx_exti.o.ARM.attributes0x00000086 0x34 build/stm32f4xx_gpio.o.ARM.attributes0x000000ba 0x34 build/stm32f4xx_tim.o.ARM.attributes0x000000ee 0x34 build/stm32f4xx_it.o.ARM.attributes0x00000122 0x34 build/system_stm32f4xx.o.ARM.attributes0x00000156 0x34 build/UserRegister.o.ARM.attributes0x0000018a 0x34 build/main.o.ARM.attributes0x000001be 0x34 build/timer.o.ARM.attributes0x000001f2 0x21 build/startup_stm32f407xx.o.ARM.attributes0x00000213 0x34 d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o).ARM.attributes0x00000247 0x1e d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m+fp/hard/crtn.o.debug_info 0x00000000 0x61cc*(.debug_info).debug_info 0x00000000 0x3d4 build/stm32f4xx_exti.o.debug_info 0x000003d4 0x942 build/stm32f4xx_gpio.o.debug_info 0x00000d16 0x2699 build/stm32f4xx_tim.o.debug_info 0x000033af 0x1a5 build/stm32f4xx_it.o.debug_info 0x00003554 0x728 build/system_stm32f4xx.o.debug_info 0x00003c7c 0x1ec build/UserRegister.o.debug_info 0x00003e68 0x1023 build/main.o.debug_info 0x00004e8b 0x131f build/timer.o.debug_info 0x000061aa 0x22 build/startup_stm32f407xx.o.debug_line 0x00000000 0x34f0*(.debug_line).debug_line 0x00000000 0x34a build/stm32f4xx_exti.o.debug_line 0x0000034a 0x546 build/stm32f4xx_gpio.o.debug_line 0x00000890 0x18e7 build/stm32f4xx_tim.o.debug_line 0x00002177 0x220 build/stm32f4xx_it.o.debug_line 0x00002397 0x396 build/system_stm32f4xx.o.debug_line 0x0000272d 0x343 build/UserRegister.o.debug_line 0x00002a70 0x3e5 build/main.o.debug_line 0x00002e55 0x61d build/timer.o.debug_line 0x00003472 0x7e build/startup_stm32f407xx.o.debug_frame 0x00000000 0xcbc*(.debug_frame).debug_frame 0x00000000 0xa4 build/stm32f4xx_exti.o.debug_frame 0x000000a4 0x130 build/stm32f4xx_gpio.o.debug_frame 0x000001d4 0x728 build/stm32f4xx_tim.o.debug_frame 0x000008fc 0xac build/stm32f4xx_it.o.debug_frame 0x000009a8 0x58 build/system_stm32f4xx.o.debug_frame 0x00000a00 0x7c build/UserRegister.o.debug_frame 0x00000a7c 0xd4 build/main.o.debug_frame 0x00000b50 0x140 build/timer.o.debug_frame 0x00000c90 0x2c d:/software/environment/gnu_tool_arm_embedded/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o)/DISCARD/*(.ARM.exidx*)*(.gnu.debuglink*)*(.gnu.lto_*)[!provide] PROVIDE (__heap_size = _Min_Heap_Size)[!provide] PROVIDE (__stack_size = _Min_Stack_Size)[!provide] PROVIDE (__heap_base = _ebss)[!provide] PROVIDE (__heap_limit = (_ebss + _Min_Heap_Size))
OUTPUT(build/template.elf elf32-littlearm).debug_abbrev 0x00000000 0xfa7.debug_abbrev 0x00000000 0x239 build/stm32f4xx_exti.o.debug_abbrev 0x00000239 0x26f build/stm32f4xx_gpio.o.debug_abbrev 0x000004a8 0x226 build/stm32f4xx_tim.o.debug_abbrev 0x000006ce 0xbd build/stm32f4xx_it.o.debug_abbrev 0x0000078b 0x19c build/system_stm32f4xx.o.debug_abbrev 0x00000927 0x12c build/UserRegister.o.debug_abbrev 0x00000a53 0x327 build/main.o.debug_abbrev 0x00000d7a 0x21b build/timer.o.debug_abbrev 0x00000f95 0x12 build/startup_stm32f407xx.o.debug_loc 0x00000000 0x27c5.debug_loc 0x00000000 0x181 build/stm32f4xx_exti.o.debug_loc 0x00000181 0x518 build/stm32f4xx_gpio.o.debug_loc 0x00000699 0x1c86 build/stm32f4xx_tim.o.debug_loc 0x0000231f 0x20 build/stm32f4xx_it.o.debug_loc 0x0000233f 0x1c4 build/system_stm32f4xx.o.debug_loc 0x00002503 0x67 build/UserRegister.o.debug_loc 0x0000256a 0x113 build/main.o.debug_loc 0x0000267d 0x148 build/timer.o.debug_aranges 0x00000000 0x598.debug_aranges0x00000000 0x58 build/stm32f4xx_exti.o.debug_aranges0x00000058 0x88 build/stm32f4xx_gpio.o.debug_aranges0x000000e0 0x2f8 build/stm32f4xx_tim.o.debug_aranges0x000003d8 0x60 build/stm32f4xx_it.o.debug_aranges0x00000438 0x30 build/system_stm32f4xx.o.debug_aranges0x00000468 0x48 build/UserRegister.o.debug_aranges0x000004b0 0x58 build/main.o.debug_aranges0x00000508 0x68 build/timer.o.debug_aranges0x00000570 0x28 build/startup_stm32f407xx.o.debug_ranges 0x00000000 0x510.debug_ranges 0x00000000 0x48 build/stm32f4xx_exti.o.debug_ranges 0x00000048 0x78 build/stm32f4xx_gpio.o.debug_ranges 0x000000c0 0x2e8 build/stm32f4xx_tim.o.debug_ranges 0x000003a8 0x50 build/stm32f4xx_it.o.debug_ranges 0x000003f8 0x20 build/system_stm32f4xx.o.debug_ranges 0x00000418 0x38 build/UserRegister.o.debug_ranges 0x00000450 0x48 build/main.o.debug_ranges 0x00000498 0x58 build/timer.o.debug_ranges 0x000004f0 0x20 build/startup_stm32f407xx.o.debug_str 0x00000000 0x212b.debug_str 0x00000000 0x332 build/stm32f4xx_exti.o0x391 (size before relaxing).debug_str 0x00000332 0x31f build/stm32f4xx_gpio.o0x4f5 (size before relaxing).debug_str 0x00000651 0xbdb build/stm32f4xx_tim.o0xe43 (size before relaxing).debug_str 0x0000122c 0xbd build/stm32f4xx_it.o0x269 (size before relaxing).debug_str 0x000012e9 0x1e3 build/system_stm32f4xx.o0x40b (size before relaxing).debug_str 0x000014cc 0xaa build/UserRegister.o0x256 (size before relaxing).debug_str 0x00001576 0x4b0 build/main.o0x7a6 (size before relaxing).debug_str 0x00001a26 0x6d9 build/timer.o0xdf9 (size before relaxing).debug_str 0x000020ff 0x2c build/startup_stm32f407xx.o0x4a (size before relaxing).comment 0x00000000 0x79.comment 0x00000000 0x79 build/stm32f4xx_exti.o0x7a (size before relaxing).comment 0x00000079 0x7a build/stm32f4xx_gpio.o.comment 0x00000079 0x7a build/stm32f4xx_tim.o.comment 0x00000079 0x7a build/stm32f4xx_it.o.comment 0x00000079 0x7a build/system_stm32f4xx.o.comment 0x00000079 0x7a build/UserRegister.o.comment 0x00000079 0x7a build/main.o.comment 0x00000079 0x7a build/timer.oCross Reference Table