STM32 内存管理

博客围绕STM32展开,介绍了源代码、map文件,重点阐述了rom和ram的内存分布。还提及内存中有指针对象和数组对象,给出了它们在栈和堆中的地址范围,最后说明一维和二维指针均可访问动态数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源代码

/**
  ******************************************************************************
  * @file    main.c
  * @author  fire
  * @version V1.0
  * @date    2013-xx-xx
  * @brief   测试led
  ******************************************************************************
  * @attention
  *
  * 实验平台:野火 F103-指南者 STM32 开发板 
  * 论坛    :http://www.firebbs.cn
  * 淘宝    :https://fire-stm32.taobao.com
  *
  ******************************************************************************
  */ 
	
#include "stm32f10x.h"
#include "bsp_led.h"
#include<stdlib.h>

#define SOFT_DELAY Delay(0x0FFFFF);

void Delay(__IO u32 nCount); 

//--------------------------------------------------------------------------变量.静态外部链接
int var_exlink=33;
int var_exlink_nv;
//--------------------------------------------------------------------------变量.静态内部链接
static int var_inlink=44;
static int var_inlink_nv;

//使用const的两种方式
//--------------------------------------------------------------------------常量.静态外部链接
const int cvar_exlink[10]={33};
//--------------------------------------------------------------------------常量.静态内部链接
const static int cvar_inlink[10]={44};


void chuan()
{
	//验证堆向上生长
	//声明了指针对象,位于栈;数组对象,位于堆
	//堆里散落存放着三个动态分配的数组
	int * p1=(int*)malloc(sizeof(int)*10);
	int * p2=(int*)malloc(sizeof(int)*10);
	int * p3=(int*)malloc(sizeof(int)*10);

    
	//验证上面的一个声明,声明了两个对象
	// p1_addr      p1
	// dyn_arr_addr dyn_arr
	// p1=dyn_arr_addr
	int **p1_addr=&p1;
	int **p2_addr=&p2;
	int **p3_addr=&p3;



	//验证栈向下生长:栈里依次存放,指针对象p123,数组对象arr123
	int arr1[10]={11};
	int arr2[10]={12};
	int arr3[10]={13};


    *p1=10;
	*p2=20;
	*p3=30;
	(**p1_addr)++;
	(*p1)++;
	arr1[0]++;
	arr2[0]++;
	arr3[0]++;
}
/**
  * @brief  主函数
  * @param  无  
  * @retval 无
  */
int main(void)
{	
	/* LED 端口初始化 */
	LED_GPIO_Config();	 

	while (1)
	{
		int a;
//--------------------------------------------------------------------------变量.自动
		auto int var_auto=11;
		auto int var_auto_nv;
//--------------------------------------------------------------------------变量.静态无链接
		static int var_nolink=22;
		static int var_nolink_nv;

//--------------------------------------------------------------------------常量.自动 
		const auto int cvar_auto[10]={11};
//--------------------------------------------------------------------------常量.静态无链接
		const static int cvar_nolink[10]={22};


        //验证3+1
		//三种静态内存在rom里,一个局部const在栈里
		const int * constlaji1=&cvar_exlink[0];
		const int * constlaji2=&cvar_inlink[0];
		const int * constlaji3=&cvar_nolink[0];
		const int * constlaji4=&cvar_auto[0];

       
	    //验证6+2
		//6个静态内存:3个.data,3个.bss
		//2个栈:自动变量
		int *laji1=&var_exlink;
		int *laji2=&var_inlink;
		int *laji3=&var_nolink;
		int *laji4=&var_exlink_nv;
		int *laji5=&var_inlink_nv;
		int *laji6=&var_nolink_nv;
		int *laji7=&var_auto;
		int *laji8=&var_auto_nv;



        //变量需要使用,不然被优化掉
        a=cvar_exlink[0];//33
		a=cvar_inlink[0];//44
		a=cvar_auto[0];//11
		a=cvar_nolink[0];//22
		a++;
		a=*constlaji1+*constlaji2+*constlaji3+*constlaji4;

		a=*laji8;
		a=*laji1+*laji2+*laji3+*laji4+*laji5+*laji6+*laji7;


		var_auto++;
		var_auto_nv++;
		var_nolink++;
		var_nolink_nv++;
		var_exlink++;
		var_exlink_nv++;
		var_inlink++;
		var_inlink_nv++;


		chuan();


		LED3_ON;			  // 亮




		// SOFT_DELAY;
		// LED1_OFF;		   // 灭

		// LED2_ON;			 // 亮
		// SOFT_DELAY;
		// LED2_OFF;		   // 灭

		// LED3_ON;			 // 亮
		// SOFT_DELAY;
		// LED3_OFF;		   // 灭	 

		// /*轮流显示 红绿蓝黄紫青白 颜色*/
		// LED_RED;
		// SOFT_DELAY;
		
		// LED_GREEN;
		// SOFT_DELAY;
		
		// LED_BLUE;
		// SOFT_DELAY;
		
		// LED_YELLOW;
		// SOFT_DELAY;
		
		// LED_PURPLE;
		// SOFT_DELAY;
				
		// LED_CYAN;
		// SOFT_DELAY;
		
		// LED_WHITE;
		// SOFT_DELAY;
		
		// LED_RGBOFF;
		// SOFT_DELAY;		
	}
}

void Delay(__IO uint32_t nCount)	 //简单的延时函数
{
	for(; nCount != 0; nCount--);
}
/*********************************************END OF FILE**********************/

map文件

Component: ARM Compiler 5.06 update 7 (build 960) Tool: armlink [4d3601]

==============================================================================

Section Cross References

    startup_stm32f10x_hd.o(RESET) refers to startup_stm32f10x_hd.o(STACK) for __initial_sp
    startup_stm32f10x_hd.o(RESET) refers to startup_stm32f10x_hd.o(.text) for Reset_Handler
    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(.text) for NMI_Handler
    startup_stm32f10x_hd.o(.text) refers to system_stm32f10x.o(.text) for SystemInit
    startup_stm32f10x_hd.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main
    system_stm32f10x.o(.text) refers to system_stm32f10x.o(.data) for SystemCoreClock
    stm32f10x_adc.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB2PeriphResetCmd
    stm32f10x_bkp.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_BackupResetCmd
    stm32f10x_can.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB1PeriphResetCmd
    stm32f10x_cec.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB1PeriphResetCmd
    stm32f10x_dac.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB1PeriphResetCmd
    stm32f10x_gpio.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB2PeriphResetCmd
    stm32f10x_i2c.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB1PeriphResetCmd
    stm32f10x_pwr.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB1PeriphResetCmd
    stm32f10x_rcc.o(.text) refers to stm32f10x_rcc.o(.data) for APBAHBPrescTable
    stm32f10x_spi.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB2PeriphResetCmd
    stm32f10x_tim.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB2PeriphResetCmd
    stm32f10x_usart.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB2PeriphResetCmd
    stm32f10x_wwdg.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB1PeriphResetCmd
    main.o(.text) refers to malloc.o(i.malloc) for malloc
    main.o(.text) refers to memseta.o(.text) for __aeabi_memclr4
    main.o(.text) refers to bsp_led.o(.text) for LED_GPIO_Config
    main.o(.text) refers to main.o(.constdata) for .constdata
    main.o(.text) refers to main.o(.data) for var_exlink
    main.o(.text) refers to main.o(.bss) for var_exlink_nv
    bsp_led.o(.text) refers to stm32f10x_rcc.o(.text) for RCC_APB2PeriphClockCmd
    bsp_led.o(.text) refers to stm32f10x_gpio.o(.text) for GPIO_Init
    entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000F) for __rt_final_cpp
    entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$00000011) for __rt_final_exit
    entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry12b.o(.ARM.Collect$$$$0000000E) for __rt_lib_shutdown_fini
    entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock
    entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8b.o(.ARM.Collect$$$$0000000A) for _main_cpp_init
    entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry9a.o(.ARM.Collect$$$$0000000B) for _main_init
    entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload
    entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk
    malloc.o(i.free) refers to mvars.o(.data) for __microlib_freelist
    malloc.o(i.malloc) refers to mvars.o(.data) for __microlib_freelist_initialised
    malloc.o(i.malloc) refers to mvars.o(.data) for __microlib_freelist
    malloc.o(i.malloc) refers to startup_stm32f10x_hd.o(HEAP) for __heap_base
    mallocr.o(i.__free$realloc) refers to mvars.o(.data) for __microlib_freelist
    mallocr.o(i.__malloc$realloc) refers to mallocr.o(i.internal_alloc) for internal_alloc
    mallocr.o(i.__malloc$realloc) refers to mvars.o(.data) for __microlib_freelist_initialised
    mallocr.o(i.__malloc$realloc) refers to startup_stm32f10x_hd.o(HEAP) for __heap_base
    mallocr.o(i.__malloc$realloc) refers to mvars.o(.data) for __microlib_freelist
    mallocr.o(i.internal_alloc) refers to memcpya.o(.text) for __aeabi_memcpy
    mallocr.o(i.internal_alloc) refers to mvars.o(.data) for __microlib_freelist
    mallocr.o(i.realloc) refers to mallocr.o(i.__free$realloc) for __free$realloc
    mallocr.o(i.realloc) refers to mallocr.o(i.internal_alloc) for internal_alloc
    mallocr.o(i.realloc) refers to mallocr.o(i.__malloc$realloc) for __malloc$realloc
    mallocr.o(i.realloc) refers to mvars.o(.data) for __microlib_freelist
    malloca.o(i.__aligned_malloc) refers to mvars.o(.data) for __microlib_freelist_initialised
    malloca.o(i.__aligned_malloc) refers to mvars.o(.data) for __microlib_freelist
    malloca.o(i.__aligned_malloc) refers to startup_stm32f10x_hd.o(HEAP) for __heap_base
    malloca.o(i.__free$memalign) refers to mvars.o(.data) for __microlib_freelist
    malloca.o(i.__malloc$memalign) refers to malloca.o(i.__aligned_malloc) for __aligned_malloc
    mallocra.o(i.__aligned_malloc$realloc) refers to mallocra.o(i.internal_alloc) for internal_alloc
    mallocra.o(i.__aligned_malloc$realloc) refers to mvars.o(.data) for __microlib_freelist_initialised
    mallocra.o(i.__aligned_malloc$realloc) refers to startup_stm32f10x_hd.o(HEAP) for __heap_base
    mallocra.o(i.__aligned_malloc$realloc) refers to mvars.o(.data) for __microlib_freelist
    mallocra.o(i.__free$realloc$memalign) refers to mvars.o(.data) for __microlib_freelist
    mallocra.o(i.__malloc$realloc$memalign) refers to mallocra.o(i.__aligned_malloc$realloc) for __aligned_malloc$realloc
    mallocra.o(i.__realloc$memalign) refers to mallocra.o(i.__free$realloc$memalign) for __free$realloc$memalign
    mallocra.o(i.__realloc$memalign) refers to mallocra.o(i.internal_alloc) for internal_alloc
    mallocra.o(i.__realloc$memalign) refers to mallocra.o(i.__malloc$realloc$memalign) for __malloc$realloc$memalign
    mallocra.o(i.__realloc$memalign) refers to mvars.o(.data) for __microlib_freelist
    mallocra.o(i.internal_alloc) refers to memcpya.o(.text) for __aeabi_memcpy
    mallocra.o(i.internal_alloc) refers to mvars.o(.data) for __microlib_freelist
    entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000
    entry2.o(.ARM.Collect$$$$00002712) refers to startup_stm32f10x_hd.o(STACK) for __initial_sp
    entry2.o(__vectab_stack_and_reset_area) refers to startup_stm32f10x_hd.o(STACK) for __initial_sp
    entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main
    entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload
    entry9a.o(.ARM.Collect$$$$0000000B) refers to main.o(.text) for main
    entry9b.o(.ARM.Collect$$$$0000000C) refers to main.o(.text) for main
    init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload


==============================================================================

Removing Unused input sections from the image.

    Removing misc.o(.text), (220 bytes).
    Removing stm32f10x_adc.o(.text), (1102 bytes).
    Removing stm32f10x_bkp.o(.text), (196 bytes).
    Removing stm32f10x_can.o(.text), (2544 bytes).
    Removing stm32f10x_cec.o(.text), (288 bytes).
    Removing stm32f10x_crc.o(.text), (72 bytes).
    Removing stm32f10x_dac.o(.text), (396 bytes).
    Removing stm32f10x_dbgmcu.o(.text), (48 bytes).
    Removing stm32f10x_dma.o(.text), (596 bytes).
    Removing stm32f10x_exti.o(.text), (284 bytes).
    Removing stm32f10x_flash.o(.text), (1468 bytes).
    Removing stm32f10x_fsmc.o(.text), (1548 bytes).
    Removing stm32f10x_i2c.o(.text), (1028 bytes).
    Removing stm32f10x_iwdg.o(.text), (64 bytes).
    Removing stm32f10x_pwr.o(.text), (204 bytes).
    Removing stm32f10x_rtc.o(.text), (328 bytes).
    Removing stm32f10x_sdio.o(.text), (468 bytes).
    Removing stm32f10x_spi.o(.text), (780 bytes).
    Removing stm32f10x_tim.o(.text), (3610 bytes).
    Removing stm32f10x_usart.o(.text), (1032 bytes).
    Removing stm32f10x_wwdg.o(.text), (136 bytes).

21 unused section(s) (total 16412 bytes) removed from the image.

==============================================================================

Image Symbol Table

    Local Symbols

    Symbol Name                              Value     Ov Type        Size  Object(Section)

    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry12a.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry11b.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry11a.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry10b.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry10a.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry12b.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry9b.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry9a.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry8b.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry8a.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry7b.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry7a.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry5.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry2.o ABSOLUTE
    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry.o ABSOLUTE
    ../clib/microlib/malloc/malloc.c         0x00000000   Number         0  malloca.o ABSOLUTE
    ../clib/microlib/malloc/malloc.c         0x00000000   Number         0  mallocra.o ABSOLUTE
    ../clib/microlib/malloc/malloc.c         0x00000000   Number         0  mallocr.o ABSOLUTE
    ../clib/microlib/malloc/malloc.c         0x00000000   Number         0  malloc.o ABSOLUTE
    ../clib/microlib/malloc/mvars.c          0x00000000   Number         0  mvars.o ABSOLUTE
    ../clib/microlib/string/memcpy.c         0x00000000   Number         0  memcpyb.o ABSOLUTE
    ../clib/microlib/string/memcpy.c         0x00000000   Number         0  memcpya.o ABSOLUTE
    ../clib/microlib/string/memset.c         0x00000000   Number         0  memseta.o ABSOLUTE
    ..\..\Libraries\CMSIS\startup\startup_stm32f10x_hd.s 0x00000000   Number         0  startup_stm32f10x_hd.o ABSOLUTE
    ..\..\Libraries\CMSIS\system_stm32f10x.c 0x00000000   Number         0  system_stm32f10x.o ABSOLUTE
    ..\..\Libraries\FWlib\src\misc.c         0x00000000   Number         0  misc.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_adc.c 0x00000000   Number         0  stm32f10x_adc.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_bkp.c 0x00000000   Number         0  stm32f10x_bkp.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_can.c 0x00000000   Number         0  stm32f10x_can.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_cec.c 0x00000000   Number         0  stm32f10x_cec.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_crc.c 0x00000000   Number         0  stm32f10x_crc.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_dac.c 0x00000000   Number         0  stm32f10x_dac.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_dbgmcu.c 0x00000000   Number         0  stm32f10x_dbgmcu.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_dma.c 0x00000000   Number         0  stm32f10x_dma.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_exti.c 0x00000000   Number         0  stm32f10x_exti.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_flash.c 0x00000000   Number         0  stm32f10x_flash.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_fsmc.c 0x00000000   Number         0  stm32f10x_fsmc.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_gpio.c 0x00000000   Number         0  stm32f10x_gpio.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_i2c.c 0x00000000   Number         0  stm32f10x_i2c.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_iwdg.c 0x00000000   Number         0  stm32f10x_iwdg.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_pwr.c 0x00000000   Number         0  stm32f10x_pwr.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_rcc.c 0x00000000   Number         0  stm32f10x_rcc.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_rtc.c 0x00000000   Number         0  stm32f10x_rtc.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_sdio.c 0x00000000   Number         0  stm32f10x_sdio.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_spi.c 0x00000000   Number         0  stm32f10x_spi.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_tim.c 0x00000000   Number         0  stm32f10x_tim.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_usart.c 0x00000000   Number         0  stm32f10x_usart.o ABSOLUTE
    ..\..\Libraries\FWlib\src\stm32f10x_wwdg.c 0x00000000   Number         0  stm32f10x_wwdg.o ABSOLUTE
    ..\..\User\Led\bsp_led.c                 0x00000000   Number         0  bsp_led.o ABSOLUTE
    ..\..\User\main.c                        0x00000000   Number         0  main.o ABSOLUTE
    ..\..\User\stm32f10x_it.c                0x00000000   Number         0  stm32f10x_it.o ABSOLUTE
    dc.s                                     0x00000000   Number         0  dc.o ABSOLUTE
    handlers.s                               0x00000000   Number         0  handlers.o ABSOLUTE
    init.s                                   0x00000000   Number         0  init.o ABSOLUTE
    RESET                                    0x08000000   Section      304  startup_stm32f10x_hd.o(RESET)
    .ARM.Collect$$$$00000000                 0x08000130   Section        0  entry.o(.ARM.Collect$$$$00000000)
    .ARM.Collect$$$$00000001                 0x08000130   Section        4  entry2.o(.ARM.Collect$$$$00000001)
    .ARM.Collect$$$$00000004                 0x08000134   Section        4  entry5.o(.ARM.Collect$$$$00000004)
    .ARM.Collect$$$$00000008                 0x08000138   Section        0  entry7b.o(.ARM.Collect$$$$00000008)
    .ARM.Collect$$$$0000000A                 0x08000138   Section        0  entry8b.o(.ARM.Collect$$$$0000000A)
    .ARM.Collect$$$$0000000B                 0x08000138   Section        8  entry9a.o(.ARM.Collect$$$$0000000B)
    .ARM.Collect$$$$0000000E                 0x08000140   Section        4  entry12b.o(.ARM.Collect$$$$0000000E)
    .ARM.Collect$$$$0000000F                 0x08000144   Section        0  entry10a.o(.ARM.Collect$$$$0000000F)
    .ARM.Collect$$$$00000011                 0x08000144   Section        0  entry11a.o(.ARM.Collect$$$$00000011)
    .ARM.Collect$$$$00002712                 0x08000144   Section        4  entry2.o(.ARM.Collect$$$$00002712)
    __lit__00000000                          0x08000144   Data           4  entry2.o(.ARM.Collect$$$$00002712)
    .text                                    0x08000148   Section       36  startup_stm32f10x_hd.o(.text)
    .text                                    0x0800016c   Section        0  system_stm32f10x.o(.text)
    SetSysClockTo72                          0x0800016d   Thumb Code   214  system_stm32f10x.o(.text)
    SetSysClock                              0x08000243   Thumb Code     8  system_stm32f10x.o(.text)
    .text                                    0x0800034c   Section        0  stm32f10x_gpio.o(.text)
    .text                                    0x080006a8   Section        0  stm32f10x_rcc.o(.text)
    .text                                    0x08000a4c   Section        0  main.o(.text)
    .text                                    0x08000c00   Section        0  stm32f10x_it.o(.text)
    .text                                    0x08000c1c   Section        0  bsp_led.o(.text)
    .text                                    0x08000c7c   Section        0  memseta.o(.text)
    .text                                    0x08000ca0   Section       36  init.o(.text)
    i.__scatterload_copy                     0x08000cc4   Section       14  handlers.o(i.__scatterload_copy)
    i.__scatterload_null                     0x08000cd2   Section        2  handlers.o(i.__scatterload_null)
    i.__scatterload_zeroinit                 0x08000cd4   Section       14  handlers.o(i.__scatterload_zeroinit)
    i.malloc                                 0x08000ce4   Section        0  malloc.o(i.malloc)
    .constdata                               0x08000d50   Section      136  main.o(.constdata)
    cvar_inlink                              0x08000d78   Data          40  main.o(.constdata)
    cvar_nolink                              0x08000dac   Data          40  main.o(.constdata)
    .data                                    0x20000000   Section       20  system_stm32f10x.o(.data)
    .data                                    0x20000014   Section       20  stm32f10x_rcc.o(.data)
    APBAHBPrescTable                         0x20000014   Data          16  stm32f10x_rcc.o(.data)
    ADCPrescTable                            0x20000024   Data           4  stm32f10x_rcc.o(.data)
    .data                                    0x20000028   Section       12  main.o(.data)
    var_inlink                               0x2000002c   Data           4  main.o(.data)
    var_nolink                               0x20000030   Data           4  main.o(.data)
    .data                                    0x20000034   Section        4  mvars.o(.data)
    .data                                    0x20000038   Section        4  mvars.o(.data)
    .bss                                     0x2000003c   Section       12  main.o(.bss)
    var_inlink_nv                            0x20000040   Data           4  main.o(.bss)
    var_nolink_nv                            0x20000044   Data           4  main.o(.bss)
    HEAP                                     0x20000048   Section      512  startup_stm32f10x_hd.o(HEAP)
    STACK                                    0x20000248   Section     1024  startup_stm32f10x_hd.o(STACK)

    Global Symbols

    Symbol Name                              Value     Ov Type        Size  Object(Section)

    BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000   Number         0  anon$$obj.o ABSOLUTE
    __ARM_use_no_argv                        0x00000000   Number         0  main.o ABSOLUTE
    __arm_fini_                               - Undefined Weak Reference
    __cpp_initialize__aeabi_                  - Undefined Weak Reference
    __cxa_finalize                            - Undefined Weak Reference
    __decompress                              - Undefined Weak Reference
    _clock_init                               - Undefined Weak Reference
    _microlib_exit                            - Undefined Weak Reference
    __Vectors_Size                           0x00000130   Number         0  startup_stm32f10x_hd.o ABSOLUTE
    __Vectors                                0x08000000   Data           4  startup_stm32f10x_hd.o(RESET)
    __Vectors_End                            0x08000130   Data           0  startup_stm32f10x_hd.o(RESET)
    __main                                   0x08000131   Thumb Code     0  entry.o(.ARM.Collect$$$$00000000)
    _main_stk                                0x08000131   Thumb Code     0  entry2.o(.ARM.Collect$$$$00000001)
    _main_scatterload                        0x08000135   Thumb Code     0  entry5.o(.ARM.Collect$$$$00000004)
    __main_after_scatterload                 0x08000139   Thumb Code     0  entry5.o(.ARM.Collect$$$$00000004)
    _main_clock                              0x08000139   Thumb Code     0  entry7b.o(.ARM.Collect$$$$00000008)
    _main_cpp_init                           0x08000139   Thumb Code     0  entry8b.o(.ARM.Collect$$$$0000000A)
    _main_init                               0x08000139   Thumb Code     0  entry9a.o(.ARM.Collect$$$$0000000B)
    __rt_lib_shutdown_fini                   0x08000141   Thumb Code     0  entry12b.o(.ARM.Collect$$$$0000000E)
    __rt_final_cpp                           0x08000145   Thumb Code     0  entry10a.o(.ARM.Collect$$$$0000000F)
    __rt_final_exit                          0x08000145   Thumb Code     0  entry11a.o(.ARM.Collect$$$$00000011)
    Reset_Handler                            0x08000149   Thumb Code     8  startup_stm32f10x_hd.o(.text)
    ADC1_2_IRQHandler                        0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    ADC3_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    CAN1_RX1_IRQHandler                      0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    CAN1_SCE_IRQHandler                      0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA1_Channel1_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA1_Channel2_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA1_Channel3_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA1_Channel4_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA1_Channel5_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA1_Channel6_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA1_Channel7_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA2_Channel1_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA2_Channel2_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA2_Channel3_IRQHandler                 0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    DMA2_Channel4_5_IRQHandler               0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    EXTI0_IRQHandler                         0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    EXTI15_10_IRQHandler                     0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    EXTI1_IRQHandler                         0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    EXTI2_IRQHandler                         0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    EXTI3_IRQHandler                         0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    EXTI4_IRQHandler                         0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    EXTI9_5_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    FLASH_IRQHandler                         0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    FSMC_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    I2C1_ER_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    I2C1_EV_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    I2C2_ER_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    I2C2_EV_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    PVD_IRQHandler                           0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    RCC_IRQHandler                           0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    RTCAlarm_IRQHandler                      0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    RTC_IRQHandler                           0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    SDIO_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    SPI1_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    SPI2_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    SPI3_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TAMPER_IRQHandler                        0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM1_BRK_IRQHandler                      0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM1_CC_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM1_TRG_COM_IRQHandler                  0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM1_UP_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM2_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM3_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM4_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM5_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM6_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM7_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM8_BRK_IRQHandler                      0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM8_CC_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM8_TRG_COM_IRQHandler                  0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    TIM8_UP_IRQHandler                       0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    UART4_IRQHandler                         0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    UART5_IRQHandler                         0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    USART1_IRQHandler                        0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    USART2_IRQHandler                        0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    USART3_IRQHandler                        0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    USBWakeUp_IRQHandler                     0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    USB_HP_CAN1_TX_IRQHandler                0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    USB_LP_CAN1_RX0_IRQHandler               0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    WWDG_IRQHandler                          0x08000163   Thumb Code     0  startup_stm32f10x_hd.o(.text)
    SystemInit                               0x0800024b   Thumb Code    78  system_stm32f10x.o(.text)
    SystemCoreClockUpdate                    0x08000299   Thumb Code   142  system_stm32f10x.o(.text)
    GPIO_DeInit                              0x0800034d   Thumb Code   172  stm32f10x_gpio.o(.text)
    GPIO_AFIODeInit                          0x080003f9   Thumb Code    20  stm32f10x_gpio.o(.text)
    GPIO_Init                                0x0800040d   Thumb Code   278  stm32f10x_gpio.o(.text)
    GPIO_StructInit                          0x08000523   Thumb Code    16  stm32f10x_gpio.o(.text)
    GPIO_ReadInputDataBit                    0x08000533   Thumb Code    18  stm32f10x_gpio.o(.text)
    GPIO_ReadInputData                       0x08000545   Thumb Code     8  stm32f10x_gpio.o(.text)
    GPIO_ReadOutputDataBit                   0x0800054d   Thumb Code    18  stm32f10x_gpio.o(.text)
    GPIO_ReadOutputData                      0x0800055f   Thumb Code     8  stm32f10x_gpio.o(.text)
    GPIO_SetBits                             0x08000567   Thumb Code     4  stm32f10x_gpio.o(.text)
    GPIO_ResetBits                           0x0800056b   Thumb Code     4  stm32f10x_gpio.o(.text)
    GPIO_WriteBit                            0x0800056f   Thumb Code    10  stm32f10x_gpio.o(.text)
    GPIO_Write                               0x08000579   Thumb Code     4  stm32f10x_gpio.o(.text)
    GPIO_PinLockConfig                       0x0800057d   Thumb Code    18  stm32f10x_gpio.o(.text)
    GPIO_EventOutputConfig                   0x0800058f   Thumb Code    26  stm32f10x_gpio.o(.text)
    GPIO_EventOutputCmd                      0x080005a9   Thumb Code     6  stm32f10x_gpio.o(.text)
    GPIO_PinRemapConfig                      0x080005af   Thumb Code   138  stm32f10x_gpio.o(.text)
    GPIO_EXTILineConfig                      0x08000639   Thumb Code    66  stm32f10x_gpio.o(.text)
    GPIO_ETH_MediaInterfaceConfig            0x0800067b   Thumb Code     8  stm32f10x_gpio.o(.text)
    RCC_DeInit                               0x080006a9   Thumb Code    64  stm32f10x_rcc.o(.text)
    RCC_HSEConfig                            0x080006e9   Thumb Code    70  stm32f10x_rcc.o(.text)
    RCC_GetFlagStatus                        0x0800072f   Thumb Code    56  stm32f10x_rcc.o(.text)
    RCC_WaitForHSEStartUp                    0x08000767   Thumb Code    56  stm32f10x_rcc.o(.text)
    RCC_AdjustHSICalibrationValue            0x0800079f   Thumb Code    20  stm32f10x_rcc.o(.text)
    RCC_HSICmd                               0x080007b3   Thumb Code     6  stm32f10x_rcc.o(.text)
    RCC_PLLConfig                            0x080007b9   Thumb Code    24  stm32f10x_rcc.o(.text)
    RCC_PLLCmd                               0x080007d1   Thumb Code     6  stm32f10x_rcc.o(.text)
    RCC_SYSCLKConfig                         0x080007d7   Thumb Code    18  stm32f10x_rcc.o(.text)
    RCC_GetSYSCLKSource                      0x080007e9   Thumb Code    10  stm32f10x_rcc.o(.text)
    RCC_HCLKConfig                           0x080007f3   Thumb Code    18  stm32f10x_rcc.o(.text)
    RCC_PCLK1Config                          0x08000805   Thumb Code    18  stm32f10x_rcc.o(.text)
    RCC_PCLK2Config                          0x08000817   Thumb Code    20  stm32f10x_rcc.o(.text)
    RCC_ITConfig                             0x0800082b   Thumb Code    26  stm32f10x_rcc.o(.text)
    RCC_USBCLKConfig                         0x08000845   Thumb Code     8  stm32f10x_rcc.o(.text)
    RCC_ADCCLKConfig                         0x0800084d   Thumb Code    18  stm32f10x_rcc.o(.text)
    RCC_LSEConfig                            0x0800085f   Thumb Code    50  stm32f10x_rcc.o(.text)
    RCC_LSICmd                               0x08000891   Thumb Code     6  stm32f10x_rcc.o(.text)
    RCC_RTCCLKConfig                         0x08000897   Thumb Code    12  stm32f10x_rcc.o(.text)
    RCC_RTCCLKCmd                            0x080008a3   Thumb Code     8  stm32f10x_rcc.o(.text)
    RCC_GetClocksFreq                        0x080008ab   Thumb Code   192  stm32f10x_rcc.o(.text)
    RCC_AHBPeriphClockCmd                    0x0800096b   Thumb Code    26  stm32f10x_rcc.o(.text)
    RCC_APB2PeriphClockCmd                   0x08000985   Thumb Code    26  stm32f10x_rcc.o(.text)
    RCC_APB1PeriphClockCmd                   0x0800099f   Thumb Code    26  stm32f10x_rcc.o(.text)
    RCC_APB2PeriphResetCmd                   0x080009b9   Thumb Code    26  stm32f10x_rcc.o(.text)
    RCC_APB1PeriphResetCmd                   0x080009d3   Thumb Code    26  stm32f10x_rcc.o(.text)
    RCC_BackupResetCmd                       0x080009ed   Thumb Code     8  stm32f10x_rcc.o(.text)
    RCC_ClockSecuritySystemCmd               0x080009f5   Thumb Code     6  stm32f10x_rcc.o(.text)
    RCC_MCOConfig                            0x080009fb   Thumb Code     6  stm32f10x_rcc.o(.text)
    RCC_ClearFlag                            0x08000a01   Thumb Code    14  stm32f10x_rcc.o(.text)
    RCC_GetITStatus                          0x08000a0f   Thumb Code    20  stm32f10x_rcc.o(.text)
    RCC_ClearITPendingBit                    0x08000a23   Thumb Code     6  stm32f10x_rcc.o(.text)
    chuan                                    0x08000a4d   Thumb Code   140  main.o(.text)
    main                                     0x08000ad9   Thumb Code   232  main.o(.text)
    Delay                                    0x08000bc1   Thumb Code    18  main.o(.text)
    NMI_Handler                              0x08000c01   Thumb Code     2  stm32f10x_it.o(.text)
    HardFault_Handler                        0x08000c03   Thumb Code     4  stm32f10x_it.o(.text)
    MemManage_Handler                        0x08000c07   Thumb Code     4  stm32f10x_it.o(.text)
    BusFault_Handler                         0x08000c0b   Thumb Code     4  stm32f10x_it.o(.text)
    UsageFault_Handler                       0x08000c0f   Thumb Code     4  stm32f10x_it.o(.text)
    SVC_Handler                              0x08000c13   Thumb Code     2  stm32f10x_it.o(.text)
    DebugMon_Handler                         0x08000c15   Thumb Code     2  stm32f10x_it.o(.text)
    PendSV_Handler                           0x08000c17   Thumb Code     2  stm32f10x_it.o(.text)
    SysTick_Handler                          0x08000c19   Thumb Code     2  stm32f10x_it.o(.text)
    LED_GPIO_Config                          0x08000c1d   Thumb Code    90  bsp_led.o(.text)
    __aeabi_memset                           0x08000c7d   Thumb Code    14  memseta.o(.text)
    __aeabi_memset4                          0x08000c7d   Thumb Code     0  memseta.o(.text)
    __aeabi_memset8                          0x08000c7d   Thumb Code     0  memseta.o(.text)
    __aeabi_memclr                           0x08000c8b   Thumb Code     4  memseta.o(.text)
    __aeabi_memclr4                          0x08000c8b   Thumb Code     0  memseta.o(.text)
    __aeabi_memclr8                          0x08000c8b   Thumb Code     0  memseta.o(.text)
    _memset$wrapper                          0x08000c8f   Thumb Code    18  memseta.o(.text)
    __scatterload                            0x08000ca1   Thumb Code    28  init.o(.text)
    __scatterload_rt2                        0x08000ca1   Thumb Code     0  init.o(.text)
    __scatterload_copy                       0x08000cc5   Thumb Code    14  handlers.o(i.__scatterload_copy)
    __scatterload_null                       0x08000cd3   Thumb Code     2  handlers.o(i.__scatterload_null)
    __scatterload_zeroinit                   0x08000cd5   Thumb Code    14  handlers.o(i.__scatterload_zeroinit)
    malloc                                   0x08000ce5   Thumb Code    92  malloc.o(i.malloc)
    cvar_exlink                              0x08000d50   Data          40  main.o(.constdata)
    Region$$Table$$Base                      0x08000dd8   Number         0  anon$$obj.o(Region$$Table)
    Region$$Table$$Limit                     0x08000df8   Number         0  anon$$obj.o(Region$$Table)
    SystemCoreClock                          0x20000000   Data           4  system_stm32f10x.o(.data)
    AHBPrescTable                            0x20000004   Data          16  system_stm32f10x.o(.data)
    var_exlink                               0x20000028   Data           4  main.o(.data)
    __microlib_freelist                      0x20000034   Data           4  mvars.o(.data)
    __microlib_freelist_initialised          0x20000038   Data           4  mvars.o(.data)
    var_exlink_nv                            0x2000003c   Data           4  main.o(.bss)
    __heap_base                              0x20000048   Data           0  startup_stm32f10x_hd.o(HEAP)
    __heap_limit                             0x20000248   Data           0  startup_stm32f10x_hd.o(HEAP)
    __initial_sp                             0x20000648   Data           0  startup_stm32f10x_hd.o(STACK)



==============================================================================

Memory Map of the image

  Image Entry point : 0x08000131

  Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00000e34, Max: 0x00080000, ABSOLUTE)

    Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000df8, Max: 0x00080000, ABSOLUTE)

    Exec Addr    Load Addr    Size         Type   Attr      Idx    E Section Name        Object

    0x08000000   0x08000000   0x00000130   Data   RO            3    RESET               startup_stm32f10x_hd.o
    0x08000130   0x08000130   0x00000000   Code   RO          446  * .ARM.Collect$$$$00000000  mc_w.l(entry.o)
    0x08000130   0x08000130   0x00000004   Code   RO          479    .ARM.Collect$$$$00000001  mc_w.l(entry2.o)
    0x08000134   0x08000134   0x00000004   Code   RO          482    .ARM.Collect$$$$00000004  mc_w.l(entry5.o)
    0x08000138   0x08000138   0x00000000   Code   RO          484    .ARM.Collect$$$$00000008  mc_w.l(entry7b.o)
    0x08000138   0x08000138   0x00000000   Code   RO          486    .ARM.Collect$$$$0000000A  mc_w.l(entry8b.o)
    0x08000138   0x08000138   0x00000008   Code   RO          487    .ARM.Collect$$$$0000000B  mc_w.l(entry9a.o)
    0x08000140   0x08000140   0x00000004   Code   RO          494    .ARM.Collect$$$$0000000E  mc_w.l(entry12b.o)
    0x08000144   0x08000144   0x00000000   Code   RO          489    .ARM.Collect$$$$0000000F  mc_w.l(entry10a.o)
    0x08000144   0x08000144   0x00000000   Code   RO          491    .ARM.Collect$$$$00000011  mc_w.l(entry11a.o)
    0x08000144   0x08000144   0x00000004   Code   RO          480    .ARM.Collect$$$$00002712  mc_w.l(entry2.o)
    0x08000148   0x08000148   0x00000024   Code   RO            4    .text               startup_stm32f10x_hd.o
    0x0800016c   0x0800016c   0x000001e0   Code   RO           10    .text               system_stm32f10x.o
    0x0800034c   0x0800034c   0x0000035c   Code   RO          259    .text               stm32f10x_gpio.o
    0x080006a8   0x080006a8   0x000003a4   Code   RO          307    .text               stm32f10x_rcc.o
    0x08000a4c   0x08000a4c   0x000001b4   Code   RO          393    .text               main.o
    0x08000c00   0x08000c00   0x0000001a   Code   RO          416    .text               stm32f10x_it.o
    0x08000c1a   0x08000c1a   0x00000002   PAD
    0x08000c1c   0x08000c1c   0x00000060   Code   RO          431    .text               bsp_led.o
    0x08000c7c   0x08000c7c   0x00000024   Code   RO          449    .text               mc_w.l(memseta.o)
    0x08000ca0   0x08000ca0   0x00000024   Code   RO          501    .text               mc_w.l(init.o)
    0x08000cc4   0x08000cc4   0x0000000e   Code   RO          505    i.__scatterload_copy  mc_w.l(handlers.o)
    0x08000cd2   0x08000cd2   0x00000002   Code   RO          506    i.__scatterload_null  mc_w.l(handlers.o)
    0x08000cd4   0x08000cd4   0x0000000e   Code   RO          507    i.__scatterload_zeroinit  mc_w.l(handlers.o)
    0x08000ce2   0x08000ce2   0x00000002   PAD
    0x08000ce4   0x08000ce4   0x0000006c   Code   RO          452    i.malloc            mc_w.l(malloc.o)
    0x08000d50   0x08000d50   0x00000088   Data   RO          395    .constdata          main.o
    0x08000dd8   0x08000dd8   0x00000020   Data   RO          503    Region$$Table       anon$$obj.o


    Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08000df8, Size: 0x00000648, Max: 0x00010000, ABSOLUTE)

    Exec Addr    Load Addr    Size         Type   Attr      Idx    E Section Name        Object

    0x20000000   0x08000df8   0x00000014   Data   RW           11    .data               system_stm32f10x.o
    0x20000014   0x08000e0c   0x00000014   Data   RW          308    .data               stm32f10x_rcc.o
    0x20000028   0x08000e20   0x0000000c   Data   RW          396    .data               main.o
    0x20000034   0x08000e2c   0x00000004   Data   RW          499    .data               mc_w.l(mvars.o)
    0x20000038   0x08000e30   0x00000004   Data   RW          500    .data               mc_w.l(mvars.o)
    0x2000003c        -       0x0000000c   Zero   RW          394    .bss                main.o
    0x20000048        -       0x00000200   Zero   RW            2    HEAP                startup_stm32f10x_hd.o
    0x20000248        -       0x00000400   Zero   RW            1    STACK               startup_stm32f10x_hd.o


==============================================================================

Image component sizes


      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Object Name

        96          6          0          0          0        522   bsp_led.o
       436         46        136         12         12       2550   main.o
        36          8        304          0       1536        860   startup_stm32f10x_hd.o
       860         38          0          0          0       5733   stm32f10x_gpio.o
        26          0          0          0          0       1206   stm32f10x_it.o
       932         36          0         20          0       8904   stm32f10x_rcc.o
       480         38          0         20          0     226591   system_stm32f10x.o

    ----------------------------------------------------------------------
      2868        172        472         52       1548     246366   Object Totals
         0          0         32          0          0          0   (incl. Generated)
         2          0          0          0          0          0   (incl. Padding)

    ----------------------------------------------------------------------

      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Library Member Name

         0          0          0          0          0          0   entry.o
         0          0          0          0          0          0   entry10a.o
         0          0          0          0          0          0   entry11a.o
         4          0          0          0          0          0   entry12b.o
         8          4          0          0          0          0   entry2.o
         4          0          0          0          0          0   entry5.o
         0          0          0          0          0          0   entry7b.o
         0          0          0          0          0          0   entry8b.o
         8          4          0          0          0          0   entry9a.o
        30          0          0          0          0          0   handlers.o
        36          8          0          0          0         68   init.o
       108         16          0          0          0         84   malloc.o
        36          0          0          0          0        108   memseta.o
         0          0          0          8          0          0   mvars.o

    ----------------------------------------------------------------------
       236         32          0          8          0        260   Library Totals
         2          0          0          0          0          0   (incl. Padding)

    ----------------------------------------------------------------------

      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Library Name

       234         32          0          8          0        260   mc_w.l

    ----------------------------------------------------------------------
       236         32          0          8          0        260   Library Totals

    ----------------------------------------------------------------------

==============================================================================


      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   

      3104        204        472         60       1548     246414   Grand Totals
      3104        204        472         60       1548     246414   ELF Image Totals
      3104        204        472         60          0          0   ROM Totals

==============================================================================

    Total RO  Size (Code + RO Data)                 3576 (   3.49kB)
    Total RW  Size (RW Data + ZI Data)              1608 (   1.57kB)
    Total ROM Size (Code + RO Data + RW Data)       3636 (   3.55kB)

==============================================================================

rom内存分布

1、复位向量表

0x08000000   0x08000000   0x00000130

Data   RO            3    RESET               startup_stm32f10x_hd.o

2、代码

Code   RO

3、常量

0x08000d50   0x08000d50   0x00000088 

Data   RO          395    .constdata          main.o

3+1:三种静态const在rom里,一个局部const在栈里

cvar_exlink 0x08000d50   Data          40  main.o(.constdata)
cvar_inlink                             0x08000d78   Data          40  main.o(.constdata)
cvar_nolink                              0x08000dac   Data          40  main.o(.constdata)

cvar_auto

搜不到

4、.data的非零初始值,需要从rom复制到ram

0x20000028   0x08000e20   0x0000000c  

Data   RW          396    .data               main.o

汇总:main.o里RW Data 12个字节

var_exlink                              0x20000028   Data           4  main.o(.data)
var_inlink                            0x2000002c   Data           4  main.o(.data)
var_nolink                             0x20000030   Data           4  main.o(.data)
5、rom里没有用到的。

ram内存分布

1、静态区的.data

0x20000028   0x08000e20   0x0000000c  

Data   RW          396    .data               main.o

var_exlink                              0x20000028   Data           4  main.o(.data)
var_inlink                            0x2000002c   Data           4  main.o(.data)
var_nolink                             0x20000030   Data           4  main.o(.data)

2、静态区的.bss,因为初值为0,所以没有加载地址

0x2000003c        -       0x0000000c  

Zero   RW          394    .bss                main.o

var_exlink_nv                           0x2000003c   Data           4  main.o(.bss)
var_inlink_nv                            0x20000040   Data           4  main.o(.bss)
var_nolink_nv                            0x20000044   Data           4  main.o(.bss)

3、向上生长的堆(地址变大)

0x20000048        -       0x00000200  

Zero   RW            2    HEAP                startup_stm32f10x_hd.o

4、向下生长的栈(地址变小),栈底固定,需要有个指针指向栈顶

0x20000248        -       0x00000400  

Zero   RW            1    STACK               startup_stm32f10x_hd.o

5、栈之上,是ram没有用到的空闲区域

两个对象

int * p1=(int*)malloc(sizeof(int)*10);

在内存里有两个对象:p1=dyn_arr_addr

栈里面(0x20000248        -       0x00000400)的指针对象:p1_addr(5Ec)          p1(050)

堆里面(0x20000048        -       0x00000200  )的数组对象:     dyn_arr_addr(050)  dyn_arr(整数)

指针对象的地址和值:

动态数组的地址和值:

一维指针和二维指针都可以访问动态数组:

*p1=10;

(**p1_addr)++;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值