Advertisement

关于嵌入式系统内存布局的一些疑问(.text、.data、.bass、堆栈)

阅读量:

深入浅出了解(.text、.data、.bss、堆空间、栈空间)的含义

涉及的内容包括嵌入式系统的内存地址空间布局这一主题。具体来说,在编写完成好的源代码后,在编译过程中我们需要将不同类型的变量和函数分别存储到各自对应的段中:其中 .text 段用于存放可执行码块 (.eef),.data 段用于存放全局数据块 (.gdb),而 .bss 段则用于存放静态初始化数据块 (.sib)。需要注意的是,在代码实际运行时所占用的堆空间和栈空间则是动态分配的空间。

1. *.text* 是存储操作系统与应用程序核心指令集的代码块。

2. *.data* 包含操作系统与应用程序中所有初始赋值的全局变量。

3. *.*****bss***** 存储操作系统与应用程序中所有未预先初始化的全局变量。

4. 堆空间 是系统运行时动态分配与释放内存的空间。

5. 栈空间 用于保存程序运行时的状态信息以及函数调用时所需的局部变量和形参。

那么问题1,什么样的数据会保存在.text段里?.data段?.bss段?栈空间?堆空间?

答: 下面举例说明:

复制代码
 unsigned char gvCh;//全局变量,没有初值,放在.bss段中

    
 unsigned short gv

全部评论 (0)

还没有任何评论哟~