FreeRTOS

ESP-IDF —самый близкий к железу по уровню абстракции фреймворк для работы с ESP32.

ESP-IDF можно подключить в виде плагина VS Code.

Программный пакет ESP IDF построен на системе FreeRTOS.

CMake необходим для прописываются зависимости сборки в больших проектах при делении проекта на отдельные файлы.

  • .c файлы добавляются через SRCS
  • .h файлы — через INCLUDE_DIRS

CMakeLists.txt

idf_component_register(
    SRCS "main.c"
    INCLUDE_DIRS "."
)

https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/bluetooth/index.html

Быстрый старт

  • Устанавливаем ESP-IDF 5.0 CMD
  • В CMD переходим в папку с проектом и вводим
idf.py set-target esp32
idf.py menuconfig
idf.py build
idf.py -p PORT flash
idf.py -p PORT monitor

Очистить память при нажатой кнопке boot

idf.py -p PORT erase-flash

Создание проекта

Копируем директорию sample_project и переименовываем под себя.

Шаблон содержит правильную структуру и правильные файлы CMake.

 .../esp-idf/examples/get-started/sample_project

Генерируем окружение и получаем sdkconfig.txt для доступа к Menuconfig

Указываем путь к заголовочным файлам - наводим на #include и кликаем Quick Fix далее Select an IntelliSense

Синтаксис

Циклы

for (int i = 10; i >= 0; i--) {
    printf("Restarting in %d seconds...\n", i);
    vTaskDelay(1000 / portTICK_PERIOD_MS);
}

Вывод ы Serial и логгирование

printf("silicon revision v%d.%d, ", major_rev, minor_rev);
Символ типа char
%d Десятичное число целого типа со знаком
%i Десятичное число целого типа со знаком
Научная нотация (е нижнего регистра)
Научная нотация (Е верхнего регистра)
%f Десятичное число с плавающей точкой
%g Использует код %е или %f — тот из них, который короче (при использовании %g используется е нижнего регистра)
%G Использует код %Е или %f — тот из них, который короче (при использовании %G используется Е верхнего регистра)
Восьмеричное целое число без знака
%s Строка символов
%u Десятичное число целого типа без знака
Шестнадцатиричное целое число без знака (буквы нижнего регистра)
Шестнадцатиричное целое число без знака (буквы верхнего регистра)
Выводит на экран значение указателя
%n Ассоциированный аргумент — указатель на переменную целого типа, в которую помещено кол-во символов, записанных на данный момент
%% Выводит символ %