程序结构理解(3) 以stm32为例

stm32内部有两种存储器一种是ram和一种FLASH闪存 。

(1)STM32F10xxx内置64K字节的静态SRAM。它可以以字节、半字(16位)或全字(32位)访问。SRAM的起始地址是0x2000 0000。

我们可以理解成内存 ram类型的存储器掉电和数据会丢失。即stm32f1xx的内存只有64k这么大。

(2)高性能的闪存模块有以下的主要特性:

● 高达512K字节闪存存储器结构:

闪存存储器有主存储块和信息块组成:

─ 主存储块容量:

小容量产品主存储块最大为4K×64位,每个存储块划分为32个1K字节的页(见表2)。

中容量产品主存储块最大为16K×64位,每个存储块划分为128个1K字节的页(见表3)。

大容量产品主存储块最大为64K×64位,每个存储块划分为256个2K字节的页(见表4)。

互联型产品主存储块最大为32K×64位,每个存储块划分为128个2K字节的页(见表5)。

─ 信息块容量: 互联型产品有2360×64位(见表5)。 其它产品有258×64位(见表230/754、表3表4)。

闪存存储器接口的特性为:

● 带预取缓冲器的读接口(每字为2×64位)

● 选择字节加载器

● 闪存编程/擦除操作

● 访问/写保护

程序结构理解(3) 以stm32为例_第1张图片

我们可以理解flash就是norflash或者nandflash或者rom 掉电后数据仍然存在的

程序运行时在ram中运行 程序代码是和数据是放在flash中

而堆和粘是在内存ram中分配的。

程序结构理解(3) 以stm32为例_第2张图片

程序结构理解(3) 以stm32为例_第3张图片

程序结构理解(3) 以stm32为例_第4张图片

下面为一个stm32的map文件 里面可以查看一下信息分配

*******************************************************************************
*** RUNTIME MODEL ATTRIBUTES
***

CppFlavor       = *
__SystemLibrary = DLib


*******************************************************************************
*** PLACEMENT SUMMARY
***

"A1":  place at 0x08000000 { ro section .intvec };
"P1":  place in [from 0x08000000 to 0x080fffff] { ro };
"P2":  place in [from 0x20000000 to 0x20017fff] { rw, block CSTACK, block HEAP };

  Section            Kind        Address    Size  Object
  -------            ----        -------    ----  ------
"A1":                                      0x130
  .intvec            ro code  0x08000000   0x130  startup_stm32f10x_hd.o [1]
                            - 0x08000130   0x130

"P1":                                     0x107c
  .text              ro code  0x08000130   0x2d0  usart.o [1]
  .text              ro code  0x08000400   0x11c  stm32f10x_rcc.o [1]
  .text              ro code  0x0800051c   0x15c  stm32f10x_gpio.o [1]
  .text              ro code  0x08000678   0x1b4  stm32f10x_dma.o [1]
  .text              ro code  0x0800082c   0x1e4  stm32f10x_usart.o [1]
  .text              ro code  0x08000a10    0xf0  main.o [1]
  .text              ro code  0x08000b00     0xe  usart.o [1]
  .text              ro code  0x08000b0e    0x2e  copy_init3.o [4]
  .text              ro code  0x08000b3c    0x84  misc.o [1]
  .text              ro code  0x08000bc0    0x10  stm32f10x_iwdg.o [1]
  .text              ro code  0x08000bd0    0xdc  led.o [1]
  .text              ro code  0x08000cac   0x100  key.o [1]
  .text              ro code  0x08000dac    0x76  ABImemcpy.o [4]
  .text              ro code  0x08000e22    0x22  zero_init3.o [4]
  .text              ro code  0x08000e44   0x15c  system_stm32f10x.o [1]
  .text              ro code  0x08000fa0    0x34  stm32f10x_it.o [1]
  .text              ro code  0x08000fd4    0x28  data_init.o [4]
  .iar.init_table    const    0x08000ffc    0x24  - Linker created -
  .text              ro code  0x08001020    0x16  cmain.o [4]
  .text              ro code  0x08001036     0x4  low_level_init.o [3]
  .text              ro code  0x0800103a     0x4  exit.o [3]
  .text              ro code  0x08001040     0xa  cexit.o [4]
  .text              ro code  0x0800104c    0x14  exit.o [5]
  .text              ro code  0x08001060    0x10  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001070     0xc  cstartup_M.o [4]
  .text              ro code  0x0800107c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001080     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001084     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001088     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800108c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001090     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001094     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001098     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800109c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010a0     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010a4     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010a8     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010ac     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010b0     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010b4     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010b8     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010bc     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010c0     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010c4     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010c8     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010cc     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010d0     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010d4     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010d8     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010dc     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010e0     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010e4     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010e8     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010ec     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010f0     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010f4     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010f8     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x080010fc     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001100     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001104     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001108     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800110c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001110     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001114     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001118     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800111c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001120     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001124     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001128     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800112c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001130     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001134     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001138     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800113c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001140     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001144     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001148     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800114c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001150     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001154     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001158     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800115c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001160     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001164     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001168     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800116c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001170     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001174     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001178     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800117c     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001180     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001184     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x08001188     0x4  startup_stm32f10x_hd.o [1]
  .text              ro code  0x0800118c     0x4  startup_stm32f10x_hd.o [1]
  .rodata            const    0x08001190     0x0  zero_init3.o [4]
  .rodata            const    0x08001190     0x0  copy_init3.o [4]
  Initializer bytes  ro data  0x08001190    0x1c  
                            - 0x080011ac  0x107c

"P2", part 1 of 3:                          0x1c
  P2 s0                       0x20000000    0x1c  
    .data            inited   0x20000000    0x10  stm32f10x_rcc.o [1]
    .data            inited   0x20000010     0x4  app.o [1]
    .data            inited   0x20000014     0x4  stm32f10x_rcc.o [1]
    .data            inited   0x20000018     0x1  usart.o [1]
                            - 0x2000001c    0x1c

"P2", part 2 of 3:                          0xc4
  .bss               zero     0x2000001c    0x40  app.o [1]
  .bss               zero     0x2000005c    0x40  usart.o [1]
  .bss               zero     0x2000009c    0x40  usart.o [1]
  .bss               zero     0x200000dc     0x1  app.o [1]
  .bss               zero     0x200000dd     0x1  usart.o [1]
  .bss               zero     0x200000de     0x1  usart.o [1]
                            - 0x200000df    0xc3

"P2", part 3 of 3:                         0x600
  CSTACK                      0x200000e0   0x600  
    CSTACK           uninit   0x200000e0   0x600  
                            - 0x200006e0   0x600


*******************************************************************************
*** INIT TABLE
***

          Address     Size
          -------     ----
Zero (__iar_zero_init3)
    1 destination range, total size 0xc3:
          0x2000001c  0xc3

Copy (__iar_copy_init3)
    1 source range, total size 0x1c (112% of destination):
          0x08001190  0x1c
    1 destination range, total size 0x19:
          0x20000000  0x19



*******************************************************************************
*** MODULE SUMMARY
***

    Module                  ro code  ro data  rw data
    ------                  -------  -------  -------
D:\Projects\EWARM\Debug\Obj: [1]
    app.o                                  4       69
    key.o                       256
    led.o                       220
    main.o                      240
    misc.o                      132
    startup_stm32f10x_hd.o      596
    stm32f10x_dma.o             436
    stm32f10x_gpio.o            348
    stm32f10x_it.o               52
    stm32f10x_iwdg.o             16
    stm32f10x_rcc.o             284       20       20
    stm32f10x_usart.o           484
    system_stm32f10x.o          348
    usart.o                     734        1      131
    -------------------------------------------------
    Total:                    4 146       25      220

command line: [2]
    -------------------------------------------------
    Total:

dl7M_tlf.a: [3]
    exit.o                        4
    low_level_init.o              4
    -------------------------------------------------
    Total:                        8

rt7M_tl.a: [4]
    ABImemcpy.o                 118
    cexit.o                      10
    cmain.o                      22
    copy_init3.o                 46
    cstartup_M.o                 12
    data_init.o                  40
    zero_init3.o                 34
    -------------------------------------------------
    Total:                      282

shb_l.a: [5]
    exit.o                       20
    -------------------------------------------------
    Total:                       20

    Gaps                          4
    Linker created                        39    1 536
-----------------------------------------------------
    Grand Total:              4 460       64    1 756


*******************************************************************************
*** ENTRY LIST
***

Entry                      Address   Size  Type      Object
-----                      -------   ----  ----      ------
?main                   0x08001021         Code  Gb  cmain.o [4]
ADC1_2_IRQHandler       0x080010e9         Code  Wk  startup_stm32f10x_hd.o [1]
ADC3_IRQHandler         0x0800115d         Code  Wk  startup_stm32f10x_hd.o [1]
ADCPrescTable           0x20000014    0x4  Data  Lc  stm32f10x_rcc.o [1]
APBAHBPrescTable        0x20000000   0x10  Data  Lc  stm32f10x_rcc.o [1]
BusFault_Handler        0x08000fa7    0x2  Code  Gb  stm32f10x_it.o [1]
CAN1_RX1_IRQHandler     0x080010f5         Code  Wk  startup_stm32f10x_hd.o [1]
CAN1_SCE_IRQHandler     0x080010f9         Code  Wk  startup_stm32f10x_hd.o [1]
CLK_Config              0x08000aa1   0x20  Code  Gb  main.o [1]
CSTACK$$Base            0x200000e0          --   Gb  - Linker created -
CSTACK$$Limit           0x200006e0          --   Gb  - Linker created -
DMA1_Channel1_IRQHandler
                        0x080010cd         Code  Wk  startup_stm32f10x_hd.o [1]
DMA1_Channel2_IRQHandler
                        0x080010d1         Code  Wk  startup_stm32f10x_hd.o [1]
DMA1_Channel3_IRQHandler
                        0x080010d5         Code  Wk  startup_stm32f10x_hd.o [1]
DMA1_Channel4_IRQHandler
                        0x080010d9         Code  Wk  startup_stm32f10x_hd.o [1]
DMA1_Channel5_IRQHandler
                        0x080010dd         Code  Wk  startup_stm32f10x_hd.o [1]
DMA1_Channel6_IRQHandler
                        0x080010e1         Code  Wk  startup_stm32f10x_hd.o [1]
DMA1_Channel7_IRQHandler
                        0x080010e5         Code  Wk  startup_stm32f10x_hd.o [1]
DMA1_Configuration      0x0800020f    0xc  Code  Gb  usart.o [1]
DMA1_RccConfiguration   0x08000191    0xc  Code  Lc  usart.o [1]
DMA1_UART1RXTXConfiguration
                        0x0800019d   0x72  Code  Lc  usart.o [1]
DMA2_Channel1_IRQHandler
                        0x08001181         Code  Wk  startup_stm32f10x_hd.o [1]
DMA2_Channel2_IRQHandler
                        0x08001185         Code  Wk  startup_stm32f10x_hd.o [1]
DMA2_Channel3_IRQHandler
                        0x08001189         Code  Wk  startup_stm32f10x_hd.o [1]
DMA2_Channel4_5_IRQHandler
                        0x0800118d         Code  Wk  startup_stm32f10x_hd.o [1]
DMA_ClearFlag           0x080007e3   0x10  Code  Gb  stm32f10x_dma.o [1]
DMA_Cmd                 0x080007c1   0x1c  Code  Gb  stm32f10x_dma.o [1]
DMA_DeInit              0x08000679  0x10a  Code  Gb  stm32f10x_dma.o [1]
DMA_GetCurrDataCounter  0x080007dd    0x6  Code  Gb  stm32f10x_dma.o [1]
DMA_Init                0x08000783   0x3e  Code  Gb  stm32f10x_dma.o [1]
DMA_Rece_Buf            0x2000005c   0x40  Data  Gb  usart.o [1]
DMA_Send_Buf            0x2000009c   0x40  Data  Gb  usart.o [1]
DebugMon_Handler        0x08000fad    0x2  Code  Gb  stm32f10x_it.o [1]
DevBaudRateNum          0x20000018    0x1  Data  Gb  usart.o [1]
EXTI0_IRQHandler        0x080010b9         Code  Wk  startup_stm32f10x_hd.o [1]
EXTI15_10_IRQHandler    0x08001141         Code  Wk  startup_stm32f10x_hd.o [1]
EXTI1_IRQHandler        0x080010bd         Code  Wk  startup_stm32f10x_hd.o [1]
EXTI2_IRQHandler        0x080010c1         Code  Wk  startup_stm32f10x_hd.o [1]
EXTI3_IRQHandler        0x080010c5         Code  Wk  startup_stm32f10x_hd.o [1]
EXTI4_IRQHandler        0x080010c9         Code  Wk  startup_stm32f10x_hd.o [1]
EXTI9_5_IRQHandler      0x080010fd         Code  Wk  startup_stm32f10x_hd.o [1]
FLASH_IRQHandler        0x080010b1         Code  Wk  startup_stm32f10x_hd.o [1]
FSMC_IRQHandler         0x08001161         Code  Wk  startup_stm32f10x_hd.o [1]
GPIO_Init               0x0800051d   0xc8  Code  Gb  stm32f10x_gpio.o [1]
GPIO_PinRemapConfig     0x080005f1   0x7e  Code  Gb  stm32f10x_gpio.o [1]
GPIO_ResetBits          0x080005eb    0x6  Code  Gb  stm32f10x_gpio.o [1]
GPIO_SetBits            0x080005e5    0x6  Code  Gb  stm32f10x_gpio.o [1]
HardFault_Handler       0x08000fa3    0x2  Code  Gb  stm32f10x_it.o [1]
I2C1_ER_IRQHandler      0x08001121         Code  Wk  startup_stm32f10x_hd.o [1]
I2C1_EV_IRQHandler      0x0800111d         Code  Wk  startup_stm32f10x_hd.o [1]
I2C2_ER_IRQHandler      0x08001129         Code  Wk  startup_stm32f10x_hd.o [1]
I2C2_EV_IRQHandler      0x08001125         Code  Wk  startup_stm32f10x_hd.o [1]
IWDG_ReloadCounter      0x08000bc1    0xa  Code  Gb  stm32f10x_iwdg.o [1]
KEYGPIOConfiguration    0x08000cb9   0xd0  Code  Lc  key.o [1]
KEYGPIO_Configuration   0x08000d89    0x8  Code  Lc  key.o [1]
KEYRccConfiguration     0x08000cad    0xc  Code  Lc  key.o [1]
KEY_Init                0x08000d99    0xc  Code  Gb  key.o [1]
LedGPIOConfiguration    0x08000bdd   0x52  Code  Lc  led.o [1]
LedGPIO_Configuration   0x08000c2f    0x8  Code  Lc  led.o [1]
LedRccConfiguration     0x08000bd1    0xc  Code  Lc  led.o [1]
Led_Init                0x08000c9d   0x10  Code  Gb  led.o [1]
Led_StartInit           0x08000c3f   0x4e  Code  Gb  led.o [1]
MemManage_Handler       0x08000fa5    0x2  Code  Gb  stm32f10x_it.o [1]
NMI_Handler             0x08000fa1    0x2  Code  Gb  stm32f10x_it.o [1]
NVIC_Configuration      0x08000a63   0x3c  Code  Gb  main.o [1]
NVIC_Init               0x08000b47   0x66  Code  Gb  misc.o [1]
NVIC_PriorityGroupConfig
                        0x08000b3d    0xa  Code  Gb  misc.o [1]
NVIC_SetPriority        0x08000a11   0x22  Code  Lc  main.o [1]
PVD_IRQHandler          0x080010a5         Code  Wk  startup_stm32f10x_hd.o [1]
PendSV_Handler          0x08000faf    0x2  Code  Gb  stm32f10x_it.o [1]
RCC_AHBPeriphClockCmd   0x080004c1   0x20  Code  Gb  stm32f10x_rcc.o [1]
RCC_APB2PeriphClockCmd  0x080004e1   0x20  Code  Gb  stm32f10x_rcc.o [1]
RCC_GetClocksFreq       0x08000401   0xc0  Code  Gb  stm32f10x_rcc.o [1]
RCC_IRQHandler          0x080010b5         Code  Wk  startup_stm32f10x_hd.o [1]
RTCAlarm_IRQHandler     0x08001145         Code  Wk  startup_stm32f10x_hd.o [1]
RTC_IRQHandler          0x080010ad         Code  Wk  startup_stm32f10x_hd.o [1]
Rcc_Configuration       0x08000d91    0x8  Code  Lc  key.o [1]
Rcc_Configuration       0x08000c37    0x8  Code  Lc  led.o [1]
Rcc_Configuration       0x08000147    0x8  Code  Lc  usart.o [1]
Refresh_Iwdg            0x08000ac1    0x8  Code  Gb  main.o [1]
Region$$Table$$Base     0x08000ffc          --   Gb  - Linker created -
Region$$Table$$Limit    0x08001020          --   Gb  - Linker created -
Reset_Handler           0x08001061         Code  Wk  startup_stm32f10x_hd.o [1]
Rs232UartRccConfiguration
                        0x08000131   0x16  Code  Lc  usart.o [1]
Rs232UsartConfiguration
                        0x0800021b   0xb0  Code  Lc  usart.o [1]
Rs232UsartGPIOConfiguration
                        0x0800014f   0x3a  Code  Lc  usart.o [1]
SDIO_IRQHandler         0x08001165         Code  Wk  startup_stm32f10x_hd.o [1]
SPI1_IRQHandler         0x0800112d         Code  Wk  startup_stm32f10x_hd.o [1]
SPI2_IRQHandler         0x08001131         Code  Wk  startup_stm32f10x_hd.o [1]
SPI3_IRQHandler         0x0800116d         Code  Wk  startup_stm32f10x_hd.o [1]
SVC_Handler             0x08000fab    0x2  Code  Gb  stm32f10x_it.o [1]
SetSysClock             0x08000a9f    0x2  Code  Lc  main.o [1]
SetSysClock             0x08000e99    0x8  Code  Lc  system_stm32f10x.o [1]
SetSysClockTo72         0x08000ea1   0xe0  Code  Lc  system_stm32f10x.o [1]
SysTick_Config          0x08000a33   0x30  Code  Lc  main.o [1]
SysTick_Handler         0x08000fb1   0x1c  Code  Gb  stm32f10x_it.o [1]
SystemInit              0x08000e45   0x54  Code  Gb  system_stm32f10x.o [1]
TAMPER_IRQHandler       0x080010a9         Code  Wk  startup_stm32f10x_hd.o [1]
TIM1_BRK_IRQHandler     0x08001101         Code  Wk  startup_stm32f10x_hd.o [1]
TIM1_CC_IRQHandler      0x0800110d         Code  Wk  startup_stm32f10x_hd.o [1]
TIM1_TRG_COM_IRQHandler
                        0x08001109         Code  Wk  startup_stm32f10x_hd.o [1]
TIM1_UP_IRQHandler      0x08001105         Code  Wk  startup_stm32f10x_hd.o [1]
TIM2_IRQHandler         0x08001111         Code  Wk  startup_stm32f10x_hd.o [1]
TIM3_IRQHandler         0x08001115         Code  Wk  startup_stm32f10x_hd.o [1]
TIM4_IRQHandler         0x08001119         Code  Wk  startup_stm32f10x_hd.o [1]
TIM5_IRQHandler         0x08001169         Code  Wk  startup_stm32f10x_hd.o [1]
TIM6_IRQHandler         0x08001179         Code  Wk  startup_stm32f10x_hd.o [1]
TIM7_IRQHandler         0x0800117d         Code  Wk  startup_stm32f10x_hd.o [1]
TIM8_BRK_IRQHandler     0x0800114d         Code  Wk  startup_stm32f10x_hd.o [1]
TIM8_CC_IRQHandler      0x08001159         Code  Wk  startup_stm32f10x_hd.o [1]
TIM8_TRG_COM_IRQHandler
                        0x08001155         Code  Wk  startup_stm32f10x_hd.o [1]
TIM8_UP_IRQHandler      0x08001151         Code  Wk  startup_stm32f10x_hd.o [1]
UART4_IRQHandler        0x08001171         Code  Wk  startup_stm32f10x_hd.o [1]
UART5_IRQHandler        0x08001175         Code  Wk  startup_stm32f10x_hd.o [1]
USART1_IRQHandler       0x08000333   0x98  Code  Gb  usart.o [1]
USART2_IRQHandler       0x08001139         Code  Wk  startup_stm32f10x_hd.o [1]
USART3_IRQHandler       0x0800113d         Code  Wk  startup_stm32f10x_hd.o [1]
USART_ClearFlag         0x0800097f    0xc  Code  Gb  stm32f10x_usart.o [1]
USART_ClearITPendingBit
                        0x080009ef   0x22  Code  Gb  stm32f10x_usart.o [1]
USART_Cmd               0x080008f1   0x1c  Code  Gb  stm32f10x_usart.o [1]
USART_DMACmd            0x0800095f   0x18  Code  Gb  stm32f10x_usart.o [1]
USART_GetITStatus       0x0800098b   0x64  Code  Gb  stm32f10x_usart.o [1]
USART_ITConfig          0x0800090d   0x52  Code  Gb  stm32f10x_usart.o [1]
USART_Init              0x0800082d   0xbe  Code  Gb  stm32f10x_usart.o [1]
USART_ReceiveData       0x08000977    0x8  Code  Gb  stm32f10x_usart.o [1]
USBWakeUp_IRQHandler    0x08001149         Code  Wk  startup_stm32f10x_hd.o [1]
USB_HP_CAN1_TX_IRQHandler
                        0x080010ed         Code  Wk  startup_stm32f10x_hd.o [1]
USB_LP_CAN1_RX0_IRQHandler
                        0x080010f1         Code  Wk  startup_stm32f10x_hd.o [1]
UsageFault_Handler      0x08000fa9    0x2  Code  Gb  stm32f10x_it.o [1]
UsartGPIO_Configuration
                        0x08000189    0x8  Code  Lc  usart.o [1]
WWDG_IRQHandler         0x080010a1         Code  Wk  startup_stm32f10x_hd.o [1]
__aeabi_memcpy          0x08000dad         Code  Gb  ABImemcpy.o [4]
__aeabi_memcpy4         0x08000dcd         Code  Gb  ABImemcpy.o [4]
__aeabi_memcpy8         0x08000dcd         Code  Gb  ABImemcpy.o [4]
__cmain                 0x08001021         Code  Gb  cmain.o [4]
__exit                  0x0800104d   0x14  Code  Gb  exit.o [5]
__iar_copy_init3        0x08000b0f   0x2e  Code  Gb  copy_init3.o [4]
__iar_data_init3        0x08000fd5   0x28  Code  Gb  data_init.o [4]
__iar_program_start     0x08001071         Code  Gb  cstartup_M.o [4]
__iar_zero_init3        0x08000e23   0x22  Code  Gb  zero_init3.o [4]
__low_level_init        0x08001037    0x4  Code  Gb  low_level_init.o [3]
__vector_table          0x08000000         Data  Gb  startup_stm32f10x_hd.o [1]
_call_main              0x0800102d         Code  Gb  cmain.o [4]
_exit                   0x08001041         Code  Gb  cexit.o [4]
_main                   0x08001033         Code  Gb  cmain.o [4]
buffer                  0x2000001c   0x40  Data  Gb  app.o [1]
exit                    0x0800103b    0x4  Code  Gb  exit.o [3]
main                    0x08000ac9   0x1e  Code  Gb  main.o [1]
memcpy                  0x08000b01    0xe  Code  Gb  usart.o [1]
resetkeydetecttimerCounter
                        0x20000010    0x4  Data  Gb  app.o [1]
resetkeypressflag       0x200000dc    0x1  Data  Gb  app.o [1]
uart1_dma_recv_data     0x080002e1   0x52  Code  Gb  usart.o [1]
uart1_rece_flag         0x200000dd    0x1  Data  Gb  usart.o [1]
uart1_rece_true_len     0x200000de    0x1  Data  Gb  usart.o [1]
usart_Configuration     0x080002cb   0x16  Code  Gb  usart.o [1]


[1] = D:\Projects\EWARM\Debug\Obj
[2] = command line
[3] = dl7M_tlf.a
[4] = rt7M_tl.a
[5] = shb_l.a

  4 460 bytes of readonly  code memory
     64 bytes of readonly  data memory
  1 756 bytes of readwrite data memory

Errors: none
Warnings: none

可以看出 程序入口地址 为flash地址0x08000000访问的

主要bss端 堆和栈则是在程序运行过程中 在内存中产生的。

 拓展下面

程序结构理解(3) 以stm32为例_第5张图片

程序结构理解(3) 以stm32为例_第6张图片

 

你可能感兴趣的:(stm32,程序运行流程分析)