!!!!
本教程适用于使用idf开发的主流平台(只要能找到sdkconfig)
比如arduino!!!
!!!!

编译-优化

默认来说,编译优化是不开启的。

不过,为了得到

  1. 更好(可能)的性能
  2. 优化过的大小

我们往往会加入编译优化标志(compiler_optimization_flag),来“告诉”编译器我需要哪方面的优化。

这一切,在常见的x86-64架构pc十分常见

但在xtense架构单片机esp32上,这种操作可能伴随着不小的风险,最为直观的则是编译不通过的error(以及一些小问题,不过富贵险中求,生产环境不推荐233毕竟官方默认没优化性能,只优化大小)

方法

那么如何开启?

首先找到sdkconfig(idf用户应该都知道在哪

这边着重讲下arduino找sdkconfig的方法

路径:
C:\Users\你的用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.5\tools\sdk\esp32\sdkconfig
这是旧版arduino路径,尽量自行通过everything之类的文件搜索软件搜索sdkconfig文件

然后找到类似以下的

CONFIG_COMPILER_OPTIMIZATION_SIZE=y
# CONFIG_COMPILER_OPTIMIZATION_PERF is not set 
# CONFIG_COMPILER_OPTIMIZATION_NONE is not set

说明:

CONFIG_COMPILER_OPTIMIZATION_SIZE

arduino平台一般默认选项为y,作用为优化大小,
若想开启,请去掉注释该项的注释符# 并修改配置为y,将CONFIG_COMPILER_OPTIMIZATION_NONE注释

CONFIG_COMPILER_OPTIMIZATION_PERF

arduino平台一般默认选项为空,作用为优化性能,
若想开启,请去掉注释该项的注释符# 并修改配置为y,将CONFIG_COMPILER_OPTIMIZATION_NONE注释

CONFIG_COMPILER_OPTIMIZATION_NONE

arduino平台一般默认选项为空,作用为不优化,
若想开启,请去掉该项的注释符# 并修改配置为y,将另外两项删去/添加注释

选项名作用应用方法默认
CONFIG_COMPILER_OPTIMIZATION_SIZE优化大小去掉该项的注释符# 并修改配置为y,将CONFIG_COMPILER_OPTIMIZATION_NONE注释
CONFIG_COMPILER_OPTIMIZATION_PERF优化性能去掉该项的注释符# 并修改配置为y,将CONFIG_COMPILER_OPTIMIZATION_NONE注释
CONFIG_COMPILER_OPTIMIZATION_NONE不优化去掉该项的注释符# 并修改配置为y,将另外两项删去/添加注释

CONFIG_COMPILER_OPTIMIZATION_NONE项与另外两个互斥,即该项为y其它两项不应该至少有一项为y,应注释另外两项;另外两项任意一项(或两项)为y时,该项不能为y,需删除/注释该项

首发于mineoled&窝

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐