一、概念
.bss段
存放没有初始化或者初始化为0的全局变量或者静态局部变量。
.data段
存放初始化为非0,且非const属性的全局变量或者静态局部变量。
.rodata段
存放字符串和const常量,一般只放在ROM中。
二、实验
1.工具链:
GNU Tools ARM Embedded(win)
2.C代码:
int im_data = 3;
int im_bss;
int im_bss_0 = 0;
const int im_rodata = 1;
static int im_data_sta = 1;
static int im_bss_sta_0 = 0;
static int im_bss_sta;
char *im_rodata_str = "length_10";
int main(void){
static int im_data_func = 1;
static int im_bss_func;
return 0;
}
3.测试过程
1>make 产生elf文件
2>arm-none-eabi-objdump -t elf 打印符号列表,如下
3>分析: