当我定义全局(ROM & RAM)变量但从未在我的代码中随处使用时,如何在编译时计算出这些变量。 目前,我正在与绿色山丘编译器合作。是否有机会找到未使用的全局变量。嵌入式系统中未使用的全局变量
-1
A
回答
0
通常可以在生成的链接器映射文件中看到这一点。
作为从a manual引述我能找到的:(第207页)
地图文件生成
控制地图文件的生成。此选项的允许设置为:
•生成默认地图文件(-map) - [默认]
创建一个映射文件,其中包含对象文件的名称以及.map扩展名。
•生成用户指定的映射文件(-map = filename) -
用指定的文件名创建映射文件。
•禁止地图(-nomap)
您可以在项目中使用的其他参数养活这些选项,它会创建一个文件,报告一切有了解你的固件的位置和大小。
该文件将在输出目录的“可读”文本中以.map
的扩展名存在。 您可以寻找删除的符号或未使用的符号。
请注意,它的默认行为是创建一个映射文件。
链接器中经常可用的一个便利功能是创建callgraph。您可以轻松使用它,查看哪些功能取决于对方。更重要的是,它报告每个功能最坏的情况可预测堆栈使用可能。
它通常不预测由中断引起的堆栈使用情况。
相关问题
- 1. 抢全局变量从嵌入的iframe
- 2. 嵌入式系统
- 3. python全局变量未保存全局
- 4. 当使用全局变量时未定义全局名称
- 5. 全局变量未定义
- 6. 安全关键嵌入式系统中显示系统的资源?
- 7. 全局变量的模式
- 8. CodeIgniter中未定义的全局变量
- 9. AngularJS中的全局变量未更新
- 10. 关于系统调用fork和全局变量
- 11. Pyserial - 嵌入式系统
- 12. 嵌入式设备系统
- 13. WCF和嵌入式系统
- 14. ZigBee和嵌入式系统
- 15. 嵌入式文件系统?
- 16. 嵌入式系统播客
- 17. 嵌入式系统 - 轮询
- 18. 适用于嵌入式系统的silverlight
- 19. 嵌入式系统中的多线程
- 20. JavaScript使用全局变量
- 21. 当使用全局变量
- 22. 使用全局变量
- 23. codeigniter,使用全局变量
- 24. PHP使用全局变量
- 25. 使用全局变量将全局变量递归到迭代
- 26. 在没有操作系统的嵌入式系统中的malloc
- 27. Python中的SQL - 使用全局变量
- 28. Stata未能调用全局变量?
- 29. Mysql中使用的系统变量4.0.27
- 30. “导入全局变量”中的WebPack
它们应该在.data中,除非声明为常量,那么它们将在.text或.rodata中。你检查过二进制文件吗? –
链接器生成的.map文件应该标识全局变量的地址。但是,未使用的变量和函数可能会被链接器从可执行文件中删除。 – kkrambo