介 紹
棧是MCU內(nèi)部一塊RAM區(qū)域,用于存放某些特別的數(shù)據(jù),它按照后進先出(LIFO/FILO)的原則,主要是為了程序中函數(shù)和中斷服務時保護現(xiàn)場、恢復現(xiàn)場?,F(xiàn)在MCU的RAM空間越來越大,許多工程師都不用去關注棧的劃分,但是如果遇到了大項目,就需要關注堆棧大小設置是否合理,如果有問題就很有可能導致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文件及設置無法打開,如下圖2所示。這是因為stack需要SNI文件,而之前工程是不需要的所以沒有輸出,需要設置輸出stack文件,并且重新編譯整個工程,編譯整個工程按鈕如圖2中紅框所示。
圖2 stack添加到標簽頁后提示
打開stack輸出文件選項,選擇菜單中的項目>C/C++ Project Settings,如下圖3所示,即調(diào)出工程設置菜單。
圖3 工程設置選項
在C/C++ 構(gòu)建>設置>Linker>Miscellaneous中,如下圖4所示,選擇啟用Outputs a stack use information file這個選項,這樣重新編譯整個工程就可以使用了。
圖4 stack設置選項
編譯后的顯示界面如下圖5所示,需要注意的是編譯要選擇構(gòu)建HardwareDebug即整個工程,不然不會生成SNI文件。
圖5 stack標簽頁正常顯示內(nèi)容
結(jié) 論
通過上面的設置實現(xiàn)了e2 studio stack analysis的使用。
來源:瑞薩MCU小百科(作者:李明)
免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理
審核編輯 黃宇
-
mcu
+關注
關注
146文章
17984瀏覽量
367083 -
RAM
+關注
關注
8文章
1392瀏覽量
117556 -
Studio
+關注
關注
2文章
210瀏覽量
29781 -
STACK
+關注
關注
0文章
14瀏覽量
3066
發(fā)布評論請先 登錄
e2studio和Keil簡介及如何安裝e2studio開發(fā)環(huán)境

請問使用RT-Thread Studio在程序進Hardfault時怎么方便查看調(diào)用棧?
使用RT-Thread Studio在程序進Hardfault時怎么方便的查看調(diào)用棧?
如何查看CC2530的z-stack協(xié)議棧程序的大???
請問Z-Stack Linux Gateway這個協(xié)議棧大概會占用MCU多少的存儲器資源?
Z-stack協(xié)議棧是什么
使用Simplicity Studio查看MCU內(nèi)部Flash數(shù)據(jù)的方法
e2 studio開發(fā)環(huán)境之編譯調(diào)試演示教程
如何使用Simplicity Studio查看MCU內(nèi)部Flash的數(shù)據(jù)

棧利用率的獲取

評論