1. 程式人生 > >單片機的內存分配(變量的存儲位置)詳解

單片機的內存分配(變量的存儲位置)詳解

fff 程序代碼 堆區 多人 函數的參數 局部變量 alt src color

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

通常,對於棧生長方向向下的單片機,其內存一般模型是: 技術分享圖片
技術分享圖片
一個進程運行時,所占用的內存,可以分為如下幾個部分:
1、棧區(stack):由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。
2、堆區(heap):一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS釋放。
3、全局變量、靜態變量:初始化的全局變量和靜態變量放在一塊區域,未初始化的全局變量和和未初始化的靜態變量在相鄰的的另一塊區域。程序結束後由系統自動釋放。

4、文字常量:常量字符串就是存放在這裏的,程序結束後由系統釋放。
5、程序代碼:存放函數體的二進制代碼。

原文出處http://blog.chinaunix.net/uid-15473693-id-388637.html

---------------------
作者:Z小旋
CSDN原文:https://blog.csdn.net/as480133937/article/details/87608816

單片機的內存分配(變量的存儲位置)詳解