嵌入式系统的地图文件解释教程

时间:2012-07-13 16:28:43

标签: c++ c embedded

上下文:

我正在为我的微控制器编写C ++代码,并且想知道每个类/函数/ stl对代码大小的贡献程度。要查看此信息,我在地图文件的.text部分中搜索。我也看到一些.objdump文件。我有点迷失在哪里开始。

问题:

  1. 任何关于如何解释地图文件的微控制器的教程/示例,
  2. 有关如何理解地图文件符号的任何通用示例
  3. 他们是一个通用文件(如.map),我可以用于任何可用于分析堆栈大小,代码大小等的控制器/编译器......
  4. PS:我也在从这样的链接学习编译过程 http://www.tenouk.com/ModuleW.html

    谢谢

1 个答案:

答案 0 :(得分:2)

映射文件由链接器生成,并且每个链接器的文件格式都不同。你最好的选择是链接器本身的文档 - 不太可能有一个“通用”教程。但是,大多数情况下,地图文件只是一个符号表,它们的位置和大小。通常会有静态数据和代码空间的内存使用情况的总体摘要。我不知道有什么可以“教”这样的。

某些链接器可以将其他信息放在映射文件中,例如每个函数的堆栈使用情况分析。关键值是main()和任何任务/线程和ISR入口点的值。

有些人还可能会生成交叉引用表或调用图,但大多数情况下,体面的IDE或代码导航或文档工具都会产生更多有用的结果。

您最好的选择可能是发布有关您正在使用的导致您遇到困难的地图文件特定部分的问题。