我的IDF版本 4.2.1
UBUNTU 20.04
[已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。
你是要做全局的优化,还是对特定函数优化?
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。
你在你工程目录下的 CMakeLists.txt 最后加一下:
Code: Select all
idf_build_set_property(COMPILE_OPTIONS "-O3" APPEND)
Re: [已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。
请问我在项目目录的CMakeLists加入idf_build_set_property(COMPILE_OPTIONS "-O3" APPEND)后报错:
(idf_build_set_property):
Unknown CMake command "idf_build_set_property".
(idf_build_set_property):
Unknown CMake command "idf_build_set_property".
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: [已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。
这个要看你加在哪的,如前所说,要放在 CMakeLists.txt 最后。
因为 idf_build_set_property 是 IDF 提供的一个函数,不是标准 cmake 提供的,因此,必须在 include($ENV{IDF_PATH}/tools/cmake/project.cmake) 之后才能使用。
因为 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?请问还有什么时间优化参数可以使用?感谢。
我将这个优化放在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
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
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: [已解决] 关于esp32 idf 4.2.1 代码优化问题,请问能开O3优化吗?我看menuconfig只有Oz O2 O0?请问还有什么时间优化参数可以使用?感谢。
优化等级导致的,临时解决:
在 components/esp32s2/CMakeLists.txt 最后一个 endif 前加入 target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-maybe-uninitialized)
在 components/esp32s2/CMakeLists.txt 最后一个 endif 前加入 target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-maybe-uninitialized)
Who is online
Users browsing this forum: Google [Bot] and 37 guests