1)棧區(stack):由編譯器自動分配和釋放,存放函式的引數值、區域性變數的值等,其操作方式類似
於資料結構中的棧。
(2)堆區(heap):一般由程式設計師分配和釋放,若程式設計師不釋放,程式結束時可能由作業系統**。分配
方式類似於資料結構中的鍊錶。
(3)全域性區(靜態區)(static):全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態
變數在一塊區域,未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。程式結束後由系
統自動釋放。
(4)文字常量區:常量字串就是存放在這裡的。
(5)程式**區:存放函式體的二進位制**。
例如: int a=0;
//全域性初始化區
char *p1;
//全域性未初始化區
main()
所以堆和棧的區別:
stack的空間由作業系統自動分配/釋放,heap上的空間手動分配/釋放。
stack的空間有限,heap是很大的自由儲存區。
程式在編譯期和函式分配記憶體都是在棧上進行,且程式執行中函式呼叫時引數的傳遞也是在棧上進
行。
STM32 啟動檔案
先來看看啟動 中的偽操作和偽指令 equ 用於定義常量,相當於c中的巨集定義 如stack size equ 0x00000400 define stack size 0x00000400 align 位元組對齊方式 align 3 export 相當於宣告了乙個全域性變數 export vecto...
stm32啟動檔案
這是st提供的3個啟動檔案,分別適用於不同容量的stm32晶元。這三個檔案為 startup stm32f10x ld.s startup stm32f10x md.s startup stm32f10x hd.s 其中,ld.s適用於小容量 產品 md.s適用於中等容量產品 hd適用於大容量產品 ...
stm32的啟動檔案
libraries cmsis core cm3 startup arm資料夾下是由彙編編寫的系統啟動檔案,不同的檔案對應不同的晶元型號。cl 互聯型產品,stm32f105 107系列 vl 超值型產品,stm32f100系列 xl 超高密度 容量 產品,stm32f101 103系列 ld 低密...