青青av-亚洲激情一区二区-欧洲色综合-看片网址国产福利av中文字幕-成人精品毛片-亚洲黄色免费观看-国产夫妻在线观看-69av电影-久久性片-中文字幕av影片-色综合久久久久无码专区

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

1、 文檔目標

通過Arm DS的設置項生成對應的文件,便于查看工程各個函數的堆棧的占用情況。


2、 問題場景

在對于工程進行調試和測試的時候,工程師通常需要了解目前工程的堆棧使用情況,是否有函數或者變量占用了過多的堆棧空間。或者在對于一些錯誤進行排查的時候也需要查看堆棧的使用情況。


3、軟硬件環境

1)、軟件版本:Arm DS 2023.0

2)、電腦環境:Windows 11

3)、外設硬件:無


4、解決方法

1)、可以通過對應工程的Properties窗口中,C/C++ Build->Setting->Arm Linker 6->Additional Information配置中,有一個Generate call graph(--callgraph)的選項(如圖4-1)。這個選項可以生成記錄工程函數的調用關系的文件。


圖4-1


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


圖4-2


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


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


[Stack]


Max Depth = 112(最大堆棧深度) Call Chain = LED_Initialize => HAL_GPIO_Init(函數的調用關系)



[Calls](該函數調用了什么函數)


HAL_GPIO_WritePin

HAL_GPIO_Init


[Called By](哪個函數調用了這個函數)


main

圖4-3


4)、Additional Information配置中還有兩個選項(如圖4-4)。

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

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


圖4-4

主站蜘蛛池模板: 仙桃市| 都昌县| 额尔古纳市| 拉孜县| 仲巴县| 山西省| 白银市| 谢通门县| 汕头市| 志丹县| 安达市| 宁夏| 琼结县| 四会市| 天等县| 阜宁县| 云阳县| 竹溪县| 汤阴县| 萨迦县| 囊谦县| 新宾| 攀枝花市| 凌源市| 合江县| 遂川县| 龙井市| 浦江县| 高青县| 武邑县| 安泽县| 卫辉市| 洛川县| 吐鲁番市| 嵩明县| 兴业县| 杨浦区| 安庆市| 清河县| 新邵县| 南部县|