Page 1 of 1

[已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Mon Jun 07, 2021 2:47 pm
by nash.zhao
我的IDF版本 4.2.1
UBUNTU 20.04

Re: 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Tue Jun 08, 2021 8:03 am
by ESP_Gargamel
你是要做全局的优化,还是对特定函数优化?

Re: 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Tue Jun 08, 2021 8:05 am
by nash.zhao
全局优化

Re: 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Tue Jun 08, 2021 8:31 am
by ESP_Gargamel
你在你工程目录下的 CMakeLists.txt 最后加一下:

Code: Select all

idf_build_set_property(COMPILE_OPTIONS "-O3" APPEND)

Re: 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Thu Jun 10, 2021 1:52 pm
by nash.zhao
感谢

Re: [已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Sun Jun 13, 2021 3:37 pm
by nash.zhao
请问我在项目目录的CMakeLists加入idf_build_set_property(COMPILE_OPTIONS "-O3" APPEND)后报错:

(idf_build_set_property):

Unknown CMake command "idf_build_set_property".

Re: [已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Tue Jun 15, 2021 1:19 am
by ESP_Gargamel
这个要看你加在哪的,如前所说,要放在 CMakeLists.txt 最后
因为 idf_build_set_property 是 IDF 提供的一个函数,不是标准 cmake 提供的,因此,必须在 include($ENV{IDF_PATH}/tools/cmake/project.cmake) 之后才能使用。

Re: [已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Fri Jun 18, 2021 8:45 am
by kaisey
我将这个优化放在IDF4.4master上,编译ESP32S2,出现报错,


C:/Users/Administrator/Desktop/esp-idf/components/esp32s2/memprot.c: In function 'esp_memprot_get_perm_exec':
C:/Users/Administrator/Desktop/esp-idf/components/esp32s2/memprot.c:808:9: error: '_hx' may be used uninitialized in this function [-Werror=maybe-uninitialized]
*hx = _hx;
~~~~^~~~~
C:/Users/Administrator/Desktop/esp-idf/components/esp32s2/memprot.c:807:9: error: '_lx' may be used uninitialized in this function [-Werror=maybe-uninitialized]
*lx = _lx;
~~~~^~~~~
cc1.exe: some warnings being treated as errors
[515/1518] Building C object esp-idf/esp_common/CMakeFiles/__idf_esp_common.dir/src/esp_err_to_name.c.obj
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

Re: [已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。

Posted: Fri Jun 18, 2021 9:28 am
by ESP_Gargamel
优化等级导致的,临时解决:
在 components/esp32s2/CMakeLists.txt 最后一个 endif 前加入 target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-maybe-uninitialized)