利用 STM32CubeIDE 開發環境構建分析器

意法半導體(STMicroelectronics)推出的 STM32CubeIDE 是一款基於 Eclipse 的 IDE,通過將以前的 TrueSTUDIO IDE 與 STM32CubeMX 編碼配置器集成,從而提供多合一的開發體驗。在它的許多特性中,構建與堆疊分析儀尤為突出,可幫助開發人員密切留意記憶體使用情況。這些功能非常實用且可提供十分重要的訊息,但遺憾的是,使用起來並非常簡單直接。

我先將我的項目導入 STM32CubeIDE 並進行構建。構建成功之後,如下所示。請注意,構建輸出提供了編碼大小信息,但並未採用一般可讀格式。這時,構建分析儀就能派上用場了。

不幸的是,在構建項目之後,構建分析器(特別是記憶體區域選項頁)不會自動填充任何編碼大小訊息。

要獲得這些訊息,我們必須選擇 Debug文件夾中的 <project_name>.map 檔案文件。在項目資源管理器中,展開 Debug 文件夾,然後點擊 .map 文件。如果該文件不存在,請右點按 Debug 文件夾並選擇刷新

image

更新資料
要永久修復此問題,您的 .map 檔案名需要與 .elf 檔案名相似。在上述例子中,
elf 檔案名 = STM32L476RG_NUCLEO.elf
map 檔案名 = ST_test.map

您可以按照以下步驟將 .map 檔案名強制為 STM32L476RG_NUCLEO.map:
轉到屬性 >> C/C++ 構建 >> 設置 >> 工具設置 >> MCU GCC 鏈接器 >> 其他
加入此標誌:-Wl,-Map=STM32L476RG_NUCLEO.map

最新版本的 STM32CubeIDE 通過默認使用項目名稱作為 .elf 檔案的基本名稱解決了這個問題。 因為這也是為 .map 檔案完成的,所以這兩個檔案將具有相同的基本名稱,並且構建分析器將自動填充。

還應注意,如上所述手動選擇 .map 檔案將導致 Build Analyzer 中的 FLASH 區域報告不正確的值(而不是描述 Flash 和 RAM 使用的記憶體),應該選擇 .elf 檔案。 當應用程序使用多個構建配置並且您希望檢查特定構建的內存消耗詳細信息時,這很有用。 只需從相應的構建目錄(例如 Debug、Release 等)中選擇合適的 .elf 檔案即可。

該記憶體區域選項頁現在應該填充了 FLASH 和 RAM 區域的記憶體使用統計資料。最有用的是使用率( % )列,其中明顯地顯示了正在使用的記憶體。