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

【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

主站蜘蛛池模板: 宜城市| 集贤县| 福鼎市| 乌拉特中旗| 邯郸市| 建德市| 会东县| 台山市| 罗江县| 武山县| 云和县| 明星| 桐柏县| 鹿泉市| 喜德县| 卢湾区| 长海县| 九龙县| 得荣县| 滨海县| 北流市| 望奎县| 凤阳县| 定西市| 桃园市| 且末县| 肃北| 荆门市| 西安市| 阿城市| 商城县| 红河县| 盐山县| 榆中县| 兴仁县| 金塔县| 磴口县| 叙永县| 沂南县| 灵宝市| 卢湾区|