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
Синтаксис
Циклы
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 | Ассоциированный аргумент — указатель на переменную целого типа, в которую помещено кол-во символов, записанных на данный момент |
%% | Выводит символ % |