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

【Arm】如何通過Arm DS的Map文件查看堆棧調用情況

1、 文檔目標

通過Arm DS生成的Map文件,查看工程的堆棧使用情況。


2、 問題場景

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


3、軟硬件環境

1)、軟件版本:Arm DS 2023.0

2)、電腦環境:Windows 11

3)、外設硬件:無


4、解決方法

1)、Arm DS要生成Map文件需要在Properties窗口中,C/C++ Build->Setting->Arm Linker 6->Additional Information配置中,勾選Generate image map(--map)。并且在最下面的Redirect diagnostics output to file(--list)后面的輸入框中輸入map文件的文件名(如圖4-1)。

如果需要查看全局變量的堆棧使用情況,需要勾選上List stack usage of global symbols這個選項。


圖4-1


2)、重新構建工程后,就可以在工程目錄下面看到map文件的生成了。(如圖4-2)


圖4-2


3)、在Map文件的Image Stack Usage Information.部分就可以看全局變量的堆棧情況了(如圖4-3)


Maximum stack usage for Image.(Image部分的最大堆棧使用量)


Maximum Stack Usage for svcRtxKernelStart 0xe8 bytes.(svcRtxKernelStart的最大堆棧使用率0xe8字節)

Call chain for maximum stack usage(最大堆棧使用的調用鏈:):

svcRtxKernelStart => osRtxThreadStartup => svcRtxThreadNew => osRtxMemoryAlloc => MemBlockPtr(最大調用鏈)


........


Maximum Stack Usage for LED_Initialize 0x70 bytes.(LED_Initialize的最大堆棧使用率為0x70字節。)

Call chain for maximum stack usage(最大堆棧使用的調用鏈):

LED_Initialize => HAL_GPIO_Init(最大調用鏈)


圖4-3

主站蜘蛛池模板: 南郑县| 蒲江县| 西丰县| 双城市| 手游| 巴马| 屏东市| 毕节市| 江永县| 米易县| 云霄县| 银川市| 宝鸡市| 武邑县| 靖安县| 万源市| 周至县| 乌拉特前旗| 宁晋县| 尼木县| 尼勒克县| 榆社县| 尚义县| 佛学| 紫阳县| 武宁县| 刚察县| 庆云县| 洪洞县| 清新县| 蚌埠市| 赫章县| 古丈县| 陆丰市| 改则县| 新竹县| 古丈县| 黔南| 洞头县| 浦县| 娱乐|