Cборка компилятора для esp8266 в linux

Wifi модуль, который последнее время будоражит массы отличается возможностью создания собственной прошивки.
Для этого вам нужно скачать, собрать и установить компилятор, утилиту esptool и esptool.py. Не пугайтесь просто их очень не удачно обозвали. Первая служит для создания прошивки, вторая же — для загрузки прошивки в устройство.

Установите зависимости необходимые для сборки. В Ubuntu так:

sudo apt-get install git autoconf build-essential gperf bison flex texinfo libtool libncurses5-dev wget gawk libc6-dev python-serial libexpat-dev

Теперь пойдем по пути предложенном разработчиками. Создадим каталог в /opt.

mkdir /opt/Espressif
chown username /opt/Espressif/ 

Замените username на имя вашего пользователя, для того, чтобы дать права.
Теперь скачаем исходные коды crosstool-NG, соберем и добавим путь в PATH.

cd /opt/Espressif
git clone -b lx106 git://github.com/jcmvbkbc/crosstool-NG.git 
cd crosstool-NG
./bootstrap && ./configure --prefix=`pwd` && make && make install
./ct-ng xtensa-lx106-elf
./ct-ng build
PATH=$PWD/builds/xtensa-lx106-elf/bin:$PATH

Теперь скачаем SDK

cd /opt/Espressif
mkdir ESP8266_SDK
wget -O esp_iot_sdk_v0.9.3_14_11_21.zip https://github.com/esp8266/esp8266-wiki/raw/master/sdk/esp_iot_sdk_v0.9.3_14_11_21.zip
wget -O esp_iot_sdk_v0.9.3_14_11_21_patch1.zip https://github.com/esp8266/esp8266-wiki/raw/master/sdk/esp_iot_sdk_v0.9.3_14_11_21_patch1.zip
unzip esp_iot_sdk_v0.9.3_14_11_21.zip
unzip esp_iot_sdk_v0.9.3_14_11_21_patch1.zip
mv esp_iot_sdk_v0.9.3/ ESP8266_SDK
mv License ESP8266_SDK/

Поменяем в Makefile путь к компилятору.

cd /opt/Espressif/ESP8266_SDK
sed -i -e 's/xt-ar/xtensa-lx106-elf-ar/' -e 's/xt-xcc/xtensa-lx106-elf-gcc/' -e 's/xt-objcopy/xtensa-lx106-elf-objcopy/' Makefile

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

cd /opt/Espressif/ESP8266_SDK
wget -O lib/libc.a https://github.com/esp8266/esp8266-wiki/raw/master/libs/libc.a
wget -O lib/libhal.a https://github.com/esp8266/esp8266-wiki/raw/master/libs/libhal.a
wget -O include.tgz https://github.com/esp8266/esp8266-wiki/raw/master/include.tgz
tar -xvzf include.tgz

Пришло время установить ESP image tool. Это которая esptool.

cd /opt/Espressif
wget -O esptool_0.0.2-1_i386.deb https://github.com/esp8266/esp8266-wiki/raw/master/deb/esptool_0.0.2-1_i386.deb
dpkg -i esptool_0.0.2-1_i386.deb

Для не убунты нужно скачать исходники, собрать и сделать ссылку в /usr/bin

cd /opt/Espressif
git clone https://github.com/tommie/esptool-ck
mv esptool-ck/ esptool
cd esptool
make
sudo ln -s $PWD/esptool /usr/bin/

Осталось установить утилиту для прошивки ESP upload tool — esptool.py.

cd /opt/Espressif
git clone https://github.com/themadinventor/esptool esptool-py
ln -s $PWD/esptool-py/esptool.py crosstool-NG/builds/xtensa-lx106-elf/bin/

Скачиваем и собираем базовую прошивку.

cd /opt/Espressif/ESP8266_SDK/examples/
wget -O at_v0.19_14_10_30.zip https://bbs.espressif.com/download/file.php?id=13
unzip at_v0.19_14_10_30.zip && rm at_v0.19_14_10_30.zip
cd at_v0.19_on_SDKv0.9.2/
rm Makefile && cp ../example.Makefile . && mv example.Makefile Makefile

В Makefile корректируем строку LIBS.

LIBS = c gcc hal pp phy net80211 lwip wpa upgrade main

Можно компилировать командой make

$ make
CC driver/uart.c
CC user/user_main.c
CC user/at_wifiCmd.c
CC user/at_cmd.c
CC user/at_port.c
CC user/at_ipCmd.c
CC user/at_baseCmd.c
AR build/app_app.a
LD build/app.out
FW firmware/0x00000.bin
FW firmware/0x40000.bin

Прошивать так:

esptool.py --port /dev/ttyUSB0 write_flash 0x00000 firmware/0x00000.bin 0x40000 firmware/0x40000.bin

Вот так вот получается.
При перепрошивке не забываем ножку GPIO0 соединять с GND.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий