Refactor the esp_err_to_name() system to decouple esp_common from higher-level components. Instead of a monolithic generated table, each component registers its error codes into a dedicated linker section (.esp_err_msg_table) via idf_define_esp_err_codes() in its CMakeLists.txt. New files: - tools/err_codes_extract.py: extract ESP_ERR_* defines from headers to CSV - tools/err_codes_to_c.py: generate C source placing entries into linker section - tools/err_codes_to_rst.py: generate RST documentation from error codes - tools/cmake/err_codes.cmake: CMake module providing idf_define_esp_err_codes() - components/esp_common/include/esp_err_codes.h: esp_err_msg_t typedef - components/esp_common/src/esp_err_to_name_new.c: new lookup using link-time array - tools/test_apps/build_system/err_codes_check/: CI test app Changes: - Remove all optional component dependencies from esp_common/CMakeLists.txt - Add .esp_err_msg_table section to all 5 linker scripts - Register error codes in 18 components via idf_define_esp_err_codes() - Add new scripts to .gitlab/ci/rules.yml build_check patterns - use new scripts to generate doc and add CI validation - Update esp_err.rst to add description of composable code registration
Documentation Source Folder
This folder contains source files of ESP-IDF documentation available in English and Chinese.
The sources do not render well in GitHub and some information is not visible without building the documentation.
Use the actual documentation, which is generated within about 20 minutes of each commit:
Hosted Documentation
- English: https://docs.espressif.com/projects/esp-idf/en/latest/
- Chinese: https://docs.espressif.com/projects/esp-idf/zh_CN/latest/
After clicking any link to ESP-IDF Programming Guide, go to the top of the sidebar, then make sure you have the correct Espressif chip (target) and ESP-IDF version selected in the dropdown menus. You can also find a link at the bottom right to download the HTML version as a zip for offline reading.
Building Documentation
The documentation is built using the Python package esp-docs, which can be installed by running:
pip install esp-docs
For a summary of available options, run:
build-docs --help
For more information, see the esp-docs documentation at https://github.com/espressif/esp-docs/blob/master/README.md