ESP32 Урок 2. Настраиваем toolchain и пишем свою прошивку в Espressif IDE



В прошлом занятии мы немного познакомились с линейкой микроконтроллеров ESP32. Теперь пришло время попробовать себя в написании ПО для него.

Писать прошивки так же, как и в случае с ESP8266, можно несколькими способами. Можно это делать в IDE Arduino, установив необходимый пакет библиотек. Также можно скачать тулчейн с официального сайта или ещё с какого-то ресурса и там будут 2 способа. Либо собирать ПО с командной строки, либо делать это в IDE. В качестве IDE может выступать также несколько вариантов — Code Vision, Eclipse и т.д. Мы будем пользоваться средой Eclipse IDE, так как мы мало того к ней уже как-то привыкли, а ещё меня подтолкнуло к данному шагу то, что она некоторое время шла в комплекте с тулчейном. Правда, сейчас почему-то не поставляется и нужно устанавливать отдельно и подключать плагин. Постараемся с этим разобраться. А не поставляется видимо потому, что теперь с тулчейном идёт своя среда — Espressif IDE. Скорее всего это тот же Eclipse только как-то модифицированный. Обязательно его испробуем.

Чтобы получить тулчейн, идём на официальный сайт Espressif и открываем страницу для закачки, вернее страницу с документацией о том, как собирать прошивки и отлаживать их для ESP32 вот по этой ссылке. Заодно здесь можно посмотреть, как именно работать с ESP32.

Ниже жмём вот на эту ссылку

 

 

 

Попадаем на другую страницу, где рассказано, как устанавливать тулчейн.

Переходим там по этой ссылке

 

 

Скачиваем вот этот пакет

 

 

Можно, конечно, воспользоваться и онлайн-инсталлятором, но у меня в случае офлайн получалось всегда лучше.

Запускаем инсталлятор и начинаем установку

 

 

 

 

 

 

Оставляем все галки установленными и идём далее

 

 

 

Начнётся установка

 

 

Установка завершена.

Оставляем галки и жмём Finish

 

 

Запустятся два окна с командными строками

 

 

Дожидаемся окончания процессов сборки в окнах и закрываем их.

Попробуем запустить Espressif IDE, найдя на рабочем столе вот этот ярлык

 

 

Запускаем

 

 

Выбираем каталог для рабочей среды

 

 

 

Откроем дерево проектов

 

 

Прежде чем настроить под себя редактор, давайте попробуем добавить какой-нибудь проект. Скопируем каталог с примером проекта hello_world, находящемуся по пути C:\Espressif\frameworks\esp-idf-v4.4\examples\get-started, в каталог, который мы выбрали для рабочей среды.

 

 

Подключим данный проект в нашу среду

 

 

 

Попробуем данный проект собрать для начала

 

 

Начнётся первоначальная сборка компонентов

 

 

Затем непосредственно сборка проекта

 

 

Сборка завершена

 

 

Это была предварительная сборка. Можно, конечно, данную сборку уже прошить, но тогда конфигурация проекта останется в состоянии «по умолчанию». А если мы хотим сконфигурировать проект по-своему, а это так и делается, мы хорошо помним это из сборки пакетов из командной строки под Linux, то после сборки запускаем конфигурацию с помощью двойного клика вот по этому файлу дерева проектов

 

 

Запустится вот такой вот удобный конфигуратор в виде дерева

 

 

Многие помнят, как конфигурируются проекты с командной строки, поэтому для них это будет очень удобный конфигуратор.

В данном проекте мы только изменим размер флеш-памяти

 

 

Закроем вкладку с конфигуратором по крестику, согласившись с его сохранением и ещё раз пересоберём проект таким же образом, как мы его собирали первоначально.

Теперь у нас есть файл прошивки.

Но прежде чем его прошить, нужно настроить лаунчер (Launcher).

Перед этим не забываем подключить плату к компьютеру

 

 

Здесь, уже, в принципе всё настроено

 

 

А здесь останется выбрать правильную цель (Launch target) и выбрать в ней правильный порт

 

 

Возможно, придётся заново пересобрать проект, это в принципе не сложно, либо заранее до конфигурации настроить лаунчер, чтобы не пересобирать несколько раз.

Пока проект собирается, посмотрим содержимое файла hello_world_main.c, вернее содержимое функции точи входа

 

 

Здесь мы видим, что идёт вывод различного рода информации в терминальную программу посредством использования функции printf, что очень удобно. Удобно ещё и то, что её использование никак не надо настраивать, всё это уже есть. затем через 10 циклов, длящихся по 1 секунде даётся команда на перезагрузку контроллера.

Если в исходном коде после настройки лаунчера мы увидим подчёркнутые строки, то это лечится либо перезапуском среды, либо закрытием и открытием заново проекта.

Попробуем прошить контроллер. Делается это нажатием вот на эту кнопку

 

 

Если всё нормально, то прошивка должна залиться в контроллер.

 

 

Запустим и настроим терминальную программу (хотя можно и в IDE настроить встроенный терминал, но мы пока пойдём проверенным путём

 

 

Соединимся с портом и увидим следующую картину

 

 

Отлично! Всё работает как надо!

Итак, на данном уроке нам удалось установить среду программирования для написания и запуска ПО для контроллеров линейки ESP32, а также удалось испытать данную среду на деле, то есть сконфигурировать и собрать проект, а затем залить файл прошивки в контроллер и запустить его.

Всем спасибо за внимание!

 

 

Данная статья в Дзен.

 

Предыдущий урок Программирование МК ESP32 Следующий урок

 

 

Недорогие отладочные платы ESP32 можно купить здесь: Недорогие отладочные платы ESP32

 

 

Смотреть ВИДЕОУРОК в YouTube(нажмите на картинку)

ESP32 Настраиваем toolchain и пишем свою прошивку в IDE Eclipse

 

Смотреть ВИДЕОУРОК в Дзен(нажмите на картинку)

ESP32 Настраиваем toolchain и пишем свою прошивку в IDE Eclipse

7 комментариев на “ESP32 Урок 2. Настраиваем toolchain и пишем свою прошивку в Espressif IDE
  1. Виктор:

    Я не совсем понял чем вы поключали плату. что это за переходник?

  2. Друг:

    Всем привет, хотел бы дополнить абзац про прошивку для тех, кто впервые слышит про ESP32. Контроллеру нужно сообщить, что мы собираемся его шить, путем нажатия и удержания кнопки «boot». В противном случае, в IDE будет висеть строка: «Connecting…….._____…..»

    • Игорь:

      Контроллер переводится в режим загрузки, а так же перезагружается аппаратно микросхемой конвертера USB-UART выводами RTS и DTR. Делается это без участия пользователя. Если у вас так неработает, проверьте непропай на плате. Схемы на эту плату есть, проверьте тестером, а лучше осциллографом.

    • megger380:

      Такая же фигня…

  3. Сергей:

    Здравствуйте, все сделал как написано, но что то проект нехочет собираться, пишет: No Toolchain found for Target Local, я так надо еще установить eclipse? или что не так?

    • chepik:

      Привет. Такое бывает? когда в среде из выпадающего меню (Lanch target, короче там, где выбираешь какой контроллер прошивать) указан не контроллер esp32, а добавкой, к примеру esp32с2. Выбирай esp32.

  4. Lex:

    2023 год. Инструкция не работает — по всем include (даже если прописывать полный путь к файлам) вываливает unresolved inclusion и не билдит, соответственно. Проблема теоретически может быть решена через Project —> Properties —> C/C++ General —> Preprocessor Include Paths, Macros etc… Только вот там нет «Preprocessor Include Paths, Macros etc.». Судя по форумам, проблема в последних версиях CDT.
    Впрочем, не работает вообще ни одна инструкция по прямой установке/интеграции этого idf не важно под какую ОС и IDE.
    Пробовал Вин10, Вин11 и Убунту 22.04 + эту официальную IDE, Eclipse и VS Code. Максимум чего получилось добиться — это в связке Ubuntu+VSCode+ESP заставить видеть файлы, да и то получилось далеко не всё — например portTICK_PERIOD_MS так и остался непонятым IDE'шкой.
    Чтобы добиться хотя бы таких результатов, пришлось нормально постигнуть линух на грани начинающего админа (после работы с этим фуфлом я влегкую поднял несколько разных серверов на работе, хотя до этого Никсы почти не знал).
    Замечательный IDF — уровень вхождения (в 2023 году) на уровне как минимум С/С++ джуна и очень (очень!!!) опытного эникея, хотя, судя по обсуждениям, раньше было чуть сложнее чем в Ардуино.
    Не пользуйтесь инструкциями по установке IDF — это нанесет вам такой сильный удар по самооценке, что вы уйдете в запой, будете плакать ночами в подушку и звать маму.
    Но не спешите отчаиваться! Можно просто поставить VS Code и расширение PlatformIO, а уж в последнем просто выбрать esp32. Кстати, оно так же загрузит ESP-IDF, но работать с ним будет корректно и без танцев с бубном)))

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*