源代码
/**
******************************************************************************
* @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)++;

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





被折叠的 条评论
为什么被折叠?



