Esp idf установка windows

ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ

Блог технической поддержки моих разработок

Урок 2. Установка среды программирования ESP-IDF совместно с Visual Studio Code.

Установим программное обеспечение, необходимое для разработки приложений ESP32.

Официальной программной средой для разработки приложений ESP32 является платформа ESP-IDF (Espressif’s IoT Development Framework). Она представляет собой самодастаточный набор средств для создания программного обеспечения с использованием языков программирования C и C++. ESP-IDF ориентирована на разработку, как общих приложений, так и IoT проектов.

ESP-IDF поддерживает огромное количество программных компонентов, таких как RTOS, драйверы периферийных устройств, сетевой стек, различные протоколы и прочее.

Схематично компоненты ESP-IDF выглядят так.

Установка ESP-IDF.

Платформа ESP-IDF использует кросс-компиляторы, OpenOCD, CMake и инструмент сборки Ninja. Также требуется Python и Git.

Можно инсталлировать все это отдельно, но для простоты установки компания Espressif Systems разработала инсталлятор, который делает это все в автоматическом режиме. Что немаловажно, кроме собственно установки, инсталлятор задает переменные окружения Windows. Т.е. после завершения установки можно сразу пользоваться средой.

Загружаем файл инсталлятора по этой ссылке.

Разрешаем установку всего: Python, Git, ESP-IDF.

Выбираем последнюю версию, задаем рабочую папку.

Процесс длится довольно долго.

На рабочем столе появился ярлык.

Уже можно работать. Проверим основные функции.

Запускаем иконку. Открывается интерпретатор командной строки, подготавливается работа с ESP-IDF.

Попробуем компилировать проект примера, например, blink.

Перейдем в папку с проектом blink.

cd examples\get-started\blink

Компилируем проект командой idf.py build.

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

В результате проект компилировался успешно, о чем сообщает надпись Project build complete.

Попробуем загрузить программу в FLASH микроконтроллера.

idf.py –p COM8 flash

COM8 – это номер виртуального COM-порта. Он появляется после установки драйвера конвертера USB-UART. Обычно в отладочных платах ESP32 используется преобразователь интерфейсов CP2102. Предварительно надо установить для него драйвер и посмотреть номер виртуального порта.

Панель управления -> Система -> Диспетчер устройств -> Порты (COM и LPT)

У меня 8. У вас может быть другой.

И, конечно, надо подключить к компьютеру плату.

Но светодиод не мигает.

Надо исправить одну строчку в исходном тексте программы.

Открываем любым текстовым редактором D:\esp\esp-idf\get-started\blink\main\blink.c.

В строке определяющей номер вывода светодиода ставим 2.

#define BLINK_GPIO CONFIG_BLINK_GPIO

#define BLINK_GPIO 2

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

Заново компилируем и загружаем в FLASH.

Теперь компиляция длится 3 секунды и светодиод замигал.

Проверим еще монитор. Команда

idf.py –p COM8 monitor

Плата посылает на компьютер сообщения ”Turning off the Led” и ”Turning on the Led”

Все прекрасно работает. Но пользоваться командной строкой очень неудобно.

Добавим к нашей среде редактор.

Установка и настройка редактора Visual Studio Code (VS Code).

Visual Studio Code – это редактор исходного кода, разработанный Microsoft. Используется для кроссплатформенной разработки приложений.

Читайте также:  Windows admin center hyper v administrators

Существует специальное расширение VS Code для ESP-IDF. По моему опыту и мнению многих других программистов оно не работает нормально. К тому же, можно вполне обойтись без него.

Устанавливаем Visual Studio Code по ссылке.

Загружаем стабильную версию.

Было сообщение, что PATH доступно после перезагрузки. Поэтому лучше перезагрузить компьютер.

Запускаем VS Code.

Копируем проект blink.

Я создал папку blink1 в моем рабочем каталоге.

Копировал в нее содержимое каталога blink без папки build.

Открываем папку blink1 в VS Code.

File -> Open Folder

Основной файл blink.c.

Номер вывода светодиода уже изменен.

Откроем терминал и попытаемся компилировать проект.

Terminal -> New Terminal

Командой idf.py build.

Терминал не конфигурирован для ESP-IDF.

Создаем пользовательскую конфигурацию.

File -> Preference -> Settings ->User

Features -> Terminal -> Edit in settings.ison

Добавляем следующий блок.

«terminal.integrated.shell.windows» : «cmd.exe»,
«terminal.integrated.shellArgs.windows» : [
«/k»,
«D:/esp/esp-idf/export.bat»
]

Если впереди было что-то еще, то добавляем запятую. У меня файл settings.ison выглядит так.

File -> Save

idf.py build

В первый раз долго, потому что мы удалили папку build.

Теперь компиляция проходит без ошибок.

Загружаем программу в FLASH микроконтроллера командой

idf.py –p COM8 flash

Проверяем работу монитора.

idf.py –p COM8 monitor

Монитор тоже работает.

Набирать директивы в командной строке не очень удобно. Проблему можно решить установкой расширения VsCode Action Buttons.

Нажимаем кнопку Extensions в левом вертикальном меню.

В поле Search Extensions начинаем набирать название расширения, пока оно не появится в списке.

Дальше Extension settings и Edit in settings.json.

Добавляем блок установки кнопок с названиями Build, FLASH, Monitor.

Окончательно setting.json у меня выглядит так.

Слева внизу появилось новое меню.

Теперь нет необходимости набирать команды. Можно нажимать кнопки.

Еще одно расширение создает дополнительное меню.

Называется Shortcut menu bar.

После установки справа вверху появляется меню, конфигурацию которого можно изменять.

В зависимости от формата дисплея компьютера иногда панель терминала удобнее разместить не внизу, а справа.

Делается это нажатием правой кнопки мыши по закладке Terminal.

Дальше Move Panel Right.

Все. Среда программирования установлена и готова к использованию

В следующем уроке будем разбираться в проекте ESP-IDF.

Делюсь опытом Настройка Windows и Eclipse для ESP32

Andrey L

Member

Для работы с ESP32 вначале мы установим «тулчан» от производителя, научимся компилировать и прошивать при помощи терминала. Потом настроем Eclipse IDE и все операции сделаем там.

Скачиваем и распаковываем «тулчан»
На данный момент последний «тулчан» готов к скачиванию по этому https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip адресу.

Распакуем содержимое архива прямо на диск С:, чтобы всё начиналось с адреса «C:\msys32».

Теперь заходим в эту папку и запускаем там «mingw32.exe» (C:\msys32\mingw32.exe). Откроется окно терминала «тулчана».

В терминале вводим команду «mkdir -p

/esp» (создаётся новая папка «esp»). После зайдём в эту папку, введя в терминале команду «cd esp/».

Скачаем ESP-IDF
Мы уже находимся в терминале в папке «

/esp», теперь загрузим туда «ESP-IDF» командой в терминале «git clone —recursive https://github.com/espressif/esp-idf.git».

Читайте также:  Linux show disks info

Настраиваем переменную IDF_PATH
В папке «C:/msys32/etc/profile.d/» создаём новый файл «export_idf_path.sh». В этом файле сохраняем строчку «export IDF_PATH=»C:/msys32/home/user-name/esp/esp-idf»». (Не забудьте поменять там user-name на имя вашего пользователя). После чего перезапустите терминал.

В перезапущенном терминале проверяете значение заданной переменной командой «printenv IDF_PATH», должен отобразиться путь, который мы только что указали.

Теперь скачаем нужные пакеты Python
В терминале вводим «python -m pip install —user -r $IDF_PATH/requirements.txt». Проверить установку можно командой «python —version».

Первый проект или Hello World
Используем уже готовый «привет мир» из примеров, которые дают вместе с «ESP-IDF».

В терминале сначала вводим первую команду «cd

/esp» (переходим в нужный каталог).

Там мы копируем нужный проект командой «cp -r $IDF_PATH/examples/get-started/hello_world .».

После чего мы заходим внутрь нового католога «cd hello_world/». (Или же «cd

Теперь откроем «Device Manager», для этого нажмём комбинацию клавиш Windows+R, и в командную строку вводим «devmgmt.msc» и нажимаем на кнопку «OK».

После этого откроется окно «Device Manager», там мы ищем рубрику «Ports (COM & LPT)», открываем её. Там мы смотрим через какой COM-порт было подключено устройство. У меня это COM11, у вас может быть что-то другое.

Настройка
Когда мы определили номер COM-порта, можно внести его в настройки.

Напоминаю, мы находимся в папке «

/esp/hello_world». И в терминале вводим команду «make menuconfig».

Вскоре в терминале откроется менюшка, там мы переходим по «Serial flasher config» → «Default serial port», в той строчке вводим COM-порт, через который подсоединилась ESP32. У меня это «COM11».

После чего выбираем «Exit» два раза, после чего выбираем «Yes», чтобы сохранить изменения.

Для сохранения данных понадобится некое время.

Компиляция и прошивка
Это делается командой в терминале «make flash». (Не забудьте перегрузить ESP32 в режиме прошивки.)

Мониторинг
Так же есть команда в терминале, чтобы посмотреть, что выводит модуль через COM-порт.

Эта команда — «make monitor».

Чтобы выйти из этого режима нажмите клавиши Ctrl+].

Мониторинг при помощи PUTTY
Запускаем PUTTY. В строке «Connection type:» выбираем «Serial». В поле «Serial line» вводим «COM11» (у вас скорее всего будет дрогой COM-порт), а в поле «Speed» вводим «115200», после чего жмём на кнопку «Open».

Возможные ошибки при прошивке
«A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header» — вы забыли перезагрузить ESP32 в режим прошивке.

«serial.serialutil.SerialException: could not open port ‘COM11’: WindowsError(2, ‘Система не может найти указанный файл.’)» — по данному COM-порту не удалось найти ESP32. (Проверьте в «Device Manager», через который COM-порт подсоединён модуль.)

«serial.serialutil.SerialException: could not open port ‘COM11’: WindowsError(5, ‘Доступ запрещён’)» — с модулем уже установлено соединение другой программой (PUTTY, другой терминал с мониторингом). Проверьте все запущенные программы.

Andrey L

Member

Изначальные установки
Предполагается, что на компьютере с Windows уже установлены

  • Eclipse IDE,
  • ESP-IDF,
  • python нужной версии.
Читайте также:  Линукс bash что это

Так же мы знаем номер COM-порта, через который подключается ESP32. (У меня в примерах это COM11, у вас может быть совсем другой, не забудьте поменять.)

Импорт нового проекта
Запускаем Eclipse IDE, выбираем «File» → «Import. ».
В новом окне переходим по «C/C++» → «Existing Code as Makefile Project» и кликаем на кнопку «Next >».
В новом окне в поле «Existing Code Location» вводим путь до папки с новым проектом. (Используем кнопку «Browse. », чтобы выбрать нужную папку.) В непосредственно в этой папке должен быть файл «Makefile». А в поле «Toolchain for Indexer Settings» выбираем «Cross GCC». После чего кликаем на кнопку «Finish».

Настройки проекта
В окне Eclipse IDE «Project Explorer» кликаем правой клавишей мышки по проекту, во всплывшем контекстном меню выбираем «Properties» или нажимаем комбинацию клавиш ALT+Enter.

В новом окне переходим в «C/C++ Build» → «Environment». Окно должно перезагрузиться. Кликаем на кнопку «Add. », в поле «Name:» вводим «BATCH_BUILD», а в поле «Value:» вводим «1» и нажимаем на кнопку «OK». Вновь кликаем на кнопку «Add. », в поле «Name:» вводим «IDF_PATH», а в поле «Value:» вводим путь до папки «esp-idf» (копируем его из Windows Explorer) и нажимаем на кнопку «OK». Потом выбираем переменную «PATH» и нажимаем кнопку «Edit. », в самый конец значения поля «Value:» дописываем «;C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin;C:\msys32\usr\bin» и нажимаем на кнопку «OK». (Если вы распаковали архив с «esp32» в другое место, то вам придётся подправить пути.)

Теперь переходим в «C/C++ General» → «Preprocessor Include Paths, Macros etc.». Окно должно перезагрузиться. Выбираем закладку «Providers». В списке выбираем «CDT Cross GCC Built-in Compiler Settings» и в поле «Command to get compiler specs» заменяем на «xtensa-esp32-elf-gcc $ -std=c++11 -E -P -v -dD «$«». После в списке выбираем «CDT GCC Build Output Parser» и значение поля «Compiler command pattern» меняем на «xtensa-esp32-elf-(gcc|g\+\+|c\+\+|cc|cpp|clang)».

После переходим в «C/C++ General» → «Indexer». Окно должно перезагрузиться. Активируем поле «Enable project specific settings». Теперь можно будет изменять остальные настройки в этом окне. Убираем галочку у поля «Allow heuristic resolution of includes». (Если это не сделать, могут появляться неожиданные ошибки.)

Напоследок переходим в «C/C++ Build», открываем там закладку «Behavior». И активируем там «Enable parallel build».

И заканчиваем настройку проекта — нажимаем на кнопку «Apply and Close».

Не забудьте, в терминале зайти в папку проекта и там запустить команду «make menuconfig», чтобы указать к какому COM-порту подсоединён модуль.

Прошивка из Eclipse
Вновь в окне Eclipse IDE «Project Explorer» кликаем правой клавишей мышки по проекту, во всплывшем контекстном меню переходим в «Build Targets» → «Create. ».

Откроется новое окно, в поле «Target name:» вводим «flash». Остальные пункты не изменяем, а жмём на кнопку «OK».

Теперь мы можем при помощи «Project» → «Build Target» → «Build» или (Shift+F9) скомпилировать код и прошить ESP32.

Оцените статью