Chapter 4. Software framework
4.9.34 With ESP32, are there any return instructions if I skip to a function using the
jump instruction in ULP?
Please see here for ULP CPU instructions list and corresponding specications. Normally, a general
register is used for return instructions to store backup PC addresses for later jumping backs. Since there
are only four general registers in ULP for now, please make proper use of them.
4.9.35 How to adjust the warning level for project build?
When building the project, it is found that some warnings being treated as errors, causing build failure,
as follows:
error: format '%d' expects argument of type 'int *', but argument 3 has␣
,→type 'uint32_t *' {aka 'long unsigned int *'} [-Werror=format=]
For the error above, you can modify compilation ags at a component level (in component CMake-
Lists.txt) or at a project level (in project CMakeLists.txt). These two ways have roughly the same eect.
• To modify compilation ags for a specic component, use the standard CMake function tar-
get_compile_options. Please refer to Controlling Component Compilation. For an exam-
ple of target_compile_options at the component level, please see CMakeLists.txt#L3.
• To modify compilation ags for the whole project, either use standard CMake function
add_compile_options or IDF-specic function idf_build_set_property to set
COMPILE_OPTIONS property. Please refer to overriding-default-build-specications.
4.9.36 The rmware compiled based on the ESP-IDF SDK varies as it contains the infor-
mation about IDF_PATH and compilation time. How to remove that information?
• For SDK v5.0 and the above versions, you can enable the CONFIG_APP_REPRODUCIBLE_BUILD cong-
uration option. In doing so, the application built upon ESP-IDF does not depend on the build environment and
both the .elf le and .bin le of the application remain unchanged even if the following variables change:
– Directory where the project is located
– Directory where ESP-IDF is located (IDF_PATH)
– Build time
Please refer to the Reproducible Builds description.
• For SDK versions below v5.0, you can disable CONFIG_APP_COMPILE_TIME_DATE=n to remove the
built timestamp information and enable COMPILER_HIDE_PATHS_MACROS=y to hide IDF_PATH.
4.9.37 When I downloaded the ocial application hello_world using ESP32-S3-
DevKitM-1, the following error occurred. What is the reason for that?
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x40043ac8
Invalid chip id. expected 9 read 4. bootloader for wrong chip?
ets_main.c 329
Espressif Systems 123
Submit Document Feedback
Release master