ESP32 Dev Kitc razvojna ploča
Informacije o proizvodu
Specifikacije
- Proizvod: ESP32
- Vodič za programiranje: ESP-IDF
- Verzija izdanja: v5.0.9
- Proizvođač: Espressif Systems
- Datum izlaska: 16. maj 2025
Upute za upotrebu proizvoda
1. Započnite
Prije nego što počnete koristiti ESP32, upoznajte se sa
sljedeće:
1.1 Uvod
Saznajte više o osnovnim funkcionalnostima i mogućnostima
ESP32.
1.2 Šta vam treba
Pobrinite se da imate potreban hardver i softver:
- hardver: Provjerite listu potrebnog hardvera
komponente. - softver: Instalirajte potreban softver
komponente.
1.3 Instalacija
Slijedite ove korake za instalaciju IDE-a i podešavanje
okruženje:
- IDE: Instalirajte preporučeni IDE za
programiranje ESP32. - Ručna instalacija: Ručno podesite
okruženje ako je potrebno.
1.4 Izgradite svoj prvi projekat
Kreirajte i izgradite svoj početni projekat koristeći ESP32.
1.5 Deinstalirajte ESP-IDF
Ako je potrebno, saznajte kako deinstalirati ESP-IDF sa vašeg
sistem.
2. API referenca
Za detaljne informacije o tome pogledajte API dokumentaciju
aplikacijski protokoli, rukovanje greškama i konfiguracija
strukture.
Često postavljana pitanja (FAQ)
P: Kako mogu riješiti uobičajene probleme s ESP32?
A: Pogledajte odjeljak za rješavanje problema u vodiču za programiranje
ili posjetite proizvođača webstranica za resurse podrške.
P: Mogu li koristiti ESP-IDF s drugim mikrokontrolerima?
A: ESP-IDF je posebno dizajniran za ESP32, ali možete pronaći
kompatibilnost s drugim Espressif mikrokontrolerima.
ESP32
ESP-IDF Vodič za programiranje
Izdanje v5.0.9 Espressif Systems 16. maj 2025.
Sadržaj
Sadržaj
i
1 Započnite
3
1.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Šta vam je potrebno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Hardver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Softver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Instalacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Ručna instalacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Izgradite svoj prvi projekat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 Deinstalacija ESP-IDF-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 API referenca
45
2.1 API konvencije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Rješavanje grešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Konfiguracijske strukture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 Privatni API-ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 Komponente u exampprojekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 Stabilnost API-ja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Protokoli primjene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.1 ASIO port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 ESP HTTP klijent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 Lokalna kontrola ESP-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 ESP serijska slave veza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 ESP x509 paket certifikata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 HTTP server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 HTTPS server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 ICMP odjek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 mDNS usluga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 IP mrežni sloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 Bluetooth API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® Uobičajeni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® niske energije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 Kontroler i HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 NimBLE-bazirani host API-ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Referenca kodova grešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 Mrežni API-ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 Navoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP mrežni sloj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Sloj aplikacije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 API za periferne uređaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Drajver za analogno-digitalni pretvarač (ADC) u režimu jednokratnog signala. . . . . . . . . . . . . . . . . 977 2.6.2 Drajver za kontinuirani režim analogno-digitalnog pretvarača (ADC). . . . . . . . . . . . . . . 986 2.6.3 Drajver za kalibraciju analogno-digitalnog pretvarača (ADC). . . . . . . . . . . . . . . . . . . 993 2.6.4 Stablo sata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Digitalno-analogni pretvarač (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO i RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Tajmer opće namjene (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Međusobno integrirano kolo (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Zvuk između integriranih kola (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD ekran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 Upravljanje LED diodama (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Modulator širine impulsa za upravljanje motorom (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Brojač impulsa (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Primopredajnik za daljinsko upravljanje (RMT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 Zahtjevi za zgibove SD-a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC upravljački program glavnog uređaja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI host drajver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 Drajver slave SDIO kartice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-Delta modulacija (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI glavni drajver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI slave drajver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Sigurnosni element). . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Senzor dodira. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Dvožični automobilski interfejs (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Univerzalni asinhroni prijemnik/predajnik (UART). . . . . . . . . . . . . . . . . . 1317 2.7 Konfiguracija projekta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Uvod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Meni za konfiguraciju projekta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Korištenje sdkconfig.defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Pravila formatiranja u Kconfigu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Povratna kompatibilnost Kconfig opcija. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Referenca opcija konfiguracije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 API za obezbjeđivanje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokol komunikacije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Ujedinjeno obezbjeđivanje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Pružanje Wi-Fi mreže. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 API za pohranu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSistemska podrška . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Proizvodna korisnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Biblioteka za neizbrisivo pohranjivanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 Uslužni program za generiranje particija NVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC drajver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filesistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtuelni fileSistemska komponenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 API za nivelisanje habanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Sistemski API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Format slike aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Praćenje na nivou aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Poziv funkcije sa eksternim stekom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Revizija čipa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konzola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Kodovi grešaka i pomoćne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Biblioteka petlje događaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Prekoview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Dodatne funkcije) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Alokacija memorije hipa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Debagovanje memorije hipa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Tajmer visoke rezolucije (ESP tajmer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Interni i nestabilni API-ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Međuprocesorski poziv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Dodjela prekida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Biblioteka za evidentiranje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Razni sistemski API-ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Ažuriranja putem etera (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Praćenje performansi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Upravljanje napajanjem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Podrška za POSIX niti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Generisanje slučajnih brojeva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Režimi spavanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC mogućnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Sistemsko vrijeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 API za alokaciju himem-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 Programiranje ULP koprocesora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Nadzorni organi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 Referenca za hardver
2167
3.1 Poređenje serija čipova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 Povezani dokumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 API vodiča
2171
4.1 Biblioteka za praćenje na nivou aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 Načini rada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 Opcije konfiguracije i zavisnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 Kako koristiti ovu biblioteku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 Tok pokretanja aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 Prvi stagbootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 sekunde stagbootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 Pokretanje aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® Klasični . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® niske energije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 Početak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 Pokretač sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Kompatibilnost bootloadera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 Nivo zapisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 Vraćanje na fabrička podešavanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 Pokretanje iz testnog firmvera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 Vraćanje na prethodno stanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 Nadzornik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 Veličina bootloadera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 Brzo pokretanje iz dubokog spavanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 Prilagođeni bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 Izgradnja sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 Korištenje sistema za izgradnju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 dokample Projekat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Projekat CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponenta CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Konfiguracija komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Definicije predprocesora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Zahtjevi za komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Nadređeni dijelovi projekta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Komponente samo za konfiguraciju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Debagovanje CMake-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 PrimjerampKomponenta le CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Prilagođene sdkconfig zadane vrijednosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Flash argumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Izgradnja Bootloadera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Pisanje čistih CMake komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Korištenje CMake projekata trećih strana s komponentama . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Korištenje unaprijed izgrađenih biblioteka s komponentama . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Korištenje ESP-IDF-a u prilagođenim CMake projektima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globualno kreiranje i inkrementalne izgradnje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Izgradnja metapodataka sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Izgradnja internih dijelova sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Migracija sa ESP-IDF GNU Make System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Iznos jezgra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfiguracije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Sačuvanje osnovne memorije na fleš memoriju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Ispis osnovnog dumpa na UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 ROM funkcije u povratnim tragovima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Ispis varijabli na zahtjev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Pokretanje espscoredump.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Zapisi o buđenju iz dubokog sna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Pravila za zapise o buđenju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Implementacija A Stub-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Učitavanje koda u RTC memoriju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Učitavanje podataka u RTC memoriju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC provjera za Wake Stubove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Primjerample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Rješavanje grešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Kodovi grešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Konvertovanje kodova grešaka u poruke o grešci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 Makro ESP_ERROR_CHECK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 Makro ESP_ERROR_CHECK_WITHOUT_ABORT . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 Makro ESP_RETURN_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 Makro ESP_GOTO_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 Makro ESP_RETURN_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 Makro ESP_GOTO_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 PROVJERI MAKRONE Primjeramples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Obrasci rukovanja greškama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ izuzeci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 ESP-WIFI-MESH koncepti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Izgradnja mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Upravljanje mrežom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Prijenos podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Prebacivanje kanala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 Performanse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Dodatne napomene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Upravljanje događajima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet i IP događaji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Događaji mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth događaji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Fatalne greške . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Upravljač panikom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Ispis registra i povratno praćenje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB skraćenica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 Istek vremena za čuvanje RTC-a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Greške u Guru meditaciji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Druge fatalne greške. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Šifriranje fleš memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Uvod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Relevantni e-osigurači. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Proces šifriranja fleš memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Konfiguracija fleš enkripcije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Mogući kvarovi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 Status ESP32 fleš enkripcije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Čitanje i pisanje podataka u šifriranoj fleš memoriji. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Ažuriranje šifriranog fleš memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Onemogućavanje šifriranja fleš memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Ključne tačke o šifriranju fleš memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Ograničenja fleš enkripcije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Šifriranje fleš memorije i sigurno pokretanje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Napredne funkcije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Tehnički detalji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Apstrakcija hardvera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arhitektura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (niski nivo) sloj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Sloj apstrakcije hardvera). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Prekidi visokog nivoa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Nivoi prekida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Napomene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Otklanjanje grešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Kako funkcioniše? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 Odabir JTAG Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Podešavanje OpenOCD-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Konfigurisanje ESP32 cilja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Pokretanje programa za otklanjanje grešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Otklanjanje grešakaamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Izgradnja OpenOCD-a iz izvornog koda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Savjeti i posebnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Povezani dokumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Generisanje skripte linkera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Brzi početak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Interni dijelovi generiranja skripti za povezivanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Podržani API-ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS Zadatak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 podrška . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip prilagođene modifikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 Optimizacija performansi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Tipovi memorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (RAM za podatke) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (RAM za instrukcije) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (kod koji se izvršava iz fleš memorije) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (podaci pohranjeni u fleš memoriji) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Spora memorija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC BRZA memorija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 Zahtjev za DMA podršku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA bafer u steku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Režimi OpenThread steka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Kako napisati OpenThread aplikaciju . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThread granični ruter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Tabele particija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Ugrađene tabele particija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Kreiranje prilagođenih tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Generisanje binarne tabele particija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Provjera veličine particije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Flešovanje tabele particija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Alat za particije (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Performanse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Kako optimizirati performanse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Vodiči . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF kalibracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Djelimična kalibracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Potpuna kalibracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Nema kalibracije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 Podaci za inicijalizaciju PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API referenca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Sigurno pokretanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Pozadina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Proces sigurnog pokretanja je završenview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Tasteri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Veličina bootloadera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Veličina bootloadera . . . . . . . . . 2474 4.24.5 Kako omogućiti sigurno pokretanje (Secure Boot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Ponovno fleširani softverski bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Generiranje ključa za potpisivanje sigurnog pokretanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Udaljeno potpisivanje slika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Najbolje prakse sigurnog pokretanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Tehnički detalji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Sigurno pokretanje i šifriranje fleš memorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Verifikacija potpisane aplikacije bez hardvera Sigurno pokretanje . . . . . . . . . . . . . . . . . . . 2478 4.24.13 Napredne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Sigurno pokretanje V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Pozadina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Naprednotages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Proces sigurnog pokretanja V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Format bloka potpisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Sigurno punjenje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Provjera bloka potpisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Provjera slike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Veličina bootloadera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 Korištenje eFuse-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Kako omogućiti Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Ograničenja nakon omogućavanja sigurnog pokretanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Generisanje ključa za potpisivanje sigurnog pokretanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 Udaljeno potpisivanje slika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Najbolje prakse sigurnog pokretanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Tehnički detalji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Sigurno pokretanje i enkripcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Verifikacija potpisane aplikacije bez hardvera Sigurno pokretanje . . . . . . . . . . . . . . . . . . 2484 4.25.18 Napredne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Podrška za eksternu RAM memoriju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Hardver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Konfigurisanje eksterne RAM memorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Ograničenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Neuspjeh inicijalizacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Revizije čipa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Lokalna memorija niti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Native API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Alati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker slika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 Upravitelj IDF komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 Uređivanje IDF Clang-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Alati za preuzimanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Jedinično testiranje u ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Normalni testni slučajevi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Testni slučajevi s više uređaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Višestruki uređajitage Testni slučajevi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Testovi za različite ciljeve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Izgradnja aplikacije za testiranje jedinica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Pokretanje jediničnih testova. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Vremenski kod s tajmerom kompenziranim keš memorijom. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Ismijava. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Testiranje jedinica na Linuxu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Testovi ugrađenog softvera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF jedinični testovi na Linux hostu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi drajver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Lista funkcija ESP32 Wi-Fi mreže. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Kako napisati Wi-Fi aplikaciju. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 Kod greške ESP32 Wi-Fi API-ja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 Inicijalizacija parametara ESP32 Wi-Fi API-ja. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wi-Fi model programiranja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 Opis ESP32 Wi-Fi događaja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 Opšti scenario ESP32 Wi-Fi stanice. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP Opšti scenario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi skeniranje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 Scenarij povezivanja ESP32 Wi-Fi stanice. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi stanica se povezuje kada se pronađe više pristupnih tačaka. . . . . . . . . . . . . 2543 4.31.12 Ponovno povezivanje na Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Istek vremena za Wi-Fi signal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 Konfiguracija ESP32 Wi-Fi mreže. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Upravljanje bežičnom mrežom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Mjerenje radio resursa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Brza BSS tranzicija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi Način rada za uštedu energije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 Propusnost ESP32 Wi-Fi mreže. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
4.31.21 Wi-Fi 80211 Slanje paketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi Sniffer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi Višestruke antene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Informacije o stanju Wi-Fi kanala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Informacije o stanju Wi-Fi kanala Konfiguracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 fragment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS upisnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Korištenje Wi-Fi bafera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Kako poboljšati performanse Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Konfiguracija menija Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Rješavanje problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Sigurnost Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 Funkcije sigurnosti ESP32 Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Zaštićeni okviri za upravljanje (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Lični . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF koegzistencija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Podržani scenario koegzistencije za ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Mehanizam i politika koegzistencije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Kako koristiti funkciju koegzistencije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Reproducibilne verzije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Razlozi za nereproducibilne verzije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Omogućavanje reproducibilnih verzija u ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Kako se postižu reproducibilne verzije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Reproducibilne verzije i otklanjanje grešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Faktori koji i dalje utiču na reproducibilne verzije . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Korisnički vodič za režim niske potrošnje energije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578
5 Vodiča za migraciju
2579
5.1 Vodič za migraciju na ESP-IDF 5.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 Migracija sa verzije 4.4 na 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 Biblioteka i frameworkova
2611
6.1 Okviri u oblaku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP Uređaj za pravljenje kiše . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 Okviri za izražavanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Okvir za razvoj Espressif zvuka . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Espressif DSP biblioteka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 Okvir za razvoj ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP Uređaj za pravljenje kiše . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 ESP-IoT-rješenje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 ESP-Protokoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
viii
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
7 Vodič za doprinose
2615
7.1 Kako doprinijeti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 Prije doprinosa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 Proces zahtjeva za povlačenjem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 Pravni dio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 Povezani dokumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Vodič za stil razvoja Espressif IoT okvira . . . . . . . . . . . . . . . . . . . 2616
7.5.2 Instaliranje hook-a za ESP-IDF projekat prije potvrđivanja promjena . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Dokumentovanje koda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 Kreiranje Ex-aamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 Predložak API dokumentacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 Sporazum sa saradnicima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 Vodič za zaglavlje autorskih prava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 ESP-IDF testovi sa Pytest vodičem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 ESP-IDF verzije
2645
8.1 Izdanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 S kojom verzijom da počnem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 Šema verzija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 Periodi podrške . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 Provjera trenutne verzije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Git tok rada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 Ažuriranje ESP-IDF-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 Ažuriranje na stabilnu verziju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 Ažuriranje na verziju prije objavljivanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 Ažuriranje na glavnu granu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 Ažuriranje na izdanje grane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 Resursi
2651
9.1 PlatformIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 Šta je PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 Instalacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 Konfiguracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 Tutorijali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 Projekt Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Sljedeći koraci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Korisni linkovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Autorska prava i licence
2653
10.1 Autorska prava na softver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Komponente firmvera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Dokumentacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 Autorska prava izvornog koda ROM-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Xtensa libhal MIT licenca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 TinyBasic Plus MIT licenca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 TJpgDec licenca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 O
2657
12 Prebacivanje između jezika
2659
Indeks
2661
Indeks
2661
ix
x
Sadržaj
Ovo je dokumentacija za Espressif IoT Development Framework (esp-idf). ESP-IDF je službeni razvojni okvir za SoC-ove serije ESP32, ESP32-S i ESP32-C. Ovaj dokument opisuje korištenje ESP-IDF-a sa ESP32 SoC-om.
Započnite
API Reference
API vodiči
Espressif Systems
1 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Sadržaj
Espressif Systems
2 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1
Započnite
Ovaj dokument je namijenjen da vam pomogne u postavljanju okruženja za razvoj softvera za hardver baziran na ESP32 čipu kompanije Espressif. Nakon toga, jednostavan exampPokazat ćemo vam kako koristiti ESP-IDF (Espressif IoT Development Framework) za konfiguraciju menija, a zatim za izgradnju i flešovanje firmvera na ESP32 ploču.
Napomena: Ovo je dokumentacija za stabilnu verziju v5.0.9 ESP-IDF-a. Dostupne su i druge verzije ESP-IDF-a.
1.1 Uvod
ESP32 je sistem na čipu koji integriše sljedeće karakteristike: · Wi-Fi (2.4 GHz opseg) · Bluetooth · Dvije visokoperformansne Xtensa® 32-bitne LX6 CPU jezgre · Koprocesor ultra niske potrošnje energije · Višestruke periferne uređaje
Pokretan 40 nm tehnologijom, ESP32 pruža robusnu, visoko integriranu platformu koja pomaže u ispunjavanju stalnih zahtjeva za efikasnom upotrebom energije, kompaktnim dizajnom, sigurnošću, visokim performansama i pouzdanošću. Espressif pruža osnovne hardverske i softverske resurse kako bi pomogao programerima aplikacija da realizuju svoje ideje koristeći hardver serije ESP32. Okvir za razvoj softvera kompanije Espressif namijenjen je razvoju aplikacija za Internet stvari (IoT) sa Wi-Fi, Bluetooth, upravljanjem napajanjem i nekoliko drugih sistemskih funkcija.
1.2 Šta vam treba
1.2.1 Hardver
· ESP32 ploča. · USB kabl – USB A / micro USB B. · Računar sa operativnim sistemom Windows, Linux ili macOS.
Napomena: Trenutno, neke razvojne ploče koriste USB Type C konektore. Provjerite da li imate ispravan kabel za spajanje vaše ploče!
Ako imate jednu od službenih razvojnih ploča za ESP32 navedenih u nastavku, možete kliknuti na link kako biste saznali više o hardveru.
3
Poglavlje 1. Početak
ESP32-DevKitS(-R)
Ovaj korisnički priručnik pruža informacije o ESP32-DevKitS(-R), fleš ploči zasnovanoj na ESP32 protokolu koju proizvodi Espressif. ESP32-DevKitS(-R) je kombinacija dva naziva ploče: ESP32-DevKitS i ESP32-DevKitS-R. S označava opruge, a R označava WROVER.
ESP32-DevKitS
ESP32-DevKitS-R
Dokument se sastoji od sljedećih glavnih dijelova: · Početak: Pruža pregledview upute za podešavanje ESP32-DevKitS(-R) i hardvera/softvera za početak. · Referenca za hardver: Pruža detaljnije informacije o ESP32-DevKitS(-R)ns hardveru. · Povezani dokumenti: Pruža veze do povezane dokumentacije.
Početak rada Ovaj odjeljak opisuje kako započeti s ESP32-DevKitS(-R). Počinje s nekoliko uvodnih odjeljaka o ESP32-DevKitS(-R), a zatim odjeljak Kako flešovati ploču pruža upute o tome kako montirati modul na ESP32-DevKitS(-R), pripremiti ga i flešovati firmver na njega.
Gotovoview ESP32-DevKitS(-R) je Espressifns fleš ploča dizajnirana posebno za ESP32. Može se koristiti za flešovanje ESP32 modula bez lemljenja modula na napajanje i signalne linije. Sa montiranim modulom, ESP32-DevKitS(-R) se također može koristiti kao mini razvojna ploča poput ESP32-DevKitC.
Ploče ESP32-DevKitS i ESP32-DevKitS-R se razlikuju samo po rasporedu opružnih pinova kako bi odgovarale sljedećim ESP32 modulima.
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB i IPEX) ESP32-WROVER-B (PCB i IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Za informacije o gore navedenim modulima, pogledajte Module serije ESP32.
Opis komponenti
Espressif Systems
4 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Sl. 1: ESP32-DevKitS – prednja strana
Espressif Systems
Sl. 2: ESP32-DevKitS-R – prednja strana 5
Pošaljite povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Ključne komponente s opružnim klinovima, ženski konektori od 2.54 mm
USB-UART most LDO Micro-USB konektor/Micro USB port EN dugme Dugme za pokretanje
LED za uključivanje
Opis Postavite modul klikom. Pinovi će se uklopiti u zupčaste rupe na modulu. Ovi ženski konektori su povezani sa pinovima modula montiranog na ovoj ploči. Za opis ženskih konektora, pogledajte Blokove konektora. Jednočipni USB-UART most omogućava brzine prijenosa do 3 Mbps.
Napon od 5V do 3.3V sa niskim padom naponatagregulator (LDO).
USB interfejs. Napajanje za ploču, kao i komunikacijski interfejs između računara i ploče.
Dugme za resetovanje.
Dugme za preuzimanje. Držanjem pritisnutog dugmeta Boot, a zatim pritiskom na dugme EN pokreće se režim preuzimanja firmvera, odnosno preuzimanje firmvera putem serijskog porta.
Uključuje se kada je USB ili napajanje priključeno na ploču.
Kako flešovati ploču Prije uključivanja vašeg ESP32-DevKitS(-R), molimo vas da se uvjerite da je u dobrom stanju bez vidljivih znakova oštećenja.
Potrebni hardver · ESP32 modul po vašem izboru · USB 2.0 kabl (Standard-A na Micro-B) · Računar sa operativnim sistemom Windows, Linux ili macOS
Podešavanje hardvera Molimo vas da montirate modul po vašem izboru na vaš ESP32-DevKitS(-R) prema sljedećim koracima:
· Pažljivo postavite modul na ESP32-DevKitS(-R) ploču. Provjerite da li su rupe na modulu poravnate s opružnim pinovima na ploči.
· Pritisnite modul prema dolje u ploču dok ne klikne. · Provjerite jesu li svi opružni klinovi umetnuti u rupe s nazubljenim vrhovima. Ako postoje neki neusklađeni opružni klinovi,
postavite ih u zaobljene rupe pincetom.
Postavljanje softvera
Preferirani metod Razvojni okvir ESP-IDF pruža preferirani način flešovanja binarnih datoteka na ESP32-DevKitS(-R). Molimo vas da pređete na Početak rada, gdje će vam odjeljak Instalacija brzo pomoći da postavite razvojno okruženje, a zatim flešujete aplikaciju npr.ampna vaš ESP32-DevKitS(-R).
Alternativna metoda Kao alternativa, korisnici Windowsa mogu flešovati binarne datoteke pomoću alata Flash Download Tool. Samo ga preuzmite, raspakujte i slijedite upute unutar doc mape.
Napomena: 1. Za flešovanje binarne datoteke fileDakle, ESP32 treba postaviti na način rada za preuzimanje firmvera. To se može učiniti automatski pomoću alata za flash ili držanjem pritisnutog dugmeta Boot i pritiskom na dugme EN. 2. Nakon flešovanja binarnog fajla files, alat za preuzimanje fleš memorije ponovo pokreće vaš ESP32 modul i pokreće flešovanu aplikaciju prema zadanim postavkama.
Dimenzije ploče Sadržaj i pakovanje
Espressif Systems
6 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak rada Sl. 3: Dimenzije ploče ESP32-DevKitS – stražnja strana
Espressif Systems
Sl. 4: Dimenzije ploče ESP32-DevKitS-R – zadnja strana 7
Pošaljite povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Maloprodajne narudžbe Ako naručite nekoliko sampSvaki ESP32-DevKitS(-R) dolazi u pojedinačnom pakovanju, bilo u antistatičkoj vrećici ili bilo kojoj drugoj ambalaži, ovisno o prodavaču. Za maloprodajne narudžbe, posjetite https://www.espressif.com/en/contact-us/get-samples.
Veleprodajne narudžbe Ako naručujete na veliko, ploče dolaze u velikim kartonskim kutijama. Za veleprodajne narudžbe, posjetite https://www.espressif.com/en/contact-us/sales-questions.
Hardware Reference
Blok dijagram Blok dijagram ispod prikazuje komponente ESP32-DevKitS(-R) i njihove međusobne veze.
Sl. 5: ESP32-DevKitS(-R) (kliknite za uvećanje)
Opcije napajanja Postoje tri međusobno isključiva načina za napajanje ploče: · Micro USB port, standardno napajanje · 5V i GND pinovi · 3V3 i GND pinovi
Preporučuje se korištenje prve opcije: micro USB porta.
Espressif Systems
.
Oznaka signala
L1 3V3 VDD 3V3
L2 EN CHIP_PU
L3 VP SENZOR_VP
L4 VN SENZOR_VN
L5 34
GPIO34
L6 35
GPIO35
L7 32
GPIO32
L8 33
GPIO33
nastavlja se na sljedećoj stranici
8 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Tabela 1 nastavak sa prethodne stranice
.
Oznaka signala
L9 25
GPIO25
L10 26
GPIO26
L11 27
GPIO27
L12 14
GPIO14
L13 12
GPIO12
L14 UZEMLJENJE UZEMLJENJE
L15 13
GPIO13
L16 D2 SD_PODATAK2
L17 D3 SD_PODATAK3
L18 CMD SD_CMD
L19 5V
Eksterno 5V
R1 Uzemljenje Uzemljenje
R2 23
GPIO23
R3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
R6 21
GPIO21
R7 Uzemljenje Uzemljenje
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_PODATAK1
R18 D0 SD_PODATAK0
R19 CLK SD_CLK
Zaglavni blokovi Za sliku zaglavnih blokova, pogledajte Opis komponenti.
Povezani dokumenti
· ESP32-DevKitS(-R) shema (PDF) · ESP32 tehnički list (PDF) · ESP32-WROOM-32 tehnički list (PDF) · ESP32-WROOM-32D i ESP32-WROOM-32U tehnički list (PDF) · ESP32-SOLO-1 tehnički list (PDF) · ESP32-WROVER tehnički list (PDF) · ESP32-WROVER-B tehnički list (PDF) · ESP birač proizvoda
ESP32-DevKitM-1
Ovaj korisnički vodič će vam pomoći da započnete s ESP32-DevKitM-1 i pružit će vam detaljnije informacije.
ESP32-DevKitM-1 je razvojna ploča bazirana na ESP32-MINI-1(1U) standardu koju proizvodi Espressif. Većina I/O pinova je izdvojena na konektore sa obje strane radi lakšeg povezivanja. Korisnici mogu spojiti periferne uređaje pomoću kratkospojnih žica ili montirati ESP32-DevKitM-1 na ploču za izradu uzoraka.
Espressif Systems
9 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
ESP32-DevKitM-1 – prednji
ESP32-DevKitM-1 – izometrijski
Dokument se sastoji od sljedećih glavnih dijelova: · Početak: Pruža pregledview upute za podešavanje ESP32-DevKitM-1 i hardvera/softvera za početak. · Referenca hardvera: Pruža detaljnije informacije o hardveru ESP32-DevKitM-1ns. · Povezani dokumenti: Pruža veze do povezane dokumentacije.
Početak rada Ovaj odjeljak opisuje kako započeti s ESP32-DevKitM-1. Počinje s nekoliko uvodnih odjeljaka o ESP32-DevKitM-1, zatim odjeljak Početak razvoja aplikacije pruža upute o tome kako izvršiti početno podešavanje hardvera, a zatim kako flešovati firmver na ESP32-DevKitM-1.
Gotovoview Ovo je mala i praktična razvojna ploča koja sadrži:
· ESP32-MINI-1 ili ESP32-MINI-1U modul · USB-serijski interfejs za programiranje koji također osigurava napajanje za ploču · pin konektori · tipke za resetiranje i aktivaciju načina preuzimanja firmvera · nekoliko drugih komponenti
Sadržaj i pakovanje
Maloprodajne narudžbe Ako naručite nekoliko sampSvaki ESP32-DevKitM-1 dolazi u pojedinačnom pakovanju, bilo u antistatičkoj vrećici ili bilo kojoj drugoj ambalaži, ovisno o vašem prodavaču.
Za maloprodajne narudžbe, molimo Vas da posjetite https://www.espressif.com/en/contact-us/get-samples.
Veleprodajne narudžbe Ako naručujete na veliko, ploče dolaze u velikim kartonskim kutijama. Za veleprodajne narudžbe, posjetite https://www.espressif.com/en/contact-us/sales-questions.
Opis komponenti Sljedeća slika i tabela ispod opisuju ključne komponente, interfejse i kontrole ploče ESP32-DevKitM-1. Ploču s modulom ESP32-MINI-1 uzimamo kao primjer...ample u narednim odeljcima.
Espressif Systems
10 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Sl. 6: ESP32-DevKitM-1 – prednja strana
Ključna komponenta Ugrađeni modul
Dugme za pokretanje LDO-a od 5 V do 3.3 V
Dugme za resetovanje Mikro USB port
USB-UART most 3.3 V LED za uključivanje
I/O konektor
Opis
ESP32-MINI-1 modul ili ESP32-MINI-1U modul. ESP32-MINI-1 dolazi s ugrađenom PCB antenom. ESP32-MINI-1U dolazi s vanjskim konektorom za antenu. Oba modula imaju 4 MB fleš memorije u čipu. Za detalje, pogledajte ESP32-MINI-1 i ESP32-MINI-1U tehnički list.
Regulator snage pretvara 5 V u 3.3 V.
Dugme za preuzimanje. Držanjem pritisnutog dugmeta Boot, a zatim pritiskom na dugme Reset pokreće se režim preuzimanja firmvera putem serijskog porta.
Reset dugme
USB interfejs. Napajanje za ploču kao i komunikacijski interfejs između računara i ESP32 čipa.
Jedan USB-UART bridge čip pruža brzine prijenosa do 3 Mbps.
Uključuje se kada je USB povezan na ploču. Za detalje, pogledajte šeme u Povezanim dokumentima. Svi dostupni GPIO pinovi (osim SPI magistrale za fleš memoriju) su odvojeni na pin konektore na ploči. Korisnici mogu programirati ESP32 čip kako bi omogućili više funkcija.
Započnite razvoj aplikacije Prije uključivanja vašeg ESP32-DevKitM-1, provjerite je li u dobrom stanju bez vidljivih znakova oštećenja.
Potrebni hardver · ESP32-DevKitM-1 · USB 2.0 kabl (Standard-A na Micro-B) · Računar sa operativnim sistemom Windows, Linux ili macOS
Podešavanje softvera Molimo vas da pređete na Početak rada, gdje će vam odjeljak Instalacija brzo pomoći da postavite razvojno okruženje, a zatim flešujete aplikaciju...ampna vaš ESP32-DevKitM-1.
Espressif Systems
11 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Pažnja: Ploče ESP32-DevKitM-1 proizvedene prije 2. decembra 2021. imaju instaliran modul s jednom jezgrom. Da biste provjerili koji modul imate, provjerite informacije o označavanju modula u PCN-2021-021. Ako vaša ploča ima instaliran modul s jednom jezgrom, omogućite način rada s jednom jezgrom (CONFIG_FREERTOS_UNICORE) u menuconfig prije flešovanja aplikacija.
Blok dijagram hardverske reference Blok dijagram ispod prikazuje komponente ESP32-DevKitM-1 i njihove međusobne veze.
Sl. 7: ESP32-DevKitM-1
Odabir izvora napajanja Postoje tri međusobno isključiva načina za napajanje ploče: · Micro USB port, standardno napajanje · 5V i GND pinovi · 3V3 i GND pinovi
Upozorenje: · Napajanje mora biti osigurano korištenjem jedne i samo jedne od gore navedenih opcija, u suprotnom se ploča i/ili izvor napajanja mogu oštetiti. · Preporučuje se napajanje putem micro USB priključka.
Opisi pinova Donja tabela prikazuje nazive i funkcije pinova na obje strane ploče. Za konfiguracije perifernih pinova, pogledajte ESP32 tehnički list.
br.
Ime
Tip
1
GND
P
2
3V3
P
Funkcija uzemljenja Napajanje 3.3 V
nastavlja se na sljedećoj stranici
Espressif Systems
12 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Tabela 2 nastavak sa prethodne stranice
br.
Ime
Tip
Funkcija
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
Resetovati; Visoko: omogući; Niska: isključuje se
8
I34
I
GPIO34, ADC1_CH6, RTC_GPIO4
9
I35
I
GPIO35, ADC1_CH7, RTC_GPIO5
10
IO32
I/O
GPIO32, XTAL_32K_P (ulaz kristalnog oscilatora od 32.768 kHz),
ADC1_CH4, TOUCH9, RTC_GPIO9
11
IO33
I/O
GPIO33, XTAL_32K_N (32.768 kHz izlaz kristalnog oscilatora),
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
Napajanje od 5 V
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_PODATAK0, SD_PODATAK0
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
Detalji o reviziji hardvera Nema dostupnih prethodnih verzija.
Povezani dokumenti
· ESP32-MINI-1 i ESP32-MINI-1U tehnički list (PDF) · ESP32-DevKitM-1 shema (PDF) · ESP32-DevKitM-1 raspored štampane ploče (PDF) · ESP32-DevKitM-1 raspored (DXF) – Možete view to s Autodeskom Viewonline · ESP32 tehnički list (PDF) · ESP birač proizvoda
Za ostalu dizajnersku dokumentaciju za ploču, kontaktirajte nas na sales@espressif.com.
Espressif Systems
13 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
1.2.2 Software
Da biste počeli koristiti ESP-IDF na ESP32, instalirajte sljedeći softver: · Toolchain za kompajliranje koda za ESP32 · Alate za izradu – CMake i Ninja za izradu pune aplikacije za ESP32 · ESP-IDF koji u suštini sadrži API (softverske biblioteke i izvorni kod) za ESP32 i skripte za rad Toolchaina
1.3 Instalacija
Za instalaciju potrebnog softvera, nudimo nekoliko različitih načina za olakšavanje ovog zadatka. Odaberite jednu od dostupnih opcija.
1.3.1 Razvojno okruženje (IDE)
Napomena: Preporučujemo instaliranje ESP-IDF-a putem vašeg omiljenog IDE-a.
· Eclipse dodatak · VSCode ekstenzija
1.3.2 Ručna instalacija
Za ručni postupak, molimo odaberite prema vašem operativnom sistemu.
Espressif Systems
14 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Standardno podešavanje lanca alata za Windows
Uvod ESP-IDF zahtijeva instalaciju nekih preduvjetnih alata kako biste mogli izgraditi firmver za podržane čipove. Preduvjetni alati uključuju Python, Git, cross-kompilatore, CMake i Ninja alate za izgradnju. Za ovaj Početak rada nećemo koristiti komandni redak, ali nakon što instalirate ESP-IDF, možete koristiti Eclipse Plugin ili neko drugo grafičko IDE s CMake podrškom. Napomena: Ograničenja: – Putanja instalacije ESP-IDF-a i ESP-IDF alata ne smije biti duža od 90 znakova. Predugačke putnje instalacije mogu rezultirati neuspješnom izgradnjom. – Putanja instalacije Pythona ili ESP-IDF-a ne smije sadržavati razmake ili zagrade. – Putanja instalacije Pythona ili ESP-IDF-a ne smije sadržavati posebne znakove (ne ASCII) osim ako operativni sistem nije konfiguriran s podrškom za Unicode UTF-8. Administrator sistema može omogućiti podršku putem Kontrolne ploče – Promjena formata datuma, vremena ili broja – Kartica Administrative – Promjena lokalizacije sistema – označite opciju Beta: Koristi Unicode UTF-8 za podršku za jezike širom svijeta – U redu i ponovo pokrenite računar.
Instalacijski program za ESP-IDF alate Najlakši način za instaliranje preduvjeta za ESP-IDFns je preuzimanje jednog od instalacijskih programa za ESP-IDF alate.
Preuzimanje Windows Installera
Čemu služi online i offline instalacijski program? Online instalacijski program je vrlo mali i omogućava instalaciju svih dostupnih izdanja ESP-IDF-a. Instalacijski program će preuzeti samo potrebne zavisnosti, uključujući Git za Windows, tokom procesa instalacije. Instalacijski program pohranjuje preuzete datoteke. files u direktoriju predmemorije %userprofile% espresiva
Offline instalacijski program ne zahtijeva mrežnu vezu. Instalacijski program sadrži sve potrebne zavisnosti, uključujući Git za Windows.
Komponente instalacije Instalacijski program implementira sljedeće komponente:
· Ugrađeni Python · Međukompajleri · OpenOCD · Alati za izgradnju CMake i Ninja · ESP-IDF
Instalacijski program također omogućava ponovnu upotrebu postojećeg direktorija s ESP-IDF-om. Preporučeni direktorij je %userprofile%Desktopesp-idf gdje je %userprofile% je vaš početni direktorij.
Espressif Systems
15 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Pokretanje ESP-IDF okruženja Na kraju procesa instalacije možete označiti opciju Pokreni ESP-IDF PowerShell okruženje ili Pokreni ESP-IDF komandni redak (cmd.exe). Instalacijski program će pokrenuti ESP-IDF okruženje u odabranom retku. Pokrenite ESP-IDF PowerShell okruženje:
Sl. 8: Završetak čarobnjaka za podešavanje ESP-IDF alata pomoću opcije Pokreni ESP-IDF PowerShell okruženje
Pokrenite ESP-IDF komandni redak (cmd.exe):
Korištenje komandne linije Za preostale korake za početak, koristit ćemo Windows komandnu liniju. Instalacijski program za ESP-IDF alate također kreira prečicu u meniju Start za pokretanje komandne linije za ESP-IDF. Ova prečica pokreće komandnu liniju (cmd.exe) i pokreće skriptu export.bat za postavljanje varijabli okruženja (PATH, IDF_PATH i druge). Unutar ove komandne linije dostupni su svi instalirani alati. Imajte na umu da je ova prečica specifična za direktorij ESP-IDF odabran u instalacijskom programu za ESP-IDF alate. Ako imate više direktorija ESP-IDF na računaru (na primjeramptj. da biste radili s različitim verzijama ESP-IDF-a), imate dvije mogućnosti za njihovo korištenje:
1. Napravite kopiju prečice koju je kreirao instalacijski program ESP-IDF alata i promijenite radni direktorij nove prečice u direktorij ESP-IDF koji želite koristiti.
2. Alternativno, pokrenite cmd.exe, zatim promijenite u ESP-IDF direktorij koji želite koristiti i pokrenite export.bat. Imajte na umu da, za razliku od prethodne opcije, ovaj način zahtijeva da Python i Git budu prisutni u PATH. Ako dobijete greške povezane s time da Python ili Git nisu pronađeni, koristite prvu opciju.
Prvi koraci na ESP-IDF-u Sada kada su svi zahtjevi ispunjeni, sljedeća tema će vas voditi kroz proces pokretanja vašeg prvog projekta.
Espressif Systems
16 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak rada Slika 9: ESP-IDF PowerShell
Sl. 10: Završetak čarobnjaka za podešavanje ESP-IDF alata pokretanjem komandne linije ESP-IDF (cmd.exe)
Espressif Systems
17 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Sl. 11: ESP-IDF komandni redak
Espressif Systems
18 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Ovaj vodič će vam pomoći u prvim koracima korištenja ESP-IDF-a. Slijedite ovaj vodič da biste započeli novi projekat na ESP32 i izgradili, flešovali i pratili izlaz uređaja. Napomena: Ako još niste instalirali ESP-IDF, idite na Instalaciju i slijedite upute kako biste dobili sav softver potreban za korištenje ovog vodiča.
Započnite projekat Sada ste spremni da pripremite svoju aplikaciju za ESP32. Možete početi sa projektom getstarted/hello_world iz examples direktorij u ESP-IDF.
Važno: Sistem za izgradnju ESP-IDF-a ne podržava razmake u putanjama ni do ESP-IDF-a ni do projekata.
Kopirajte projekat get-started/hello_world u ~/esp direktorij: cd %userprofile%esp xcopy /e /i %IDF_PATH%exampzapočelapozdrav_svijet zdravo_svijet
Napomena: Postoji niz example projekte u examples direktorij u ESP-IDF. Možete kopirati bilo koji projekat na isti način kao što je gore prikazano i pokrenuti ga. Također je moguća izgradnja examples na mjestu bez prethodnog kopiranja.
Povežite svoj uređaj Sada povežite svoju ESP32 ploču sa računarom i provjerite pod kojim se serijskim portom ploča vidi. Nazivi serijskih portova počinju sa COM u Windowsu. Ako niste sigurni kako provjeriti naziv serijskog porta, pogledajte Uspostavljanje serijske veze sa ESP32 za više detalja.
Napomena: ime porta držite pri ruci jer će vam trebati u sljedećim koracima.
Konfigurišite svoj projekat Idite do direktorijuma hello_world, postavite ESP32 kao cilj i pokrenite uslužni program za konfiguraciju projekta menuconfig.
Windows cd %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Nakon otvaranja novog projekta, prvo biste trebali postaviti cilj pomoću naredbe idf.py set-target esp32. Imajte na umu da će postojeće verzije i konfiguracije u projektu, ako ih ima, biti obrisane i inicijalizirane u ovom procesu. Cilj se može sačuvati u varijabli okruženja kako biste u potpunosti preskočili ovaj korak. Pogledajte Odabir ciljnog čipa: set-target za dodatne informacije. Ako su prethodni koraci ispravno urađeni, pojavit će se sljedeći meni: Ovaj meni koristite za postavljanje varijabli specifičnih za projekat, npr. naziva i lozinke Wi-Fi mreže, brzine procesora itd. Postavljanje projekta pomoću naredbe menuconfig može se preskočiti za ohello_wordp, budući da ovaj npr.ample se pokreće sa zadanom konfiguracijom.
Pažnja: Ako koristite ESP32-DevKitC ploču sa ESP32-SOLO-1 modulom ili ESP32-DevKitM-1 ploču sa ESP32-MIN1-1(1U) modulom, molimo vas da omogućite single core mod (CONFIG_FREERTOS_UNICORE) u menuconfig prije flešovanja examples.
Espressif Systems
19 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Sl. 12: Konfiguracija projekta – Početni prozor
Napomena: Boje menija mogu se razlikovati u vašem terminalu. Izgled možete promijeniti opcijom –style. Za više informacija pokrenite idf.py menuconfig –help.
Ako koristite jednu od podržanih razvojnih ploča, možete ubrzati svoj razvoj korištenjem Paketa podrške za ploče. Pogledajte Dodatne savjete za više informacija.
Izgradite projekat Izgradite projekat pokretanjem:
idf.py build
Ova naredba će kompajlirati aplikaciju i sve ESP-IDF komponente, zatim će generirati pokretački program, particijsku tablicu i binarne datoteke aplikacije.
$ idf.py build Pokretanje cmake-a u direktoriju /path/to/hello_world/build Izvršavanje “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Upozorenje o neinicijaliziranim vrijednostima. — Pronađen Git: /usr/bin/git (pronađena verzija “2.17.0”) — Izrada prazne aws_iot komponente zbog konfiguracije — Imena komponenti: … — Putanje komponenti: …
… (više linija izlaza sistema za izgradnju)
[527/527] Generisanje hello_world.bin esptool.py v2.3.1
Izrada projekta je završena. Za flešovanje, pokrenite ovu naredbu: ../../../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 ili pokrenite 'idf.py -p PORT flash'
Ako nema grešaka, izrada će se završiti generisanjem binarnog .bin firmvera files.
Espressif Systems
20 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Flešovanje na uređaj Flešujte binarne datoteke koje ste upravo sastavili (bootloader.bin, partition-table.bin i hello_world.bin) na vašu ESP32 ploču pokretanjem: idf.py -p PORT [-b BAUD] flash
Zamijenite PORT nazivom serijskog porta vaše ESP32 matične ploče. Također možete promijeniti brzinu prijenosa podataka fleš memorije zamjenom BAUD brzinom prijenosa podataka koja vam je potrebna. Zadana brzina prijenosa podataka je 460800. Za više informacija o argumentima idf.py, pogledajte idf.py.
Napomena: Opcija flash automatski gradi i flešuje projekat, tako da pokretanje idf.py build nije potrebno.
Problemi prilikom flešovanja? Ako pokrenete datu komandu i vidite greške kao što je "Failed to connectp" (Neuspješno povezivanje), za to može postojati nekoliko razloga. Jedan od razloga mogu biti problemi s kojima se susreće esptool.py, uslužni program koji poziva sistem za izgradnju radi resetiranja čipa, interakcije s bootloaderom ROM-a i flešovanja firmvera. Jedno jednostavno rješenje koje možete pokušati je ručno resetiranje opisano u nastavku, a ako to ne pomogne, više detalja o mogućim problemima možete pronaći u odjeljku Rješavanje problema.
esptool.py automatski resetuje ESP32 aktiviranjem DTR i RTS kontrolnih linija USB-serijskog konvertora, tj. FTDI ili CP210x (za više informacija pogledajte Uspostavljanje serijske veze sa ESP32). DTR i RTS kontrolne linije su redom povezane na GPIO0 i CHIP_PU (EN) pinove ESP32, čime se mijenja volumen.tagNivoi DTR-a i RTS-a će pokrenuti ESP32 u mod preuzimanja firmvera. Kao npr.ampDakle, provjerite shemu za razvojnu ploču ESP32 DevKitC.
Generalno, ne biste trebali imati problema sa službenim razvojnim pločama za esp-idf. Međutim, esptool.py ne može automatski resetirati vaš hardver u sljedećim slučajevima:
· Vaš hardver nema DTR i RTS linije povezane na GPIO0 i CHIP_PU · DTR i RTS linije su drugačije konfigurisane · Uopšte ne postoje takve serijske kontrolne linije
U zavisnosti od vrste hardvera koji imate, moguće je i ručno staviti vašu ESP32 ploču u režim preuzimanja firmvera (resetovanje).
· Za razvojne ploče koje proizvodi Espressif, ove informacije se mogu pronaći u odgovarajućim vodičima za početak rada ili korisničkim vodičima. Na primjerampDa biste ručno resetovali razvojnu ploču ESP-IDF, držite pritisnuto dugme Boot (GPIO0) i pritisnite dugme EN (CHIP_PU).
· Za ostale tipove hardvera, pokušajte smanjiti GPIO0.
Normalan rad Tokom treptanja, vidjet ćete izlazni zapis sličan sljedećem:
... esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset 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 Serijski port /dev/ttyUSB0 Povezivanje…….._ Čip je ESP32D0WDQ6 (revizija 0) Karakteristike: WiFi, BT, Dual Core, Šema kodiranja Nema Kristal je 40MHz MAC: 24:0a:c4:05:b9:14 Otpremanje stuba… Pokretanje stuba… Stub se pokreće… Promjena brzine prijenosa podataka na 460800 Promijenjeno.
(nastavlja se na sljedećoj stranici)
Espressif Systems
21 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
(nastavak sa prethodne stranice) Konfigurisanje veličine fleš memorije… Komprimovano 3072 bajta na 103… Pisanje na 0x00008000… (100 %) Zapisano 3072 bajta (103 komprimovano) na 0x00008000 za 0.0 sekundi (efektivno 5962.8 kbit/s)… Heš podataka je verifikovan. Komprimovano 26096 bajta na 15408… Pisanje na 0x00001000… (100 %) Zapisano 26096 bajta (15408 komprimovano) na 0x00001000 za 0.4 sekunde (efektivno 546.7 kbit/s)… Heš podataka je verifikovan. Komprimovano 147104 bajtova na 77364… Pisanje na 0x00010000… (20 %) Pisanje na 0x00014000… (40 %) Pisanje na 0x00018000… (60 %) Pisanje na 0x0001c000… (80 %) Pisanje na 0x00020000… (100 %) Zapisano 147104 bajtova (77364 komprimovano) na 0x00010000 za 1.9 sekundi (efektivno 615,5 kbit/s)… Heš podataka verifikovan.
Napuštanje… Hard resetovanje preko RTS pina… Gotovo
Ako do kraja procesa flešovanja nema problema, ploča će se ponovo pokrenuti i pokrenuti aplikaciju theohello_worldpa. Ako želite koristiti Eclipse ili VS Code IDE umjesto pokretanja idf.py, pogledajte Eclipse Plugin, VSCode Extension.
Praćenje izlaza Da biste provjerili da li ohello_worldpis zaista radi, upišite idf.py -p PORT monitor (ne zaboravite zamijeniti PORT nazivom vašeg serijskog porta).
Ova komanda pokreće IDF Monitor aplikaciju:
$ idf.py -p monitor Pokretanje idf_monitor u direktoriju […]/esp/hello_world/build Izvršavanje “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor uključen 115200 —– Izlaz: Ctrl+] | Meni: Ctrl+T | Pomoć: Ctrl+T pa zatim Ctrl+H –ets 8. juna 2016. 00:22:57
rst:0x1 (POWERON_RESET), boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8. juna 2016. 00:22:57 …
Nakon što se zapisi o pokretanju i dijagnostici pomaknu prema gore, trebali biste vidjeti ispis aplikacije oHello world!.
... Zdravo svijete! Ponovno pokretanje za 10 sekundi... Ovo je esp32 čip sa 2 CPU jezgra, WiFi/BT/BLE, silikonska revizija 1, 2MB eksterne fleš memorije Minimalna veličina slobodne memorije: 298968 bajtova Ponovno pokretanje za 9 sekundi... Ponovno pokretanje za 8 sekundi... Ponovno pokretanje za 7 sekundi...
Za izlazak iz IDF monitora koristite prečicu Ctrl+].
Espressif Systems
22 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Ako IDF monitor ne uspije ubrzo nakon učitavanja ili ako umjesto gornjih poruka vidite nasumične greške slične onima koje su prikazane ispod, vaša ploča vjerovatno koristi kristal od 26 MHz. Većina razvojnih ploča koristi 40 MHz, tako da ESP-IDF koristi ovu frekvenciju kao zadanu vrijednost.
Ako imate takav problem, uradite sljedeće: 1. Izađite iz monitora. 2. Vratite se u menuconfig. 3. Idite na Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency, a zatim promijenite CONFIG_XTAL_FREQ_SEL na 26 MHz. 4. Nakon toga, ponovo izgradite i flešujte aplikaciju.
U trenutnoj verziji ESP-IDF-a, glavne XTAL frekvencije koje podržava ESP32 su sljedeće:
· 26 MHz · 40 MHz
Napomena: Izgradnju, flešovanje i praćenje možete kombinovati u jedan korak pokretanjem: idf.py -p PORT flash monitor
Pogledajte također: · IDF Monitor za praktične prečice i više detalja o korištenju IDF monitora. · idf.py za potpunu referencu idf.py naredbi i opcija.
To je sve što vam treba da započnete s ESP32! Sada ste spremni isprobati neke druge...ampdatoteke ili odmah prijeđite na razvoj vlastitih aplikacija.
Važno: Neki od bivšihampDatoteke ne podržavaju ESP32 jer potreban hardver nije uključen u ESP32, tako da ne može biti podržan. Ako gradite example, molimo provjerite README datoteku file za tabelu Podržani ciljevi. Ako je ovo prisutno, uključujući ESP32 cilj, ili tabela uopće ne postoji, exampRadit će na ESP32.
Dodatni savjeti
Problemi s dozvolama /dev/ttyUSB0 Kod nekih Linux distribucija, prilikom flešovanja ESP32 možete dobiti poruku o grešci „Neuspješno otvaranje porta /dev/ttyUSB0“. Ovo se može riješiti dodavanjem trenutnog korisnika u dialout grupu.
Kompatibilnost s Pythonom ESP-IDF podržava Python 3.7 ili noviji. Preporučuje se nadogradnja operativnog sistema na noviju verziju koja zadovoljava ovaj zahtjev. Druge opcije uključuju instalaciju Pythona iz izvornog koda ili korištenje sistema za upravljanje verzijama Pythona kao što je pyenv.
Započnite s paketom podrške za ploču Da biste ubrzali izradu prototipa na nekim razvojnim pločama, možete koristiti pakete podrške za ploču (BSP), što inicijalizaciju određene ploče čini jednostavnom uz samo nekoliko poziva funkcija.
Espressif Systems
23 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
BSP obično podržava sve hardverske komponente koje se nalaze na razvojnoj ploči. Osim definicije rasporeda pinova i funkcija inicijalizacije, BSP se isporučuje s drajverima za vanjske komponente kao što su senzori, ekrani, audio kodeci itd. BSP-ovi se distribuiraju putem IDF Component Managera, tako da se mogu pronaći u IDF Component Registryju. Evo i exampLekcija o tome kako dodati ESP-WROVER-KIT BSP u vaš projekat: idf.py add-dependency esp_wrover_kit
Više exampManje korištenja BSP-a mogu se naći u BSP primjeruamples folder.
Povezani dokumenti Za napredne korisnike koji žele prilagoditi proces instalacije: · Ažuriranje ESP-IDF alata na Windowsu · Uspostavljanje serijske veze s ESP32 · Eclipse dodatak · VSCode proširenje · IDF monitor
Ažuriranje ESP-IDF alata na Windowsu
Instalirajte ESP-IDF alate pomoću skripte. Iz Windows komandne linije, pređite u direktorij u kojem je instaliran ESPIDF. Zatim pokrenite:
install.bat
Za Powershell, pređite u direktorij u kojem je instaliran ESP-IDF. Zatim pokrenite:
instaliraj.ps1
Ovim će se preuzeti i instalirati alati potrebni za korištenje ESP-IDF-a. Ako je određena verzija alata već instalirana, neće se poduzeti nikakva radnja. Alati se preuzimaju i instaliraju u direktorij naveden tokom procesa instalacije ESP-IDF alata. Podrazumevano, ovo je C:Usersusername.espressif.
Dodavanje ESP-IDF alata u PATH pomoću skripte za izvoz. Instalacijski program ESP-IDF alata kreira prečicu u meniju Start za ESP-IDF komandni redak. Ova prečica otvara prozor komandnog retka u kojem se već nalaze svi alati.
dostupno. U nekim slučajevima, možda ćete htjeti raditi s ESP-IDF-om u prozoru komandne linije koji nije pokrenut pomoću te prečice. Ako je to slučaj, slijedite upute u nastavku da biste dodali ESP-IDF alate u PATH. U komandnoj liniji gdje trebate koristiti ESP-IDF, promijenite se u direktorij u kojem je instaliran ESP-IDF, a zatim pokrenite export.bat:
cd %userprofile%espesp-idf izvoz.bat
Alternativno, u Powershellu gdje trebate koristiti ESP-IDF, promijenite direktorij u kojem je instaliran ESP-IDF, a zatim izvršite export.ps1:
cd ~/esp/esp-idf export.ps1
Kada se ovo uradi, alati će biti dostupni u ovoj komandnoj liniji.
Uspostavljanje serijske veze sa ESP32 Ovaj odjeljak pruža upute o tome kako uspostaviti serijsku vezu između ESP32 i računara.
Espressif Systems
24 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Povežite ESP32 sa računarom Povežite ESP32 ploču sa računarom pomoću USB kabla. Ako se upravljački program uređaja ne instalira automatski, pronađite USB-serijski konverter na vašoj ESP32 ploči (ili eksternom adapteru), potražite upravljačke programe na internetu i instalirajte ih. Ispod je lista USB-serijskih konvertera instaliranih na većini ESP32 ploča koje proizvodi Espressif, zajedno sa linkovima do upravljačkih programa:
· CP210x: CP210x USB na UART Bridge VCP drajveri · FTDI: FTDI drajveri za virtuelni COM port Molimo provjerite uputstvo za upotrebu ploče za specifični USB na serijski konverter koji se koristi. Gore navedeni drajveri su prvenstveno za referencu. U normalnim okolnostima, drajveri bi trebali biti u paketu s operativnim sistemom i automatski se instalirati nakon povezivanja ploče na računar.
Provjerite port na Windowsu. Provjerite listu identifikovanih COM portova u Windows Device Manageru. Isključite ESP32 i ponovo ga povežite kako biste provjerili koji port nestaje sa liste, a zatim se ponovo pojavljuje. Slike ispod prikazuju serijski port za ESP32 DevKitC i ESP32 WROVER KIT.
Sl. 13: USB-UART most ESP32-DevKitC u Windows Device Manageru
Provjera porta na Linuxu i macOS-u Da biste provjerili naziv uređaja za serijski port vaše ESP32 ploče (ili eksternog konvertorskog donglea), pokrenite ovu naredbu dva puta, prvo s isključenom pločom/dongleom, a zatim s uključenim. Port koji se pojavi drugi put je onaj koji vam je potreban: Linux
ls /dev/tty*
macOS
Espressif Systems
25 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Sl. 14: Dva USB serijska porta ESP-WROVER-KIT-a u Windows Device Manageru
Espressif Systems
26 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
ls /dev/cu.* Napomena: Korisnici macOS-a: ako ne vidite serijski port, provjerite imate li instalirane USB/serijske drajvere. Pogledajte odjeljak Povezivanje ESP32 sa računarom za veze do drajvera. Za macOS High Sierra (10.13), možda ćete morati eksplicitno dozvoliti učitavanje drajvera. Otvorite Sistemske postavke -> Sigurnost i privatnost -> Općenito i provjerite da li je ovdje prikazana poruka o sistemskom softveru od programera lp, gdje je ime programera Silicon Labs ili FTDI.
Dodavanje korisnika u dialout grupu na Linuxu Trenutno prijavljeni korisnik treba imati pristup za čitanje i pisanje serijskog porta preko USB-a. Na većini Linux distribucija, to se radi dodavanjem korisnika u dialout grupu sljedećom naredbom:
sudo usermod -a -G dialout $USER
na Arch Linuxu to se radi dodavanjem korisnika u uucp grupu sa sljedećom naredbom:
sudo usermod -a -G uucp $USER
Obavezno se ponovo prijavite da biste omogućili dozvole za čitanje i pisanje za serijski port.
Provjera serijske veze Sada provjerite da li serijska veza radi. To možete učiniti pomoću programa serijskog terminala provjerom da li se na terminalu pojavljuje bilo kakav izlaz nakon resetiranja ESP32. Zadana brzina prijenosa podataka konzole na ESP32 je 115200.
Windows i Linux u ovom exampKoristit ćemo PuTTY SSH klijent koji je dostupan i za Windows i za Linux. Možete koristiti i druge serijske programe i postaviti komunikacijske parametre kao što je prikazano ispod. Pokrenite terminal i postavite identificirani serijski port. Brzina prijenosa podataka = 115200 (ako je potrebno, promijenite ovo na zadanu brzinu prijenosa podataka čipa koji se koristi), podatkovni bitovi = 8, stop bitovi = 1 i paritet = N. Ispod su primjeriampsnimke ekrana podešavanja porta i takvih parametara prijenosa (skraćeno opisano kao 115200-8-1-N) na Windowsu i Linuxu. Ne zaboravite odabrati potpuno isti serijski port koji ste identificirali u gornjim koracima. Zatim otvorite serijski port u terminalu i provjerite da li vidite bilo kakav zapisnik ispisan od strane ESP32. Sadržaj zapisnika će zavisiti od aplikacije učitane na ESP32, pogledajte primjer...ampIzlaz.
Napomena: Zatvorite serijski terminal nakon provjere da komunikacija radi. Ako ostavite sesiju terminala otvorenom, serijski port neće biti dostupan za kasnije učitavanje firmvera.
macOS Da biste se poštedjeli problema s instaliranjem programa za serijski terminal, macOS nudi naredbu screen. · Kao što je objašnjeno u odjeljku Provjera porta na Linuxu i macOS-u, pokrenite:
ls /dev/cu.* · Trebali biste vidjeti sličan izlaz:
/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Izlaz će varirati ovisno o vrsti i broju ploča povezanih na vaš računar. Zatim odaberite naziv uređaja vaše ploče i pokrenite (ako je potrebno, promijenite o115200 na zadanu brzinu prijenosa podataka čipa koji se koristi):
ekran /dev/cu.naziv_uređaja 115200 Zamijenite naziv_uređaja imenom pronađenim prilikom pokretanja naredbe ls /dev/cu.*.
Espressif Systems
27 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Sl. 15: Podešavanje serijske komunikacije u PuTTY-u na Windowsu
Espressif Systems
28 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Sl. 16: Podešavanje serijske komunikacije u PuTTY-u na Linuxu
Espressif Systems
29 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
· Ono što tražite je neki zapisnik prikazan na ekranu. Sadržaj zapisnika će zavisiti od aplikacije učitane u ESP32, pogledajte primjerample Output. To exit the screen session type Ctrl-A + .
Napomena: Ne zaboravite zatvoriti sesiju ekrana nakon što provjerite da li komunikacija radi. Ako to ne učinite i samo zatvorite prozor terminala, serijski port neće biti dostupan za kasnije učitavanje firmvera.
ExampIzlaz An exampZapisnik je prikazan ispod. Resetujte ploču ako ne vidite ništa. ets 8. juni 2016. 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8. juna 2016. 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 bootloader I (45) boot: vrijeme kompajliranja 18:48:10
...
Ako vidite čitljiv zapis u dnevniku, to znači da serijska veza radi i da ste spremni za nastavak instalacije i konačnog otpremanja aplikacije na ESP32.
Napomena: Za neke konfiguracije ožičenja serijskog porta, serijski RTS i DTR pinovi moraju biti onemogućeni u terminalnom programu prije nego što se ESP32 pokrene i proizvede serijski izlaz. To zavisi od samog hardvera, većina razvojnih ploča (uključujući sve Espressif ploče) nema ovaj problem. Problem je prisutan ako su RTS i DTR direktno povezani na EN i GPIO0 pinove. Pogledajte dokumentaciju esptool-a za više detalja.
Ako ste ovdje stigli iz Koraka 5. Prvi koraci na ESP-IDF-u prilikom instaliranja softvera za ESP32 razvoj, onda možete nastaviti s Korakom 5. Prvi koraci na ESP-IDF-u.
IDF Monitor IDF Monitor je uglavnom serijski terminalni program koji prenosi serijske podatke na i sa serijskog porta ciljnog uređaja. Također pruža neke IDF-specifične funkcije. IDF Monitor se može pokrenuti iz IDF projekta pokretanjem idf.py monitor.
Prečice na tastaturi Za jednostavnu interakciju sa IDF Monitorom, koristite prečice na tastaturi date u tabeli.
Espressif Systems
30 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Prečica na tastaturi Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (ili A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (ili I)
· Ctrl+H (ili H)
· Ctrl+X (ili X)
Ctrl+C
Akcija
Opis
Izlaz iz programa Tipka za izlaz iz menija Pošalji sam znak menija na daljinski upravljač
Pošalji sam izlazni znak na daljinski upravljač
Resetiraj cilj u bootloader da pauziraš aplikaciju putem RTS linije
Resetiraj ciljnu ploču putem RTS-a
Izgradite i flešujte projekat
Samo izgradnja i flešovanje aplikacije
Zaustavi/nastavi ispis zapisnika na ekranu
Izlaz zapisnika o zaustavljanju/nastavku sačuvan u file
Vrijeme zaustavljanja/nastavkaamps
štampanje
Prikaži sve prečice na tastaturi
Pritisnite i zatim koristite jednu od tipki navedenih u nastavku.
Resetuje ciljnu ploču u bootloader putem RTS linije (ako je povezana), tako da ploča ne pokreće ništa. Korisno kada trebate čekati da se pokrene drugi uređaj. Resetuje ciljnu ploču i ponovo pokreće aplikaciju putem RTS linije (ako je povezana).
Pauzira idf_monitor da bi pokrenuo ciljnu flash datoteku projekta, a zatim nastavlja idf_monitor. Bilo koji promijenjeni izvor filese rekompajliraju i zatim ponovo flešuju. Target encrypted-flash se pokreće ako je idf_monitor pokrenut s argumentom -E. Pauzira idf_monitor da bi se pokrenula aplikacija-flash, a zatim nastavlja idf_monitor. Slično flash cilju, ali se samo glavna aplikacija gradi i ponovo flešuje. Target encrypted-app-flash se pokreće ako je idf_monitor pokrenut s argumentom -E. Odbacuje sve dolazne serijske podatke dok je aktiviran. Omogućava brzo pauziranje i pregled izlaza dnevnika bez zatvaranja monitora. Kreira file u direktoriju projekta i izlaz se zapisuje u taj direktorij file dok se ovo ne onemogući istom prečicom na tastaturi (ili dok se IDF Monitor ne zatvori). IDF Monitor može ispisati vremensko ograničenjeamp na početku svakog reda. Najkratkije vrijemeamp format se može promijeniti po –timest-uamp-format argument komandne linije.
Izađite iz programa
Prekid pokrenute aplikacije
Pauzira IDF Monitor i pokreće GDB debugger projekta za debugiranje aplikacije tokom izvođenja. Ovo zahtijeva da opcija :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME bude omogućena.
Bilo koji pritisnuti taster, osim Ctrl-] i Ctrl-T, biće poslat kroz serijski port.
Karakteristike specifične za IDF
Automatsko dekodiranje adrese Kad god ESP-IDF izbaci heksadecimalni kod adrese u obliku 0x4_______, IDF Monitor koristi addr2line_ da bi pretražio lokaciju u izvornom kodu i pronašao naziv funkcije.
Ako se ESP-IDF aplikacija sruši i izazove paniku, generira se ispis registra i povratno praćenje, kao što je sljedeće:
Espressif Systems
31 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Greška Guru meditacije tipa StoreProhibited dogodila se na jezgri 0. Izuzetak je bio
neobrađeno.
Registrujte dump:
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 IZVINITE:
0x0000001d
IZNOSNA ADRESA: 0x00000000 LBEG: 0x4000c46c ZAJAM: 0x4000c477 BROJ:
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitor dodaje više detalja u damp:
Greška Guru meditacije tipa StoreProhibited dogodila se na jezgri 0. Izuzetak je bio
neobrađeno.
Registrujte dump:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: uradi_nešto_što_će_srušiti_sistem na /home/gus/esp/32/idf/examples/započni/
zdravo_svijet/glavna/./zdravo_svijet_main.c:57
(ugrađeno od strane) inner_dont_crash na /home/gus/esp/32/idf/examples/početak/zdravo_
svijet/glavna/./hello_world_main.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 IZVINITE:
0x0000001d
IZNOSNA ADRESA: 0x00000000 LBEG: 0x4000c46c ZAJAM: 0x4000c477 BROJ:
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 (ugrađeno od strane) inner_dont_crash na /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: još uvijek_nema_pada na /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash na /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main na /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: glavni_zadatak na /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254
Da bi dekodirao svaku adresu, IDF Monitor izvršava sljedeću naredbu u pozadini: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADRESA
Napomena: Postavite varijablu okruženja ESP_MONITOR_DECODE na 0 ili pozovite idf_monitor.py sa specifičnom komandnom linijom
Espressif Systems
32 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
opcija: idf_monitor.py –disable-address-decoding za onemogućavanje dekodiranja adrese.
Resetiranje cilja prilikom povezivanja Prema zadanim postavkama, IDF Monitor će resetirati cilj prilikom povezivanja s njim. Resetiranje ciljnog čipa se vrši pomoću serijskih linija DTR i RTS. Da biste spriječili IDF Monitor da automatski resetuje cilj prilikom povezivanja, pozovite IDF Monitor s opcijom –no-reset (npr. idf_monitor.py –no-reset).
Napomena: Opcija –no-reset primjenjuje isto ponašanje čak i prilikom povezivanja IDF Monitora na određeni port (npr. idf.py monitor –no-reset -p [PORT]).
Pokretanje GDB-a pomoću GDBStuba GDBStub je korisna funkcija za otklanjanje grešaka tokom izvođenja koja se pokreće na ciljnom računaru i povezuje se s hostom preko serijskog porta kako bi primala naredbe za otklanjanje grešaka. GDBStub podržava naredbe kao što su čitanje memorije i varijabli, ispitivanje okvira steka poziva itd. Iako je GDBStub manje svestran od J-a...TAG otklanjanje grešaka, ne zahtijeva nikakav poseban hardver (kao što je JTAG na USB most) jer se komunikacija u potpunosti odvija preko serijskog porta. Cilj se može konfigurirati da pokreće GDBStub u pozadini postavljanjem CONFIG_ESP_SYSTEM_PANIC na GDBStub tokom izvođenja. GDBStub će se pokretati u pozadini sve dok se ne pošalje poruka Ctrl+C preko serijskog porta i ne uzrokuje da GDBStub prekine (tj. zaustavi izvršavanje) programa, čime se omogućava GDBStub-u da obrađuje naredbe za otklanjanje grešaka. Nadalje, program za obradu panike može se konfigurirati da pokreće GDBStub prilikom pada sistema postavljanjem CONFIG_ESP_SYSTEM_PANIC na GDBStub prilikom panike. Kada dođe do pada sistema, GDBStub će poslati poseban uzorak niza znakova preko serijskog porta kako bi naznačio da se pokreće. U oba slučaja (tj. slanjem poruke Ctrl+C ili primanjem posebnog uzorka niza znakova), IDF Monitor će automatski pokrenuti GDB kako bi korisnik mogao slati naredbe za otklanjanje grešaka. Nakon što GDB izađe, cilj se resetuje putem RTS serijske linije. Ako ova linija nije povezana, korisnici mogu resetirati svoj cilj (pritiskom na dugme Reset na ploči).
Napomena: U pozadini, IDF Monitor izvršava sljedeću naredbu za pokretanje GDB-a:
xtensa-esp32-elf-gdb -ex “postavi serijski baud BAUD” -ex “ciljni udaljeni PORT” -ex prekid build/PROJECT.elf :idf_target:`Pozdrav NAZIV čipa`
Filtriranje izlaza IDF monitor se može pozvati kao idf.py monitor –print-filter=”xyz”, gdje je –print-filter parametar za filtriranje izlaza. Zadana vrijednost je prazan niz, što znači da se sve ispisuje.
Ograničenja u pogledu onoga što će se štampati mogu se odrediti kao niztag>: stavke gdjetag> je tag konac i je znak iz skupa {N, E, W, I, D, V, *} koji se odnosi na nivo za evidentiranje.
Za nprample, PRINT_FILTER="tag1:W” odgovara i ispisuje samo izlaze zapisane sa ESP_LOGW(“tag1”, …) ili na nižem nivou detaljnosti, tj. ESP_LOGE(“tag1″, ...). Bez navođenja ili korištenjem znaka * podrazumijeva se Verbose nivo.
Napomena: Koristite primarno evidentiranje da biste prilikom kompajliranja onemogućili izlaze koji vam nisu potrebni putem biblioteke evidentiranja. Filtriranje izlaza pomoću IDF monitora je sekundarno rješenje koje može biti korisno za podešavanje opcija filtriranja bez ponovnog kompajliranja aplikacije.
Vaša aplikacija tags ne smije sadržavati razmake, zvjezdice * ili dvotočke: da bi bilo kompatibilno s funkcijom filtriranja izlaza.
Ako nakon posljednjeg reda izlaza u vašoj aplikaciji ne slijedi znak za povratak na početak reda, filtriranje izlaza može biti zbunjujuće, tj. monitor počinje ispisivati red, a kasnije otkrije da red nije trebao biti ispisan. Ovo je poznati problem i može se izbjeći stalnim dodavanjem znaka za povratak na početak reda (posebno kada odmah nakon toga ne slijedi izlaz).
Espressif Systems
33 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
ExampPravila filtriranja:
· * se može koristiti za podudaranje bilo kojeg tagsMeđutim, niz znakova PRINT_FILTER=”*:I tag1:E” u vezi sa tag1 ispisuje samo greške, jer pravilo za tag1 ima veći prioritet od pravila za *.
· Zadano (prazno) pravilo je ekvivalentno *:V jer se podudara sa svakim tag na Verbose nivou ili nižem znači podudaranje svega.
· “*:N” potiskuje ne samo izlaze iz funkcija za evidentiranje, već i ispise koje pravi printf, itd. Da biste to izbjegli, koristite *:E ili viši nivo detaljnosti.
· Pravila “tag1:V”, “tag1:v”, “tag1:”, “tag1:*” i “tag1” su ekvivalentni. · Pravilo “tag1:Z tag1:E” je ekvivalentno sa “tag1:E” jer svako naknadno pojavljivanje istog tag
ime prepisuje prethodno. · Pravilo “tag1:I tagSamo štampanje u formatu 2:W” tag1 na nivou detaljnosti informacija ili nižem i tag2 na Upozorenju
nivo govora ili niži. · Pravilo “tag1:I tag2:Z tag3:N” je u suštini ekvivalentan prethodnom jer tag3:N specificira
to tag3 ne treba štampati. · tag3:N u pravilu “tag1:I tag2:Z tag3:N *:V” ima više smisla jer bez tag3:N
tagMogle su biti odštampane 3 poruke; greške za tag1 i tag2 će biti ispisan na navedenom (ili nižem) nivou detalja, a sve ostalo će biti ispisano po zadanim postavkama.
Složeniji primjer filtriranjaampSljedeći isječak zapisnika je prikupljen bez ikakvih opcija filtriranja:
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: slika na 0x30000 ima nevažeći magični bajt W (31) esp_image: slika na 0x30000 ima nevažeći SPI mod 255 E (39) boot: Particija fabričke aplikacije nije bootable I (568) cpu_start: Pro cpu up. I (569) heap_init: Inicijalizacija. RAM dostupan za dinamičku alokaciju: I (603) cpu_start: Pro cpu start korisnički kod D (309) light_driver: [light_init, 74]:status: 1, mod: 2 D (318) vfs: esp_vfs_register_fd_range je uspješan za raspon <54; 64) i VFS ID 1 I (328) wifi: zadatak wifi drajvera: 3ffdbf84, prio:23, stek:4096, jezgro=0
Snimljeni izlaz za opcije filtriranja PRINT_FILTER=”wifi esp_image:E light_driver:I” dat je u nastavku:
E (31) esp_image: slika na 0x30000 ima nevažeći magični bajt I (328) wifi: zadatak wifi drajvera: 3ffdbf84, prio:23, stek:4096, jezgro=0
Opcije „PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" prikazuju sljedeći izlaz:
load:0x40078000,len:13564 entry 0x40078d4c I (569) heap_init: Inicijalizacija. RAM dostupan za dinamičku alokaciju: D (309) light_driver: [light_init, 74]:status: 1, mod: 2
Poznati problemi s IDF monitorom
Problemi uočeni na Windowsu
· Tipke sa strelicama, kao i neke druge tipke, ne rade u GDB-u zbog ograničenja Windows konzole. · Povremeno, kada oidf.pypexit izađe, može se zaustaviti do 30 sekundi prije nego što se IDF Monitor nastavi. · Kada se ogdbpis pokrene, može se zaustaviti na kratko vrijeme prije nego što počne komunicirati s GDBStubom.
Espressif Systems
34 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak rada sa standardnim podešavanjem Toolchaina za Linux i macOS
Instalacija korak po korak Ovo je detaljan vodič koji će vas provesti kroz proces instalacije.
Postavljanje razvojnog okruženja Ovo su koraci za postavljanje ESP-IDF-a za vaš ESP32. · Korak 1. Instalirajte preduvjete · Korak 2. Nabavite ESP-IDF · Korak 3. Postavite alate · Korak 4. Postavite varijable okruženja · Korak 5. Prvi koraci na ESP-IDF-u
Korak 1. Preduvjeti za instalaciju Da biste koristili ESP-IDF sa ESP32, potrebno je instalirati neke softverske pakete na osnovu vašeg operativnog sistema. Ovaj vodič za podešavanje će vam pomoći da sve instalirate na sistemima baziranim na Linuxu i macOS-u.
Za korisnike Linuxa Za kompajliranje pomoću ESP-IDF-a potrebno je da nabavite sljedeće pakete. Naredba koju treba pokrenuti zavisi od toga koju distribuciju Linuxa koristite:
· Ubuntu i 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 i 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 je i dalje podržan, ali se preporučuje CentOS verzija 8 za bolje korisničko iskustvo. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Napomena: · Za korištenje s ESP-IDF-om potreban je CMake verzije 3.16 ili novije. Pokrenite otools/idf_tools.py install cmake da biste instalirali odgovarajuću verziju ako vaša verzija operativnog sistema nema jednu. · Ako ne vidite svoju Linux distribuciju na gornjoj listi, provjerite njenu dokumentaciju da biste saznali koju naredbu trebate koristiti za instalaciju paketa.
Za korisnike macOS-a, ESP-IDF će koristiti verziju Pythona koja je podrazumevano instalirana na macOS-u. · Instalirajte CMake i Ninja build: Ako imate HomeBrew, možete pokrenuti: brew install cmake ninja dfu-util Ako imate MacPorts, možete pokrenuti: sudo port install cmake ninja dfu-util U suprotnom, pogledajte početne stranice CMake i Ninja za preuzimanje instalacije za macOS.
Espressif Systems
35 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
· Preporučuje se instaliranje i ccache-a za brže sklapanje. Ako imate HomeBrew, to se može uraditi putem brew install ccache ili sudo port install ccache na MacPorts-ima.
Napomena: Ako se tokom bilo kojeg koraka prikaže ovakva greška: xcrun: greška: nevažeća aktivna putanja programera (/Library/Developer/CommandLineTools), nedostaje xcrun na: /Library/Developer/CommandLineTools/usr/bin/xcrun
Zatim ćete morati instalirati XCode alate komandne linije da biste nastavili. Možete ih instalirati pokretanjem xcode-select –install.
Korisnici Apple M1 platforme Ako koristite Apple M1 platformu i vidite ovakvu grešku: UPOZORENJE: direktorij za alat xtensa-esp32-elf verzije esp-2021r2-patch3-8.4.0 je prisutan, ali alat nije pronađen GREŠKA: alat xtensa-esp32-elf nema instaliranih verzija. Pokrenite 'install.sh' da biste ga instalirali.
ili: zsh: loš tip CPU-a u izvršnoj datoteci: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Zatim ćete morati instalirati Apple Rosetta 2 pokretanjem naredbe /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Instaliranje Pythona 3 Na osnovu bilješki o izdanju macOS Catalina 10.15, korištenje Pythona 2.7 se ne preporučuje i Python 2.7 neće biti uključen po defaultu u budućim verzijama macOS-a. Provjerite koji Python trenutno imate: python –version
Ako je izlaz kao Python 2.7.17, vaš zadani interpreter je Python 2.7. Ako je tako, provjerite i da li je Python 3 već instaliran na vašem računaru: python3 –version
Ako gornja komanda vrati grešku, to znači da Python 3 nije instaliran. Ispod je prikazana greška.view koraka za instalaciju Pythona 3.
· Instalacija pomoću HomeBrew-a može se izvršiti na sljedeći način: brew install python3
· Ako imate MacPorts, možete pokrenuti: sudo port install python38
Korak 2. Nabavite ESP-IDF Za izradu aplikacija za ESP32, potrebne su vam softverske biblioteke koje Espressif pruža u ESP-IDF repozitoriju. Da biste nabavili ESP-IDF, idite do instalacijskog direktorija i klonirajte repozitorij pomoću naredbe git clone, slijedeći upute u nastavku specifične za vaš operativni sistem. Otvorite Terminal i pokrenite sljedeće naredbe:
Espressif Systems
36 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekurzivno https://github.com/espressif/esp-idf.git
ESP-IDF će biti preuzet u ~/esp/esp-idf. Konsultujte ESP-IDF verzije za informacije o tome koju verziju ESP-IDF koristiti u datoj situaciji.
Korak 3. Podešavanje alata Pored ESP-IDF-a, potrebno je instalirati i alate koje koristi ESP-IDF, kao što su kompajler, debugger, Python paketi itd., za projekte koji podržavaju ESP32. cd ~/esp/esp-idf ./install.sh esp32
ili sa Fish shell cd ~/esp/esp-idf ./install.fish esp32
Gornje naredbe instaliraju alate samo za ESP32. Ako namjeravate razvijati projekte za više čipova, onda biste ih trebali sve navesti i pokrenuti, na primjer...ample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
ili sa Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Da biste instalirali alate za sve podržane ciljne sisteme, pokrenite sljedeću naredbu: cd ~/esp/esp-idf ./install.sh all
ili sa Fish shell cd ~/esp/esp-idf ./install.fish all
Napomena: Za korisnike macOS-a, ako se tokom bilo kojeg koraka prikaže ovakva greška:urlgreška pri otvaranju [SSL: CERTIFICATE_VERIFY_FAILED] provjera certifikata nije uspjela: nije moguće dobiti lokalni certifikat izdavatelja (_ssl.c:xxx)
Možete pokrenuti naredbu Install Certificates.command u Python mapi na vašem računaru da biste instalirali certifikate. Za detalje pogledajte Greška pri preuzimanju prilikom instaliranja ESP-IDF alata.
Alternativa File Preuzimanja Instalacijski program alata preuzima nekoliko filepriloženo uz GitHub izdanja. Ako je pristup GitHub-u spor, moguće je postaviti varijablu okruženja da se preferira Espressifns server za preuzimanje GitHub resursa.
Napomena: Ova postavka kontrolira samo pojedinačne alate preuzete s GitHub izdanja, ne mijenja URLkoristi se za pristup bilo kojim Git repozitorijima.
Da biste prilikom instaliranja alata preferirali Espressif server za preuzimanje, koristite sljedeći niz naredbi prilikom pokretanja install.sh datoteke:
Espressif Systems
37 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
cd ~/esp/esp-idf izvoz IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Prilagođavanje putanje instalacije alata Skripte predstavljene u ovom koraku instaliraju alate za kompilaciju koje zahtijeva ESP-IDF unutar početnog direktorija korisnika: $HOME/.espressif na Linuxu. Ako želite instalirati alate u drugi direktorij, postavite varijablu okruženja IDF_TOOLS_PATH prije pokretanja skripti za instalaciju. Provjerite da li vaš korisnički račun ima dovoljne dozvole za čitanje i pisanje ove putanje. Ako mijenjate IDF_TOOLS_PATH, provjerite je li postavljena na istu vrijednost svaki put kada se izvrše skripta za instalaciju (install.bat, install.ps1 ili install.sh) i skripta za izvoz (export.bat, export.ps1 ili export.sh).
Korak 4. Podešavanje varijabli okruženja Instalirani alati još nisu dodani varijabli okruženja PATH. Da bi alati bili upotrebljivi iz komandne linije, potrebno je postaviti neke varijable okruženja. ESP-IDF pruža drugu skriptu koja to radi. U terminalu gdje ćete koristiti ESP-IDF, pokrenite:
. $HOME/esp/esp-idf/export.sh
ili za ribu (podržano samo od verzije 3.0.0 za ribu):
$HOME/esp/esp-idf/export.fish
Obratite pažnju na razmak između početne tačke i putanje! Ako planirate često koristiti esp-idf, možete kreirati alias za izvršavanje export.sh:
1. Kopirajte i zalijepite sljedeću naredbu u vaš shellns profile (.profile, .bashrc, .zprofile, itd.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Osvježite konfiguraciju ponovnim pokretanjem terminalne sesije ili pokretanjem naredbe source [putanja do profile],
nprample, izvor ~/.bashrc. Sada možete pokrenuti get_idf da biste postavili ili osvježili esp-idf okruženje u bilo kojoj terminalnoj sesiji. Tehnički, možete dodati export.sh u svoj shellns profile direktno; međutim, to se ne preporučuje. Time se aktivira IDF virtuelno okruženje u svakoj terminalnoj sesiji (uključujući i one gdje IDF nije potreban), čime se poništava svrha virtuelnog okruženja i vjerovatno utiče na drugi softver.
Korak 5. Prvi koraci na ESP-IDF-u Sada kada su ispunjeni svi zahtjevi, sljedeća tema će vas voditi kroz proces pokretanja vašeg prvog projekta. Ovaj vodič će vam pomoći u prvim koracima korištenja ESP-IDF-a. Slijedite ovaj vodič za pokretanje novog projekta na ESP32 i izgradnju, flešovanje i praćenje izlaza uređaja.
Napomena: Ako još niste instalirali ESP-IDF, molimo vas da odete na Instalaciju i slijedite upute kako biste dobili sav softver potreban za korištenje ovog vodiča.
Započnite projekat Sada ste spremni da pripremite svoju aplikaciju za ESP32. Možete početi sa projektom getstarted/hello_world iz examples direktorij u ESP-IDF.
Važno: Sistem za izgradnju ESP-IDF-a ne podržava razmake u putanjama ni do ESP-IDF-a ni do projekata.
Kopirajte projekat get-started/hello_world u ~/esp direktorij:
Espressif Systems
38 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Napomena: Postoji niz example projekte u examples direktorij u ESP-IDF. Možete kopirati bilo koji projekat na isti način kao što je gore prikazano i pokrenuti ga. Također je moguća izgradnja examples na mjestu bez prethodnog kopiranja.
Povežite svoj uređaj Sada povežite svoju ESP32 ploču sa računarom i provjerite pod kojim serijskim portom je ploča vidljiva. Serijski portovi imaju sljedeće obrasce imenovanja:
· Linux: počevši od /dev/tty · macOS: počevši od /dev/cu. Ako niste sigurni kako provjeriti naziv serijskog porta, pogledajte Uspostavljanje serijske veze s ESP32 za više detalja.
Napomena: ime porta držite pri ruci jer će vam trebati u sljedećim koracima.
Konfigurišite svoj projekat: Idite do direktorijuma hello_world, postavite ESP32 kao cilj i pokrenite uslužni program za konfiguraciju projekta menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Nakon otvaranja novog projekta, prvo biste trebali postaviti cilj pomoću idf.py set-target esp32. Imajte na umu da će postojeće verzije i konfiguracije u projektu, ako ih ima, biti obrisane i inicijalizirane u ovom procesu. Cilj se može sačuvati u varijabli okruženja kako bi se ovaj korak u potpunosti preskočio. Pogledajte Odabir ciljnog čipa: set-target za dodatne informacije. Ako su prethodni koraci ispravno urađeni, pojavljuje se sljedeći meni:
Sl. 17: Konfiguracija projekta – Početni prozor Ovaj meni koristite za podešavanje varijabli specifičnih za projekat, npr. naziv i lozinku Wi-Fi mreže, brzinu procesora itd. Podešavanje projekta pomoću menuconfig može se preskočiti za hello_worldp, budući da ovaj example trči sa
Espressif Systems
39 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
podrazumevana konfiguracija.
Pažnja: Ako koristite ESP32-DevKitC ploču sa ESP32-SOLO-1 modulom ili ESP32-DevKitM-1 ploču sa ESP32-MIN1-1(1U) modulom, molimo vas da omogućite single core mod (CONFIG_FREERTOS_UNICORE) u menuconfig prije flešovanja examples.
Napomena: Boje menija mogu se razlikovati u vašem terminalu. Izgled možete promijeniti opcijom –style. Za više informacija pokrenite idf.py menuconfig –help.
Ako koristite jednu od podržanih razvojnih ploča, možete ubrzati svoj razvoj korištenjem Paketa podrške za ploče. Pogledajte Dodatne savjete za više informacija.
Izgradite projekat Izgradite projekat pokretanjem:
idf.py build
Ova naredba će kompajlirati aplikaciju i sve ESP-IDF komponente, zatim će generirati pokretački program, particijsku tablicu i binarne datoteke aplikacije.
$ idf.py build Pokretanje cmake-a u direktoriju /path/to/hello_world/build Izvršavanje “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Upozorenje o neinicijaliziranim vrijednostima. — Pronađen Git: /usr/bin/git (pronađena verzija “2.17.0”) — Izrada prazne aws_iot komponente zbog konfiguracije — Imena komponenti: … — Putanje komponenti: …
… (više linija izlaza sistema za izgradnju)
[527/527] Generisanje hello_world.bin esptool.py v2.3.1
Izrada projekta je završena. Za flešovanje, pokrenite ovu naredbu: ../../../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 ili pokrenite 'idf.py -p PORT flash'
Ako nema grešaka, izrada će se završiti generisanjem binarnog .bin firmvera files.
Flešujte na uređaj. Flešujte binarne datoteke koje ste upravo sastavili (bootloader.bin, partition-table.bin i hello_world.bin) na vašu ESP32 ploču pokretanjem:
idf.py -p PORT [-b BAUD] treperi
Zamijenite PORT nazivom serijskog porta vaše ESP32 matične ploče. Također možete promijeniti brzinu prijenosa podataka fleš memorije zamjenom BAUD brzinom prijenosa podataka koja vam je potrebna. Zadana brzina prijenosa podataka je 460800. Za više informacija o argumentima idf.py, pogledajte idf.py.
Napomena: Opcija flash automatski gradi i flešuje projekat, tako da pokretanje idf.py build nije potrebno.
Espressif Systems
40 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Problemi prilikom flešovanja? Ako pokrenete datu komandu i vidite greške kao što je "Failed to connectp" (Neuspješno povezivanje), za to može postojati nekoliko razloga. Jedan od razloga mogu biti problemi s kojima se susreće esptool.py, uslužni program koji poziva sistem za izgradnju radi resetiranja čipa, interakcije s bootloaderom ROM-a i flešovanja firmvera. Jedno jednostavno rješenje koje možete pokušati je ručno resetiranje opisano u nastavku, a ako to ne pomogne, više detalja o mogućim problemima možete pronaći u odjeljku Rješavanje problema.
esptool.py automatski resetuje ESP32 aktiviranjem DTR i RTS kontrolnih linija USB-serijskog konvertora, tj. FTDI ili CP210x (za više informacija pogledajte Uspostavljanje serijske veze sa ESP32). DTR i RTS kontrolne linije su redom povezane na GPIO0 i CHIP_PU (EN) pinove ESP32, čime se mijenja volumen.tagNivoi DTR-a i RTS-a će pokrenuti ESP32 u mod preuzimanja firmvera. Kao npr.ampDakle, provjerite shemu za razvojnu ploču ESP32 DevKitC.
Generalno, ne biste trebali imati problema sa službenim razvojnim pločama za esp-idf. Međutim, esptool.py ne može automatski resetirati vaš hardver u sljedećim slučajevima:
· Vaš hardver nema DTR i RTS linije povezane na GPIO0 i CHIP_PU · DTR i RTS linije su drugačije konfigurisane · Uopšte ne postoje takve serijske kontrolne linije
U zavisnosti od vrste hardvera koji imate, moguće je i ručno staviti vašu ESP32 ploču u režim preuzimanja firmvera (resetovanje).
· Za razvojne ploče koje proizvodi Espressif, ove informacije se mogu pronaći u odgovarajućim vodičima za početak rada ili korisničkim vodičima. Na primjerampDa biste ručno resetovali razvojnu ploču ESP-IDF, držite pritisnuto dugme Boot (GPIO0) i pritisnite dugme EN (CHIP_PU).
· Za ostale tipove hardvera, pokušajte smanjiti GPIO0.
Normalan rad Tokom treptanja, vidjet ćete izlazni zapis sličan sljedećem:
... esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset 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 Serijski port /dev/ttyUSB0 Povezivanje…….._ Čip je ESP32D0WDQ6 (revizija 0) Karakteristike: WiFi, BT, Dual Core, Šema kodiranja Nema Kristal je 40MHz MAC: 24:0a:c4:05:b9:14 Otpremanje stuba… Pokretanje stuba… Stub se pokreće… Promjena brzine prijenosa podataka na 460800 Promijenjeno. Konfigurisanje veličine fleš memorije… Komprimovano 3072 bajta na 103… Pisanje na 0x00008000… (100 %) Zapisano 3072 bajta (103 komprimovano) na 0x00008000 za 0.0 sekundi (efektivno 5962.8 kbit/s)… Heš podataka je verifikovan. Komprimovano 26096 bajta na 15408… Pisanje na 0x00001000… (100 %) Zapisano 26096 bajta (15408 komprimovano) na 0x00001000 za 0.4 sekunde (efektivno 546.7 kbit/s)… Heš podataka je verifikovan. Komprimovano 147104 bajtova na 77364… Pisanje na 0x00010000… (20 %) Pisanje na 0x00014000… (40 %) Pisanje na 0x00018000… (60 %) Pisanje na 0x0001c000… (80 %)
(nastavlja se na sljedećoj stranici)
Espressif Systems
41 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
(nastavak sa prethodne stranice) Pisanje na 0x00020000… (100 %) Zapisano je 147104 bajtova (77364 komprimovano) na 0x00010000 za 1.9 sekundi (efektivno 615,5 kbit/s)… Heš podataka verifikovan.
Napuštanje… Hard resetovanje preko RTS pina… Gotovo
Ako do kraja procesa flešovanja nema problema, ploča će se ponovo pokrenuti i pokrenuti aplikaciju theohello_worldpa. Ako želite koristiti Eclipse ili VS Code IDE umjesto pokretanja idf.py, pogledajte Eclipse Plugin, VSCode Extension.
Praćenje izlaza Da biste provjerili da li ohello_worldpis zaista radi, upišite idf.py -p PORT monitor (ne zaboravite zamijeniti PORT nazivom vašeg serijskog porta). Ova naredba pokreće aplikaciju IDF Monitor:
$ idf.py -p monitor Pokretanje idf_monitor u direktoriju […]/esp/hello_world/build Izvršavanje “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor uključen 115200 —– Izlaz: Ctrl+] | Meni: Ctrl+T | Pomoć: Ctrl+T pa zatim Ctrl+H –ets 8. juna 2016. 00:22:57
rst:0x1 (POWERON_RESET), boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8. juna 2016. 00:22:57 …
Nakon što se zapisi o pokretanju i dijagnostici pomaknu prema gore, trebali biste vidjeti ispis aplikacije oHello world!.
... Zdravo svijete! Ponovno pokretanje za 10 sekundi... Ovo je esp32 čip sa 2 CPU jezgra, WiFi/BT/BLE, silikonska revizija 1, 2MB eksterne fleš memorije Minimalna veličina slobodne memorije: 298968 bajtova Ponovno pokretanje za 9 sekundi... Ponovno pokretanje za 8 sekundi... Ponovno pokretanje za 7 sekundi...
Za izlaz iz IDF monitora koristite prečicu Ctrl+]. Ako IDF monitor ne uspije ubrzo nakon učitavanja ili ako umjesto gornjih poruka vidite nasumične greške slične onima koje su date ispod, vaša ploča vjerovatno koristi kristal od 26 MHz. Većina razvojnih ploča koristi 40 MHz, tako da ESP-IDF koristi ovu frekvenciju kao zadanu vrijednost.
Ako imate takav problem, uradite sljedeće:
1. Izađite iz monitora. 2. Vratite se na menuconfig. 3. Idite na config komponenti > Postavke hardvera > Glavna XTAL konfiguracija > Glavni XTAL
frekvenciju, a zatim promijenite CONFIG_XTAL_FREQ_SEL na 26 MHz. 4. Nakon toga, ponovo izgradite i flešujte aplikaciju.
Espressif Systems
42 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
U trenutnoj verziji ESP-IDF-a, glavne XTAL frekvencije koje podržava ESP32 su sljedeće:
· 26 MHz · 40 MHz
Napomena: Izgradnju, flešovanje i praćenje možete kombinovati u jedan korak pokretanjem: idf.py -p PORT flash monitor
Pogledajte također: · IDF Monitor za praktične prečice i više detalja o korištenju IDF monitora. · idf.py za potpunu referencu idf.py naredbi i opcija.
To je sve što vam treba da započnete s ESP32! Sada ste spremni isprobati neke druge...ampdatoteke ili odmah prijeđite na razvoj vlastitih aplikacija.
Važno: Neki od bivšihampDatoteke ne podržavaju ESP32 jer potreban hardver nije uključen u ESP32, tako da ne može biti podržan. Ako gradite example, molimo provjerite README datoteku file za tabelu Podržani ciljevi. Ako je ovo prisutno, uključujući ESP32 cilj, ili tabela uopće ne postoji, exampRadit će na ESP32.
Dodatni savjeti
Problemi s dozvolama /dev/ttyUSB0 Kod nekih Linux distribucija, prilikom flešovanja ESP32 možete dobiti poruku o grešci „Neuspješno otvaranje porta /dev/ttyUSB0“. Ovo se može riješiti dodavanjem trenutnog korisnika u dialout grupu.
Kompatibilnost s Pythonom ESP-IDF podržava Python 3.7 ili noviji. Preporučuje se nadogradnja operativnog sistema na noviju verziju koja zadovoljava ovaj zahtjev. Druge opcije uključuju instalaciju Pythona iz izvornog koda ili korištenje sistema za upravljanje verzijama Pythona kao što je pyenv.
Započnite s paketom podrške za ploču. Da biste ubrzali izradu prototipa na nekim razvojnim pločama, možete koristiti pakete podrške za ploču (BSP), koji inicijalizaciju određene ploče čine jednostavnom uz nekoliko poziva funkcija. BSP obično podržava sve hardverske komponente koje se nalaze na razvojnoj ploči. Osim definicije rasporeda pinova i funkcija inicijalizacije, BSP se isporučuje s drajverima za vanjske komponente kao što su senzori, ekrani, audio kodeci itd. BSP-ovi se distribuiraju putem IDF Component Managera, tako da se mogu pronaći u IDF Component Registryju. Evo i ex...ampLekcija o tome kako dodati ESP-WROVER-KIT BSP u vaš projekat: idf.py add-dependency esp_wrover_kit
Više exampManje korištenja BSP-a mogu se naći u BSP primjeruamples folder.
Savjet: Ažuriranje ESP-IDF-a Preporučuje se povremeno ažuriranje ESP-IDF-a, jer novije verzije ispravljaju greške i/ili pružaju nove funkcije. Imajte na umu da svaka glavna i sporedna verzija ESP-IDF-a ima pridruženi period podrške, a kada se jedna grana izdanja približava kraju životnog vijeka (EOL), svim korisnicima se preporučuje da nadograde svoje projekte na novija izdanja ESP-IDF-a. Da biste saznali više o periodima podrške, pogledajte Verzije ESP-IDF-a.
Espressif Systems
43 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 1. Početak
Najjednostavniji način za ažuriranje je brisanje postojeće mape esp-idf i njeno ponovno kloniranje, kao da se izvodi početna instalacija opisana u koraku 2. Nabavite ESP-IDF. Drugo rješenje je ažuriranje samo onoga što se promijenilo. Postupak ažuriranja ovisi o verziji ESP-IDF-a koju koristite. Nakon ažuriranja ESP-IDF-a, ponovo pokrenite skriptu za instalaciju, u slučaju da nova verzija ESP-IDF-a zahtijeva različite verzije alata. Pogledajte upute u koraku 3. Postavite alate. Nakon što su novi alati instalirani, ažurirajte okruženje pomoću skripte za izvoz. Pogledajte upute u koraku 4. Postavite varijable okruženja.
Povezani dokumenti · Uspostavljanje serijske veze s ESP32 · Eclipse dodatak · VSCode proširenje · IDF monitor
1.4 Izgradite svoj prvi projekat
Ako već imate instaliran ESP-IDF i ne koristite IDE, možete izgraditi svoj prvi projekat iz komandne linije slijedeći upute za pokretanje projekta na Windowsu ili pokretanje projekta na Linuxu i macOS-u.
1.5 Deinstalirajte ESP-IDF
Ako želite ukloniti ESP-IDF, slijedite upute za deinstaliranje ESP-IDF-a.
Espressif Systems
44 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 2
API Reference
2.1 API konvencije
Ovaj dokument opisuje konvencije i pretpostavke uobičajene za ESP-IDF interfejse za programiranje aplikacija (API-je). ESP-IDF pruža nekoliko vrsta programskih interfejsa:
· C funkcije, strukture, nabrajanja, definicije tipova i makroi pretprocesora deklarisani u javnom zaglavlju fileESPIDF komponenti. Različite stranice u odjeljku API reference u vodiču za programiranje sadrže opise ovih funkcija, struktura i tipova.
· Funkcije sistema za izgradnju, unaprijed definirane varijable i opcije. Ovo je dokumentirano u vodiču za sistem za izgradnju. · Kconfig opcije se mogu koristiti u kodu i u sistemu za izgradnju (CMakeLists.txt) files. · Alati hosta i njihovi parametri komandne linije također su dio ESP-IDF interfejsa. ESP-IDF se sastoji od komponenti napisanih posebno za ESP-IDF, kao i za biblioteke trećih strana. U nekim slučajevima, omotač specifičan za ESP-IDF dodaje se biblioteci treće strane, pružajući interfejs koji je ili jednostavniji ili bolje integriran s ostatkom ESP-IDF sadržaja. U drugim slučajevima, originalni API biblioteke treće strane predstavljen je programerima aplikacija. Sljedeći odjeljci objašnjavaju neke aspekte ESP-IDF API-ja i njihovu upotrebu.
2.1.1 Greška pri rukovanju
Većina ESP-IDF API-ja vraća kodove grešaka definirane tipom esp_err_t. Pogledajte odjeljak Rješavanje grešaka za više informacija o pristupima rukovanju greškama. Referenca kodova grešaka sadrži listu kodova grešaka koje vraćaju ESP-IDF komponente.
2.1.2 Konfiguracijske strukture
Važno: Ispravna inicijalizacija konfiguracijskih struktura je važan dio u osiguravanju kompatibilnosti aplikacije s budućim verzijama ESP-IDF-a.
Većina inicijalizacijskih ili konfiguracijskih funkcija u ESP-IDF-u uzima kao argument pokazivač na konfiguracijsku strukturu. Na primjerample:
45
Poglavlje 2. API referenca
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_args, .name = “my_timer”
esp_timer_handle_t moj_tajmer; esp_err_t err = esp_timer_create(&argumenti_moj_tajmer, &moj_tajmer);
Funkcije inicijalizacije nikada ne pohranjuju pokazivač na konfiguracijsku strukturu, tako da je sigurno alocirati strukturu na steku.
Aplikacija mora inicijalizirati sva polja strukture. Sljedeće je netačno:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Neispravno! Polja .arg i .name nisu inicijalizirana */ esp_timer_create(&my_timer_args, &my_timer);
Većina bivših ESP-IDF-aampKoristimo inicijalizatore određene C99 za inicijalizaciju strukture, jer oni pružaju koncizan način postavljanja podskupa polja i inicijalizacije preostalih polja nulom:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Tačno, polja .arg i .name su inicijalizirana nulom */
};
Jezik C++ ne podržava sintaksu označenih inicijalizatora sve do verzije C++20, međutim, GCC kompajler je djelomično podržava kao proširenje. Prilikom korištenja ESP-IDF API-ja u C++ kodu, možete razmotriti korištenje sljedećeg obrasca:
esp_timer_create_args_t my_timer_args = {}; /* Sva polja su inicijalizirana nulom */ my_timer_args.callback = &my_timer_callback;
Zadani inicijalizatori
Za neke konfiguracijske strukture, ESP-IDF pruža makroe za postavljanje zadanih vrijednosti polja:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG se proširuje u određeni inicijalizator.
Sada su sva polja postavljena na zadane vrijednosti. Bilo koje polje se i dalje može mijenjati: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Preporučuje se korištenje zadanih makroa inicijalizatora kad god su oni predviđeni za određenu konfiguracijsku strukturu.
2.1.3 Privatni API-ji
Određeno zaglavlje fileu ESP-IDF-u sadrže API-je namijenjene za korištenje samo u izvornom kodu ESP-IDF-a, a ne od strane aplikacija. Takvo zaglavlje fileKomponente često sadrže private ili esp_private u svom nazivu ili putanji. Određene komponente, kao što je hal, sadrže samo privatne API-je. Privatni API-ji mogu biti uklonjeni ili promijenjeni na nekompatibilan način između manjih izdanja ili zakrpa.
2.1.4 Komponente u example projekti
ESP-IDF bivšiampDatoteke sadrže razne projekte koji demonstriraju korištenje ESP-IDF API-ja. Kako bi se smanjilo dupliranje koda u exampU datotekama, nekoliko uobičajenih pomoćnih funkcija definirano je unutar komponenti koje koristi više examples.
Espressif Systems
46 Pošalji povratne informacije o dokumentu
Izdanje v5.0.9
Poglavlje 2. API referenca
Ovo uključuje komponente koje se nalaze
Dokumenti / Resursi
![]() |
Razvojna ploča Espressif Systems ESP32 Dev Kitc [pdf] Korisnički priručnik ESP32 Dev Kitc Razvojna Ploča, ESP32, Dev Kitc Razvojna Ploča, Kitc Razvojna Ploča, Razvojna Ploča, Ploča |
