開發(fā)環(huán)境:CS+ for CA,CX
MCU:RL78系列
仿真器:SF3000E1
程序的內(nèi)存分配
一個由C/C++編譯的程序占用的內(nèi)存分為以下幾個部分:
棧區(qū)(stack)由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。
堆區(qū)(heap)一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時可能由OS回收。
全局區(qū)(靜態(tài)區(qū))(static)全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后有系統(tǒng)釋放。
文字常量區(qū)—常量字符串就是放在這里的。程序結(jié)束后由系統(tǒng)釋放。
程序代碼區(qū)—存放函數(shù)體的二進(jìn)制代碼。
棧溢出的危害
棧溢出就是緩沖區(qū)溢出的一種。由于緩沖區(qū)溢出而使得有用的存儲單元被改寫,往往會引發(fā)不可預(yù)料的后果。程序在運(yùn)行過程中,為了臨時存取數(shù)據(jù)的需要,一般都要分配一些內(nèi)存空間,通常稱這些空間為緩沖區(qū)。如果向緩沖區(qū)中寫入超過其本身長度的數(shù)據(jù),以致于緩沖區(qū)無法容納,就會造成緩沖區(qū)以外的存儲單元被改寫,這種現(xiàn)象就稱為緩沖區(qū)溢出。緩沖區(qū)長度一般與用戶自己定義的緩沖變量的類型有關(guān)。
如何查看程序棧的使用情況
針對瑞薩的RL78系列MCU去查看代碼中使用了多少棧空間,可以按照如下步驟進(jìn)行操作。
步驟一
請參照圖1,打開CA78K0R(Build Tool)-->Compile options-->Debug Information選擇Yes(Add to both assembly and object file)(-g2)
圖1
步驟二
請參照圖2,打開CA78K0R(Build Tool)-->Compile options-->Assembly file選擇Yes(With no C source info)(-a)。
圖2
步驟三
請參照圖3,將工程項目進(jìn)行編譯。
圖3
步驟四
請參照圖4,打開Tool-->Startup Stack Usage Tracer,打開后會彈出如圖5和圖6的窗口。會顯示我們每個源文件與每個函數(shù)所占用的棧空間大小。
圖4
圖5
圖6
如圖6棧空間使用情況例子說明
main函數(shù)使用的占空間為18個字節(jié),計算是根據(jù)其調(diào)用的所有的函數(shù)的占空間使用的總和。其中調(diào)用的各個函數(shù)R_FDL_Write用到8個字節(jié)棧空間,R_FDL_Write用到8個字節(jié)棧空間,以及所有可以中斷的棧空間。
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17317瀏覽量
352643 -
程序
+關(guān)注
關(guān)注
117文章
3795瀏覽量
81411 -
編譯器
+關(guān)注
關(guān)注
1文章
1642瀏覽量
49286
原文標(biāo)題:CS+ for CA,CX查看RL78程序棧的使用
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
查看Linux系統(tǒng)內(nèi)存使用情況的幾種方法
![<b class='flag-5'>查看</b>Linux系統(tǒng)內(nèi)存<b class='flag-5'>使用情況</b>的幾種方法](https://file1.elecfans.com/web2/M00/AD/DE/wKgaomVRfNaATW4hAAA7_535rrs293.png)
rtthread編譯后如何查看堆棧空間使用情況?
CUBEIDE運(yùn)行完可以看RAM的使用情況,運(yùn)行中可以實時查看RAM的使用情況嗎?
如何查看RAM使用情況?
STM32H7的FLASH,RAM和棧使用情況
怎樣使用Windows自帶的東西查看電源使用情況
SoC如何查看內(nèi)存使用情況
Windows查看電源使用情況
![Windows<b class='flag-5'>查看</b>電源<b class='flag-5'>使用情況</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論