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