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


ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

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

Postby ESP_Gargamel » Tue Jun 08, 2021 8:03 am

你是要做全局的优化,还是对特定函数优化?


ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

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

Postby ESP_Gargamel » Tue Jun 08, 2021 8:31 am

你在你工程目录下的 CMakeLists.txt 最后加一下:

Code: Select all

idf_build_set_property(COMPILE_OPTIONS "-O3" APPEND)


nash.zhao
Posts: 15
Joined: Mon Jun 07, 2021 2:32 pm

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

Postby nash.zhao » Sun Jun 13, 2021 3:37 pm

请问我在项目目录的CMakeLists加入idf_build_set_property(COMPILE_OPTIONS "-O3" APPEND)后报错:

(idf_build_set_property):

Unknown CMake command "idf_build_set_property".

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

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

Postby ESP_Gargamel » Tue Jun 15, 2021 1:19 am

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

kaisey
Posts: 81
Joined: Tue Mar 24, 2020 5:54 am

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

Postby kaisey » Fri Jun 18, 2021 8:45 am

我将这个优化放在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

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

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

Postby ESP_Gargamel » Fri Jun 18, 2021 9:28 am

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

Who is online

Users browsing this forum: Google [Bot] and 112 guests