Skip to content

Сборка и запуск

Victor Y. Fadeev edited this page May 11, 2017 · 7 revisions

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

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

Установка Crosstool-NG

Создаем папку для тулов:

$ sudo mkdir /opt/Espressif
$ sudo chown $USER:root /opt/Espressif
$ cd /opt/Espressif

Скачиваем Crosstool-NG и выбираем нужную конфигурацию:

$ git clone -b lx106-g++-1.21.0 --depth=1 https://github.com/jcmvbkbc/crosstool-NG.git
$ cd crosstool-NG
$ ./bootstrap && ./configure --prefix=`pwd` && make && make install
$ ./ct-ng xtensa-lx106-elf

Скачиваем патчи и собираем:

$ cd local-patches/gcc/5.1.0
$ wget https://github.com/jcmvbkbc/gcc-xtensa/commit/6b0c9f92fb8e11c6be098febb4f502f6af37cd35.patch
$ wget https://raw.githubusercontent.com/crosstool-ng/crosstool-ng/5a5fcbe148acf35372ecac145816c3515e6b8839/patches/gcc/5.3.0/130-build_gcc-5_with_gcc-6.patch
$ cd ../../..
$ ./ct-ng build

Настраиваем переменную окружения и перезапускаем консоль:

$ echo -e "\nPATH=$PWD/builds/xtensa-lx106-elf/bin:\$PATH" >> ~/.bashrc

Установка esptool.py

Скачиваем esptool.py:

$ cd /opt/Espressif
$ git clone --depth=1 https://github.com/espressif/esptool esptool-py
$ cd esptool-py

Собираем и устанавливаем его:

$ sudo pip install --upgrade pip
$ sudo pip install esptool
$ sudo cp /usr/local/lib/python2.7/dist-packages/esptool.py ../crosstool-NG/builds/xtensa-lx106-elf/bin

Сборка и запуск OS Embox

Скачиваем репозиторий:

$ git clone https://github.com/ilya-nozhkin/embox
$ cd embox

Выбираем конфигурацию и собираем:

$ make confload-xtensa/esp8266
$ make

Создаем прошивку и записываем ее на плату:

$ ./scripts/esp8266/make_image.sh
$ ./scripts/esp8266/flash.sh

Запускаем Embox на контроллере:

$ sudo minicom -D /dev/ttyUSB0

P.S.

Можно использовать make с ключем -j5 для распараллеливания сборки, где 5 - это число ядер процессора +1.

Скрипт - disasm.sh нужен, чтобы целиком дизассемблировать образ Embox.