Advertisement
hello_world_49152

NodeESP_Firmware builden und flashen

Jan 16th, 2020
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. NodeESP_Firmware builden und flashen
  2. ------------------------------------
  3.  
  4. Meine Umgebung: Ubuntu 18.04
  5.  
  6. Zuerst müssen drei Repos geklont werden:
  7. -espressif-esp-idf (compiler und build tools)
  8. -espressif-esptool (tool zum flashen)
  9. -NodeESP_Firmware
  10.  
  11. Danach ein Folder irgendwo erstellen, wird unten jeweils referenziert:
  12. ROOT=<project-root-folder>
  13.  
  14.  
  15. ==== espressif-esp-idf =====
  16. # siehe https://docs.espressif.com/projects/esp-idf/en/stable/get-started
  17. 1) einen sym link erstellen um später mit python3 arbeiten zu können
  18. cd $ROOT
  19. mkdir python3-fix
  20. ln -s /usr/bin/python3 ./python3-fix/python
  21.  
  22. 2) clonen des repo's
  23. cd $ROOT
  24. mkdir espressif-esp-idf
  25. cd espressif-esp-idf
  26. git clone --recursive https://github.com/espressif/esp-idf.git
  27.  
  28. 3) restliche tools im repo installieren
  29. cd $ROOT
  30. export PATH=$PWD/python3-fix:$PATH
  31. cd espressif-esp-idf/esp-idf
  32. ./install.sh
  33.  
  34. 4) benötigte python packages installieren
  35. cd $ROOT
  36. export PATH=$PWD/python3-fix:$PATH
  37. cd espressif-esp-idf
  38. python -m pip install --user -r $PWD/esp-idf/requirements.txt
  39.  
  40.  
  41. ==== espressif-esptool ==== (zum flashen)
  42. 1) clonen des repo's
  43. cd $ROOT
  44. git clone https://github.com/espressif/esptool.git
  45.  
  46.  
  47. ==== NodeESP_Firmware ==== (source)
  48. 1) clonen des repo's
  49. cd $ROOT
  50. git clone https://github.com/FKainka/NodeESP_Firmware.git
  51. # folgende änderungen müssen vorgenommen werden, damit das repo compiliert:
  52. NodeESP_Firmware/NodeESP/lib/Apps/Apps.hpp: (nur für linux)
  53. #include "WiFiSetup.hpp" -> #include "WifiSetup.hpp"
  54. #include "APP_iot18.hpp" -> #include "App_iot18.hpp"
  55. #include "APP_sh19.hpp" -> #include "App_sh19.hpp"
  56. #include "APP_examples.hpp" -> #include "App_examples.hpp"
  57. #
  58. NodeESP_Firmware/copy_bin.py:
  59. print "Post Upload Spiffs" -> print("Post Upload Spiffs")
  60. print "Post Upload Firmware" -> print("Post Upload Firmware")
  61. #
  62. platformio.ini:
  63. lib_extra_dirs = NodeESP/lib -> in [env:esp32dev] sektion gezügelt
  64. targets = upload, monitor -> auskommentiert, da manueller upload
  65.  
  66. 2) platformio installation vorbereiten
  67. sudo apt install virtualenv
  68. cd $ROOT
  69. virtualenv -p python3 platformio/penv
  70.  
  71. 3) platformio installieren
  72. source platformio/penv/bin/activate
  73. pip install -U platformio
  74. # change file $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_wps.h
  75. # line 81ff:
  76. {.manufacturer = "ESPRESSIF"},\
  77. {.model_number = "ESP32"},\
  78. {.model_name = "ESPRESSIF IOT"},\
  79. {.device_name = "ESP STATION"},\ \
  80.  
  81. 4) builden der firmware
  82. cd $ROOT
  83. source platformio/penv/bin/activate
  84. cd NodeESP_Firmware
  85. platformio run
  86.  
  87. 5) flashen der firmware
  88. cd $ROOT
  89. # da hier nur die application geflasht wird muss als start adresse entweder 0x10000 oder 0x150000 angegeben werden.
  90. #
  91. # meine partition table sieht wie folgt aus:
  92. # -----------------------------------------
  93. # Espressif ESP32 Partition Table
  94. # Name, Type, SubType, Offset, Size, Flags
  95. # Name, Type, SubType, Offset, Size, Flags
  96. # nvs, data, nvs, 0x9000, 20K,
  97. # otadata, data, ota, 0xe000, 8K,
  98. # app0, app, ota_0, 0x10000, 1280K, <- entweder app0 0x10000
  99. # app1, app, ota_1, 0x150000, 1280K, <- oder app1 0x150000 nach dem write_flash befehl angeben (siehe unten)
  100. # eeprom, data, 153, 0x290000, 4K,
  101. # spiffs, data, spiffs, 0x291000, 1468K,
  102. # -----------------------------------------
  103. #
  104. ./espressif-esptool/esptool/esptool.py --chip esp32 -b 460800 write_flash 0x10000 ./NodeESP_Firmware/.pio/build/esp32dev/firmware.bin
  105.  
  106.  
  107. ==== dump-partition-table ==== (optional)
  108. cd $ROOT
  109. pushd espressif-esp-idf
  110. export IDF_PATH=$PWD/esp-idf
  111. popd
  112. ./espressif-esptool/esptool/esptool.py -b 460800 read_flash 0x8000 0xc00 ptable.img
  113. $IDF_PATH/components/partition_table/gen_esp32part.py ptable.img | tee ptable.txt
  114.  
  115.  
  116. ==== espressif-esp32-arduino-lib-builder ==== (optional, nur nötig, wenn z.b FreeRTOS neu gebuildet werden muss)
  117. 1) clonen des repo's
  118. cd $ROOT
  119. git clone https://github.com/espressif/esp32-arduino-lib-builder.git
  120.  
  121. 2) builden der library
  122. 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
  123. sudo apt-get install python3-pip
  124. python3 -m pip install --upgrade pip
  125. cd $ROOT
  126. export PATH=$PWD/python3-fix:$PATH
  127. cd esp32-arduino-lib-builder
  128. ./build.sh
  129.  
  130. 3) kopieren der libraries
  131. die erzeugten libraries sind dann hier abgelegt: esp32-arduino-lib-builder/out/tools/sdk/lib
  132. die zum linken relevanten libraries sind hier abgelegt: $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/lib
  133. 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