當我定義全局(ROM & RAM)變量但從未在我的代碼中隨處使用時,如何在編譯時計算出這些變量。 目前,我正在與綠色山丘編譯器合作。是否有機會找到未使用的全局變量。嵌入式系統中未使用的全局變量
-1
A
回答
0
通常可以在生成的鏈接器映射文件中看到這一點。
作爲從a manual引述我能找到的:(第207頁)
地圖文件生成
控制地圖文件的生成。此選項的允許設置爲:
•生成默認地圖文件(-map) - [默認]
創建一個映射文件,其中包含對象文件的名稱以及.map擴展名。
•生成用戶指定的映射文件(-map = filename) -
用指定的文件名創建映射文件。
•禁止地圖(-nomap)
您可以在項目中使用的其他參數養活這些選項,它會創建一個文件,報告一切有了解你的固件的位置和大小。
該文件將在輸出目錄的「可讀」文本中以.map
的擴展名存在。 您可以尋找刪除的符號或未使用的符號。
請注意,它的默認行爲是創建一個映射文件。
鏈接器中經常可用的一個便利功能是創建callgraph。您可以輕鬆使用它,查看哪些功能取決於對方。更重要的是,它報告每個功能最壞的情況可預測堆棧使用可能。
它通常不預測由中斷引起的堆棧使用情況。
相關問題
- 1. 搶全局變量從嵌入的iframe
- 2. 傳遞的javascript全局變量嵌入
- 3. 如何處理嵌入式系統中的標誌變量
- 4. 嵌入式系統
- 5. 開始使用嵌入式系統
- 6. python全局變量未保存全局
- 7. 當使用全局變量時未定義全局名稱
- 8. 全局變量的使用
- 9. 安全關鍵嵌入式系統中顯示系統的資源?
- 10. 全局變量未定義
- 11. 全局變量未定義
- 12. 全局變量未定義
- 13. 嵌入式系統 - 輪詢
- 14. 嵌入式文件系統?
- 15. 嵌入式系統gettext?
- 16. Pyserial - 嵌入式系統
- 17. 嵌入式系統播客
- 18. 嵌入式系統時鐘
- 19. ZigBee和嵌入式系統
- 20. WCF和嵌入式系統
- 21. 嵌入式設備系統
- 22. 全局變量的模式
- 23. 關於系統調用fork和全局變量
- 24. CodeIgniter中未定義的全局變量
- 25. AngularJS中的全局變量未更新
- 26. 適用於嵌入式系統的silverlight
- 27. 嵌入式系統中的AT命令
- 28. Linux嵌入式系統中的Java Swing
- 29. 嵌入式系統中的多線程
- 30. java全局全局變量和用戶全局變量
它們應該在.data中,除非聲明爲常量,那麼它們將在.text或.rodata中。你檢查過二進制文件嗎? –
鏈接器生成的.map文件應該標識全局變量的地址。但是,未使用的變量和函數可能會被鏈接器從可執行文件中刪除。 – kkrambo