当前位置: 首页 > news >正文

【ARM】如何通过ARMDS的Map文件查看堆栈调用情况

1、 文档目标

通过ARMDS生成的Map文件,查看工程的堆栈使用情况。

2、 问题场景

在对于工程进行调试和测试的时候,工程师通常需要了解目前工程的堆栈使用情况,是否有函数或者变量占用了过多的堆栈空间。或者在对于一些错误进行排查的时候也需要查看堆栈的使用情况。除了可以查看callgraph文件外,也可以通过Map文件进行查看。

3、软硬件环境

1)、软件版本:ARM DS 2023.0

2)、电脑环境:Windows 11

3)、外设硬件:无

4、解决方法

1)、ARMDS要生成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

———————————————————————

​ 版权声明:本文为亿道电子科技有限公司原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

相关文章:

  • U-Boot ARMv8 平台异常处理机制解析
  • 力扣经典算法篇-13-接雨水(较难,动态规划,加法转减法优化,双指针法)
  • PID - 模拟
  • 3D草图绘制管道
  • 从零搭建上门做饭平台:高并发订单系统设计
  • Deep Evidential Regression
  • doucker 挂载卷
  • 零基础设计模式——结构型模式 - 装饰器模式
  • ubuntu 制作 ssl 证书
  • 通过ansible playbook创建azure 资源
  • 电子邮箱设置SSL:构建邮件传输的加密护城河
  • 解决Qt 打包的软件缺少dll问题
  • UDP 传输时间(延迟)
  • 记录:训练过程中可训练参数出现nan和inf造成loss为nan
  • 2025年6月亲测可用 | 剪映免SVIP版本 | 支持数字人
  • 8.安卓逆向2-frida hook技术-frida环境安装
  • 利用亮数据实现大规模数据自动抓取
  • 如何验证 AXI5 原子操作
  • Linux 进阶命令篇
  • (自用)Java学习-5.19(地址管理,三级联动,预支付)
  • 出口外贸网站建设/弹窗广告最多的网站
  • dw网站制作的源代码/网址链接查询
  • 重庆市园林建设有限公司网站/2022最近十大的新闻热点
  • 制作企业网站/搜索引擎优化培训免费咨询
  • 域名网站怎么做的/焊工培训ppt课件
  • 网站建设电销职责/搜索引擎优化什么意思