Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NodeESP_Firmware builden und flashen
- ------------------------------------
- Meine Umgebung: Ubuntu 18.04
- Zuerst müssen drei Repos geklont werden:
- -espressif-esp-idf (compiler und build tools)
- -espressif-esptool (tool zum flashen)
- -NodeESP_Firmware
- Danach ein Folder irgendwo erstellen, wird unten jeweils referenziert:
- ROOT=<project-root-folder>
- ==== espressif-esp-idf =====
- # siehe https://docs.espressif.com/projects/esp-idf/en/stable/get-started
- 1) einen sym link erstellen um später mit python3 arbeiten zu können
- cd $ROOT
- mkdir python3-fix
- ln -s /usr/bin/python3 ./python3-fix/python
- 2) clonen des repo's
- cd $ROOT
- mkdir espressif-esp-idf
- cd espressif-esp-idf
- git clone --recursive https://github.com/espressif/esp-idf.git
- 3) restliche tools im repo installieren
- cd $ROOT
- export PATH=$PWD/python3-fix:$PATH
- cd espressif-esp-idf/esp-idf
- ./install.sh
- 4) benötigte python packages installieren
- cd $ROOT
- export PATH=$PWD/python3-fix:$PATH
- cd espressif-esp-idf
- python -m pip install --user -r $PWD/esp-idf/requirements.txt
- ==== espressif-esptool ==== (zum flashen)
- 1) clonen des repo's
- cd $ROOT
- git clone https://github.com/espressif/esptool.git
- ==== NodeESP_Firmware ==== (source)
- 1) clonen des repo's
- cd $ROOT
- git clone https://github.com/FKainka/NodeESP_Firmware.git
- # folgende änderungen müssen vorgenommen werden, damit das repo compiliert:
- NodeESP_Firmware/NodeESP/lib/Apps/Apps.hpp: (nur für linux)
- #include "WiFiSetup.hpp" -> #include "WifiSetup.hpp"
- #include "APP_iot18.hpp" -> #include "App_iot18.hpp"
- #include "APP_sh19.hpp" -> #include "App_sh19.hpp"
- #include "APP_examples.hpp" -> #include "App_examples.hpp"
- #
- NodeESP_Firmware/copy_bin.py:
- print "Post Upload Spiffs" -> print("Post Upload Spiffs")
- print "Post Upload Firmware" -> print("Post Upload Firmware")
- #
- platformio.ini:
- lib_extra_dirs = NodeESP/lib -> in [env:esp32dev] sektion gezügelt
- targets = upload, monitor -> auskommentiert, da manueller upload
- 2) platformio installation vorbereiten
- sudo apt install virtualenv
- cd $ROOT
- virtualenv -p python3 platformio/penv
- 3) platformio installieren
- source platformio/penv/bin/activate
- pip install -U platformio
- # change file $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_wps.h
- # line 81ff:
- {.manufacturer = "ESPRESSIF"},\
- {.model_number = "ESP32"},\
- {.model_name = "ESPRESSIF IOT"},\
- {.device_name = "ESP STATION"},\ \
- 4) builden der firmware
- cd $ROOT
- source platformio/penv/bin/activate
- cd NodeESP_Firmware
- platformio run
- 5) flashen der firmware
- cd $ROOT
- # da hier nur die application geflasht wird muss als start adresse entweder 0x10000 oder 0x150000 angegeben werden.
- #
- # meine partition table sieht wie folgt aus:
- # -----------------------------------------
- # Espressif ESP32 Partition Table
- # Name, Type, SubType, Offset, Size, Flags
- # Name, Type, SubType, Offset, Size, Flags
- # nvs, data, nvs, 0x9000, 20K,
- # otadata, data, ota, 0xe000, 8K,
- # app0, app, ota_0, 0x10000, 1280K, <- entweder app0 0x10000
- # app1, app, ota_1, 0x150000, 1280K, <- oder app1 0x150000 nach dem write_flash befehl angeben (siehe unten)
- # eeprom, data, 153, 0x290000, 4K,
- # spiffs, data, spiffs, 0x291000, 1468K,
- # -----------------------------------------
- #
- ./espressif-esptool/esptool/esptool.py --chip esp32 -b 460800 write_flash 0x10000 ./NodeESP_Firmware/.pio/build/esp32dev/firmware.bin
- ==== dump-partition-table ==== (optional)
- cd $ROOT
- pushd espressif-esp-idf
- export IDF_PATH=$PWD/esp-idf
- popd
- ./espressif-esptool/esptool/esptool.py -b 460800 read_flash 0x8000 0xc00 ptable.img
- $IDF_PATH/components/partition_table/gen_esp32part.py ptable.img | tee ptable.txt
- ==== espressif-esp32-arduino-lib-builder ==== (optional, nur nötig, wenn z.b FreeRTOS neu gebuildet werden muss)
- 1) clonen des repo's
- cd $ROOT
- git clone https://github.com/espressif/esp32-arduino-lib-builder.git
- 2) builden der library
- sudo apt-get install git wget curl libssl-dev libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache
- sudo apt-get install python3-pip
- python3 -m pip install --upgrade pip
- cd $ROOT
- export PATH=$PWD/python3-fix:$PATH
- cd esp32-arduino-lib-builder
- ./build.sh
- 3) kopieren der libraries
- die erzeugten libraries sind dann hier abgelegt: esp32-arduino-lib-builder/out/tools/sdk/lib
- die zum linken relevanten libraries sind hier abgelegt: $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/lib
- eine gebuildete library z.B. libfreertos.a müsse dann in den letzteren folder kopiert werden, damit sie gefunden wird
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement