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

【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

主站蜘蛛池模板: 红河县| 吴忠市| 迁西县| 漠河县| 大荔县| 永丰县| 罗源县| 稻城县| 临夏市| 图木舒克市| 昌都县| 安岳县| 监利县| 高雄县| 九台市| 阿坝县| 曲阳县| 理塘县| 仁怀市| 米泉市| 枣强县| 阳城县| 江孜县| 拉萨市| 肥乡县| 金坛市| 抚远县| 靖远县| 延津县| 威信县| 永昌县| 万安县| 肃宁县| 安仁县| 武汉市| 松江区| 云林县| 洛川县| 沙雅县| 赞皇县| 沈阳市|