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

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

1、 文檔目標

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


2、 問題場景

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


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

1)、軟件版本:Arm DS 2023.0

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

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


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)、重新構(gòu)建工程后,就可以在工程目錄下面看到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字節(jié))

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

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


........


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

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

LED_Initialize => HAL_GPIO_Init(最大調(diào)用鏈)


圖4-3

主站蜘蛛池模板: 成都市| 手游| 喀喇沁旗| 磐安县| 石柱| 楚雄市| 金山区| 准格尔旗| 济南市| 武强县| 兴海县| 白山市| 临泉县| 若尔盖县| 陆川县| 汝南县| 泌阳县| 黑河市| 东至县| 漳州市| 五莲县| 乌兰察布市| 阜康市| 南城县| 郑州市| 吉安市| 昌宁县| 得荣县| 伊通| 札达县| 大关县| 开化县| 铜鼓县| 长汀县| 星子县| 蒙山县| 昌乐县| 前郭尔| 都江堰市| 东海县| 关岭|