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作为发布程序. 这在一般的项目中可能并没有问题, 但这不是一个好的做法.

posted @ 2020-11-10 16:31  svchao  阅读(2242)  评论(0编辑  收藏  举报