單片機內存

對於初學者而言,對單片機的內存分配往往最讓人頭疼,很多人學了單片機幾年 都不知道單片機內部的內存使用情況是如何分配的。要了解 ROM、RAM,首先 需要對 鏈接器 Linker 如何分配內存有一定的瞭解。

通常,對於棧生長方向向下的單片機,其內存一般模型是: 在這裏插入圖片描述
在這裏插入圖片描述
一個進程運行時,所佔用的內存,可以分爲如下幾個部分:
1、棧區(stack):由編譯器自動分配釋放,存放函數的參數值局部變量的值等。
2、堆區(heap):一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS釋放。
3、全局變量、靜態變量:初始化的全局變量和靜態變量放在一塊區域,未初始化的全局變量和和未初始化的靜態變量在相鄰的的另一塊區域。程序結束後由系統自動釋放。
4、文字常量:常量字符串就是存放在這裏的,程序結束後由系統釋放。
5、程序代碼:存放函數體的二進制代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章