STM32CubeIDE基础学习-代码的编译介绍
前言
当写完代码后,即在调试和下载代码之前都是需要对工程代码进行编译的操作,不然是无法正常进行代码调试和下载的,所以编译这一步是一个关键步骤。
下面就来介绍下STM32CubeIDE软件环境的代码编译方法和编译生成的信息分析。
方法1:
这个软件的代码编译按钮类似一个铁锤的样子,点击就可以编译程序,如下图所示:
如果点击展开之后,可以看到有两个模式,其中一个是Debug和另一个是Release模式,如下图所示:
下面就简单总结一下这两个模式的区别:
1、Debug模式是用于开发调试程序的,代码编译结果是包含各种调试信息,默认系统不做优化处理。
2、Release模式一般是用于最终生成最终的代码,提供别人下载使用,代码编译结果会进行各种优化处理,从而可以令代码大大减小内存占用,运行速度也得到提升。
注意:
1、这个代码优化应该是系统编译器优化的,不是人为优化的。
2、代码调试时,单步调试仅在Debug模式下支持。
方法2:
快捷键:Ctrl+B,或点击Project下的Build All,可以编译代码如下图所示:
这里也可以选择设置Debug和Release两个模式,如下图所示:
点击编译后可以看到工程栏会生成一个Debug文件夹,里面存放相关编译信息文件:
注意,可以看到现在输出文件还是没有hex烧写文件的,需要设置输出才行,具体输出设置方法,可以看下后面的对应文章。
最终编译后会有以下的提示信息:
这个输出框主要反馈给程序员是否有语法错误等信息的,程序是否能正常执行,要看代码编写的逻辑是否正确。
编译结束后会有提示内容,具体编译结果里面内容含义描述如下:
text 是代码段,用来存放程序执行代码的一块内存区域。
data(data segment)段,是已经初始化的变量,属于静态内存分配。
bss(block started by symbol)段,是未初始化的全局变量,属于静态内存分配。
dec(decimal即十进制数),是 text、data 和 bss 的算术和。
hex(hexadecimal即十六进制),其对应的数值是 dec 的十六进制格式。
以上是程序没有加载到内存前的3段信息,程序的大小就是text代码段的大小。
如果编译结束提示Build Finished.0 error ,0 warnings.则表示程序0 错误,0 警告,仅仅代表程序没有任何语法问题,注意,没有语法错误并不代表程序功能能正常执行,具体要分析代码执行逻辑。
总结
以上就是STM32CubeIDE软件环境的代码编译方法步骤了,虽然这个操作不是重点,但是关键步骤一环。