1. Не найден компонент esp_adc_cal:
CMake Error at /home/microsin/esp501/esp-idf/tools/cmake/build.cmake:245 (message):
Failed to resolve component 'esp_adc_cal'.
Call Stack (most recent call first):
/home/microsin/esp501/esp-idf/tools/cmake/build.cmake:281 (__build_resolve_and_add_req)
/home/microsin/esp501/esp-idf/tools/cmake/build.cmake:574 (__build_expand_requirements)
/home/microsin/esp501/esp-idf/tools/cmake/project.cmake:440 (idf_build_process)
CMakeLists.txt:17 (project)
Проблема в том, что в ESP-ISF v5.0.1 компонент esp_adc_cal теперь называется esp_adc. Отредактируйте файл espidf/CMakeLists.txt проекта, заменив в секции REQUIRES запись "esp_adc_cal" на "esp_adc".
2. Не найден тип uart_config_t:
unknown type name 'uart_config_t'
Добавить подключение заголовка:
3. Не найден заголовочный файл driver/gpio.h (или uart.h, или spi_master.h):
driver/gpio.h: No such file or directory
В файл CMakeLists.txt добавить REQUIRES "driver", тем самым разрешается зависимость от компонента driver:
if(ESP_PLATFORM)
include ( ${CMAKE_CURRENT_LIST_DIR}/espidf.cmake )
idf_component_register( INCLUDE_DIRS ${includes}
SRCS ${sources}
REQUIRES "driver")
endif()
4. Не найден заголовочный файл driver/i2c.h:
driver/i2c.h: No such file or directory
Надо в файле espidf/CMakeLists.txt проекта добавить в секцию REQUIRES запись "driver".
5. Проблемы с типами, относящимися к FreeRTOS:
unknown type name 'QueueHandle_t'
Надо добавить подключение заголовков:
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
6. Не найден тип семафора SemaphoreHandle_t:
unknown type name 'SemaphoreHandle_t'
Надо добавить подключение заголовка:
#include "freertos/semphr.h"
7. Ошибка формата макроса вывода в лог:
esp_log.h:265:27: error: format '%d' expects argument of type 'int', but argument 6 has type ...
Эти и другие подобные ошибки в макросах ESP_LOGI, ESP_LOGW и ESP_LOGE решаются с помощью макросов форматирования PRIu8, PRIu16, PRIu32, PRId8 и т. д. Пример:
uint8_t i = 0;
ESP_LOGE(IA611_TAG, "...failed while sending header %d", i);
Надо исправить на:
ESP_LOGE(__FUNCTION__, "...failed while sending header %" PRIu8, i);
8. Для команды monitor скорость теперь надо указывать с опцией -b вместо -B:
$ idf.py monitor -b 576000
9. KeyError: 'idfSelectedId'.
$ IDF_PATH="/home/user/esp/441" . ~/esp/441/export.sh
Detecting the Python interpreter
Checking "python" ...
Checking "python3" ...
Python 3.8.10
"python3" has been detected
Adding ESP-IDF tools to PATH...
Traceback (most recent call last):
File "/home/user/esp/441/tools/idf_tools.py", line 1858, in <module>
main(sys.argv[1:])
File "/home/user/esp/441/tools/idf_tools.py", line 1854, in main
action_func(args)
File "/home/user/esp/441/tools/idf_tools.py", line 1176, in action_export
tools_info = filter_tools_info(tools_info)
File "/home/user/esp/441/tools/idf_tools.py", line 1118, in filter_tools_info
targets = get_user_defined_targets()
File "/home/user/esp/441/tools/idf_tools.py", line 1098, in get_user_defined_targets
if env == idf_env_json['idfSelectedId']:
KeyError: 'idfSelectedId'
Вероятно скрипт tools/idf_tools.py в каталоге ESP-IDF v4.4.x был случайно заменен скриптом tools/idf_tools.py из каталога ESP-IDF v5.0.1.