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

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

1.堆和棧大小

定義大小在startup_stm32f2xx.s

Stack_Size EQU0x00000400

AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp


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

Heap_Size EQU0x00000200

AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base

2.堆和棧位置

通過MAP文件可知(在目標(biāo)工程欄-->>雙擊工程名,就會(huì)在keil文件顯示框出現(xiàn)map文件)

HEAP 0x200106f8 Section 512 startup_stm32f2xx.o(HEAP)
STACK 0x200108f8 Section 1024 startup_stm32f2xx.o(STACK)

__heap_base 0x200106f8 Data 0 startup_stm32f2xx.o(HEAP)
__heap_limit 0x200108f8 Data 0 startup_stm32f2xx.o(HEAP)
__initial_sp 0x20010cf8 Data 0 startup_stm32f2xx.o(STACK)

顯然Cortex-m3資料可知:__initial_sp是堆棧指針,它就是FLASH的0x8000000地址前面4個(gè)字節(jié)(它根據(jù)堆棧大小,由編譯器自動(dòng)生成)

顯然堆和棧是相鄰的。

3.堆和??臻g分配

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

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

顯然如果依次定義變量

先定義的棧變量的內(nèi)存地址比后定義的棧變量的內(nèi)存地址要大

先定義的堆變量的內(nèi)存地址比后定義的堆變量的內(nèi)存地址要小

4.堆和棧變量

棧:臨時(shí)變量,退出該作用域就會(huì)自動(dòng)釋放

堆:malloc變量,通過free函數(shù)釋放

另外:堆棧溢出,編譯不會(huì)提示,需要注意


本站聲明: 本文章由作者或相關(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)閉