STM32CUBEIDE中 Debug 和 Release 的作用/區別/使用場景


基本主流IDE都有該功能選項例如Keil MDK, IAR, Eclipse, VS等, 這里使用STM32CUBEIDE來舉例

創建STM32CUBEIDE工程后默認有2個目標選項 Debug / Release.

它們的主要作用是區分不同目標(如Debug和Release)中的編譯選項/預處理符號定義/測試文件的添加與否等進行統一管理.

一. 使用場景:

  1. 在開發階段為了減少編譯優化造成的一系列問題, 我們往往將編譯器優化等級設置為最低. 正式發布版一般來說會將優化等級進行提升.即Debug中低優化, Release中高優化.

  2. 在嵌入式開發過程中我們還需要進行大量的硬件測試, 算法驗證等. 有些測試並不需要包含在正式的發布程序中. 即Debug中需要包含測試程序, Release中不需要.

  3. 再者有時中間會臨時制作一版用於客戶現場測試等等, 這時候相當於我們需要維護的版本已經不止一個. 即Debug/Release/Release_R1/_R2/_R3...

二. STM32CUBEIDE中默認Debug / Release的配置區別

(以下區別不代表所有)

  1. Debug工程中默認預處理符號有 DEBUG, 如下:

  1. 默認編譯器的優化等級設置不一樣

Debug目標:

Release目標:

三. 如何新建

在工程名右鍵->Properties

點擊New 進行新建

Name 中填寫你要創建的目標名, Existing configuration 選項決定你將要基於該目標已有的配置.

四. 選擇你的工程

五. 為目標添加不同的參數選項

我們可以在不同的目標中添加不同的編譯選項, 設置不同的優化級別, 定義預處理符號, 甚至添加不同的文件結構.

  1. 例如我們在目標中添加一些預處理符號(宏開關).

  1. 使用不同的工具鏈版本:

等等.

六. 注意事項

默認情況下IDE一般選擇的都是Debug目標. 很多人甚至不知道有Debug/Release的選項和區別,

從而使用Debug作為發布程序. 這在一般的項目中可能並沒有問題, 但這不是一個好的做法.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM