嵌入式系统中未使用的全局变量

时间:2017-04-18 17:10:31

标签: embedded

当我定义一个Global(ROM& RAM)变量但从未在我的代码中使用时,如何在编译时弄清楚这些变量。 目前,我正在使用绿山编译器。有机会找到未使用的全局变量。

1 个答案:

答案 0 :(得分:0)

您通常可以在生成的链接器映射文件中看到这一点 引自a manual 我可以找到:(第207页)

  

制作地图文件
  控制地图文件的生成。此选项的允许设置为:
  •生成默认地图文件(-map) - [默认]
  创建一个包含目标文件名称和.map扩展名的地图文件   •生成用户指定的地图文件(-map =文件名) -
    创建具有指定文件名的映射文件   •抑制地图(-nomap)

您可以使用项目中的其他参数来提供这些选项,它将创建一个文件,报告有关固件位置和大小的所有信息。

该文件将在"可读"输出目录中带有.map扩展名的文本。 您可以查找已删除的符号未使用的符号

请注意,默认行为是创建地图文件。

链接器中经常提供的一个便利功能是创建callgraph。您可以轻松地使用它来查看哪些功能相互依赖。更重要的是,它按功能报告最坏情况可预测堆栈使用情况 它通常不会预测由中断引起的堆栈使用情况。