IAR 的map文件内容如下:
-----------------------------------------------------------------------------------------------------------------
"A1": place at mem:0x8000000 { ro section .intvec };
"P1": place in [from mem:0x8000000 to mem:0x807ffff] { ro };
"P2": place in [from mem:0x20000000 to mem:0x2000ffff] {
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": 0x1a1d8
.text ro code 0x08000130 0x61e0 key_Process_SubState.o [1]
,,,
.rodata const 0x080187a4 0x120 main.o [1]
"P2", part 1 of 3: 0xc000
CSTACK 0x20000000 0xc000 <Block>
CSTACK uninit 0x20000000 0xc000 <Block tail>
- 0x2000c000 0xc000
"P2", part 2 of 3: 0x3874
.bss zero 0x2000c000 0x1ac8 key_Process_MainState.o [1]
,,,
.bss zero 0x2000f870 0x1 stm103v8_config.o [1]
- 0x2000f871 0x3871
"P2", part 3 of 3: 0x2d8
P2 s0 0x2000f874 0x2d8 <Init block>
.data inited 0x2000f874 0x150 GUI_System_Set.o [1]
,,,
.data inited 0x2000fb4b 0x1 key_Process_Password.o [1]
- 0x2000fb4c 0x2d8
-----------------------------------------------------------------------------------------------------------------
这里, .bss 是指什么情况下的变量?
/**(来自网络)
.bss段是全局变量数据段。它用来存放未初始化的(uninitailized)全局变量(global)和未初始化的静态变量(static)。它也是可读可写的。bss是英文Block Started by Symbol的缩写。之所以把bss跟data分开来,是因为系统会为这些bss段的变量的初值清零。
**/
这样解释行吗? 求解!
|