4

语境:

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

问题:

  1. 有关如何解释地图文件的任何微控制器的任何教程/示例,
  2. 关于如何理解地图文件符号的任何通用示例,
  3. 它们是一个通用文件(如 .map),我可以将其用于任何可用于分析堆栈大小、代码大小等的控制器/编译器...

PS:我也在从 http://www.tenouk.com/ModuleW.html之类的链接中学习编译过程

谢谢

4

1 回答 1

3

映射文件由链接器生成,每个链接器的文件格式会有所不同。您最好的选择是链接器本身的文档 - 不太可能有“通用”教程。然而,在大多数情况下,地图文件只是一个符号表,它们的位置和大小。通常会对静态数据和代码空间的内存使用情况进行总体总结。我不确定有什么可以“教”的。

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

有些还可能生成交叉引用表或调用图,但在大多数情况下,一个像样的 IDE 或代码导航或文档工具会生成更有用的结果。

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

于 2012-07-13T21:16:54.630 回答