對於初學者而言,對單片機的內存分配每每最讓人頭疼,不少人學了單片機幾年 都不知道單片機內部的內存使用狀況是如何分配的。要了解 ROM、RAM啓動,首先 須要對 連接器 Linker 如何分配內存有必定的瞭解。html
一般,對於棧生長方向向下的單片機,其內存通常模型是:
一個進程運行時,所佔用的內存,能夠分爲以下幾個部分:
一、棧區(stack):由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。
二、堆區(heap):通常由程序員分配釋放,若程序員不釋放,程序結束時可能由OS釋放。
三、全局變量、靜態變量:初始化的全局變量和靜態變量放在一塊區域,未初始化的全局變量和和未初始化的靜態變量在相鄰的的另外一塊區域。程序結束後由系統自動釋放。
四、文字常量:常量字符串就是存放在這裏的,程序結束後由系統釋放。
五、程序代碼:存放函數體的二進制代碼。程序員
原文出處http://blog.chinaunix.net/uid-15473693-id-388637.html函數
---------------------
做者:Z小旋
CSDN原文:https://blog.csdn.net/as480133937/article/details/87608816ui