1. 函数栈
1.1物理内存分布
介绍函数栈之前,先介绍SylixOS Lite版本ARM平台的内存分布,根据BSP工程的连接脚本SylixOSBSP.ld可知,SylixOS的物理内存主要分为五段:
1.TEXT段又称代码段,主要存放执行代码,有执行权限;
2.DATA段又称数据段,主要放已经初始化好的全局变量;
3.BSS段主要存放未初始化的全局变量;
4.栈又称堆栈,可存放函数的局部临时变量(不包括static声明的变量,static放在在数据段中)。在函数被调用时,其参数也可能会被压入栈中,并且待到调用结束后,函数的返回值也会被存放到栈中,可以说栈就是为了函数而存在的;堆是用于存放进程运行中被动态分配的内存段。
SylixOS lite版的物理内存分布方式,如图 1.1所示。
图