介 紹
棧是MCU內(nèi)部一塊RAM區(qū)域,用于存放某些特別的數(shù)據(jù),它按照后進(jìn)先出(LIFO/FILO)的原則,主要是為了程序中函數(shù)和中斷服務(wù)時(shí)保護(hù)現(xiàn)場(chǎng)、恢復(fù)現(xiàn)場(chǎng)?,F(xiàn)在MCU的RAM空間越來越大,許多工程師都不用去關(guān)注棧的劃分,但是如果遇到了大項(xiàng)目,就需要關(guān)注堆棧大小設(shè)置是否合理,如果有問題就很有可能導(dǎo)致Fault。
近期有工程師使用e2 studio調(diào)試瑞薩MCU時(shí),需要查看棧的使用情況,通過軟件找了一圈沒有發(fā)現(xiàn),感覺是沒提供這個(gè)功能。其實(shí)e2 studio是有的,下面介紹stack棧的調(diào)試窗調(diào)出。
主要內(nèi)容:
首先需要調(diào)出棧的觀察窗口,通過菜單中的窗口>顯示視圖>其他,會(huì)調(diào)出顯示視圖窗口,選擇Stack Analysis后會(huì)添加stack觀察標(biāo)簽頁(yè)。
圖1 stack棧調(diào)出菜單及調(diào)出窗體
添加后的stack標(biāo)簽頁(yè)提示缺少SNI文件及設(shè)置無法打開,如下圖2所示。這是因?yàn)閟tack需要SNI文件,而之前工程是不需要的所以沒有輸出,需要設(shè)置輸出stack文件,并且重新編譯整個(gè)工程,編譯整個(gè)工程按鈕如圖2中紅框所示。
圖2 stack添加到標(biāo)簽頁(yè)后提示
打開stack輸出文件選項(xiàng),選擇菜單中的項(xiàng)目>C/C++ Project Settings,如下圖3所示,即調(diào)出工程設(shè)置菜單。
圖3 工程設(shè)置選項(xiàng)
在C/C++ 構(gòu)建>設(shè)置>Linker>Miscellaneous中,如下圖4所示,選擇啟用Outputs a stack use information file這個(gè)選項(xiàng),這樣重新編譯整個(gè)工程就可以使用了。
圖4 stack設(shè)置選項(xiàng)
編譯后的顯示界面如下圖5所示,需要注意的是編譯要選擇構(gòu)建HardwareDebug即整個(gè)工程,不然不會(huì)生成SNI文件。
圖5 stack標(biāo)簽頁(yè)正常顯示內(nèi)容
結(jié) 論
通過上面的設(shè)置實(shí)現(xiàn)了e2 studio stack analysis的使用。
來源:瑞薩MCU小百科(作者:李明)
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)聯(lián)系小編進(jìn)行處理
審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351212 -
RAM
+關(guān)注
關(guān)注
8文章
1368瀏覽量
114701 -
Studio
+關(guān)注
關(guān)注
2文章
190瀏覽量
28694 -
STACK
+關(guān)注
關(guān)注
0文章
13瀏覽量
2798
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論