ESP32 Dev Kitc Garapen Taula
Produktuaren informazioa
Zehaztapenak
- Produktua: ESP32
- Programazio Gida: ESP-IDF
- Argitaratze Bertsioa: v5.0.9
- Fabrikatzailea: Espressif Systems
- Argitaratze data: 16ko maiatzaren 2025a
Produktuak erabiltzeko jarraibideak
1. Hasi
ESP32arekin hasi aurretik, ohitu zaitez...
honako hauek:
1.1 Sarrera
Ikasi oinarrizko funtzionalitate eta gaitasunei buruz
ESP32.
1.2 Behar duzuna
Ziurtatu beharrezko hardwarea eta softwarea dituzula:
- Hardwarea: Beharrezko hardwarearen zerrenda egiaztatu
osagaiak. - Softwarea: Beharrezko softwarea instalatu
osagaiak.
1.3 Instalazioa
Jarraitu urrats hauek IDEa instalatzeko eta konfiguratzeko
ingurunea:
- IDEa: Instalatu gomendatutako IDEa honetarako
ESP32 programatzea. - Eskuzko instalazioa: Eskuz konfiguratu
ingurunea, behar izanez gero.
1.4 Eraiki zure lehen proiektua
Sortu eta eraiki zure hasierako proiektua ESP32 erabiliz.
1.5 Desinstalatu ESP-IDF
Beharrezkoa bada, ikasi nola desinstalatu ESP-IDF zure
sistema.
2. API erreferentzia
Informazio zehatza lortzeko, jo APIaren dokumentaziora
aplikazio-protokoloak, erroreen kudeaketa eta konfigurazioa
egiturak.
Maiz egiten diren galderak (FAQ)
G: Nola konpondu ditzaket ESP32-rekin ohikoak diren arazoen arazoak?
A: Ikusi programazio gidan arazoak konpontzeko atala
edo bisitatu fabrikatzailearengana weblaguntza baliabideen gunea.
G: ESP-IDF beste mikrokontrolagailu batzuekin erabil al dezaket?
A: ESP-IDF ESP32rako bereziki diseinatuta dago, baina baliteke
beste Espressif mikrokontrolagailuekin bateragarritasuna.
ESP32
ESP-IDF Programazio Gida
5.0.9 bertsioaren bertsioa Espressif Systems 2025eko maiatzaren 16a
Aurkibidea
Aurkibidea
i
1 Hasi
3
1.1 Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Zer behar duzun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Hardwarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Softwarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Instalazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Eskuzko instalazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Eraiki zure lehen proiektua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 Desinstalatu ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 API erreferentzia
45
2.1 API Hitzarmenak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Erroreen kudeaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Konfigurazio-egiturak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 API pribatuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 Adibideko osagaiakampproiektuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 APIaren egonkortasuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Aplikazio-protokoloak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.1 ASIO ataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 ESP HTTP bezeroa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 ESP Tokiko Kontrola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 ESP Serieko Esklabo Esteka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 ESP x509 Ziurtagiri sorta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 HTTP zerbitzaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 HTTPS zerbitzaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 ICMP Oihartzuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 mDNS zerbitzua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 IP Sare Geruza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 Bluetooth APIa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® Arrunta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® Energia Baxua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® Klasikoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 Kontrolatzailea eta HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 NimBLE oinarritutako ostalarien APIak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Errore-kodeen erreferentzia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 Sareko APIak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 Haria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP Sare Geruza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Aplikazio geruza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Periferikoen APIa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Analogiko-digitaleko bihurgailuaren (ADC) modu bakarreko kontrolatzailea. . . . . . . . . . . . . . . . . 977 2.6.2 Analogiko-digitaleko bihurgailuaren (ADC) modu jarraituko kontrolatzailea. . . . . . . . . . . . . . . 986 2.6.3 Bihurgailu analogiko-digitalaren (ADC) kalibrazio-kontrolatzailea. . . . . . . . . . . . . . . . . . . 993 2.6.4 Erloju-arbola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Bihurgailu digital-analogikoa (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO eta RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Helburu Orokorreko Tenporizadorea (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Zirkuitu Elkarri Integratua (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 IC arteko soinua (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCDa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED kontrola (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Motorraren Kontrolerako Pultsu Zabalera Modulatzailea (MCPWM) . . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Pultsu-kontagailua (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Urrutiko Agintearen Igorle-hartzailea (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD Pull-up Baldintzak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC ostalariaren kontrolatzailea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI ostalariaren kontrolatzailea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO txartelaren esklabo kontrolatzailea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-Delta Modulazioa (SDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI maisu kontrolatzailea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI esklabo kontrolatzailea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Elementu Segurua) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Ukipen-sentsorea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Bi Haridun Automobilgintzako Interfazea (TWAI) . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Hartzaile/Igorle Asinkrono Unibertsala (UART). . . . . . . . . . . . . . . . . . 1317 2.7 Proiektuaren konfigurazioa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Proiektuaren konfigurazio menua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 sdkconfig.defaults erabiltzea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig formatu-arauak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kconfig aukeren atzeranzko bateragarritasuna. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Konfigurazio Aukeren Erreferentzia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Hornidura APIa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokolo bidezko komunikazioa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Hornidura bateratua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Wi-Fi hornidura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Biltegiratze APIa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSistemaren laguntza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Fabrikazio Utilitatea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Biltegiratze Ez-lurrunkorreko Liburutegia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS Partizio Sortzailearen Utilitatea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC Kontrolatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filesistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Birtuala filesistemaren osagaia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Higadura-mailaketaren APIa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Sistemaren APIa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Aplikazioaren irudiaren formatua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Aplikazio mailako trazabilitatea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Kanpoko pila duen funtzio-dei bat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Txipen berrikuspena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Kontsola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse kudeatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Errore-kodeak eta laguntza-funtzioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Gertaeren Begiztaren Liburutegia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Gaineraview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Ezaugarri osagarriak) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Heap Memoriaren Esleipena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Heap Memoriaren Arazketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Bereizmen Handiko Tenporizadorea (ESP Tenporizadorea) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Barneko eta API ezegonkorrak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Prozesadore arteko deia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Etenaldien esleipena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Erregistro-liburutegia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Sistemaren API desberdinak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Aireko eguneraketak (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Errendimendu-monitorea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Energia-kudeaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX harien euskarria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Ausazko zenbakien sorrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Lo moduak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC gaitasunak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Sistemaren ordua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 Himem esleipen APIa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP Koprozesadorearen programazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Zaindariak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 Hardware Erreferentzia
2167
3.1 Txipen Serieen Konparaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 Erlazionatutako dokumentuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 API Gidak
2171
4.1 Aplikazio Mailako Trazabilitate liburutegia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 Gehiagoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 Funtzionamendu moduak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 Konfigurazio aukerak eta mendekotasunak . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 Liburutegi hau nola erabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 Aplikazioaren abiarazte-fluxua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 Lehenengo stagabio-kargatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 segundo stagabio-kargatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 Aplikazioa abiaraztea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® Klasikoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 Gehiagoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® Energia Baxua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 Gehiagoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 Hasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 Abio-kargatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Abio-kargatzailearen bateragarritasuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 Erregistro-maila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 Fabrika berrezarpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 Proba Firmwaretik abiarazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 Atzera egitea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 Zaintza-txakurra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 Abio-kargatzailearen tamaina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 Lo sakonetik abiarazteko azkarra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 Abio-kargatzaile pertsonalizatua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 Eraikuntza Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 Gehiagoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 Eraikuntza-sistema erabiltzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 AdibampProiektua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 CMakeLists proiektua File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 CMakeLists osagaiak Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Osagaien konfigurazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Aurreprozesadoreen definizioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Osagaien eskakizunak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Proiektuaren atalak gainidaztea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Konfigurazio-bakarrik diren osagaiak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 CMake arazketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 ExampCMakeLists osagaiak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Sdkconfig pertsonalizatuaren lehenetsiak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Flash argumentuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Abio-kargatzailea eraikitzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 CMake osagai hutsak idaztea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Hirugarrenen CMake proiektuak osagaiekin erabiltzea . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Aurrez eraikitako liburutegiak osagaiekin erabiltzea . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 ESP-IDF erabiltzea CMake proiektu pertsonalizatuetan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake eraikitze sistemaren APIa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globbing eta eraikuntza inkrementalak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Eraikuntza-sistemaren metadatuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Eraikuntza-sistemaren barnekoak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 ESP-IDF GNU Make System-etik migratzea . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Core Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Gaindituview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfigurazioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Core dump-a flash formatuan gorde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Nukleo-zapalkuntza UART-era inprimatu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 ROM funtzioak atzera-aztarnetan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Aldagaiak eskaeraren arabera iraultzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 espcoredump.py exekutatzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Lo sakoneko esna-atalak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Esna-atalen arauak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Stub bat inplementatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Kodea RTC memorian kargatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Datuak RTC memorian kargatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC Esnatze-adarren egiaztapena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Erroreen kudeaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Gainetikview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Errore-kodeak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Errore-kodeak errore-mezu bihurtzea . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_WITHOUT_ABORT makro . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR makroa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE makroa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE makroa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 EGIAZTATU MAKROAK Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Erroreak kudeatzeko ereduak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ salbuespenak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Gainetikview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 ESP-WIFI-MESH kontzeptuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Sare bat eraikitzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Sare bat kudeatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Datuen transmisioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Kanalen aldaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 Errendimendua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Ohar gehiago . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Gertaeren kudeaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet eta IP gertaerak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Sare gertaerak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth gertaerak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Errore Larriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Gainidaview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Izua kontrolatzeko tresna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Erregistroen iraulketa eta atzera-jarraipena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB zirriborroa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC zaindariaren denbora-muga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Guru Meditazioko Akatsak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Beste errore hilgarri batzuk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Flash enkriptazioa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 eFuse garrantzitsuak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Flash enkriptazio prozesua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Flash enkriptazioaren konfigurazioa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Balizko hutsegiteak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 Flash enkriptazioaren egoera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Datuak irakurtzea eta idaztea Flash memoria enkriptatuan. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Flash enkriptatua eguneratzea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Flash enkriptazioa desgaitzea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Flash enkriptazioari buruzko puntu nagusiak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Flash enkriptazioaren mugak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Flash enkriptazioa eta abio segurua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Ezaugarri aurreratuak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Xehetasun teknikoak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Hardwarearen abstrakzioa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arkitektura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (Maila Baxuko) Geruza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Hardware Abstrakzio Geruza) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Goi-mailako etenaldiak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Etenaldi mailak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Oharrak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Arazketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Nola funtzionatzen du? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 J hautatzeaTAG Egokitzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 OpenOCD-ren konfigurazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ESP32 helburua konfiguratzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Arazketa-programa abiaraztea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Arazketa-prozesuaamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 OpenOCD iturburuetatik eraikitzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Aholkuak eta bitxikeriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Erlazionatutako dokumentuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Estekatzaile-skriptaren sorrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Gainetikview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Hasiera azkarra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Estekatzaileen script-ak sortzeko barne-funtzioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Onartutako APIak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets APIa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS Zeregina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 euskarria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip aldaketa pertsonalizatuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 Errendimenduaren optimizazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Memoria motak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (Datuen RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Argibideen RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (flashetik exekutatutako kodea) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (flash memorian gordetako datuak) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Memoria motela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC Memoria AZKARRA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA gai den eskakizuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA bufferra piletan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 OpenThread pilaren moduak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Nola idatzi OpenThread aplikazio bat . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThread mugako bideratzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Partizio-taulak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Gainetikview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Partizio-taulak integratuta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Taula pertsonalizatuak sortzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Partizio-taula bitarra sortzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Partizio-taula egiaztatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Partizio-taula flasheatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Partizio tresna (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Errendimendua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Nola optimizatu errendimendua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Gidak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF kalibrazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Kalibrazio partziala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Kalibrazio osoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Kalibraziorik ez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY hasieratze datuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API erreferentzia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Abio segurua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Atzeko planoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Abio seguruaren prozesuaview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Giltzak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Abioko kargatzailearen tamaina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Nola gaitu abio segurua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Berriro flasheatu daitekeen software abioko kargatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Abio seguruaren sinadura-giltza sortzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Irudien urruneko sinadura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Abio seguruaren jardunbide egokiak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Xehetasun teknikoak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Abio segurua eta flash enkriptazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Sinatutako aplikazioaren egiaztapena hardware bidezko abio segururik gabe . . . . . . . . . . . . . . . . . . . 2478 4.24.13 Ezaugarri aurreratuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Abio Segurua V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Atzeko planoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Aurrerapenatagda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Abiadura Seguruaren V2 Prozesua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Sinadura-blokearen formatua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Betegarri segurua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Sinadura-bloke bat egiaztatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Irudi bat egiaztatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Abio-kargatzailearen tamaina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 eFuse-ren erabilera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Nola gaitu abio segurua V2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Abio segurua gaitu ondoren dauden murrizketak . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Abio seguruaren sinadura-giltza sortzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 Irudien urruneko sinadura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Abio seguruaren jardunbide egokiak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Xehetasun teknikoak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Abio segurua eta flash enkriptazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Sinatutako aplikazioaren egiaztapena hardware bidezko abio segururik gabe . . . . . . . . . . . . . . . . . . . 2484 4.25.18 Ezaugarri aurreratuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Kanpoko RAM memoriaren euskarria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Hardwarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Kanpoko RAMa konfiguratzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Murrizketak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Hasieratzean hutsegitea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Txipen Berrikuspenak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Harien Tokiko Biltegiratzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Gainetikview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS API natiboa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Estandarra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Tresnak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF aurrealdea – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker irudia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows instalatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF Osagaien Kudeatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Deskargatzeko Tresnak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Unitate-probak ESP32-n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Ohiko proba-kasuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Gailu anitzeko proba kasuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Gailu anitzekoaktage Proba Kasuak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Helburu desberdinetarako probak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Unitate-proba aplikazioa eraikitzea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Unitate-probak exekutatzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Denbora-kodea cache konpentsatutako tenporizadorearekin. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Iseka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Unitate-probak Linuxen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Txertatutako softwarearen probak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF unitate-probak Linux ostalarian. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi kontrolatzailea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 Wi-Fi ezaugarrien zerrenda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Nola idatzi Wi-Fi aplikazio bat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi APIaren errore kodea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi APIaren parametroen hasieraketa. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wi-Fi Programazio Eredua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 Wi-Fi Gertaeraren Deskribapena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi estazioaren eszenatoki orokorra. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP-ren eszenatoki orokorra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi eskaneatzea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi estazioaren konexio-eszenatokia. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi estazioa konektatzen hainbat AP aurkitzen direnean. . . . . . . . . . . . . 2543 4.31.12 Wi-Fi berriro konektatu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi baliza denbora-muga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 Wi-Fi konfigurazioa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Haririk gabeko sarearen kudeaketa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Irrati-baliabideen neurketa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 BSS trantsizio azkarra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi Energia aurrezteko modua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wi-Fi-aren abiadura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
4.31.21 Wi-Fi 80211 pakete bidalketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi usaintzeko modua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi antena anitzak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Wi-Fi kanalaren egoeraren informazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Wi-Fi kanalaren egoeraren informazioa Konfiguratu . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Wi-Fi zatia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS izena eman duen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Wi-Fi bufferraren erabilera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Nola hobetu Wi-Fiaren errendimendua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi menuaren konfigurazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Arazoak konpontzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Wi-Fi Segurtasuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 Wi-Fi Segurtasun Ezaugarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Babestutako Kudeaketa Markoak (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enpresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Personala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Hobetua Irekia™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF Koexistentzia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Gainetikview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 ESP32-rako onartutako koexistentzia-eszenatokia . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Koexistentzia-mekanismoa eta -politika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Koexistentzia funtzioa nola erabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Eraikuntza erreproduzigarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Eraikuntza ez-erreproduzigarrien arrazoiak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Eraikuntza erreproduzigarriak gaitzea ESP-IDF-n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Eraikuntza erreproduzigarriak nola lortzen diren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Eraikuntza erreproduzigarriak eta arazketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Eraikuntza erreproduzigarrietan oraindik eragina duten faktoreak . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Energia gutxiko moduaren erabiltzailearen gida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578
5 Migrazio Gidak
2579
5.1 ESP-IDF 5.x Migrazio Gida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 4.4tik 5.0rako migrazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 Liburutegi eta Esparruak
2611
6.1 Hodeiko Esparruak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 AWS IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 Aliyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.6 Joylink IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 Tencent Gauzen Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun Gauzen Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 Espresio Esparruak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Espressif Audio Garapen Esparrua . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Espressif DSP liburutegia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 ESP-WIFI-MESH Garapen Esparrua . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-OME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 ESP-IoT-Soluzioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 ESP-Protokoloak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
viii
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
7 Ekarpenen Gida
2615
7.1 Nola lagundu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 Lagundu aurretik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 Ateratze-eskaera prozesua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 Zati Juridikoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 Erlazionatutako dokumentuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Espressif IoT Garapen Esparruaren Estilo Gida . . . . . . . . . . . . . . . . . . . . 2616
7.5.2 Instalatu aurre-konpromisoa duen Hook-a ESP-IDF proiekturako . . . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Kodea dokumentatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 Ex sortzeaamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 API dokumentazio txantiloia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 Kolaboratzaileen Hitzarmena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 Copyright Goiburuaren Gida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 ESP-IDF probak Pytest gidarekin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 ESP-IDF bertsioak
2645
8.1 Bertsioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 Zein bertsiorekin hasi behar dut? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 Bertsio-eskema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 Laguntza-aldiak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 Uneko bertsioa egiaztatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Git lan-fluxua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 ESP-IDF eguneratzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 Bertsio egonkorrera eguneratzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 Aurre-argitaratze bertsio batera eguneratzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 Master adarrera eguneratzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 Argitalpen adar batera eguneratzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 Baliabideak
2651
9.1 Plataforma IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 Zer da PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 Instalazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 Konfigurazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 Tutorialak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 Proiektu Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Hurrengo urratsak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Esteka erabilgarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Copyright eta Lizentziak
2653
10.1 Softwarearen copyrightak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Firmwarearen osagaiak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Dokumentazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 ROM iturburu-kodearen copyrightak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Xtensa libhal MIT Lizentzia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 TinyBasic Plus MIT Lizentzia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 TJpgDec Lizentzia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 Buruz
2657
12 Hizkuntzak aldatu
2659
Aurkibidea
2661
Aurkibidea
2661
ix
x
Aurkibidea
Hau da Espressif IoT Development Framework (esp-idf)-ren dokumentazioa. ESP-IDF ESP32, ESP32-S eta ESP32-C serieko SoC-en garapen-esparru ofiziala da. Dokumentu honek ESP-IDF ESP32 SoC-arekin nola erabili deskribatzen du.
Hasi
API Erreferentzia
API gidak
Espressif Sistemak
1 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
Aurkibidea
Espressif Sistemak
2 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua
Hasi
Dokumentu honen helburua Espressif-en ESP32 txipan oinarritutako hardwarearentzako software garapen ingurunea konfiguratzen laguntzea da. Ondoren, adibide sinple bat...ampESP-IDF (Espressif IoT Development Framework) nola erabili erakutsiko dizugu menuen konfiguraziorako, eta gero firmwarea ESP32 plaka batean eraiki eta flashatzeko.
Oharra: Hau ESP-IDFren 5.0.9 bertsio egonkorrerako dokumentazioa da. Beste ESP-IDF bertsio batzuk ere eskuragarri daude.
1.1 Sarrera
ESP32 txip bateko sistema bat da, ezaugarri hauek integratzen dituena: · Wi-Fi (2.4 GHz banda) · Bluetooth · Errendimendu handiko bi Xtensa® 32 biteko LX6 CPU nukleo · Ultra Low Power koprozesadorea · Periferiko anitz
40 nm-ko teknologiak bultzatuta, ESP32-k plataforma sendo eta oso integratua eskaintzen du, energia-erabilera eraginkorraren, diseinu trinkoaren, segurtasunaren, errendimendu handikoaren eta fidagarritasunaren etengabeko eskaerei erantzuten laguntzen duena. Espressif-ek oinarrizko hardware eta software baliabideak eskaintzen ditu aplikazio-garatzaileei ESP32 serieko hardwarea erabiliz beren ideiak gauzatzen laguntzeko. Espressif-en software garapen esparrua Gauzen Internet (IoT) aplikazioak garatzeko pentsatuta dago, Wi-Fi, Bluetooth, energia kudeaketa eta beste hainbat sistema-ezaugarrirekin.
1.2 Behar duzuna
1.2.1 Hardwarea
· ESP32 plaka bat. · USB kablea – USB A / mikro USB B. · Windows, Linux edo macOS exekutatzen duen ordenagailua.
Oharra: Gaur egun, garapen-plaka batzuek USB C motako konektoreak erabiltzen dituzte. Ziurtatu plaka konektatzeko kable zuzena duzula!
Jarraian zerrendatutako ESP32 garapen-plaka ofizialetako bat baduzu, estekan klik egin dezakezu hardwareari buruz gehiago jakiteko.
3
1. kapitulua. Hasi
ESP32-DevKitS(-R)
Erabiltzailearen gida honek Espressif-ek ekoitzitako ESP32-DevKitS(-R) plaka bati buruzko informazioa ematen du. ESP32-DevKitS(-R) bi plaka izenen konbinazioa da: ESP32-DevKitS eta ESP32-DevKitS-R. S-k malgukiak esan nahi du, eta R-k WROVER.
ESP32-Garapen Kitak
ESP32-DevKitS-R
Dokumentuak atal nagusi hauek ditu: · Hasteko: Informazio gehiago eskaintzen duview ESP32-DevKitS(-R)-ren eta hardware/software konfigurazio argibideen bidez hasteko. · Hardware erreferentzia: ESP32-DevKitS(-R)ns hardwareari buruzko informazio zehatzagoa ematen du. · Erlazionatutako dokumentuak: Erlazionatutako dokumentaziorako estekak ematen ditu.
Hasteko Atal honek ESP32-DevKitS(-R) erabiltzen nola hasi azaltzen du. ESP32-DevKitS(-R) buruzko sarrera-atal batzuekin hasten da, eta ondoren, "Nola flasheatu plaka bat" atalak ESP32-DevKitS(-R)-n modulu bat nola muntatu, prestatu eta firmwarea nola flasheatu azaltzen du.
Amaituview ESP32-DevKitS(-R) ESP32rako bereziki diseinatutako Espressif-en flasheatze-plaka bat da. ESP32 modulua elikatze-iturrira eta seinale-lineetara soldatu gabe flasheatzeko erabil daiteke. Modulua muntatuta dagoenean, ESP32-DevKitS(-R) ESP32-DevKitC bezala garapen-plaka txiki gisa ere erabil daiteke.
ESP32-DevKitS eta ESP32-DevKitS-R plakak malguki-pinen diseinuan baino ez dira aldatzen, ESP32 modulu hauetan sartzeko.
· ESP32-Garapen Kitak: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB eta IPEX) ESP32-WROVER-B (PCB eta IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Goiko moduluei buruzko informazioa lortzeko, jo ESP32 Serieko Moduluetara.
Osagaien deskribapena
Espressif Sistemak
4 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
1. irudia: ESP32-DevKitS – aurrealdea
Espressif Sistemak
2. irudia: ESP32-DevKitS-R – aurrealdea 5
Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Osagai nagusien malguki-pinak 2.54 mm-ko eme-buruak
USB-tik UART-era zubia LDO mikro-USB konektorea/mikro-USB ataka EN botoia Abio botoia
Pizteko LEDa
Deskribapena Modulua klik egin. Pinak moduluko zulo almendratuetan sartuko dira. Eme goiburu hauek plaka honetan muntatutako moduluko pinetara konektatuta daude. Eme goiburuen deskribapena lortzeko, jo Goiburu Blokeetara. Txip bakarreko USBtik UARTrako zubiak 3 Mbps-ko transferentzia-tasak eskaintzen ditu.
5V-tik 3.3V-ra bitarteko tentsio-galera txikiko bolumenatage erregulatzailea (LDO).
USB interfazea. Plakaren elikatze-iturria eta ordenagailuaren eta plakaren arteko komunikazio-interfazea.
Berrezarri botoia.
Deskargatu botoia. Boot sakatuta eduki eta gero EN sakatuta Firmware Download modua abiarazten da, firmwarea serieko atakaren bidez deskargatzeko.
Pizten da USBa edo elikatze-iturria plakara konektatzen denean.
Nola flasheatu plaka bat ESP32-DevKitS(-R) piztu aurretik, ziurtatu egoera onean dagoela, kalterik gabe.
Beharrezko hardwarea · Aukeratutako ESP32 modulua · USB 2.0 kablea (A estandarretik Mikro-Bra) · Windows, Linux edo macOS exekutatzen duen ordenagailua
Hardwarearen konfigurazioa Mesedez, muntatu nahi duzun modulua zure ESP32-DevKitS(-R)-n urrats hauek jarraituz:
· Jarri kontu handiz modulua ESP32-DevKitS(-R) plakan. Ziurtatu moduluko zulo almendratuak plakaren malguki-pinekin lerrokatuta daudela.
· Sakatu modulua plakaren kontra klik egin arte. · Egiaztatu malguki-pin guztiak zulo almendratuetan sartuta dauden. Malguki-pinen bat gaizki lerrokatuta badago,
pintzekin zulo almendratuetan sartu.
Software konfigurazioa
Metodo hobetsia ESP-IDF garapen-esparruak ESP32-DevKitS(-R)-n binarioak flashatzeko modu hobetsia eskaintzen du. Mesedez, jarraitu Hasi atalera, non Instalazio atalak garapen-ingurunea konfiguratzen eta aplikazio ex bat flashatzen lagunduko dizun azkar.ampzure ESP32-DevKitS(-R)-ra.
Bestelako metodoa Bestelako gisa, Windows erabiltzaileek binarioak flasheatu ditzakete Flash Download Tool erabiliz. Deskargatu, deskonprimitu eta doc karpetako argibideei jarraitu besterik ez duzu egin behar.
Oharra: 1. Bitarra flashatzeko files, ESP32 Firmware Download moduan konfiguratu beharko litzateke. Hau flash tresnaren bidez egin daiteke automatikoki, edo Boot botoia sakatuta mantenduz eta EN botoia sakatuz. 2. Bitarra flashatu ondoren files, Flash Download Tool-ek zure ESP32 modulua berrabiarazten du eta flasheatutako aplikazioa abiarazten du lehenespenez.
Taularen neurriak Edukia eta ontziratzea
Espressif Sistemak
6 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi 3. irudia: ESP32-DevKitS plakaren neurriak – atzealdea
Espressif Sistemak
4. irudia: ESP32-DevKitS-R plakaren neurriak – atzealdea 7
Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Txikizkako eskaerak Zenbait eskatzen badituzuampESP32-DevKitS(-R) bakoitza banakako pakete batean dator, poltsa antiestatiko batean edo beste edozein ontzitan, saltzailearen arabera. Txikizkako eskaeretarako, joan https://www.espressif.com/en/contact-us/get-s helbidera.amples.
Handizkako eskaerak Handizkako eskaerak egiten badituzu, oholak kartoizko kaxa handietan datoz. Handizkako eskaeretarako, joan https://www.espressif.com/en/contact-us/sales-questions helbidera.
Hardware Erreferentzia
Bloke-diagrama Jarraian dagoen bloke-diagrama batek ESP32-DevKitS(-R)-ren osagaiak eta haien interkonexioak erakusten ditu.
5. irudia: ESP32-DevKitS(-R) (handitzeko klik egin)
Elikatze Hornidura Aukerak Hiru modu esklusibo daude plakari energia emateko: · Mikro USB ataka, lehenetsitako elikatze iturria · 5V eta GND goiburu pinak · 3V3 eta GND goiburu pinak
Lehenengo aukera erabiltzea gomendatzen da: mikro USB ataka.
Espressif Sistemak
.
Etiketa Seinalea
L1 3V3 VDD 3V3
L2 EN CHIP_PU
L3 VP SENSOR_VP
L4 VN SENTSOREA_VN
L5 34
GPIO34
L6 35
GPIO35
L7 32
GPIO32
L8 33
GPIO33
hurrengo orrialdean jarraitzen du
8 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
1 taula aurreko orrialdetik jarraitu da
.
Etiketa Seinalea
L9 25
GPIO25
L10 26
GPIO26
L11 27
GPIO27
L12 14
GPIO14
L13 12
GPIO12
L14 GND GND
L15 13
GPIO13
L16 D2 SD_DATA2
L17 D3 SD_DATA3
L18 CMD SD_CMD
L19 5V
Kanpoko 5V
R1 GND GND
R2 23
GPIO23
R3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
R6 21
GPIO21
R7 GND GND
R8 19
GPIO19
R9 18
GPIO18
R10 5
GPIO5
R11 17
GPIO17
R12 16
GPIO16
R13 4
GPIO4
R14 0
GPIO0
R15 2
GPIO2
R16 15
GPIO15
R17 D1 SD_DATUAK1
R18 D0 SD_DATUAK0
R19 CLK SD_CLK
Goiburuko blokeak Goiburuko blokeen irudia ikusteko, jo ezazu Osagaien Deskribapena atalera.
Lotutako dokumentuak
· ESP32-DevKitS(-R) eskemak (PDF) · ESP32 datu-orria (PDF) · ESP32-WROOM-32 datu-orria (PDF) · ESP32-WROOM-32D eta ESP32-WROOM-32U datu-orria (PDF) · ESP32-SOLO-1 datu-orria (PDF) · ESP32-WROVER datu-orria (PDF) · ESP32-WROVER-B datu-orria (PDF) · ESP produktuen hautatzailea
ESP32-DevKitM-1
Erabiltzailearen gida honek ESP32-DevKitM-1 erabiltzen hasteko lagunduko dizu eta informazio sakonagoa ere emango dizu.
ESP32-DevKitM-1 Espressif-ek ekoitzitako ESP32-MINI-1(1U) oinarritutako garapen-plaka bat da. S/I pin gehienak bi aldeetako pin-buruetara banatuta daude interfazea errazteko. Erabiltzaileek periferikoak jumper-kableekin konekta ditzakete edo ESP32-DevKitM-1 protokolo-plaka batean muntatu.
Espressif Sistemak
9 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
ESP32-DevKitM-1 - aurrealdea
ESP32-DevKitM-1 – isometrikoa
Dokumentuak atal nagusi hauek ditu: · Hasteko: Informazio gehiago eskaintzen duview ESP32-DevKitM-1-aren eta hardware/software konfigurazio argibideen hasiera-hasieratik. · Hardware erreferentzia: ESP32-DevKitM-1ns hardwareari buruzko informazio zehatzagoa ematen du. · Erlazionatutako dokumentuak: Erlazionatutako dokumentaziorako estekak ematen ditu.
Hasteko Atal honek ESP32-DevKitM-1-rekin nola hasi azaltzen du. ESP32-DevKitM-1-ri buruzko sarrera-atal batzuekin hasten da, eta ondoren Aplikazioen Garapena Hasi atalak hasierako hardwarearen konfigurazioa nola egin eta firmwarea ESP32-DevKitM-1-era nola flashatu azaltzen du.
Amaituview Hau garapen-taula txiki eta erosoa da, eta hauek ditu:
· ESP32-MINI-1, edo ESP32-MINI-1U modulua · USB-serieko programazio interfazea, plakarentzako elikadura ere ematen duena · pinen goiburuak · Firmware Download modua berrezartzeko eta aktibatzeko botoiak · beste osagai batzuk
Edukiak eta ontziratzea
Txikizkako eskaerak Zenbait eskatzen badituzuampLes, ESP32-DevKitM-1 bakoitza banakako pakete batean dator, poltsa antiestatiko batean edo beste edozein ontzitan, zure saltzailearen arabera.
Txikizkako eskaeretarako, joan https://www.espressif.com/en/contact-us/get-s helbidera.amples.
Handizkako eskaerak Handizkako eskaerak egiten badituzu, oholak kartoizko kaxa handietan datoz. Handizkako eskaeretarako, joan https://www.espressif.com/en/contact-us/sales-questions helbidera.
Osagaien deskribapena Hurrengo irudiak eta beheko taulak ESP32-DevKitM-1 plakaren osagai, interfaze eta kontrolak deskribatzen dituzte. ESP32-MINI-1 modulua duen plaka hartzen dugu adibide gisa.ample hurrengo ataletan.
Espressif Sistemak
10 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
6. irudia: ESP32-DevKitM-1 – aurrealdea
Osagai nagusia: modulua barnean
5 V-tik 3.3 V-ra bitarteko LDO abio botoia
Berrezarri botoia Mikro-USB ataka
USB-tik UART-erako zubia 3.3 V-ko pizte-LEDa
I/O konektorea
Deskribapena
ESP32-MINI-1 modulua edo ESP32-MINI-1U modulua. ESP32-MINI-1ak barneko PCB antena bat du. ESP32-MINI-1Uak kanpoko antena konektore bat du. Bi moduluek 4 MB-ko flash paketea dute txiparen barruan. Xehetasunetarako, ikusi ESP32-MINI-1 eta ESP32-MINI-1U datu-orria.
Potentzia-erregulatzaileak 5 V 3.3 V-ra bihurtzen ditu.
Deskargatu botoia. Abiarazi botoia sakatuta eduki eta gero Berrezarri botoia sakatuta Firmware Deskargatzeko modua abiarazten da, firmwarea serieko atakaren bidez deskargatzeko.
Berrezarri botoia
USB interfazea. Plakaren elikadura iturria eta ordenagailu baten eta ESP32 txiparen arteko komunikazio-interfazea.
USB-UART zubi txip bakarrak 3 Mbps arteko transferentzia-tasak eskaintzen ditu.
USBa plakara konektatzen denean pizten da. Xehetasunetarako, ikusi eskemak Erlazionatutako Dokumentuetan. Eskuragarri dauden GPIO pin guztiak (flasherako SPI busa izan ezik) plakaren pin-buruetan banatuta daude. Erabiltzaileek ESP32 txipa programatu dezakete hainbat funtzio gaitzeko.
Aplikazioen garapena hasi ESP32-DevKitM-1 piztu aurretik, ziurtatu egoera onean dagoela, kalterik gabe.
Beharrezko hardwarea · ESP32-DevKitM-1 · USB 2.0 kablea (A estandarretik Mikro-Bra) · Windows, Linux edo macOS exekutatzen duen ordenagailua
Softwarearen konfigurazioa Mesedez, jarraitu Hasteko atalera, non Instalazio atalak garapen ingurunea konfiguratzen eta aplikazio ex bat flasheatzen lagunduko dizun azkar.ample zure ESP32-DevKitM-1-ra.
Espressif Sistemak
11 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Arreta: 2021eko abenduaren 2a baino lehen fabrikatutako ESP32-DevKitM-1 plakek nukleo bakarreko modulua dute instalatuta. Zein modulu duzun egiaztatzeko, egiaztatu moduluen markaketaren informazioa PCN-2021-021ean. Zure plakak nukleo bakarreko modulua badu instalatuta, gaitu nukleo bakarreko modua (CONFIG_FREERTOS_UNICORE) menuconfig-en aplikazioak flashatu aurretik.
Hardwarearen erreferentziazko bloke-diagrama Jarraian dagoen bloke-diagrama batek ESP32-DevKitM-1-ren osagaiak eta haien interkonexioak erakusten ditu.
7. irudia: ESP32-DevKitM-1
Energia iturriaren hautaketa Hiru modu esklusibo daude plakari energia emateko: · Mikro USB ataka, lehenetsitako energia iturria · 5V eta GND goiburu pinak · 3V3 eta GND goiburu pinak
Abisua: · Goiko aukeretako bat eta bakarra erabiliz eman behar da energia-iturria, bestela plaka eta/edo energia-iturria kaltetu daitezke. · Mikro USB ataka bidezko energia-iturria gomendatzen da.
Pinen deskribapenak Beheko taulan plakaren bi aldeetako pinen izena eta funtzioa ageri dira. Periferikoen pinen konfigurazioetarako, jo ESP32 datu-orrira.
Ez.
Izena
Mota
1
GND
P
2
3V3
P
Funtzioa Lurra 3.3 V-ko elikatze-iturria
hurrengo orrialdean jarraitzen du
Espressif Sistemak
12 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
2 taula aurreko orrialdetik jarraitu da
Ez.
Izena
Mota
Funtzioa
3
I36
I
GPIO36, ADC1_CH0, RTC_GPIO0
4
I37
I
GPIO37, ADC1_CH1, RTC_GPIO1
5
I38
I
GPIO38, ADC1_CH2, RTC_GPIO2
6
I39
I
GPIO39, ADC1_CH3, RTC_GPIO3
7
RST
I
Berrezarri; Altua: gaitu; Baxua: itzali egiten da
8
I34
I
GPIO34, ADC1_CH6, RTC_GPIO4
9
I35
I
GPIO35, ADC1_CH7, RTC_GPIO5
10
IO32
I/O
GPIO32, XTAL_32K_P (32.768 kHz-ko kristal osziladorearen sarrera),
ADC1_CH4, TOUCH9, RTC_GPIO9
11
IO33
I/O
GPIO33, XTAL_32K_N (32.768 kHz kristal osziladorearen irteera),
ADC1_CH5, TOUCH8, RTC_GPIO8
12
IO25
I/O
GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
13
IO26
I/O
GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
14
IO27
I/O
GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
15
IO14
I/O
GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,
HS2_CLK, SD_CLK, EMAC_TXD2
16
5V
P
5 V-ko elikadura
17
IO12
I/O
GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,
HS2_DATA2, SD_DATA2, EMAC_TXD3
18
IO13
I/O
GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,
HS2_DATA3, SD_DATA3, EMAC_RX_ER
19
IO15
I/O
GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,
HS2_CMD, SD_CMD, EMAC_RXD3
20
IO2
I/O
GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,
HS2_DATA0, SD_DATA0
21
IO0
I/O
GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,
EMAC_TX_CLK
22
IO4
I/O
GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,
HS2_DATA1, SD_DATA1, EMAC_TX_ER
23
IO9
I/O
GPIO9, HS1_DATA2, U1RXD, SD_DATA2
24
IO10
I/O
GPIO10, HS1_DATA3, U1TXD, SD_DATA3
25
IO5
I/O
GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK
26
IO18
I/O
GPIO18, HS1_DATA7, VSPICLK
27
IO23
I/O
GPIO23, HS1_STROBE, VSPID
28
IO19
I/O
GPIO19, VSPIQ, U0CTS, EMAC_TXD0
29
IO22
I/O
GPIO22, VSPIWP, U0RTS, EMAC_TXD1
30
IO21
I/O
GPIO21, VSPIHD, EMAC_TX_EN
31
TXD0
I/O
GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
32
RXD0
I/O
GPIO3, U0RXD, CLK_OUT2
Hardwarearen berrikuspenaren xehetasunak Ez dago aurreko bertsiorik eskuragarri.
Lotutako dokumentuak
· ESP32-MINI-1 eta ESP32-MINI-1U Datuen Orria (PDF) · ESP32-DevKitM-1 Eskemak (PDF) · ESP32-DevKitM-1 PCB diseinua (PDF) · ESP32-DevKitM-1 diseinua (DXF) – Egin dezakezu view Autodesk-ekin. Viewonline · ESP32 Datuen Orria (PDF) · ESP Produktuen Hautatzailea
Taularen diseinu-dokumentazio gehiago nahi izanez gero, jarri gurekin harremanetan sales@espressif.com helbidean.
Espressif Sistemak
13 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
1.2.2 softwarea
ESP32-n ESP-IDF erabiltzen hasteko, instalatu software hau: · ESP32rako kodea konpilatzeko Toolchain · ESP32rako aplikazio oso bat eraikitzeko tresnak eraikitzeko – CMake eta Ninja · ESP32rako APIa (software liburutegiak eta iturburu kodea) eta Toolchain funtzionatzeko scriptak dituen ESP-IDF
1.3 Instalazioa
Beharrezko software guztia instalatzeko, zeregin hau errazteko hainbat modu eskaintzen ditugu. Aukeratu eskuragarri dauden aukeretako bat.
1.3.1 IDE
Oharra: Oso gomendagarria da ESP-IDF zure IDE gogokoenaren bidez instalatzea.
· Eclipse plugina · VSCode luzapena
1.3.2 Eskuzko instalazioa
Eskuzko prozedurarako, aukeratu zure sistema eragilearen arabera.
Espressif Sistemak
14 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Windows-erako Toolchain-en konfigurazio estandarra
Sarrera ESP-IDF-k zenbait aurrebaldintza-tresna instalatu behar ditu txip onartuetarako firmwarea eraiki ahal izateko. Aurrebaldintza-tresnen artean Python, Git, konpiladore gurutzatuak, CMake eta Ninja eraikuntza-tresnak daude. Hasteko, Komando-gonbita erabiliko dugu, baina ESP-IDF instalatu ondoren, Eclipse Plugin edo CMake euskarria duen beste IDE grafiko bat erabil dezakezu. Oharra: Mugak: – ESP-IDF eta ESP-IDF tresnen instalazio-bideak ezin du 90 karaktere baino gehiago izan. Instalazio-bide luzeegiek eraikuntza huts egin dezakete. – Python edo ESP-IDF-ren instalazio-bideak ezin du zuriunerik edo parentesirik izan. – Python edo ESP-IDF-ren instalazio-bideak ezin du karaktere berezirik izan (ASCII ez direnak), sistema eragilea Unicode UTF-8 euskarriarekin konfiguratuta ez badago. Sistemaren administratzaileak laguntza gaitu dezake Kontrol Panelaren bidez – Aldatu data, ordua edo zenbaki formatuak – Administrazio fitxa – Aldatu sistemaren eskualdea – markatu Beta: Erabili Unicode UTF-8 mundu osoko hizkuntzen euskarrirako aukera – Ados eta berrabiarazi ordenagailua.
ESP-IDF tresnen instalatzailea ESP-IDFn aurrebaldintzak instalatzeko modurik errazena ESP-IDF tresnen instalatzaileetako bat deskargatzea da.
Windows instalatzailearen deskarga
Zein da Online eta Offline instalatzailearen erabilera? Online instalatzailea oso txikia da eta ESP-IDFren bertsio guztiak instalatzea ahalbidetzen du. Instalatzaileak beharrezko mendekotasunak soilik deskargatuko ditu instalazio prozesuan, Git For Windows barne. Instalatzaileak deskargatutako datuak gordetzen ditu... files %userpro cache direktorioanfile%. espressif
Lineaz kanpoko instalatzaileak ez du sareko konexiorik behar. Instalatzaileak beharrezko mendekotasun guztiak ditu, Git For Windows barne.
Instalazioaren osagaiak Instalatzaileak osagai hauek zabaltzen ditu:
· Python txertatua · Konpiladore gurutzatuak · OpenOCD · CMake eta Ninja eraikuntza tresnak · ESP-IDF
Instalatzaileak ESP-IDF-rekin dauden direktorioak berrerabiltzea ere ahalbidetzen du. Gomendatutako direktorioa %userpro da.file%Desktopesp-idf non %userprofile% zure etxeko direktorioa da.
Espressif Sistemak
15 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
ESP-IDF Ingurunea abiaraztea Instalazio prozesuaren amaieran, "Run ESP-IDF PowerShell Ingurunea" edo "Run ESP-IDF Komando Promptua" (cmd.exe) aukera hautatu dezakezu. Instalatzaileak ESP-IDF ingurunea abiaraziko du hautatutako gonbitan. "Run ESP-IDF PowerShell Ingurunea":
8. irudia: ESP-IDF tresnen konfigurazio-morroia osatzea ESP-IDF PowerShell ingurunea exekutatu erabiliz
Exekutatu ESP-IDF komando-gonbita (cmd.exe):
Komando-gonbita erabiltzea Hasteko gainerako urratsetarako, Windows-en komando-gonbita erabiliko dugu. ESP-IDF tresnen instalatzaileak lasterbide bat sortzen du Hasi menuan ESP-IDF komando-gonbita abiarazteko. Lasterbide honek komando-gonbita (cmd.exe) abiarazten du eta export.bat script-a exekutatzen du ingurune-aldagaiak (PATH, IDF_PATH eta beste batzuk) konfiguratzeko. Komando-gonbita honen barruan, instalatutako tresna guztiak eskuragarri daude. Kontuan izan lasterbide hau ESP-IDF tresnen instalatzailean hautatutako ESP-IDF direktorioari dagokiola. Ordenagailuan hainbat ESP-IDF direktorio badituzu (adibidez...ampadibidez, ESP-IDF bertsio desberdinekin lan egiteko), bi aukera dituzu erabiltzeko:
1. Sortu ESP-IDF Tresnen Instalatzaileak sortutako lasterbidearen kopia bat, eta aldatu lasterbide berriaren lan-direktorioa erabili nahi duzun ESP-IDF direktoriora.
2. Bestela, exekutatu cmd.exe, ondoren joan erabili nahi duzun ESP-IDF direktoriora eta exekutatu export.bat. Kontuan izan aurreko aukera ez bezala, modu honek Python eta Git PATH-en egotea eskatzen duela. Python edo Git aurkitzen ez direlako erroreak jasotzen badituzu, erabili lehenengo aukera.
ESP-IDF-ri buruzko lehen urratsak Orain, baldintza guztiak betetzen direnez, hurrengo gaiak zure lehen proiektua nola hasi erakutsiko dizu.
Espressif Sistemak
16 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasiberriak 9. irudia: ESP-IDF PowerShell
10. irudia: ESP-IDF tresnen konfigurazio-morroia osatzea ESP-IDF komando-gonbita exekutatu (cmd.exe) erabiliz
Espressif Sistemak
17 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
11. irudia: ESP-IDF komando-gonbita
Espressif Sistemak
18 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Gida honek ESP-IDF erabiltzeko lehen urratsetan lagunduko dizu. Jarraitu gida honi ESP32-an proiektu berri bat hasteko eta gailuaren irteera eraikitzeko, flasheatzeko eta monitorizatzeko. Oharra: ESP-IDF oraindik instalatu ez baduzu, joan Instalaziora eta jarraitu argibideei gida hau erabiltzeko beharrezko software guztia lortzeko.
Proiektu bat hasi Orain prest zaude zure aplikazioa ESP32rako prestatzeko. getstarted/hello_world proiektuarekin has zaitezke ex-tikamples direktorioa ESP-IDF-n.
Garrantzitsua: ESP-IDF eraikuntza-sistemak ez ditu hutsuneak onartzen ez ESP-IDFrako ez proiektuetarako bideetan.
Kopiatu get-started/hello_world proiektua ~/esp direktoriora: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedkaixo_mundua kaixo_mundua
Oharra: Hainbat adibide daudeample proiektuak examples direktorioa ESP-IDF-n. Edozein proiektu kopiatu dezakezu goian aurkeztutako modu berean eta exekutatu. Exampleak lekuan bertan lehenik kopiatu gabe.
Konektatu zure gailua Orain konektatu zure ESP32 plaka ordenagailura eta egiaztatu zein serieko ataka azpian dagoen ikusgai plaka. Serieko ataken izenak COM letraz hasten dira Windows-en. Serieko atakaren izena nola egiaztatu ez badakizu, jo ezazu ESP32-rekin serieko konexioa ezartzea atalera xehetasun gehiago lortzeko.
Oharra: eduki portuaren izena eskura hurrengo urratsetan beharko duzulako.
Konfiguratu zure proiektua Joan zaitez zure hello_world direktoriora, ezarri ESP32 helburu gisa eta exekutatu proiektuaren konfigurazio utilitatea menuconfig.
Windows CD %userprofile%esphello_world idf.py helburu-multzoa esp32 idf.py menukonfigurazioa
Proiektu berri bat ireki ondoren, lehenik helburua idf.py set-target esp32-rekin ezarri beharko zenuke. Kontuan izan proiektuan dauden build-ak eta konfigurazioak, baldin badaude, prozesu honetan garbitu eta hasieratuko direla. Helburua ingurune-aldagaian gorde daiteke urrats hau guztiz saltatzeko. Ikusi Hautatu Helburu Txipa: set-target informazio gehiago lortzeko. Aurreko urratsak behar bezala egin badira, menu hau agertuko da: Menu hau erabiltzen ari zara proiektuaren aldagai espezifikoak konfiguratzeko, adibidez, Wi-Fi sarearen izena eta pasahitza, prozesadorearen abiadura, etab. Proiektua menuconfig-ekin konfiguratzea saltatu daiteke ohello_wordp-rentzat, ex hau...ample konfigurazio lehenetsiarekin exekutatzen da.
Arreta: ESP32-DevKitC plaka ESP32-SOLO-1 moduluarekin edo ESP32-DevKitM-1 plaka ESP32-MIN1-1(1U) moduluarekin erabiltzen baduzu, gaitu nukleo bakarreko modua (CONFIG_FREERTOS_UNICORE) menuconfig-en ex flashatu aurretik.amples.
Espressif Sistemak
19 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
12. irudia: Proiektuaren konfigurazioa – Hasierako leihoa
Oharra: Menuaren koloreak desberdinak izan daitezke zure terminalean. Itxura alda dezakezu –style aukerarekin. Informazio gehiago lortzeko, exekutatu idf.py menuconfig –help komandoa.
Garapen-plaka bateragarrietako bat erabiltzen ari bazara, garapena bizkortu dezakezu Plaka Laguntza Paketea erabiliz. Informazio gehiago lortzeko, ikusi Aholku Gehigarriak.
Eraiki proiektua Eraiki proiektua exekutatu hau eginez:
idf.py eraiki
Komando honek aplikazioa eta ESP-IDF osagai guztiak konpilatuko ditu, ondoren abio-kargatzailea, partizio-taula eta aplikazioaren bitarrak sortuko ditu.
$ idf.py build cmake exekutatzen /path/to/hello_world/build direktorioan “cmake -G Ninja –warn-uninitialized /path/to/hello_world” exekutatzen… Hasieratu gabeko balioei buruz abisatzen. — Git aurkitua: /usr/bin/git (“2.17.0” bertsioa aurkitua) — Konfigurazioagatik aws_iot osagai hutsa eraikitzen — Osagaien izenak: … — Osagaien bideak: …
… (eraikitzeko sistemaren irteerako lerro gehiago)
[527/527] hello_world.bin esptool.py v2.3.1 sortzen
Proiektuaren eraikuntza osatu da. Flashatzeko, exekutatu komando hau: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin edo exekutatu 'idf.py -p PORT flash'
Akatsik ez badago, eraikitzea amaituko da firmware .bin binarioa sortuz files.
Espressif Sistemak
20 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Flashatu gailuan Flashatu eraiki berri dituzun binarioak (bootloader.bin, partition-table.bin eta hello_world.bin) zure ESP32 plakan hau exekutatuz: idf.py -p PORT [-b BAUD] flash
Ordeztu PORT zure ESP32 plakaren serieko ataka izenarekin. Keinukariaren baud abiadura ere alda dezakezu BAUD behar duzun baud abiadurarekin ordezkatuz. Lehenetsitako baud abiadura 460800 da. idf.py argumentuei buruzko informazio gehiago lortzeko, ikus idf.py.
Oharra: flash aukerak automatikoki eraikitzen eta flashatzen du proiektua, beraz, ez da beharrezkoa idf.py build exekutatzea.
Arazoak izan dituzu flasheatzen ari zaren bitartean? Komandoa exekutatzen baduzu eta "Failed to connectp" bezalako erroreak ikusten badituzu, hainbat arrazoi egon daitezke horretarako. Arrazoietako bat esptool.py-k izandako arazoak izan daitezke, txipa berrezartzeko, ROM abioko kargatzailearekin elkarreragiteko eta firmwarea flashatzeko eraikuntza-sistemak deitzen duen utilitatea. Probatzeko irtenbide erraz bat eskuzko berrezartzea da, behean deskribatzen dena, eta laguntzen ez badu, arazo posibleei buruzko xehetasun gehiago aurki ditzakezu Arazoak Konpontzea atalean.
esptool.py-k ESP32 automatikoki berrezartzen du USB serieko bihurgailu txiparen DTR eta RTS kontrol lerroak berretsiz, hau da, FTDI edo CP210x (informazio gehiago lortzeko, ikus ESP32-rekin serieko konexioa ezartzea). DTR eta RTS kontrol lerroak, aldi berean, ESP32-ren GPIO0 eta CHIP_PU (EN) pinetara konektatuta daude, eta horrela bolumena aldatzen da.tagDTR eta RTS mailek ESP32 Firmware Download moduan abiaraziko dute. Adibide gisaampAdibidez, begiratu ESP32 DevKitC garapen-plakaren eskema.
Oro har, ez zenuke arazorik izan behar esp-idf garapen-plaka ofizialekin. Hala ere, esptool.py-k ezin du zure hardwarea automatikoki berrezarri honako kasu hauetan:
· Zure hardwareak ez ditu DTR eta RTS lineak GPIO0 eta CHIP_PU-ra konektatuta · DTR eta RTS lineak modu ezberdinean konfiguratuta daude · Ez dago halako serieko kontrol linearik inola ere
Zure hardware motaren arabera, baliteke zure ESP32 plaka eskuz Firmware Download moduan (berrezarri) jartzea ere.
· Espressifek ekoitzitako garapen-plaken kasuan, informazio hau dagokien hasierako gidetan edo erabiltzaile-gidetan aurki daiteke. AdibidezampAdibidez, ESP-IDF garapen-plaka eskuz berrezartzeko, eutsi sakatuta Abio botoia (GPIO0) eta sakatu EN botoia (CHIP_PU).
Beste hardware mota batzuetarako, saiatu GPIO0 behera tiratzen.
Funtzionamendu Normala Keinuka ari denean, irteera-erregistroa honelakoaren antzekoa ikusiko duzu:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –lehen=berrezarri_lehen -after=berrezarri_hardly write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Serieko ataka /dev/ttyUSB0 Konektatzen…….._ Txipa ESP32D0WDQ6 da (0 berrikuspena) Ezaugarriak: WiFi, BT, Dual Core, Kodetze Eskema Bat ere ez Kristala 40MHz da MAC: 24:0a:c4:05:b9:14 Stub-a igotzen… Stub-a exekutatzen… Stub-a martxan… Baud abiadura 460800ra aldatzen Aldatu da.
(hurrengo orrialdean jarraitzen du)
Espressif Sistemak
21 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
(aurreko orrialdetik jarraitua) Flash tamaina konfiguratzen… 3072 byte 103ra konprimatuta… 0x00008000-n idazten… (% 100) 3072 byte idatzi ditu (103 konprimituta) 0x00008000-n 0.0 segundotan (5962.8 kbit/s eraginkorra)… Datuen hasha egiaztatuta. 26096 byte 15408ra konprimatuta… 0x00001000-n idazten… (% 100) 26096 byte idatzi ditu (15408 konprimituta) 0x00001000-n 0.4 segundotan (546.7 kbit/s eraginkorra)… Datuen hasha egiaztatuta. 147104 byte 77364ra konprimatuta... 0x00010000-n idazten... (% 20) 0x00014000-n idazten... (% 40) 0x00018000-n idazten... (% 60) 0x0001c000-n idazten... (% 80) 0x00020000-n idazten... (% 100) 147104 byte idatzi dira (77364 konprimatuta) 0x00010000-n 1.9 segundotan (615,5 kbit/s eraginkorra)... Datuen hasha egiaztatuta.
Irteten... Gogor berrezartzen da RTS pin bidez... Eginda
Flash prozesuaren amaieran arazorik ez badago, plaka berrabiaraziko da eta thehello_worldp aplikazioa abiaraziko du. idf.py exekutatu beharrean Eclipse edo VS Code IDE erabili nahi baduzu, begiratu Eclipse Plugin, VSCode Extension.
Irteera kontrolatu ohello_worldpis martxan dagoen egiaztatzeko, idatzi idf.py -p PORT monitor (Ez ahaztu PORT zure serieko atakaren izenarekin ordezkatzea).
Komando honek IDF Monitor aplikazioa abiarazten du:
$ idf.py -p monitore idf_monitor exekutatzen […]/esp/hello_world/build direktorioan “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf” exekutatzen… — idf_monitor piztuta 115200 —– Irten: Ctrl+] | Menua: Ctrl+T | Laguntza: Ctrl+T eta ondoren Ctrl+H –ets 2016ko ekainak 8 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 2016ko ekainak 8 00:22:57 …
Abioko eta diagnostiko erregistroak gora joan ondoren, aplikazioak oHello world! inprimatuta ikusi beharko zenuke.
… Kaixo mundua! 10 segundotan berrabiaraziko da… Hau esp32 txipa da, 2 CPU nukleorekin, WiFi/BT/BLE, 1. silizio berrikuspena, 2 MB kanpoko flasha Gutxieneko heap tamaina librea: 298968 byte 9 segundotan berrabiaraziko da… 8 segundotan berrabiaraziko da… 7 segundotan berrabiaraziko da…
IDF monitorea irteteko, erabili Ctrl+] lasterbidea.
Espressif Sistemak
22 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
IDF monitoreak kargatu eta gutxira huts egiten badu, edo goiko mezuen ordez behean agertzen denaren antzeko zabor ausazkoa ikusten baduzu, ziurrenik zure plakak 26 MHz-ko kristala erabiltzen ari da. Garapen-plaka gehienen diseinuak 40 MHz erabiltzen dituzte, beraz, ESP-IDF-k maiztasun hau erabiltzen du balio lehenetsi gisa.
Halako arazoren bat baduzu, egin hau: 1. Irten monitorearen sistematik. 2. Itzuli menuko konfiguraziora. 3. Joan Osagaien konfigurazioa > Hardwarearen ezarpenak > XTAL konfigurazio nagusia > XTAL maiztasun nagusia atalera, eta gero aldatu CONFIG_XTAL_FREQ_SEL 26 MHz-ra. 4. Ondoren, eraiki eta flasheatu aplikazioa berriro.
ESP-IDFren egungo bertsioan, ESP32k onartzen dituen XTAL maiztasun nagusiak hauek dira:
· 26 MHz · 40 MHz
Oharra: Eraikuntza, flashatzea eta monitorizazioa urrats bakarrean konbina ditzakezu hau exekutatuz: idf.py -p PORT flash monitor
Ikus baita ere: · IDF Monitor lasterbide erabilgarriak eta IDF monitorearen erabilerari buruzko xehetasun gehiago lortzeko. · idf.py idf.py komando eta aukeren erreferentzia osoa lortzeko.
Hori da ESP32-rekin hasteko behar duzun guztia! Orain prest zaude beste adibide batzuk probatzeko.amples, edo zuzenean zure aplikazioak garatzera joan.
Garrantzitsua: ohi batzukampFitxategiek ez dute ESP32 onartzen, beharrezko hardwarea ez baitago ESP32-n sartuta, beraz, ezin da onartu. ESP32 bat eraikitzen ari bazaraampmesedez, egiaztatu README fitxategia file Onartutako Helburuen taularako. ESP32 helburua barne badago, edo taula batere ez badago, exampESP32-n funtzionatuko du.
Aholku gehigarriak
Baimen arazoak /dev/ttyUSB0 Linux banaketa batzuekin, /dev/ttyUSB0 portua irekitzeko huts egin du errore mezua jaso dezakezu ESP32 flasheatzen duzunean. Hau konpondu daiteke uneko erabiltzailea dialout taldera gehituz.
Pythonen bateragarritasuna ESP-IDF-k Python 3.7 edo berriagoa onartzen du. Gomendagarria da zure sistema eragilea baldintza hau betetzen duen bertsio berri batera eguneratzea. Beste aukera batzuk Python iturburuetatik instalatzea edo pyenv bezalako Python bertsio kudeaketa sistema bat erabiltzea dira.
Hasi Board Support Package-rekin Garapen-plaka batzuetan prototipoak azkartzeko, Board Support Packages (BSP) erabil ditzakezu, eta horrek plaka jakin baten hasiera funtzio-dei gutxi batzuk bezain erraza egiten du.
Espressif Sistemak
23 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
BSP batek garapen-plakan ematen diren hardware osagai guztiak onartzen ditu normalean. Pinout definizio eta hasieratze funtzioez gain, BSP batek kanpoko osagaien kontrolatzaileak ere baditu, hala nola sentsoreak, pantailak, audio kodekak, etab. BSPak IDF Osagaien Kudeatzailearen bidez banatzen dira, beraz, IDF Osagaien Erregistroan aurki daitezke. Hemen adibide batampESP-WROVER-KIT BSP zure proiektura nola gehitu erakusten du: idf.py add-dependency esp_wrover_kit
Gehiago adibidezampBSP erabileraren zatiak BSP ex-en aurki daitezke.amples karpeta.
Erlazionatutako dokumentuak Instalazio prozesua pertsonalizatu nahi duten erabiltzaile aurreratuentzat: · ESP-IDF tresnak eguneratzea Windows-en · Serieko konexioa ezartzea ESP32-rekin · Eclipse plugina · VSCode luzapena · IDF monitore
ESP-IDF tresnak eguneratzea Windows-en
Instalatu ESP-IDF tresnak script bat erabiliz Windows komando-gonbitetik, joan ESPIDF instalatuta dagoen direktoriora. Ondoren, exekutatu:
instalatu.bat
Powershell-erako, joan ESP-IDF instalatuta dagoen direktoriora. Ondoren, exekutatu:
instalatu.ps1
Honek ESP-IDF erabiltzeko beharrezkoak diren tresnak deskargatu eta instalatuko ditu. Tresnaren bertsio zehatza instalatuta badago, ez da ekintzarik egingo. Tresnak ESP-IDF Tresnen Instalazio prozesuan zehaztutako direktorio batean deskargatu eta instalatzen dira. Berez, hau C:Erabiltzaileenizena.espressif da.
Gehitu ESP-IDF tresnak PATH-ra esportazio-script bat erabiliz ESP-IDF tresnen instalatzaileak Hasi menuko lasterbide bat sortzen du oESP-IDF Komando-gonbiterako. Lasterbide honek Komando-gonbitaren leiho bat irekitzen du, non tresna guztiak dagoeneko dauden.
eskuragarri. Zenbait kasutan, baliteke ESP-IDF-rekin lan egin nahi izatea lasterbide hori erabiliz abiarazi ez den Komando-gonbitaren leiho batean. Hala bada, jarraitu beheko argibideei ESP-IDF tresnak PATH-era gehitzeko. ESP-IDF erabili behar duzun komando-gonbitan, joan ESP-IDF instalatuta dagoen direktoriora eta exekutatu export.bat:
cd %userprofile%espesp-idf esportazioa.bat
Bestela, ESP-IDF erabili behar duzun Powershellean, ESP-IDF instalatuta dagoen direktoriora joan eta exekutatu export.ps1:
cd ~/esp/esp-idf esportazioa.ps1
Hori eginda, tresnak komando-leiho honetan egongo dira eskuragarri.
ESP32-rekin serieko konexioa ezarri Atal honek ESP32 eta ordenagailuaren arteko serieko konexioa nola ezarri azaltzen du.
Espressif Sistemak
24 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Konektatu ESP32 ordenagailura Konektatu ESP32 plaka ordenagailura USB kablea erabiliz. Gailuaren kontrolatzailea automatikoki instalatzen ez bada, identifikatu USBtik serierako bihurgailu txipa zure ESP32 plakan (edo kanpoko bihurgailu donglean), bilatu kontrolatzaileak Interneten eta instalatu itzazu. Jarraian, Espressifek ekoitzitako ESP32 plaka gehienetan instalatutako USBtik serierako bihurgailu txipen zerrenda dago, kontrolatzaileen estekak barne:
· CP210x: CP210x USBtik UARTrako zubi VCP kontrolatzaileak · FTDI: FTDI COM ataka birtualeko kontrolatzaileak Mesedez, egiaztatu plakaren erabiltzailearen gida erabilitako USBtik serierako bihurgailu txipa zehatza ikusteko. Goiko kontrolatzaileak batez ere erreferentzia gisa dira. Egoera normaletan, kontrolatzaileak sistema eragile batekin batera etorri beharko lirateke eta automatikoki instalatu plaka ordenagailura konektatzean.
Egiaztatu portua Windows-en Egiaztatu identifikatutako COM portuen zerrenda Windows Gailu Kudeatzailean. Deskonektatu ESP32 eta konektatu berriro, zein portu desagertzen den zerrendatik eta berriro agertzen den egiaztatzeko. Beheko irudiek ESP32 DevKitC eta ESP32 WROVER KIT-en serieko portua erakusten dute.
13. irudia: ESP32-DevKitC-ren USBtik UARTerako zubia Windows Gailu Kudeatzailean
Egiaztatu ataka Linux eta macOS-en ESP32 plakaren (edo kanpoko bihurgailuaren donglearen) serieko atakaren gailuaren izena egiaztatzeko, exekutatu komando hau bi aldiz, lehenik plaka / donglea deskonektatuta, eta gero konektatuta. Bigarren aldiz agertzen den ataka behar duzuna da: Linux
ls /dev/tty*
macOS
Espressif Sistemak
25 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
14. irudia: ESP-WROVER-KIT-en bi USB serieko ataka Windows gailuen kudeatzailean
Espressif Sistemak
26 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
ls /dev/cu.* Oharra: macOS erabiltzaileak: serieko ataka ikusten ez baduzu, egiaztatu USB/serieko kontrolatzaileak instalatuta dituzula. Ikusi ESP32 ordenagailura konektatu atala kontrolatzaileen estekak ikusteko. macOS High Sierra (10.13)-rako, baliteke kontrolatzaileak kargatzea berariaz baimendu behar izatea. Ireki Sistemaren Hobespenak -> Segurtasuna eta Pribatutasuna -> Orokorra eta egiaztatu hemen lp garatzailearen oSystem Software-ri buruzko mezurik agertzen den, non garatzailearen izena Silicon Labs edo FTDI den.
Erabiltzailea Linuxen irteera-taldera gehitzea Une honetan saioa hasita duen erabiltzaileak serieko ataka USB bidez irakurtzeko eta idazteko sarbidea izan beharko luke. Linux banaketa gehienetan, hau erabiltzailea irteera-taldera gehituz egiten da komando hau erabiliz:
sudo usermod -a -G dialout $USER
Arch Linux-en erabiltzailea uucp taldean gehituz egiten da komando honekin:
sudo usermod -a -G uucp $USER
Ziurtatu berriro saioa hasten duzula serieko atakan irakurtzeko eta idazteko baimenak gaitzeko.
Serieko konexioa egiaztatu Orain egiaztatu serieko konexioa funtzionatzen duela. Serieko terminal programa bat erabiliz egin dezakezu hau, ESP32 berrezarri ondoren terminalean irteerarik jasotzen duzun egiaztatuz. ESP32-ren kontsolako baud abiadura lehenetsia 115200 da.
Windows eta Linux adibide honetanampAdibidez, PuTTY SSH bezeroa erabiliko dugu, bai Windows bai Linuxerako eskuragarri dagoena. Beste serieko programa batzuk erabil ditzakezu eta komunikazio parametroak ezar ditzakezu behean bezala. Exekutatu terminala eta ezarri identifikatutako serieko ataka. Baud abiadura = 115200 (beharrezkoa bada, aldatu hau erabiltzen ari den txiparen baud abiadura lehenetsira), datu bitak = 8, stop bitak = 1 eta paritatea = N. Jarraian adibideak daudeampWindows eta Linux-en ataka eta transmisio-parametro horiek (laburbilduz 115200-8-1-N bezala deskribatuta) ezartzeko pantaila-argazkiak. Gogoratu goiko urratsetan identifikatu duzun serieko ataka bera hautatzea. Ondoren, ireki serieko ataka terminalean eta egiaztatu ea ESP32-k inprimatutako erregistrorik ikusten duzun. Erregistroaren edukia ESP32-n kargatutako aplikazioaren araberakoa izango da, ikusi Adibidea.ampIrteera.
Oharra: Komunikazioa funtzionatzen duela egiaztatu ondoren, itxi serieko terminala. Terminaleko saioa irekita mantentzen baduzu, serieko ataka ezingo da erabili firmwarea geroago kargatzeko.
macOS Serieko terminal programa bat instalatzearen lana aurrezteko, macOS-ek pantaila komandoa eskaintzen du. · Linux eta macOS-en ataka egiaztatu atalean azaldu bezala, exekutatu:
ls /dev/cu.* · Antzeko irteera ikusi beharko zenuke:
/dev/cu.Bluetooth-Sarrerako-Ataka /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Irteera aldatu egingo da zure ordenagailura konektatutako plaka motaren eta kopuruaren arabera. Ondoren, aukeratu zure plakaren gailu-izena eta exekutatu (beharrezkoa bada, aldatu o115200 erabiltzen ari den txiparen baud-tasa lehenetsia):
pantaila /dev/cu.gailu_izena 115200 Ordezkatu gailu_izena ls /dev/cu.* exekutatzen aurkitutako izenarekin.
Espressif Sistemak
27 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
15. irudia: Serieko komunikazioa konfiguratzea PuTTY-n Windows-en
Espressif Sistemak
28 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
16. irudia: Serieko komunikazioa konfiguratzea PuTTY-n Linuxen
Espressif Sistemak
29 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
· Pantailan bistaratzen den erregistro bat bilatzen ari zarena. Erregistroaren edukia ESP32-n kargatutako aplikazioaren araberakoa izango da, ikus AdibideaampIrteera. Pantaila-saiotik irteteko, idatzi Ctrl-A + .
Oharra: Komunikazioa ondo dabilen egiaztatu ondoren, ez ahaztu pantaila-saiotik irtetea. Hori egiten ez baduzu eta terminalaren leihoa ixten baduzu, serieko ataka ezingo da erabili firmwarea geroago kargatzeko.
ExampIrteera adibide batamperregistroa behean erakusten da. Berrezarri taula ezer ikusten ez baduzu. ets 2016ko ekainak 8 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 2016ko ekainak 8 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stage abio-kargatzailea I (45) abiaraztea: konpilazio-denbora 18:48:10
…
Irakurgarria den erregistro-irteera ikusten baduzu, serieko konexioa funtzionatzen ari dela esan nahi du eta instalazioarekin jarraitzeko eta azkenik aplikazioa ESP32ra igotzeko prest zaudela.
Oharra: Serieko ataken kableatu konfigurazio batzuetarako, RTS eta DTR serieko pinak desgaitu behar dira terminal programan ESP32 abiarazi eta serieko irteera sortu aurretik. Hori hardwarearen beraren araberakoa da, garapen plaka gehienek (Espressif plaka guztiak barne) ez dute arazo hau. Arazoa RTS eta DTR zuzenean EN eta GPIO0 pinetara kableatzen badira gertatzen da. Ikusi esptool dokumentazioa xehetasun gehiago lortzeko.
5. urratsetik iritsi bazara. ESP32 garapenerako softwarea instalatzerakoan ESP-IDFri buruzko lehen urratsak, orduan 5. urratsarekin jarrai dezakezu. ESP-IDFri buruzko lehen urratsak.
IDF Monitor IDF Monitor batez ere serieko terminal programa bat da, datu serieak helburuko gailuaren serieko atakara eta atakatik bidaltzen dituena. IDF-ren funtzio espezifiko batzuk ere eskaintzen ditu. IDF Monitor IDF proiektu batetik abiarazi daiteke idf.py monitor exekutatuz.
Teklatuko lasterbideak IDF Monitorearekin erraz elkarreragiteko, erabili taulan emandako teklatuko lasterbideak.
Espressif Sistemak
30 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Teklatuko lasterbidea Ktrl+] Ktrl+T
· Ktrl+T
· Ktrl+] · Ktrl+P
· Ktrl+R
· Ktrl+F
· Ktrl+A (edo A)
· Ktrl+Y
· Ktrl+L
· Ktrl+I (edo I)
· Ktrl+H (edo H)
· Ktrl+X (edo X)
Ktrl+C
Ekintza
Deskribapena
Programatik irten Menu ihes tekla Menuko karakterea bera urrutiko aginteari bidali
Bidali irteerako karakterea bera urruneko gailura
Berrezarri helburua abioko kargatzailean aplikazioa RTS lerroaren bidez pausatzeko
Berrezarri helburu-taula RTS bidez
Eraiki eta flasheatu proiektua
Aplikazioa eraiki eta flasheatu bakarrik
Gelditu/berrekin erregistroaren irteera pantailan inprimatzea
Gelditu/berrekin erregistroaren irteera gordeta hemen: file
Gelditu/berrekin hasteko orduaamps
inprimatzea
Bistaratu teklatuko lasterbide guztiak
Sakatu eta jarraitu behean emandako tekla bat erabiliz.
Helburua berrezartzen du abioko kargatzailean RTS linearen bidez (konektatuta badago), plakak ezer ez exekutatzeko. Erabilgarria beste gailu bat abiarazteko itxaron behar duzunean. Helburuko plaka berrezartzen du eta aplikazioa berrabiarazten du RTS linearen bidez (konektatuta badago).
idf_monitor pausatzen du proiektuaren flash helburua exekutatzeko, eta gero idf_monitor berrabiarazten du. Aldatutako edozein iturburu-prozesu files berriro konpilatu eta berriro flashatzen dira. Helburuaren encrypted-flash exekutatzen da idf_monitor -E argumentuarekin abiarazi bazen. idf_monitor pausatzen du app-flash helburua exekutatzeko, eta gero idf_monitor berrabiarazten du. Flash helburuaren antzekoa, baina aplikazio nagusia bakarrik eraikitzen eta berriro flashatzen da. Helburuaren encrypted-app-flash exekutatzen da idf_monitor -E argumentuarekin abiarazi bazen. Sarrerako serieko datu guztiak baztertzen ditu aktibatuta dagoenean. Erregistroaren irteera azkar pausatu eta aztertzea ahalbidetzen du monitore utzi gabe. Sortzen du... file proiektuaren direktorioan eta irteera bertan idazten da file teklatu lasterbide berarekin desgaitu arte (edo IDF Monitorea itxi arte). IDF Monitoreak ordutegi bat inprima dezakeamp lerro bakoitzaren hasieran. Denbora gehienaamp formatua alda daiteke –timest-en araberaamp-format komando-lerroko argumentua.
Irten programatik
Aplikazio martxan eten
IDF Monitorea pausatzen du eta GDB proiektuaren arazgailua exekutatzen du aplikazioa exekuzio-garaian arazteko. Horretarako :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME aukera gaituta egon behar da.
Sakatzen diren tekla guztiak, Ctrl-] eta Ctrl-T izan ezik, serieko atakaren bidez bidaliko dira.
IDFren ezaugarri espezifikoak
Helbideen deskodetze automatikoa ESP-IDF-k 0x4_______ formako kode hamaseitar baten helbidea irteeran ematen duenean, IDF Monitoreak addr2line_ erabiltzen du iturburu-kodean kokapena bilatzeko eta funtzio-izena aurkitzeko.
ESP-IDF aplikazio bat huts egiten badu eta izua sortzen bada, erregistro-zabortegi bat eta atzera-aztarna bat sortzen dira, honako hau bezalakoa:
Espressif Sistemak
31 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
StoreProhibited motako Guru Meditazio errorea gertatu da 0 nukleoan. Salbuespena izan zen
kudeatu gabe.
Erregistroaren zabortegia:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
0x00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
A14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 BARKATUTAKOA:
0x0000001d
EXCVADR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitoreak xehetasun gehiago gehitzen dizkio zabortegiari:
StoreProhibited motako Guru Meditazio errorea gertatu da 0 nukleoan. Salbuespena izan zen
kudeatu gabe.
Erregistroaren zabortegia:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: egin_zerbait_istripua_emateko /home/gus/esp/32/idf/ex helbideanamples/hasteko/
kaixo_mundua/main/./kaixo_mundua_main.c:57
(lerrokatuta) inner_dont_crash hemen: /home/gus/esp/32/idf/examples/hasteko/kaixo_
mundua/nagusia/./kaixo_mundua_nagusia.c:52
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
0x00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
A14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 BARKATUTAKOA:
0x0000001d
EXCVADR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (lerrokatuta) inner_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash hemen: /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash hemen: /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main at /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254 helbidean
Helbide bakoitza deskodetzeko, IDF Monitoreak komando hau exekutatzen du atzeko planoan: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Oharra: Ezarri ESP_MONITOR_DECODE ingurune-aldagaia 0 baliora edo deitu idf_monitor.py komando-lerro espezifiko batekin
Espressif Sistemak
32 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
aukera: idf_monitor.py –disable-address-decoding helbideen deskodetzea desgaitzeko.
Helburua Berrezarri Konexioan Berez, IDF Monitoreak helburua berrezarriko du bertara konektatzean. Helburu txiparen berrezarpena DTR eta RTS serieko lineak erabiliz egiten da. IDF Monitoreak helburua automatikoki berrezartzea saihesteko konexioan, deitu IDF Monitorera –no-reset aukerarekin (adibidez, idf_monitor.py –no-reset).
Oharra: –no-reset aukerak portaera bera aplikatzen du IDF Monitor ataka jakin batera konektatzean ere (adibidez, idf.py monitor –no-reset -p [ATAKA]).
GDB GDBStub-ekin abiaraztea GDBStub exekuzio-denbora arazketa-funtzio erabilgarria da, helburuan exekutatzen dena eta serieko ataka bidez ostalariarengana konektatzen dena arazketa-komandoak jasotzeko. GDBStub-ek memoria eta aldagaiak irakurtzea, dei-pila-markoak aztertzea eta abar bezalako komandoak onartzen ditu. GDBStub J baino moldakorragoa ez den arren...TAG arazketa egiteko, ez du hardware berezirik behar (adibidez, JTAG USB zubira) komunikazioa serieko ataka osorik egiten baita. Helburu bat GDBStub atzeko planoan exekutatzeko konfigura daiteke CONFIG_ESP_SYSTEM_PANIC GDBStub baliora ezarriz exekuzio-garaian. GDBStub atzeko planoan exekutatuko da Ctrl+C mezu bat serieko atakatik bidali eta GDBStub-ek programa hausten (hau da, exekuzioa geldiarazten) duen arte, horrela GDBStub-ek arazketa-komandoak kudeatu ahal izateko. Gainera, panic kudeatzailea GDBStub kraskatzen denean exekutatzeko konfigura daiteke CONFIG_ESP_SYSTEM_PANIC GDBStub baliora ezarriz panic-ean. Kraskadura bat gertatzen denean, GDBStub-ek kate-eredu berezi bat emango du serieko atakan exekutatzen ari dela adierazteko. Bi kasuetan (hau da, Ctrl+C mezua bidaltzean edo kate-eredu berezia jasotzean), IDF Monitoreak automatikoki abiaraziko du GDB erabiltzaileak arazketa-komandoak bidaltzeko aukera izan dezan. GDB irten ondoren, helburua RTS serieko linearen bidez berrezartzen da. Linea hau konektatuta ez badago, erabiltzaileek beren helburua berrezarri dezakete (taularen Berrezarri botoia sakatuz).
Oharra: Atzeko planoan, IDF Monitoreak komando hau exekutatzen du GDB abiarazteko:
xtensa-esp32-elf-gdb -ex “serieko baud BAUD ezarri” -ex “helburu urruneko PORTUA” -ex eten build/PROJECT.elf :idf_target:`Kaixo IZENA txipa`
Irteera Iragazketa IDF monitore gisa dei daiteke idf.py monitor –print-filter=”xyz”, non –print-filter irteera iragazteko parametroa den. Balio lehenetsia kate huts bat da, hau da, dena inprimatzen da.
Inprimatu beharreko murrizketak multzo gisa zehaztu daitezketag>: elementuak nontag> da tag soka eta {N, E, W, I, D, V, *} multzoko karaktere bat da, erregistrorako maila bati erreferentzia egiten diona.
Adibidezample, PRINT_FILTER=”tag1:W”-ek ESP_LOGW(“)-rekin idatzitako irteerak bakarrik bat datoz eta inprimatzen ditutag1”, …) edo hitz-jario maila baxuagoan, adibidez ESP_LOGE(“tag1″, …). Zehaztu gabe edo * erabiltzeak maila zehatza ezartzen du lehenespenez.
Oharra: Erabili erregistro nagusia erregistro liburutegiaren bidez behar ez dituzun irteerak konpilazioan desgaitzeko. IDF monitorearekin irteera iragaztea bigarren mailako irtenbide bat da, aplikazioa berriro konpilatu gabe iragazketa aukerak doitzeko erabilgarria izan daitekeena.
Zure aplikazioa tags ez du hutsunerik, izartxorik * edo bi punturik izan behar irteerako iragazketa funtzioarekin bateragarria izateko.
Aplikazioko irteeraren azken lerroaren ondoren ez badago orga-itzulerarik, irteerako iragazketa nahasgarria izan daiteke, hau da, monitoreak lerroa inprimatzen hasten da eta geroago ikusten du lerroa ez zela idatzi behar. Arazo ezaguna da eta saihestu daiteke beti orga-itzulera bat gehituz (batez ere berehala irteerarik ez dagoenean).
Espressif Sistemak
33 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
ExampIragazketa arauen zerrenda:
· * edozeinekin bat etortzeko erabil daiteke tagsHala ere, PRINT_FILTER=”*:I katea tag1:E” horri dagokionez tag1-ek erroreak bakarrik inprimatzen ditu, araua delako tag1-ek lehentasun handiagoa du *-ren arauaren aldean.
· Lehenetsitako (hutsik dagoen) araua *:V-ren baliokidea da, bat etortzen baita tag Verbose mailan edo baxuagoan dena bat etortzea esan nahi du.
· “*:N”-k ez ditu soilik erregistro-funtzioen irteerak kentzen, baita printf-ek egindako inprimaketak ere, etab. Hori ekiditeko, erabili *:E edo hitz-maila altuago bat.
· Arauak “tag1:V”, “tag1:v”, “tag1:”, “tag1:*”, eta “tag1” baliokideak dira. · “ arauatag1:W tag1:E”-ren baliokidea da “tag1:E” gauza bera gertatzen delako ondorioz tag
izenak aurrekoa gainidazten du. · Araua “tag1:I tag2:W” inprimaketak bakarrik tag1 informazio-berdintasun mailan edo baxuagoan eta tag2 abisuan
hitz-maila edo baxuagoa. · Araua “tag1:I tag2:W tag3:N” funtsean aurrekoaren baliokidea da, zeren eta tag3:N-k zehazten du
hori tag3 ez da inprimatu behar. · tag3:N arauan “tag1:I tag2:W tag3:N *:V” esanguratsuagoa da, gabe tag3:N
tag3 mezu inprimatu zitezkeen; erroreak tag1 eta tag2 zehaztutako (edo baxuagoko) hitz-mailan inprimatuko da eta gainerako guztia lehenespenez inprimatuko da.
Iragazketa konplexuago baten adibideaampHurrengo erregistro zatia iragazketa aukerarik gabe eskuratu da:
karga:0x40078000, luzera:13564 sarrera 0x40078d4c E (31) esp_image: 0x30000-n irudiak byte magiko baliogabea du W (31) esp_image: 0x30000-n irudiak SPI modu baliogabea du 255 E (39) abiaraztea: Fabrikako aplikazioaren partizioa ez da abiarazteko modukoa I (568) cpu_start: Pro CPUa martxan. I (569) heap_init: Hasieratzen. RAM erabilgarria esleipen dinamikorako: I (603) cpu_start: Pro CPUa abiarazteko erabiltzailearen kodea D (309) light_driver: [light_init, 74]:egoera: 1, modua: 2 D (318) vfs: esp_vfs_register_fd_range arrakastatsua da <54 barrutian; 64) eta VFS ID 1 I (328) wifi: wifi kontrolatzailearen zeregina: 3ffdbf84, prio:23, stack:4096, core=0
PRINT_FILTER=”wifi esp_image:E light_driver:I” iragazketa aukeren irteera behean ematen da:
E (31) esp_image: 0x30000-n irudiak byte magiko baliogabea du I (328) wifi: wifi kontrolatzailearen zeregina: 3ffdbf84, prio:23, stack:4096, core=0
“PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" aukerek irteera hau erakusten dute:
karga:0x40078000, luzera:13564 sarrera 0x40078d4c I (569) heap_init: Hasieratzen. RAM erabilgarria esleipen dinamikorako: D (309) light_driver: [light_init, 74]: egoera: 1, modua: 2
IDF Monitorearekin dauden arazo ezagunak
Windows-en ikusitako arazoak
· Gezi-teklak, baita beste tekla batzuk ere, ez dute funtzionatzen GDBn Windows kontsolaren mugak direla eta. · Batzuetan, oidf.pypex-ek irteten denean, 30 segundo arte gelditu daiteke IDF Monitoreak berriro abiarazi aurretik. · ogdbpis exekutatzen denean, denbora labur batez gelditu daiteke GDBStub-ekin komunikatzen hasi aurretik.
Espressif Sistemak
34 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi Linux eta macOS-erako tresna-kate estandarraren konfigurazioa
Instalazioa pausoz pauso Instalazio prozesuan zehar gidatuko zaituen bide-orri zehatza da hau.
Garapen Ingurunea Konfiguratzea Hauek dira zure ESP32rako ESP-IDF konfiguratzeko urratsak. · 1. urratsa. Instalatu Aurrebaldintzak · 2. urratsa. Eskuratu ESP-IDF · 3. urratsa. Konfiguratu tresnak · 4. urratsa. Konfiguratu ingurune aldagaiak · 5. urratsa. Lehen urratsak ESP-IDF-n
1. urratsa. Instalatzeko aurrebaldintzak ESP-IDF ESP32-rekin erabiltzeko, zure sistema eragilearen araberako software pakete batzuk instalatu behar dituzu. Konfigurazio gida honek Linux eta macOS oinarritutako sistemetan dena instalatzen lagunduko dizu.
Linux erabiltzaileentzat ESP-IDF erabiliz konpilatzeko, pakete hauek beharko dituzu. Exekutatzeko komandoa erabiltzen ari zaren Linux banaketaren araberakoa da:
· Ubuntu eta Debian: sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 eta 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 oraindik onartzen da, baina CentOS 8 bertsioa gomendatzen da erabiltzaile esperientzia hobea lortzeko. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Oharra: · ESP-IDF-rekin erabiltzeko CMake 3.16 bertsioa edo berriagoa behar da. Exekutatu otools/idf_tools.py install cmakepto bertsio egoki bat instalatzeko, zure sistema eragilearen bertsioak ez badu halakorik. · Zure Linux banaketa goiko zerrendan ikusten ez baduzu, begiratu bere dokumentazioa paketeak instalatzeko zein komando erabili behar den jakiteko.
macOS erabiltzaileentzat ESP-IDF-k macOS-en lehenespenez instalatutako Python bertsioa erabiliko du. · CMake eta Ninja build instalatu: HomeBrew baduzu, hau exekutatu dezakezu: brew install cmake ninja dfu-util MacPorts baduzu, hau exekutatu dezakezu: sudo port install cmake ninja dfu-util Bestela, kontsultatu CMake eta Ninja hasierako orrialdeak macOS instalazioen deskargetarako.
Espressif Sistemak
35 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
· Oso gomendagarria da ccache instalatzea eraikuntza azkarragoak lortzeko. HomeBrew baduzu, hau `brew install ccache` edo `sudo port install ccache` bidez egin daiteke MacPorts-en.
Oharra: Edozein urratsetan errore hau agertzen bada: xcrun: errorea: garatzaile aktiboaren bide baliogabea (/Library/Developer/CommandLineTools), xcrun falta da hemen: /Library/Developer/CommandLineTools/usr/bin/xcrun
Ondoren, XCode komando-lerroko tresnak instalatu beharko dituzu jarraitzeko. Hauek instala ditzakezu xcode-select –install exekutatuz.
Apple M1 erabiltzaileak Apple M1 plataforma erabiltzen baduzu eta honelako errore bat ikusten baduzu: ABISUA: xtensa-esp32-elf tresnaren esp-2021r2-patch3-8.4.0 bertsioaren direktorioa badago, baina tresna ez da aurkitu ERROREA: xtensa-esp32-elf tresnak ez du instalatuta dauden bertsiorik. Exekutatu 'install.sh' instalatzeko.
edo: zsh: CPU mota okerra exekutagarrian: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Ondoren, Apple Rosetta 2 instalatu beharko duzu /usr/sbin/softwareupdate –install-rosetta –agree-to-license komandoa exekutatuz.
Python 3 instalatzea macOS Catalina 10.15 bertsio-oharretan oinarrituta, ez da gomendagarria Python 2.7 erabiltzea eta Python 2.7 ez da lehenespenez sartuko macOS-en etorkizuneko bertsioetan. Egiaztatu zein Python duzun une honetan: python –version
Irteera Python 2.7.17 bezalakoa bada, zure lehenetsitako interpretea Python 2.7 da. Hala bada, egiaztatu Python 3 zure ordenagailuan instalatuta ez dagoen: python3 –version
Goiko komandoak errore bat itzultzen badu, Python 3 ez dagoela instalatuta esan nahi du. Jarraian,view Python 3 instalatzeko urratsak.
· HomeBrew-ekin instalatzea honela egin daiteke: brew install python3
· MacPorts baduzu, hau exekutatu dezakezu: sudo port install python38
2. urratsa. Eskuratu ESP-IDF ESP32rako aplikazioak eraikitzeko, Espressifek ESP-IDF biltegian eskaintzen dituen software liburutegiak behar dituzu. ESP-IDF lortzeko, joan instalazio direktoriora eta klonatu biltegia git clone erabiliz, zure sistema eragilerako zehaztutako argibideei jarraituz. Ireki Terminala eta exekutatu komando hauek:
Espressif Sistemak
36 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
mkdir -p ~/esp cd ~/esp git klon -b v5.0.9 –errekurtsiboa https://github.com/espressif/esp-idf.git
ESP-IDF ~/esp/esp-idf-era deskargatuko da. Kontsultatu ESP-IDF bertsioak egoera jakin batean zein ESP-IDF bertsio erabili behar den jakiteko.
3. urratsa. Tresnak konfiguratu ESP-IDFz gain, ESP-IDFk erabiltzen dituen tresnak ere instalatu behar dituzu, hala nola konpiladorea, arazitzailea, Python paketeak, etab., ESP32 onartzen duten proiektuetarako. cd ~/esp/esp-idf ./install.sh esp32
edo Fish shell cd-rekin ~/esp/esp-idf ./install.fish esp32
Goiko komandoek ESP32rako tresnak soilik instalatzen dituzte. Txip helburu gehiagotarako proiektuak garatu nahi badituzu, denak zerrendatu eta exekutatu beharko zenituzke, adibidez.ampfitxategia: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
edo Fish shell cd-rekin ~/esp/esp-idf ./install.fish esp32,esp32s2
Onartutako helburu guztietarako tresnak instalatzeko, exekutatu komando hau: cd ~/esp/esp-idf ./install.sh all
edo Fish shell cd-rekin ~/esp/esp-idf ./install.fish all
Oharra: macOS erabiltzaileentzat, urrats batean errore hau agertzen bada:urlirekitze errorea [SSL: CERTIFICATE_VERIFY_FAILED] ziurtagiriaren egiaztapena huts egin du: ezin izan da tokiko jaulkitzailearen ziurtagiria lortu (_ssl.c:xxx)
Ziurtagiriak instalatzeko, Install Certificates.command exekutatu dezakezu zure ordenagailuko Python karpetan. Xehetasunetarako, ikusi Deskargatzeko errorea ESP-IDF tresnak instalatzean.
Alternatiba File Deskargak Tresnen instalatzaileak hainbat deskargatzen ditu fileGitHub bertsioei erantsita dago. GitHub-era sartzea motela bada, ingurune aldagai bat ezar daiteke GitHub-eko aktiboen deskargetarako Espressifns deskarga zerbitzaria lehenesteko.
Oharra: Ezarpen honek GitHub-eko bertsioetatik deskargatutako tresna indibidualak soilik kontrolatzen ditu, ez ditu aldatzen URLEdozein Git biltegira sartzeko erabiltzen da.
Tresnak instalatzerakoan Espressif deskargatzeko zerbitzaria lehenesteko, erabili komando-sekuentzia hau install.sh exekutatzean:
Espressif Sistemak
37 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Tresnen instalazio-bidea pertsonalizatzea Urrats honetan aurkeztutako scriptek ESP-IDF-k behar dituen konpilazio-tresnak erabiltzailearen etxeko direktorioan instalatzen dituzte: $HOME/.espressif Linuxen. Tresnak beste direktorio batean instalatu nahi badituzu, ezarri IDF_TOOLS_PATH ingurune-aldagaia instalazio-scriptak exekutatu aurretik. Ziurtatu zure erabiltzaile-kontuak bide hau irakurri eta idazteko baimen nahikoa duela. IDF_TOOLS_PATH aldatzen baduzu, ziurtatu balio bera duela instalazio-scripta (install.bat, install.ps1 edo install.sh) eta esportazio-scripta (export.bat, export.ps1 edo export.sh) exekutatzen diren bakoitzean.
4. urratsa. Ingurune-aldagaiak konfiguratu Instalatutako tresnak ez dira oraindik PATH ingurune-aldagaian gehitu. Tresnak komando-lerrotik erabilgarri egiteko, ingurune-aldagai batzuk ezarri behar dira. ESP-IDF-k hori egiten duen beste script bat eskaintzen du. ESP-IDF erabiliko duzun terminalean, exekutatu:
. $HOME/esp/esp-idf/export.sh
edo arrainentzat (arrainen 3.0.0 bertsiotik aurrera bakarrik onartzen da):
. $HOME/esp/esp-idf/export.fish
Kontuan izan hasierako puntuaren eta bidearen arteko tartea! esp-idf maiz erabiltzeko asmoa baduzu, alias bat sor dezakezu export.sh exekutatzeko:
1. Kopiatu eta itsatsi komando hau zure shellns pro-nfile (.profile, .bashrc, .zprofile, etab.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Freskatu konfigurazioa terminal saioa berrabiaraziz edo source [path to pro] exekutatuz.file],
adibidezample, iturburua ~/.bashrc. Orain get_idf exekutatu dezakezu esp-idf ingurunea edozein terminal saiotan konfiguratzeko edo freskatzeko. Teknikoki, export.sh gehi diezaiokezu zure shellns pro-ri.file zuzenean; hala ere, ez da gomendagarria. Horrela eginez gero, IDF ingurune birtuala aktibatzen da terminal saio guztietan (IDF beharrezkoa ez den saioetan barne), ingurune birtualaren helburua zapuztuz eta ziurrenik beste software batzuei eraginez.
5. urratsa. Lehen urratsak ESP-IDF-n Orain, baldintza guztiak betetzen direnez, hurrengo gaiak zure lehen proiektua nola hasi erakutsiko dizu. Gida honek ESP-IDF erabiltzeko lehen urratsetan lagunduko dizu. Jarraitu gida honi ESP32-n proiektu berri bat hasteko eta gailuaren irteera eraikitzeko, flasheatzeko eta monitorizatzeko.
Oharra: ESP-IDF oraindik instalatu ez baduzu, joan Instalaziora eta jarraitu argibideei gida hau erabiltzeko beharrezko software guztia lortzeko.
Proiektu bat hasi Orain prest zaude zure aplikazioa ESP32rako prestatzeko. getstarted/hello_world proiektuarekin has zaitezke ex-tikamples direktorioa ESP-IDF-n.
Garrantzitsua: ESP-IDF eraikuntza-sistemak ez ditu hutsuneak onartzen ez ESP-IDFrako ez proiektuetarako bideetan.
Kopiatu get-started/hello_world proiektua ~/esp direktoriora:
Espressif Sistemak
38 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
cd ~/esp cp -r $IDF_PATH/adibamples/get-started/hello_world .
Oharra: Hainbat adibide daudeample proiektuak examples direktorioa ESP-IDF-n. Edozein proiektu kopiatu dezakezu goian aurkeztutako modu berean eta exekutatu. Exampleak lekuan bertan lehenik kopiatu gabe.
Konektatu zure gailua Orain konektatu zure ESP32 plaka ordenagailura eta egiaztatu zein serieko ataka azpian dagoen ikusgai plaka. Serieko atakek izendapen eredu hauek dituzte:
· Linux: /dev/tty-rekin hasita · macOS: /dev/cu-rekin hasita. Serieko atakaren izena nola egiaztatu ez badakizu, jo ezazu ESP32-rekin serieko konexioa ezartzea atalera xehetasun gehiago lortzeko.
Oharra: eduki portuaren izena eskura hurrengo urratsetan beharko duzulako.
Konfiguratu zure proiektua Joan zaitez zure hello_world direktoriora, ezarri ESP32 helburu gisa eta exekutatu proiektuaren konfigurazio utilitatea menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Proiektu berri bat ireki ondoren, lehenik helburua idf.py set-target esp32 fitxategiarekin ezarri beharko zenuke. Kontuan izan proiektuan dauden build-ak eta konfigurazioak, baldin badaude, prozesu honetan garbitu eta hasieratuko direla. Helburua ingurune-aldagaian gorde daiteke urrats hau guztiz saltatzeko. Informazio gehiago lortzeko, ikusi Hautatu Helburu Txipa: set-target. Aurreko urratsak behar bezala egin badira, menu hau agertuko da:
17. irudia: Proiektuaren konfigurazioa – Hasierako leihoa Menu hau erabiltzen ari zara proiektuaren aldagai espezifikoak konfiguratzeko, adibidez, Wi-Fi sarearen izena eta pasahitza, prozesadorearen abiadura, etab. Proiektua menuconfig-ekin konfiguratzea saltatu daiteke forhello_worldp-erako, ex hau baitaample-rekin exekutatzen da
Espressif Sistemak
39 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
konfigurazio lehenetsia.
Arreta: ESP32-DevKitC plaka ESP32-SOLO-1 moduluarekin edo ESP32-DevKitM-1 plaka ESP32-MIN1-1(1U) moduluarekin erabiltzen baduzu, gaitu nukleo bakarreko modua (CONFIG_FREERTOS_UNICORE) menuconfig-en ex flashatu aurretik.amples.
Oharra: Menuaren koloreak desberdinak izan daitezke zure terminalean. Itxura alda dezakezu –style aukerarekin. Informazio gehiago lortzeko, exekutatu idf.py menuconfig –help komandoa.
Garapen-plaka bateragarrietako bat erabiltzen ari bazara, garapena bizkortu dezakezu Plaka Laguntza Paketea erabiliz. Informazio gehiago lortzeko, ikusi Aholku Gehigarriak.
Eraiki proiektua Eraiki proiektua exekutatu hau eginez:
idf.py eraiki
Komando honek aplikazioa eta ESP-IDF osagai guztiak konpilatuko ditu, ondoren abio-kargatzailea, partizio-taula eta aplikazioaren bitarrak sortuko ditu.
$ idf.py build cmake exekutatzen /path/to/hello_world/build direktorioan “cmake -G Ninja –warn-uninitialized /path/to/hello_world” exekutatzen… Hasieratu gabeko balioei buruz abisatzen. — Git aurkitua: /usr/bin/git (“2.17.0” bertsioa aurkitua) — Konfigurazioagatik aws_iot osagai hutsa eraikitzen — Osagaien izenak: … — Osagaien bideak: …
… (eraikitzeko sistemaren irteerako lerro gehiago)
[527/527] hello_world.bin esptool.py v2.3.1 sortzen
Proiektuaren eraikuntza osatu da. Flashatzeko, exekutatu komando hau: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin edo exekutatu 'idf.py -p PORT flash'
Akatsik ez badago, eraikitzea amaituko da firmware .bin binarioa sortuz files.
Flashatu gailuan Flashatu eraiki berri dituzun binarioak (bootloader.bin, partition-table.bin eta hello_world.bin) zure ESP32 plakan exekutatu hau eginez:
idf.py -p PORT [-b BAUD] flash
Ordeztu PORT zure ESP32 plakaren serieko ataka izenarekin. Keinukariaren baud abiadura ere alda dezakezu BAUD behar duzun baud abiadurarekin ordezkatuz. Lehenetsitako baud abiadura 460800 da. idf.py argumentuei buruzko informazio gehiago lortzeko, ikus idf.py.
Oharra: flash aukerak automatikoki eraikitzen eta flashatzen du proiektua, beraz, ez da beharrezkoa idf.py build exekutatzea.
Espressif Sistemak
40 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Arazoak izan dituzu flasheatzen ari zaren bitartean? Komandoa exekutatzen baduzu eta "Failed to connectp" bezalako erroreak ikusten badituzu, hainbat arrazoi egon daitezke horretarako. Arrazoietako bat esptool.py-k izandako arazoak izan daitezke, txipa berrezartzeko, ROM abioko kargatzailearekin elkarreragiteko eta firmwarea flashatzeko eraikuntza-sistemak deitzen duen utilitatea. Probatzeko irtenbide erraz bat eskuzko berrezartzea da, behean deskribatzen dena, eta laguntzen ez badu, arazo posibleei buruzko xehetasun gehiago aurki ditzakezu Arazoak Konpontzea atalean.
esptool.py-k ESP32 automatikoki berrezartzen du USB serieko bihurgailu txiparen DTR eta RTS kontrol lerroak berretsiz, hau da, FTDI edo CP210x (informazio gehiago lortzeko, ikus ESP32-rekin serieko konexioa ezartzea). DTR eta RTS kontrol lerroak, aldi berean, ESP32-ren GPIO0 eta CHIP_PU (EN) pinetara konektatuta daude, eta horrela bolumena aldatzen da.tagDTR eta RTS mailek ESP32 Firmware Download moduan abiaraziko dute. Adibide gisaampAdibidez, begiratu ESP32 DevKitC garapen-plakaren eskema.
Oro har, ez zenuke arazorik izan behar esp-idf garapen-plaka ofizialekin. Hala ere, esptool.py-k ezin du zure hardwarea automatikoki berrezarri honako kasu hauetan:
· Zure hardwareak ez ditu DTR eta RTS lineak GPIO0 eta CHIP_PU-ra konektatuta · DTR eta RTS lineak modu ezberdinean konfiguratuta daude · Ez dago halako serieko kontrol linearik inola ere
Zure hardware motaren arabera, baliteke zure ESP32 plaka eskuz Firmware Download moduan (berrezarri) jartzea ere.
· Espressifek ekoitzitako garapen-plaken kasuan, informazio hau dagokien hasierako gidetan edo erabiltzaile-gidetan aurki daiteke. AdibidezampAdibidez, ESP-IDF garapen-plaka eskuz berrezartzeko, eutsi sakatuta Abio botoia (GPIO0) eta sakatu EN botoia (CHIP_PU).
Beste hardware mota batzuetarako, saiatu GPIO0 behera tiratzen.
Funtzionamendu Normala Keinuka ari denean, irteera-erregistroa honelakoaren antzekoa ikusiko duzu:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –lehen=berrezarri_lehen -after=berrezarri_hardly write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Serieko ataka /dev/ttyUSB0 Konektatzen…….._ Txipa ESP32D0WDQ6 da (0 berrikuspena) Ezaugarriak: WiFi, BT, Dual Core, Kodetze Eskema Bat ere ez Kristala 40MHz da MAC: 24:0a:c4:05:b9:14 Stub-a igotzen… Stub-a exekutatzen… Stub-a martxan… Baud abiadura 460800ra aldatzen Aldatu da. Flash tamaina konfiguratzen… 3072 byte 103ra konprimatuta… 0x00008000-n idazten… (% 100) 3072 byte idatzi dira (103 konprimituta) 0x00008000-n 0.0 segundotan (5962.8 kbit/s eraginkorra)… Datuen hasha egiaztatuta. 26096 byte 15408ra konprimatuta… 0x00001000-n idazten… (% 100) 26096 byte idatzi dira (15408 konprimituta) 0x00001000-n 0.4 segundotan (546.7 kbit/s eraginkorra)… Datuen hasha egiaztatuta. 147104 byte 77364ra konprimatuta… 0x00010000-n idazten… (% 20) 0x00014000-n idazten… (% 40) 0x00018000-n idazten… (% 60) 0x0001c000-n idazten… (% 80)
(hurrengo orrialdean jarraitzen du)
Espressif Sistemak
41 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
(aurreko orrialdetik jarraitua) 0x00020000-n idazten… (% 100) 147104 byte idatzi ditu (77364 konprimituta) 0x00010000-n 1.9 segundotan (615,5 kbit/s eraginkorra)… Datuen hasha egiaztatuta.
Irteten... Gogor berrezartzen da RTS pin bidez... Eginda
Flash prozesuaren amaieran arazorik ez badago, plaka berrabiaraziko da eta thehello_worldp aplikazioa abiaraziko du. idf.py exekutatu beharrean Eclipse edo VS Code IDE erabili nahi baduzu, begiratu Eclipse Plugin, VSCode Extension.
Irteera kontrolatu Ohello_worldpis martxan dagoen egiaztatzeko, idatzi idf.py -p PORT monitor (Ez ahaztu PORT ordezkatzea zure serieko atakaren izenarekin). Komando honek IDF Monitor aplikazioa abiarazten du:
$ idf.py -p monitore idf_monitor exekutatzen […]/esp/hello_world/build direktorioan “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf” exekutatzen… — idf_monitor piztuta 115200 —– Irten: Ctrl+] | Menua: Ctrl+T | Laguntza: Ctrl+T eta ondoren Ctrl+H –ets 2016ko ekainak 8 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 2016ko ekainak 8 00:22:57 …
Abioko eta diagnostiko erregistroak gora joan ondoren, aplikazioak oHello world! inprimatuta ikusi beharko zenuke.
… Kaixo mundua! 10 segundotan berrabiaraziko da… Hau esp32 txipa da, 2 CPU nukleorekin, WiFi/BT/BLE, 1. silizio berrikuspena, 2 MB kanpoko flasha Gutxieneko heap tamaina librea: 298968 byte 9 segundotan berrabiaraziko da… 8 segundotan berrabiaraziko da… 7 segundotan berrabiaraziko da…
IDF monitorearen bidez irteteko, erabili Ctrl+ lasterbidea. IDF monitoreak kargatu eta gutxira huts egiten badu, edo goiko mezuen ordez behean agertzen denaren antzeko ausazko zaborra ikusten baduzu, ziurrenik zure plakak 26 MHz-ko kristala erabiltzen ari da. Garapen-plaka gehienen diseinuak 40 MHz erabiltzen dituzte, beraz, ESP-IDF-k maiztasun hau erabiltzen du balio lehenetsi gisa.
Horrelako arazoren bat baduzu, egin hau:
1. Irten monitoretik. 2. Itzuli menuko konfiguraziora. 3. Joan Osagaien konfigurazioa > Hardwarearen ezarpenak > XTAL nagusiaren konfigurazioa > XTAL nagusia atalera.
maiztasuna, eta gero aldatu CONFIG_XTAL_FREQ_SEL 26 MHz-ra. 4. Ondoren, eraiki eta flasheatu aplikazioa berriro.
Espressif Sistemak
42 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
ESP-IDFren egungo bertsioan, ESP32k onartzen dituen XTAL maiztasun nagusiak hauek dira:
· 26 MHz · 40 MHz
Oharra: Eraikuntza, flashatzea eta monitorizazioa urrats bakarrean konbina ditzakezu hau exekutatuz: idf.py -p PORT flash monitor
Ikus baita ere: · IDF Monitor lasterbide erabilgarriak eta IDF monitorearen erabilerari buruzko xehetasun gehiago lortzeko. · idf.py idf.py komando eta aukeren erreferentzia osoa lortzeko.
Hori da ESP32-rekin hasteko behar duzun guztia! Orain prest zaude beste adibide batzuk probatzeko.amples, edo zuzenean zure aplikazioak garatzera joan.
Garrantzitsua: ohi batzukampFitxategiek ez dute ESP32 onartzen, beharrezko hardwarea ez baitago ESP32-n sartuta, beraz, ezin da onartu. ESP32 bat eraikitzen ari bazaraampmesedez, egiaztatu README fitxategia file Onartutako Helburuen taularako. ESP32 helburua barne badago, edo taula batere ez badago, exampESP32-n funtzionatuko du.
Aholku gehigarriak
Baimen arazoak /dev/ttyUSB0 Linux banaketa batzuekin, /dev/ttyUSB0 portua irekitzeko huts egin du errore mezua jaso dezakezu ESP32 flasheatzen duzunean. Hau konpondu daiteke uneko erabiltzailea dialout taldera gehituz.
Pythonen bateragarritasuna ESP-IDF-k Python 3.7 edo berriagoa onartzen du. Gomendagarria da zure sistema eragilea baldintza hau betetzen duen bertsio berri batera eguneratzea. Beste aukera batzuk Python iturburuetatik instalatzea edo pyenv bezalako Python bertsio kudeaketa sistema bat erabiltzea dira.
Hasi plaka laguntza paketearekin Garapen plaka batzuetan prototipoak azkartzeko, plaka laguntza paketeak (BSP) erabil ditzakezu, plaka jakin baten hasiera funtzio dei gutxi batzuk bezain erraza izan dadin. BSP batek normalean garapen plakan ematen diren hardware osagai guztiak onartzen ditu. Pinout definizio eta hasieratze funtzioez gain, BSP batek kanpoko osagaien kontrolatzaileak ditu, hala nola sentsoreak, pantailak, audio kodekak, etab. BSPak IDF Osagaien Kudeatzailearen bidez banatzen dira, beraz, IDF Osagaien Erregistroan aurki daitezke. Hemen adibide batampESP-WROVER-KIT BSP zure proiektura nola gehitu erakusten du: idf.py add-dependency esp_wrover_kit
Gehiago adibidezampBSP erabileraren zatiak BSP ex-en aurki daitezke.amples karpeta.
Aholkua: ESP-IDF eguneratzea Gomendagarria da ESP-IDF noizean behin eguneratzea, bertsio berriagoek akatsak konpontzen baitituzte eta/edo funtzio berriak eskaintzen baitituzte. Kontuan izan ESP-IDF bertsio nagusi eta txiki bakoitzak laguntza-aldi bat duela lotuta, eta adar bat bizitza-amaierara (EOL) hurbiltzen denean, erabiltzaile guztiei gomendatzen zaie beren proiektuak ESP-IDF bertsio berriagoetara eguneratzea. Laguntza-aldiei buruz gehiago jakiteko, ikus ESP-IDF Bertsioak.
Espressif Sistemak
43 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
1. kapitulua. Hasi
Eguneratzea egiteko modurik errazena esp-idf karpeta ezabatzea eta berriro klonatzea da, 2. urratsean deskribatutako hasierako instalazioa egiten ariko bazina bezala. Eskuratu ESP-IDF. Beste irtenbide bat aldatu dena bakarrik eguneratzea da. Eguneratze prozedura erabiltzen ari zaren ESP-IDF bertsioaren araberakoa da. ESP-IDF eguneratu ondoren, exekutatu Instalazio script-a berriro, ESP-IDF bertsio berriak tresnen bertsio desberdinak behar baditu. Ikusi 3. urratseko argibideak. Konfiguratu tresnak. Tresna berriak instalatuta daudenean, eguneratu ingurunea Esportazio script-a erabiliz. Ikusi 4. urratseko argibideak. Konfiguratu ingurune aldagaiak.
Erlazionatutako dokumentuak · Serieko konexioa ezarri ESP32rekin · Eclipse plugina · VSCode luzapena · IDF monitore
1.4 Eraiki zure lehen proiektua
ESP-IDF instalatuta baduzu eta IDE erabiltzen ez baduzu, zure lehen proiektua komando-lerrotik eraiki dezakezu Hasi proiektu bat Windows-en edo Hasi proiektu bat Linux eta macOS-en jarraituz.
1.5 Desinstalatu ESP-IDF
ESP-IDF kendu nahi baduzu, jarraitu ESP-IDF desinstalatu atala.
Espressif Sistemak
44 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
2. kapitulua
API Erreferentzia
2.1 API Hitzarmenak
Dokumentu honek ESP-IDF Aplikazio Programazio Interfazeen (API) konbentzio eta hipotesi komunak deskribatzen ditu. ESP-IDF-k hainbat programazio interfaze mota eskaintzen ditu:
· C funtzioak, egiturak, enumak, mota definizioak eta aurreprozesadorearen makroak goiburu publikoan deklaratuta fileESPIDF osagaien multzoa. Programazio gidaren API Erreferentzia ataleko hainbat orrialdek funtzio, egitura eta mota horien deskribapenak dituzte.
· Eraikitzeko sistemaren funtzioak, aurrez definitutako aldagaiak eta aukerak. Hauek eraikuntza sistemaren gidan dokumentatuta daude. · Kconfig aukerak kodean eta eraikuntza sisteman erabil daitezke (CMakeLists.txt) files. · Ostalari tresnak eta haien komando-lerroko parametroak ere ESP-IDF interfazearen parte dira. ESP-IDF ESP-IDFrako bereziki idatzitako osagaiez osatuta dago, baita hirugarrenen liburutegiez ere. Kasu batzuetan, ESP-IDFrako berariazko bilgarri bat gehitzen zaio hirugarrenen liburutegiari, interfaze sinpleagoa edo hobeto integratua eskainiz gainerako ESP-IDF instalazioekin. Beste kasu batzuetan, hirugarrenen liburutegiaren jatorrizko APIa aurkezten zaie aplikazioen garatzaileei. Hurrengo atalek ESP-IDF APIen alderdi batzuk eta haien erabilera azaltzen dituzte.
2.1.1 Error error handling
ESP-IDF API gehienek esp_err_t motarekin definitutako errore-kodeak itzultzen dituzte. Ikusi Erroreen Kudeaketa atala erroreak kudeatzeko metodoei buruzko informazio gehiago lortzeko. Errore Kodeen Erreferentziak ESP-IDF osagaiek itzulitako errore-kodeen zerrenda dauka.
2.1.2 Konfigurazio-egiturak
Garrantzitsua: Konfigurazio-egituren hasieratze zuzena funtsezkoa da aplikazioa ESP-IDFren etorkizuneko bertsioekin bateragarria izan dadin.
ESP-IDF-ko hasieratze edo konfigurazio funtzio gehienek konfigurazio egitura baterako erakuslea hartzen dute argumentu gisa. Adibidezample:
45
2. kapitulua. API erreferentzia
const esp_timer_create_args_t my_tenporizadore_args = { .callback = &my_tenporizadore_callback, .arg = callback_arg, .name = “my_timer”
}; esp_timer_handle_t nire_tenporizadorea; esp_err_t err = esp_timer_create(&nire_tenporizadorearen_args, &nire_tenporizadorea);
Hasieratze-funtzioek ez dute inoiz konfigurazio-egituraren erakuslea gordetzen, beraz, segurua da egitura pilan esleitzea.
Aplikazioak egituraren eremu guztiak hasieratu behar ditu. Hurrengoa ez da zuzena:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Okerra! .arg eta .name eremuak ez daude hasieratuta */ esp_timer_create(&my_timer_args, &my_timer);
ESP-IDF ex gehienakampEgitura-hasierarako C99 izendatutako hasieratzaileak erabiltzen dituzte, eremu-azpimultzo bat ezartzeko eta gainerako eremuak zero-hasieratzeko modu zehatza eskaintzen baitute:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Zuzena, .arg eta .name eremuak zero-inizializatuta daude */
};
C++ hizkuntzak ez du hasieratzaile izendatuen sintaxia onartzen C++20ra arte, baina GCC konpiladoreak partzialki onartzen du luzapen gisa. ESP-IDF APIak C++ kodean erabiltzean, honako eredua erabiltzea kontuan har dezakezu:
esp_timer_create_args_t my_timer_args = {}; /* Eremu guztiak zero-hasieratuta */ my_timer_args.callback = &my_timer_callback;
Hasieratzaile lehenetsiak
Konfigurazio-egitura batzuetarako, ESP-IDF-k makroak eskaintzen ditu eremuen balio lehenetsiak ezartzeko:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG hasieratzaile izendatu batera hedatzen da.
Orain eremu guztiak balio lehenetsietara ezarrita daude. Edozein eremu alda daiteke oraindik: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Konfigurazio-egitura jakin baterako ematen direnean hasieratzaile-makro lehenetsiak erabiltzea gomendatzen da.
2.1.3 API pribatuak
Goiburu jakin bat fileESP-IDF-ko APIek ESP-IDF iturburu-kodean soilik erabiltzeko pentsatutako APIak dituzte, eta ez aplikazioek. Goiburu horiek files-ek askotan private edo esp_private izaten dituzte beren izenean edo bidean. Osagai batzuek, hala nola hal-ek, API pribatuak baino ez dituzte. API pribatuak modu bateraezinean kendu edo alda daitezke bertsio txikien edo adabakien artean.
2.1.4 Adibideko osagaiakample proiektuak
ESP-IDF exampFitxategiek ESP-IDF APIen erabilera erakusten duten hainbat proiektu dituzte. Kodearen bikoiztasuna murrizteko, ex-eanamphainbat exekutibok erabiltzen dituzten osagaien barruan laguntzaile ohiko batzuk definitzen dira.amples.
Espressif Sistemak
46 Bidali dokumentuaren iritzia
5.0.9 bertsioaren bertsioa
2. kapitulua. API erreferentzia
Honek kokatutako osagaiak barne hartzen ditu
Dokumentuak / Baliabideak
![]() |
Espressif Systems ESP32 Dev Kitc Garapen Plaka [pdfErabiltzailearen gida ESP32 Dev Kitc Garapen Taula, ESP32, Dev Kitc Garapen Taula, Kitt Garapen Taula, Garapen Taula, Taula |
