日韩中文在线观看-欧美性综合-伊人视频在线观看-亚洲免费在线视频观看-国产偷人视频-人妻丰满熟妇岳av无码区hd-国产一级淫片a视频免费观看-国产精品交换-国产精品1区2区3区4区-美女日批视频在线观看-欧美日韩一区二区三区自拍

【Arm】Arm DS如何查看工程的堆棧使用情況

1、 文檔目標(biāo)

通過Arm DS的設(shè)置項(xiàng)生成對(duì)應(yīng)的文件,便于查看工程各個(gè)函數(shù)的堆棧的占用情況。


2、 問題場(chǎng)景

在對(duì)于工程進(jìn)行調(diào)試和測(cè)試的時(shí)候,工程師通常需要了解目前工程的堆棧使用情況,是否有函數(shù)或者變量占用了過多的堆棧空間。或者在對(duì)于一些錯(cuò)誤進(jìn)行排查的時(shí)候也需要查看堆棧的使用情況。


3、軟硬件環(huán)境

1)、軟件版本:Arm DS 2023.0

2)、電腦環(huán)境:Windows 11

3)、外設(shè)硬件:無


4、解決方法

1)、可以通過對(duì)應(yīng)工程的Properties窗口中,C/C++ Build->Setting->Arm Linker 6->Additional Information配置中,有一個(gè)Generate call graph(--callgraph)的選項(xiàng)(如圖4-1)。這個(gè)選項(xiàng)可以生成記錄工程函數(shù)的調(diào)用關(guān)系的文件。


圖4-1


2)、設(shè)置好后,重新對(duì)于工程進(jìn)行構(gòu)建后就可以在工程管理窗口中下看生成的TXT文件。(如圖4-2)


圖4-2


3)、在生成的文件中,可以看到在工程中使用的LED_Initialize函數(shù)的調(diào)用情況和堆棧情況(如圖4-3)。


LED_Initialize (Thumb(使用的指令集), 160 bytes(函數(shù)的大小), Stack size 48 bytes(堆棧的大小), LED_769I_EVAL.o(.text.LED_Initialize)(函數(shù)所在的源文件))


[Stack]


Max Depth = 112(最大堆棧深度) Call Chain = LED_Initialize => HAL_GPIO_Init(函數(shù)的調(diào)用關(guān)系)



[Calls](該函數(shù)調(diào)用了什么函數(shù))


HAL_GPIO_WritePin

HAL_GPIO_Init


[Called By](哪個(gè)函數(shù)調(diào)用了這個(gè)函數(shù))


main

圖4-3


4)、Additional Information配置中還有兩個(gè)選項(xiàng)(如圖4-4)。

(1)、Callgraph file(--callgraph_file):指定生成的文件的文件名,不設(shè)置的情況下,默認(rèn)使用工程名字。

(2)、Callgraph format (--callgraph_output):控制生成文件的類型,這里有HTML和TEXT兩種選項(xiàng)。根據(jù)需求選擇即可。


圖4-4

主站蜘蛛池模板: 永兴县| 上杭县| 新泰市| 古蔺县| 安吉县| 东台市| 新宁县| 大化| 喀喇沁旗| 资源县| 敖汉旗| 汝城县| 南木林县| 泗洪县| 沂源县| 临泽县| 兰州市| 库车县| 郑州市| 乐都县| 双峰县| 安福县| 临汾市| 凤山市| 威宁| 固原市| 岱山县| 婺源县| 黄浦区| 铁力市| 庐江县| 连江县| 达拉特旗| 承德市| 绥中县| 康马县| 马公市| 庄浪县| 营口市| 克什克腾旗| 图们市|