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

Andrey L

Member
Испробовал на себе инструкции с сайта espressif как настроить Linux и Eclipse для работы с ESP32.

Вначале попробовал всё выполнить под Debian, но он оказался капризным и не хотел настраиваться, как было написано в инструкции. После чего я перешёл на Ubuntu, где почти всё сразу сработывало.

Ubuntu и Eclipse уже установлены на компьютере, в этой статье мы займёмся их настройкой.

Toolchain
Будем следовать инструкциям с сайта espressif.com

Начинаем наши занятия колдовством:

Код:
sudo apt-get update
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing
Загружаем сам файл тулчана. (https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz версия для 64 битов)

После того, как загрузка закончится читаем новое заклинания:

Код:
mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
Обновляем переменные системы
В конце файла ~/.profile (nano ~/.profile) добавляем новые строчки с новыми значениями системы:

Код:
export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"
export IDF_PATH=~/esp/esp-idf
Эти изменения вступят в силу после перезагрузки системы, а для проверки потом можно будет воспользоваться командой "printenv PATH".

ESP-IDF
Очередное заклинание:

Код:
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
Пакеты Python
Устанавливаем дополнительные пакеты Python:

Код:
python -m pip install --user -r $IDF_PATH/requirements.txt
Подсоединяем ESP32 к компьютеру
В терминале надо будет выполнить команду "ls /dev/tty*" два раза. В первый раз до того, как подключите ESP32 к USB-порту, и второй раз, когда ESP32 будет подключена к вашему компьютеру. После чего посмотрите чем отличаются выводы этой команды в обоих случаях. Скорее всего во втором случае будет дополнительная строчка: "/dev/ttyUSB0".

Если она не появится, попробуйте выполнить следующую команду:

Код:
sudo usermod -a -G dialout $USER
Проект "Привет мир"
Копируем проект из собрания примеров:

Код:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
Настройка проекта
Переходим внутрь папки с проектом и запускаем инструмент для настройки:

Код:
cd ~/esp/hello_world
make menuconfig
После чего должно открыться меню. Там вы идёте по следующим пунктам меню: "Serial flasher config" -> "Default serial port", после чего Вы выбираете пункт сохранить, подтверждаете и выходите из меню.

Прошивка
Зажимаем прищепкой кнопку "Boot" и в консоле вводим:

Код:
make flash
Мониторинг
Команда "make monitor" отобразит данные с модуля. Чтобы выйти из этого режима нажмите Ctr+5.

Настройка Eclipse
Вначале воспользуемся магией esp-idf. Через консоль зайдите в папку с проектом, а там запустите "make menuconfig". (Не забудьте сохранить перед выходом.)

Импорт нового проекта
Теперь запускаем eclipse и импортируем новый проект (уже существующий).

В eclipse идём по следущим пунктам меню: "File" -> "Import..."

В новом окне выбираем "С/С++" -> "Existing Code as Makefile Project" и нажимаем на кнопку "Next >".

Пользуемся кнопкой "Browse..." и выбираем папку с проектом. Ниже в списке тулчанов выбираем "Cross GCC". После чего нажимаем на кнопку "Finish".

Настройка проекта
В окне со списком проектов выбираем наш проект, кликаем по нему правой клавишей мышки, выбираем "Properties".

Теперь навигируем по следующим пунктам меню: "C/C++ Build" -> "Environment".

Нажимаем на кнопку "Add...". В новом окне заполняем оба поля данными "BATCH_BUILD" и "1". После чего жмём на кнопку "OK".

Вновь нажимаем на кнопку "Add...". Новая переменная будет "IDF_PATH", а значение папка, где находится "esp-idf", должно будет что-то на подобии "/home/{user name}/esp/esp-idf". (Можете в консоле ОС ввести "printenv IDF_PATH".) И жмём на кнопку "OK".

Проверьте переменную "PATH", там в том числе и должен быть прописан путь до папки "xtensa-esp32-elf/bin".

По пунктам меню переходим в "C/C++ General" -> "Preprocessor Include Paths". Там выбираем закладку "Providers".

В списке выбираем "CDT Cross GCC Built-in Compiler Settings", и меняем команду ("Command to get compiler specs") на <<xtensa-esp32-elf-gcc ${FLAGS} -std=c++11 -E -P -v -dD "${INPUTS}">>.

Потом в списке кликаем по "CDT GCC Build Output Parser" и там меняем команду на "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".

Сборка в Eclipse
Напоминаю, что до этого в папке с проектом должна быть запущена команда "make menuconfig".

В меню Eclipse идём по следующему путю: "Project" -> "Build All" (или нажимаем на кнопки "Ctrl+B").

Примечание:

Если до этого проект был где-то в другом месте собран, то надо его "очистить". ("Project" -> "Clean...")

После этого файлы переподключатся и многие ошибки должны пропасть.

Прошивка в Eclipse
В окне с проектами кликаем правой клавишей мышки по нашему проекту. Там идём по пунктам меню "Build Targets" -> "Create...".

В новом окне в поле "Target name:" вводим "flash". И нажимаем на кнопку "OK".

Теперь можно прошивать. В окне с проектами кликаем правой клавишей мышки по нашему проекту и идём по менюшкам "Build Targets" -> "Build..." (Или жмите на клавиши Shift+F9). В новом окне жмите на кнопку "Build", а так же не забудьте зажать кнопку "Boot" на ESP32.

Ссылки
espressif.com Начало работы с ESP32

espressif.com - настройка Eclipse

альтернативная настройка от Kolban
 

nikolz

Well-known member
прищепка лишняя
надо удерживая boot нажать ресет. после этого boot можно отпустить.
суть данного колдовства в том
что после нажатия ресет ESP по состоянию boot переходит в соответствующий режим.
После этого состояние boot может быть любым.
 

Andrey L

Member
Создание нового проекта
Описание сделано по видео Колбана.

1. В терминале заходим в папку, где будет создан новый проект.
2. Клонируем из git "пустой" проект:
Код:
git clone https://github.com/espressif/esp-idf-template.git project_name
(будет создана папка "project_name" и туда будут скопированны файлы)
3. Переходим внутрь новой папки
Код:
cd project_name
4. И запускаем магию от espressif
Код:
make menuconfig
После чего запускаем Eclipse и настраиваем новый проект.
 

gr1047

New member
Всё что написано - заработало с первого раза.
А вот с эклипсом никак совладать не выходит. Как у него настроить пути для инклюдов? И вообще возможно ли? У меня Eclipse Neon.
 

Andrey L

Member
Всё что написано - заработало с первого раза.
А вот с эклипсом никак совладать не выходит. Как у него настроить пути для инклюдов? И вообще возможно ли? У меня Eclipse Neon.
Посмотрите моё сообщение, я там все пути настраивал. Если не поможет, попробуйте пройтись по ссылкам, откуда я брал материал.

Сейчас я всё повторить не могу, поскольку у меня больше нет того компьютера.
 
Сверху Снизу