1、棧區(stack):由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。 這些值是可讀寫的,那麼stack應該被包含在rw-data(讀寫資料儲存區),也就是微控制器的sram中。
2、堆區(heap):一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os** 。可以理解,這些也是被包含在微控制器的sram中的。
3、全域性區(靜態區)(static):全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域,程式結束後由系統釋放。這些資料也是可讀可寫的,和stack、heap一樣,被包含在sram中。
4、文字常量區:常量字串就是放在這裡的。這些資料是唯讀的,分配在ro-data(唯讀資料儲存區),則被包含在flash中。
5、程式**區:存放函式體的二進位制**,可以想象也是被包含在flash,因為對於mcu來說,當其重新上電,**還會繼續執行,並不會消失,所以儲存在flash中。
MCU記憶體分配
lskybs的部落格 談到記憶體,我們都會想到pc,對於微控制器或者arm來說也是存在記憶體的,簡單的理解是 記憶體嘛 就是存放東西的地方,只不過這個東西是資料而已,好了,還是把重點放在mcu上面,對於一款mcu來說,在效能描述的時候都會告訴sram,flash的容量大小,對於初學者來說,也不會去考...
MCU記憶體分配
首先微控制器的記憶體可以大小分為ram 即sram 和rom 即flash 其中根據flash和sram的定義可得,flash裡面的資料掉電可儲存,sram中的並不可以,但是sram的執行速度要快於flash,可以將微控制器的程式分為code 儲存區 ro data 唯讀資料儲存區 rw data ...
js的記憶體機制(簡單介紹)
簡單的資料型別是放在棧中的,例如undefine,null,number,boolean,string,是直接引用的 複雜的資料型別的放在堆中的,只是在棧中存放了乙個位址,通過位址在堆中尋找資料,例如array,objec等。注意點1 let a 10let b a b 20這個上面的a不會受到影響...