日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1.堆和棧大小定義大小在startup_stm32f2xx.sStack_SizeEQU0x00000800AREASTACK, NOINIT, READWRITE, ALIGN=3Stack_MemSPACEStack_Size__initial_sp; Heap Configuration;Heap Size (in Bytes) ;Heap_SizeEQU0x000008

1.堆和棧大小

定義大小在startup_stm32f2xx.s

Stack_SizeEQU0x00000800

AREASTACK, NOINIT, READWRITE, ALIGN=3
Stack_MemSPACEStack_Size
__initial_sp


; Heap Configuration
;Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
;

Heap_SizeEQU0x00000800

AREAHEAP, NOINIT, READWRITE, ALIGN=3
__heap_base

2.堆和棧位置


通過MAP文件可知




3.堆和??臻g分配


棧:向低地址擴(kuò)展

堆:向高地址擴(kuò)展


棧:

存函數(shù)的臨時(shí)變量,即局部變量,函數(shù)返回時(shí)隨時(shí)有可能被其他函數(shù)棧用。所以棧是一種分時(shí)輪流使用的存儲(chǔ)區(qū),

編譯器里定義的Stack_Size,是為了限定函數(shù)的局部數(shù)據(jù)活動(dòng)的范圍,操過這么范圍有可以跑飛,也就是棧溢出;

Stack_Size不影響Hex,更不影響Hex怎么運(yùn)行的,只是在Debug調(diào)試時(shí)會(huì)提示錯(cuò)。有的人寫

單片機(jī)代碼在函數(shù)里定義一個(gè)大數(shù)組 int buf[8192],棧要是小于8192是會(huì)死的很慘。


堆:存的是全局變量,這變量理論上是所有函數(shù)都可以訪問的,全局變量有的有初始值,但這個(gè)值不是存在RAM里的,

是存在Hex里,下載到Flash里,上電由代碼(編譯器生成的匯編代碼)搬到RAM去的。



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉