Razvojna ploča ESP32 Dev Kitc

Informacije o proizvodu

Tehnički podaci

  • Proizvod: ESP32
  • Vodič za programiranje: ESP-IDF
  • Verzija izdanja: v5.0.9
  • Proizvođač: Espressif Systems
  • Datum objave: 16. svibnja 2025

Upute za uporabu proizvoda

1. Započnite

Prije nego što počnete koristiti ESP32, upoznajte se s
sljedeće:

1.1 Uvod

Saznajte više o osnovnim funkcionalnostima i mogućnostima
ESP32.

1.2 Što trebate

Provjerite imate li potreban hardver i softver:

  • Hardver: Provjerite popis potrebnog hardvera
    komponente.
  • Softver: Instalirajte potreban softver
    komponente.

1.3 Instalacija

Slijedite ove korake za instalaciju IDE-a i postavljanje
okoliš:

  • IDE: Instalirajte preporučeni IDE za
    programiranje ESP32.
  • Ručna instalacija: Ručno postavite
    okruženje ako je potrebno.

1.4 Izgradite svoj prvi projekt

Izradite i izgradite svoj početni projekt koristeći ESP32.

1.5 Deinstalirajte ESP-IDF

Ako je potrebno, saznajte kako deinstalirati ESP-IDF sa svog
sustav.

2. API referenca

Za detaljne informacije pogledajte API dokumentaciju o
aplikacijski protokoli, rukovanje pogreš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 webmjesto 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
Vodič za programiranje ESP-IDF
Izdanje v5.0.9 Espressif Systems 16. svibnja 2025.

Sadržaj

Sadržaj

i

1 Započnite

3

1.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Što vam treba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 Deinstalacija ESP-IDF-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 API referenca

45

2.1 API konvencije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Rješavanje pogreš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 priključak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Lokalno upravljanje ESP-om . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2.2.7 ESP serijska podređena veza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2.2.8 Paket ESP x509 certifikata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 HTTP poslužitelj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 HTTPS poslužitelj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 pogreš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 Aplikacijski sloj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 API za periferne uređaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Pogonski program za jednokratni način rada analogno-digitalnog pretvarača (ADC). . . . . . . . . . . . . . . . . 977 2.6.2 Pogonski program kontinuiranog načina rada analogno-digitalnog pretvarača (ADC). . . . . . . . . . . . . . . 986 2.6.3 Kalibracijski upravljački program 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 Timer opće namjene (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Međusobno integrirani krug (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Zvuk između integriranih krugova (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 daljinskog upravljanja (RMT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 Zahtjevi za zgibove SD-a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC upravljački program glavnog računala. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI upravljački program glavnog računala. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 Upravljački program slave SDIO kartice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-Delta modulacija (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI glavni upravljački program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI podređeni upravljački program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Sigurnosni element). . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Senzor dodira. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Dvožično automobilsko sučelje (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Univerzalni asinkroni prijemnik/odašiljač (UART). . . . . . . . . . . . . . . . . . 1317 2.7 Konfiguracija projekta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Uvod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Izbornik konfiguracije projekta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Korištenje sdkconfig.defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Pravila formatiranja u Kconfigu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Unatrag kompatibilna Kconfig opcija. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Uputa za opcije konfiguracije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 API za pružanje usluga. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokol komunikacije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Ujedinjeno opskrbljivanje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Pružanje Wi-Fi-ja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 API za pohranu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FilePodrška sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Proizvodni program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Biblioteka nehlapljive pohrane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 Uslužni program za generiranje NVS particija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 Upravljački program SD/SDIO/MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filesustav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtualni filekomponenta sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 API za izjednačavanje trošenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 API sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Format slike aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Praćenje na razini aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Poziv funkcije s vanjskim stogom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Revizija čipa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konzola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Kodovi pogreš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 značajke) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Dodjela memorije hrpe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Uklanjanje pogrešaka iz memorije hrpe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Mjerač vremena visoke rezolucije (ESP timer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 zapisivanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Razni sustavni API-ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Ažuriranja putem etera (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Nadzor performansi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Upravljanje napajanjem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Podrška za POSIX niti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Generiranje slučajnih brojeva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Načini mirovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Mogućnosti SoC-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Vrijeme sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 API za dodjelu himem-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 Programiranje ULP koprocesora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Nadzornici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161

3 Referenca hardvera

2167

3.1 Usporedba serija čipova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 Povezani dokumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

4 API vodiča

2171

4.1 Biblioteka za praćenje na razini aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.1 Krajview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Načini rada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Mogućnosti konfiguracije i ovisnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Kako koristiti ovu knjižnicu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Tijek pokretanja aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 Prvi stagbootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 sekunde stagbootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Pokretanje aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

4.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.3.1 Krajview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® niske energije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 Krajview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Početak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240

4.5 Pokretač sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Kompatibilnost bootloadera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Razina zapisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Vraćanje na tvorničke postavke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Pokretanje s testnog firmvera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Vraćanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 Krajview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Korištenje sustava za izgradnju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 PrampProjekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Projekt CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponente 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 Ispravljanje pogrešaka u CMakeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 PrimjerampCMakeLists komponente le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Prilagođene zadane postavke sdkconfiga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 knjižnica 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 Globiranje i inkrementalne izgradnje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Izgradnja metapodataka sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Izgradnja unutarnjih dijelova sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Migracija iz ESP-IDF GNU Make System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Izvješće o jezgri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfiguracije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Spremanje izvatka jezgre u flash memoriju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Ispis izvatka jezgre 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 stuba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 pogrešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Kodovi pogrešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Pretvaranje kodova pogrešaka u poruke o pogreš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 pogreškama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ iznimke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Obrada događaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 pogreš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 završetak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 Istek vremena nadzora RTC-a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Pogreške u meditaciji gurua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Ostale fatalne pogreške. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Šifriranje flash memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Uvod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Relevantni e-osigurači. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Postupak šifriranja flash memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Konfiguracija šifriranja flash memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Mogući kvarovi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 Status ESP32 Flash enkripcije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Čitanje i pisanje podataka u šifriranoj flash memoriji. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Ažuriranje šifrirane flash memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Onemogućavanje šifriranja Flash memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Ključne točke o šifriranju flash memorije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Ograničenja Flash enkripcije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Šifriranje flash memorije i sigurno pokretanje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Napredne značajke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Tehnički detalji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Apstrakcija hardvera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arhitektura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (niskorazinski) sloj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Sloj apstrakcije hardvera). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Prekidi visoke razine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Razine prekida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Bilješke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Otklanjanje pogrešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Kako radi? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 Odabir JTAG Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Postavljanje OpenOCD-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Konfiguriranje ESP32 cilja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Pokretanje programa za ispravljanje pogrešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Ispravljanje pogrešakaamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Izgradnja OpenOCD-a iz izvornog koda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Savjeti i osobitosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Povezani dokumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Generiranje skripte poveznice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Brzi početak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Interni dijelovi generiranja skripti poveznika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Podrška za IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 prilagođene izmjene esp-lwipa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Optimizacija performansi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Vrste memorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (RAM za podatke) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (RAM za naredbe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (kod koji se izvršava iz flash memorije) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (podaci pohranjeni u flash memoriji) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Spora memorija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC BRZA memorija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 Zahtjev za DMA sposobnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA međuspremnik u stogu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Načini rada OpenThread stoga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Kako napisati OpenThread aplikaciju . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThread granični usmjerivač . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Tablice particija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Ugrađene tablice particija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Izrada prilagođenih tablica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Generiranje binarne tablice particija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Provjera veličine particije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Flashiranje tablice 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 Djelomič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 završenview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Tipke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Veličina bootloadera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Veličina bootloadera . . . . . . . . . 2474 4.24.5 Kako omogućiti sigurno pokretanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Ponovno fleširani bootloader softvera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 flash memorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Provjera potpisane aplikacije bez sigurnog pokretanja hardvera . . . . . . . . . . . . . . . . . . . 2478 4.24.13 Napredne značajke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Generiranje 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 šifriranje flash memorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Provjera potpisane aplikacije bez hardverskog sigurnog pokretanja . . . . . . . . . . . . . . . . . . . 2484 4.25.18 Napredne značajke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Podrška za vanjsku RAM memoriju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Hardver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Konfiguriranje vanjske RAM-e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Ograničenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Neuspjeh inicijalizacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Revizije čipa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Lokalna pohrana 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 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Izrada aplikacije za testiranje jedinica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Pokretanje jediničnih testova. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Vremenski kod s timerom kompenziranim predmemorijom. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Ismijava. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Jedinično testiranje na Linuxu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Testovi ugrađenog softvera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF jedinični testovi na Linux hostu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Upravljački program za Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Popis značajki ESP32 Wi-Fi mreže. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Kako napisati Wi-Fi aplikaciju. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 Kod pogreš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 događaja ESP32 Wi-Fi mreže. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 Opći scenarij ESP32 Wi-Fi stanice. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 Opći scenarij ESP32 Wi-Fi pristupne točke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 točaka. . . . . . . . . . . . . 2543 4.31.12 Ponovno povezivanje s Wi-Fi mrežom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Brzi prijelaz BSS-a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi Način rada za uštedu energije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 Propusnost Wi-Fi-ja ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Slanje paketa Wi-Fi 80211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Način njuškanja Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Višestruke antene Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Informacije o stanju Wi-Fi kanala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Informacije o stanju Wi-Fi kanala Konfiguriranje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 međuspremnika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Kako poboljšati performanse Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Konfiguracija izbornika Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Rješavanje problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Sigurnost Wi-Fi mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 Značajke sigurnosti Wi-Fi mreže ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Zaštićeni okviri za upravljanje (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF koegzistencija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Prekoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Podržani scenarij koegzistencije za ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Mehanizam i politika koegzistencije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Kako koristiti značajku koegzistencije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Reproducibilne izgradnje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Razlozi za nereproducibilne izgradnje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Omogućavanje reproducibilnih izgradnje u ESP-IDF-u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Kako se postižu reproducibilne izgradnje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Reproducibilne verzije i ispravljanje pogrešaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Čimbenici koji još uvijek utječu na reproducibilne verzije . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Korisnički priručnik za način rada s niskom potrošnjom energije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578

5 Vodiča za migraciju

2579

5.1 Vodič za migraciju ESP-IDF 5.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 Migracija s verzije 4.4 na 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 Biblioteke i okviri

2611

6.1 Okviri u oblaku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.2 AWS IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.5 Aliyun IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.6 Joylink IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.7 Tencent 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 mreže . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.5 ESP-WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Postupak 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 hooka prije potvrđivanja za ESP-IDF projekt . . . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Dokumentiranje koda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Izrada Ex-aamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 Predložak API dokumentacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Ugovor s suradnikom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 Vodič za zaglavlje autorskih prava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 ESP-IDF testovi s Pytest vodičem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635

8 ESP-IDF verzije

2645

8.1 Izdanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.2 S kojom verzijom trebam započeti? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.3 Shema verzija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.4 Razdoblja podrške . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 Provjera trenutne verzije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

8.6 Git tijek rada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7 Ažuriranje ESP-IDF-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 Ažuriranje na stabilno izdanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.2 Ažuriranje na predizdanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 Ažuriranje na glavnu granu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 Ažuriranje na izdanu granu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 Resursi

2651

9.1 PlatformIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.1 Što je PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 Instalacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Konfiguracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Vodiči . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Projekt Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Sljedeći koraci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Korisne poveznice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 s ESP32 SoC-om.

Započnite

API Referenca

Vodiči za API

Espressif sustavi

1 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Sadržaj

Espressif sustavi

2 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1
Započnite
Ovaj dokument namijenjen je kako bi vam pomogao u postavljanju okruženja za razvoj softvera za hardver temeljen na ESP32 čipu tvrtke Espressif. Nakon toga, jednostavan exampPokazat ćemo vam kako koristiti ESP-IDF (Espressif IoT Development Framework) za konfiguraciju izbornika, a zatim za izgradnju i fleširanje 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 sustav na čipu koji integrira sljedeće značajke: · Wi-Fi (2.4 GHz pojas) · Bluetooth · Dvije visokoučinkovite 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 zadovoljavanju stalnih zahtjeva za učinkovitom 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 ostvare svoje ideje koristeći hardver serije ESP32. Okvir za razvoj softvera tvrtke Espressif namijenjen je razvoju aplikacija Interneta stvari (IoT) s Wi-Fi-jem, Bluetoothom, upravljanjem napajanjem i nekoliko drugih sistemskih značajki.
1.2 Što trebate
1.2.1 Hardver
· ESP32 ploča. · USB kabel – USB A / micro USB B. · Računalo s operativnim sustavom Windows, Linux ili macOS.
Napomena: Trenutno neke razvojne ploče koriste USB Type C konektore. Provjerite imate li ispravan kabel za spajanje ploče!
Ako imate jednu od službenih razvojnih ploča za ESP32 navedenih u nastavku, možete kliknuti na poveznicu kako biste saznali više o hardveru.
3

Poglavlje 1. Početak rada
ESP32-DevKitS(-R)
Ovaj korisnički priručnik pruža informacije o ESP32-DevKitS(-R), ESP32 bljeskajućoj pločici koju proizvodi Espressif. ESP32-DevKitS(-R) je kombinacija dvaju 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 odjeljaka: · Početak rada: Pruža općiview upute za postavljanje ESP32-DevKitS(-R) i hardvera/softvera za početak. · Priručnik za hardver: Pruža detaljnije informacije o hardveru ESP32-DevKitS(-R)ns. · Povezani dokumenti: Pruža poveznice na povezanu dokumentaciju.

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 flashati ploču pruža upute o tome kako montirati modul na ESP32-DevKitS(-R), pripremiti ga i flashati firmware na njega.

Nadview ESP32-DevKitS(-R) je Espressifns flešing ploča dizajnirana posebno za ESP32. Može se koristiti za fleširanje ESP32 modula bez lemljenja modula na napajanje i signalne vodove. S 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 razlikuju se samo u 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 sustavi

4 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Sl. 1: ESP32-DevKitS – prednja strana

Espressif sustavi

Sl. 2: ESP32-DevKitS-R – prednja strana 5
Pošaljite povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Ključne komponente s opružnim klinovima, ženski konektori 2.54 mm
USB-UART most LDO Micro-USB konektor/Micro USB priključak EN tipka Tipka za pokretanje
LED za uključivanje

Opis Umetnite modul klikom. Pinovi će se uklopiti u zupčaste rupe modula. Ovi ženski konektori spojeni su na pinove modula montiranog na ovoj ploči. Za opis ženskih konektora pogledajte Blokove konektora. Jednočipni USB-UART most omogućuje brzine prijenosa do 3 Mbps.
Niski pad napona od 5V do 3.3Vtagregulator (LDO).
USB sučelje. Napajanje za ploču kao i komunikacijsko sučelje između računala i ploče.
Gumb za resetiranje.
Gumb za preuzimanje. Držanjem pritisnutog gumba Boot, a zatim pritiskom na EN pokreće se način rada za preuzimanje firmvera putem serijskog porta.
Uključuje se kada je USB ili napajanje spojeno na ploču.

Kako fleširati ploču Prije uključivanja ESP32-DevKitS(-R), provjerite je li u dobrom stanju bez vidljivih znakova oštećenja.
Potrebna oprema · ESP32 modul po vašem izboru · USB 2.0 kabel (Standard-A na Micro-B) · Računalo s operacijskim sustavom Windows, Linux ili macOS
Postavljanje hardvera Molimo montirajte modul po vašem izboru na svoj ESP32-DevKitS(-R) prema sljedećim koracima:
· Pažljivo postavite modul na ploču ESP32-DevKitS(-R). Provjerite jesu li rupe s koricama 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
Preferirana metoda Razvojni okvir ESP-IDF pruža preferirani način flashanja binarnih datoteka na ESP32-DevKitS(-R). Molimo prijeđite na Početak rada, gdje će vam odjeljak Instalacija brzo pomoći u postavljanju razvojnog okruženja, a zatim flashanju aplikacije npr.ampna vaš ESP32-DevKitS(-R).
Alternativna metoda Kao alternativa, korisnici Windowsa mogu flashati binarne datoteke pomoću alata Flash Download Tool. Samo ga preuzmite, raspakirajte i slijedite upute unutar mape doc.
Napomena: 1. Za flashanje binarne datoteke fileESP32 bi trebao biti postavljen na način rada za preuzimanje firmvera. To se može učiniti automatski pomoću alata za flash ili držanjem pritisnute tipke Boot i pritiskom na tipku EN. 2. Nakon flashanja binarne datoteke fileAlat za preuzimanje Flasha ponovno pokreće vaš ESP32 modul i prema zadanim postavkama pokreće fleširanu aplikaciju.

Dimenzije ploče Sadržaj i pakiranje

Espressif sustavi

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 sustavi

Sl. 4: Dimenzije ploče ESP32-DevKitS-R – stražnja strana 7
Pošaljite povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Maloprodajne narudžbe Ako naručite nekoliko sampSvaki ESP32-DevKitS(-R) dolazi u pojedinačnom pakiranju u antistatičkoj vrećici ili bilo kojoj drugoj ambalaži, ovisno o trgovcu. 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.
Referenca za hardver
Blok dijagram Blok dijagram u nastavku prikazuje komponente ESP32-DevKitS(-R) i njihove međusobne veze.

Sl. 5: ESP32-DevKitS(-R) (kliknite za uvećanje)
Mogućnosti napajanja Postoje tri međusobno isključiva načina za napajanje ploče: · Micro USB priključak, zadano napajanje · 5V i GND pinovi · 3V3 i GND pinovi
Preporučuje se korištenje prve opcije: micro USB priključak.

Espressif sustavi

.

Signal oznake

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 rada

Tablica 1 nastavak s prethodne stranice

.

Signal oznake

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

Vanjski 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
· Shema ESP32-DevKitS(-R) (PDF) · Podatkovni list za ESP32 (PDF) · Podatkovni list za ESP32-WROOM-32 (PDF) · Podatkovni list za ESP32-WROOM-32D i ESP32-WROOM-32U (PDF) · Podatkovni list za ESP32-SOLO-1 (PDF) · Podatkovni list za ESP32-WROVER (PDF) · Podatkovni list za ESP32-WROVER-B (PDF) · Odabir ESP proizvoda

ESP32-DevKitM-1

Ovaj korisnički priručnik pomoći će vam da započnete s ESP32-DevKitM-1 i pružit će vam detaljnije informacije.
ESP32-DevKitM-1 je razvojna ploča temeljena na ESP32-MINI-1(1U) koju proizvodi Espressif. Većina I/O pinova je izdvojena na konektore s obje strane radi lakšeg povezivanja. Korisnici mogu spojiti periferne uređaje pomoću kratkospojnih žica ili montirati ESP32-DevKitM-1 na probnu ploču.

Espressif sustavi

9 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

ESP32-DevKitM-1 – prednji

ESP32-DevKitM-1 – izometrijski

Dokument se sastoji od sljedećih glavnih odjeljaka: · Početak rada: Pruža općiview upute za postavljanje ESP32-DevKitM-1 i hardvera/softvera za početak. · Referenca hardvera: Pruža detaljnije informacije o hardveru ESP32-DevKitM-1ns. · Povezani dokumenti: Pruža poveznice na povezanu dokumentaciju.

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 postavljanje hardvera, a zatim kako fleširati firmver na ESP32-DevKitM-1.

Nadview Ovo je mala i praktična razvojna ploča koja ima:
· ESP32-MINI-1 ili ESP32-MINI-1U modul · USB-serijsko programsko sučelje koje također osigurava napajanje ploče · pin konektori · tipke za resetiranje i aktivaciju načina preuzimanja firmvera · nekoliko drugih komponenti

Sadržaj i pakiranje

Maloprodajne narudžbe Ako naručite nekoliko sampSvaki ESP32-DevKitM-1 dolazi u pojedinačnom pakiranju u antistatičkoj vrećici ili bilo kojoj drugoj ambalaži, ovisno o vašem 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.

Opis komponenti Sljedeća slika i tablica u nastavku opisuju ključne komponente, sučelja i kontrole ploče ESP32-DevKitM-1. Ploču s modulom ESP32-MINI-1 uzimamo kao primjerample u sljedećim odjeljcima.

Espressif sustavi

10 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Sl. 6: ESP32-DevKitM-1 – prednja strana

Ključna komponenta Ugrađeni modul
LDO tipka za pokretanje od 5 V do 3.3 V
Tipka za resetiranje Mikro USB priključak
USB-UART most 3.3 V LED za uključivanje
I/O konektor

Opis
Modul ESP32-MINI-1 ili modul ESP32-MINI-1U. ESP32-MINI-1 dolazi s ugrađenom PCB antenom. ESP32-MINI-1U dolazi s vanjskim konektorom za antenu. Oba modula imaju 4 MB flash memorije u čipu. Za detalje pogledajte podatkovni list ESP32-MINI-1 i ESP32-MINI-1U.
Regulator snage pretvara 5 V u 3.3 V.
Gumb za preuzimanje. Držanjem pritisnutog gumba Boot, a zatim pritiskom na Reset pokreće se način rada za preuzimanje firmvera putem serijskog porta.
Gumb za resetiranje
USB sučelje. Napajanje za ploču kao i komunikacijsko sučelje između računala i ESP32 čipa.
Jedan USB-UART premosni čip omogućuje brzine prijenosa do 3 Mbps.
Uključuje se kada je USB spojen na ploču. Za detalje pogledajte sheme u Povezanim dokumentima. Svi dostupni GPIO pinovi (osim SPI sabirnice za flash) 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 ESP32-DevKitM-1, provjerite je li u dobrom stanju bez vidljivih znakova oštećenja.
Potrebna oprema · ESP32-DevKitM-1 · USB 2.0 kabel (Standard-A na Micro-B) · Računalo s operacijskim sustavom Windows, Linux ili macOS
Postavljanje softvera Molimo vas da prijeđete na Početak rada, gdje će vam odjeljak Instalacija brzo pomoći da postavite razvojno okruženje, a zatim instalirate aplikaciju naampna svoj ESP32-DevKitM-1.

Espressif sustavi

11 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Pažnja: Ploče ESP32-DevKitM-1 proizvedene prije 2. prosinca 2021. imaju instaliran jednojezgreni modul. Da biste provjerili koji modul imate, provjerite informacije o označavanju modula u PCN-2021-021. Ako vaša ploča ima instaliran jednojezgreni modul, omogućite način rada s jednom jezgrom (CONFIG_FREERTOS_UNICORE) u menuconfig prije ažuriranja aplikacija.
Blok dijagram hardverske reference Blok dijagram u nastavku 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 priključak, zadano napajanje · 5V i GND pinovi · 3V3 i GND pinovi
Upozorenje: · Napajanje mora biti osigurano korištenjem jedne i samo jedne od gore navedenih opcija, inače se ploča i/ili izvor napajanja mogu oštetiti. · Preporučuje se napajanje putem micro USB priključka.

Opisi pinova Tablica u nastavku prikazuje nazive i funkcije pinova na obje strane ploče. Za konfiguracije perifernih pinova, pogledajte podatkovni list ESP32.

Ne.

Ime

Tip

1

GND

P

2

3V3

P

Funkcija uzemljenja Napajanje 3.3 V

nastavlja se na sljedećoj stranici

Espressif sustavi

12 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Tablica 2 nastavak s prethodne stranice

Ne.

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

Reset; Visoko: omogući; Nisko: isključeno

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
· Podatkovni list za ESP32-MINI-1 i ESP32-MINI-1U (PDF) · Shema ESP32-DevKitM-1 (PDF) · Raspored tiskane pločice ESP32-DevKitM-1 (PDF) · Raspored ESP32-DevKitM-1 (DXF) – Možete view to s Autodeskom Viewonline · ESP32 podatkovni list (PDF) · ESP alat za odabir proizvoda
Za ostalu projektnu dokumentaciju za ploču, molimo kontaktirajte nas na sales@espressif.com.

Espressif sustavi

13 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
1.2.2 Software
Za početak korištenja ESP-IDF-a 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 biti sadrži API (softverske biblioteke i izvorni kod) za ESP32 i skripte za rad Toolchaina

1.3 Instalacija
Za instalaciju sveg potrebnog softvera nudimo nekoliko različitih načina za olakšavanje ovog zadatka. Odaberite jednu od dostupnih opcija.
1.3.1 Razvojno okruženje

Napomena: Preporučujemo instaliranje ESP-IDF-a putem vašeg omiljenog IDE-a.
· Dodatak za Eclipse · Proširenje za VSCode

1.3.2 Ručna instalacija
Za ručni postupak odaberite prema svom operativnom sustavu.

Espressif sustavi

14 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Standardna postavka Toolchaina za Windows
Uvod ESP-IDF zahtijeva instalaciju nekih preduvjetnih alata kako biste mogli izgraditi firmware za podržane čipove. Preduvjetni alati uključuju Python, Git, cross-kompilatore, CMake i Ninja alate za izgradnju. Za ovaj Početak rada koristit ćemo naredbeni 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 dulja od 90 znakova. Preduge putnje instalacije mogu rezultirati neuspjelom 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 sustav nije konfiguriran s podrškom za Unicode UTF-8. Administrator sustava može omogućiti podršku putem Upravljačke ploče – Promjena formata datuma, vremena ili brojeva – kartica Administrative – Promjena lokalizacije sustava – označite opciju Beta: Koristi Unicode UTF-8 za podršku za svjetske jezike – U redu i ponovno pokrenite računalo.
Instalacijski program za ESP-IDF alate Najlakši način za instalaciju 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 malen i omogućuje instalaciju svih dostupnih izdanja ESP-IDF-a. Instalacijski program će preuzeti samo potrebne ovisnosti, uključujući Git za Windows, tijekom procesa instalacije. Instalacijski program pohranjuje preuzeto. files u direktoriju predmemorije %userprofile% espressif
Izvanmrežni instalacijski program ne zahtijeva mrežnu vezu. Instalacijski program sadrži sve potrebne ovisnosti, 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ćuje 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 sustavi

15 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Pokretanje ESP-IDF okruženja Na kraju postupka instalacije možete provjeriti opciju Pokreni ESP-IDF PowerShell okruženje ili Pokreni ESP-IDF naredbeni redak (cmd.exe). Instalacijski program će pokrenuti ESP-IDF okruženje u odabranom retku. Pokrenite ESP-IDF PowerShell okruženje:

Sl. 8: Dovršavanje čarobnjaka za postavljanje ESP-IDF alata s pokretanjem ESP-IDF PowerShell okruženja
Pokrenite ESP-IDF naredbeni redak (cmd.exe):
Korištenje naredbenog retka Za preostale korake za početak korištenja koristit ćemo naredbeni redak sustava Windows. Instalacijski program za ESP-IDF alate također stvara prečac u izborniku Start za pokretanje naredbenog retka za ESP-IDF. Ovaj prečac pokreće naredbeni redak (cmd.exe) i pokreće skriptu export.bat za postavljanje varijabli okruženja (PATH, IDF_PATH i druge). Unutar ovog naredbenog retka dostupni su svi instalirani alati. Imajte na umu da je ovaj prečac specifičan za direktorij ESP-IDF odabran u instalacijskom programu za ESP-IDF alate. Ako na računalu imate više direktorija ESP-IDF (na primjeramptj. za rad s različitim verzijama ESP-IDF-a), imate dvije mogućnosti za njihovo korištenje:
1. Izradite kopiju prečaca koji je stvorio instalacijski program ESP-IDF alata i promijenite radni direktorij novog prečaca u direktorij ESP-IDF koji želite koristiti.
2. Alternativno, pokrenite cmd.exe, zatim prijeđite 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 pogreške povezane s time da Python ili Git nisu pronađeni, upotrijebite prvu opciju.
Prvi koraci na ESP-IDF-u Sada kada su ispunjeni svi uvjeti, sljedeća tema će vas voditi kroz postupak pokretanja vašeg prvog projekta.

Espressif sustavi

16 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada Slika 9: ESP-IDF PowerShell

Sl. 10: Dovršavanje čarobnjaka za postavljanje ESP-IDF alata pokretanjem naredbenog retka ESP-IDF (cmd.exe)

Espressif sustavi

17 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Sl. 11: ESP-IDF naredbeni redak

Espressif sustavi

18 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Ovaj vodič će vam pomoći u prvim koracima korištenja ESP-IDF-a. Slijedite ovaj vodič za pokretanje novog projekta na ESP32 te izgradnju, fleširanje i praćenje izlaza 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 projekt Sada ste spremni pripremiti svoju aplikaciju za ESP32. Možete započeti s projektom getstarted/hello_world iz examples imenik u ESP-IDF.
Važno: Sustav izgradnje ESP-IDF-a ne podržava razmake u putanjama do ESP-IDF-a ili do projekata.
Kopirajte projekt get-started/hello_world u direktorij ~/esp: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
Napomena: Postoji niz example projekti u examples imenik u ESP-IDF. Možete kopirati bilo koji projekt na isti način kao što je gore prikazano i pokrenuti ga. Također je moguća izgradnja examples na mjestu bez prethodnog kopiranja.

Spojite svoj uređaj Sada spojite svoju ESP32 ploču na računalo i provjerite pod kojim se serijskim priključkom ploča vidi. Nazivi serijskih priključaka u sustavu Windows počinju s COM. Ako niste sigurni kako provjeriti naziv serijskog priključka, pogledajte Uspostavljanje serijske veze s ESP32 za više detalja.
Napomena: ime porta imajte pri ruci jer će vam trebati u sljedećim koracima.

Konfigurirajte svoj projekt. Idite do direktorija 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 idf.py set-target esp32. Imajte na umu da će postojeće verzije i konfiguracije u projektu, ako ih ima, biti izbrisane i inicijalizirane u ovom procesu. Cilj se može spremiti u varijablu okruženja kako bi se ovaj korak u potpunosti preskočio. Za dodatne informacije pogledajte Odabir ciljnog čipa: set-target. Ako su prethodni koraci ispravno izvedeni, pojavljuje se sljedeći izbornik: Ovaj izbornik koristite za postavljanje varijabli specifičnih za projekt, npr. naziva i lozinke Wi-Fi mreže, brzine procesora itd. Postavljanje projekta pomoću menuconfig može se preskočiti za ohello_wordp, budući da ovaj npr.ample se pokreće s zadanom konfiguracijom.
Pažnja: Ako koristite ESP32-DevKitC ploču s ESP32-SOLO-1 modulom ili ESP32-DevKitM-1 ploču s ESP32-MIN1-1(1U) modulom, prije flashanja ex-a omogućite single core mode (CONFIG_FREERTOS_UNICORE) u menuconfig.amples.

Espressif sustavi

19 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Sl. 12: Konfiguracija projekta – Početni prozor
Napomena: Boje izbornika 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. Za više informacija pogledajte Dodatne savjete.
Izgradite projekt Izgradite projekt pokretanjem:
idf.py izgraditi
Ova naredba će kompajlirati aplikaciju i sve komponente ESP-IDF, zatim će generirati bootloader, 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 — Nazivi komponenti: … — Putanje komponenti: …
… (više redaka izlaza sustava izgradnje)
[527/527] Generiranje hello_world.bin esptool.py v2.3.1
Izrada projekta je dovršena. Za flashanje 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 pogrešaka, izrada će završiti generiranjem binarnog .bin firmvera files.

Espressif sustavi

20 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Flash na uređaj Flashajte binarne datoteke koje ste upravo sastavili (bootloader.bin, partition-table.bin i hello_world.bin) na svoju 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 s potrebnom brzinom prijenosa podataka. 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 projekt, tako da pokretanje idf.py build nije potrebno.

Problemi prilikom flashanja? Ako pokrenete navedenu naredbu i vidite pogreške poput "Failed to connectp", 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 sustav za izgradnju za resetiranje čipa, interakciju s ROM bootloaderom i flash firmware. Jedno jednostavno rješenje koje možete isprobati 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 resetira ESP32 aktiviranjem DTR i RTS kontrolnih linija USB-serijskog pretvarača, tj. FTDI ili CP210x (za više informacija pogledajte Uspostavljanje serijske veze s ESP32). DTR i RTS kontrolne linije su redom spojene na GPIO0 i CHIP_PU (EN) pinove ESP32, čime se mijenja volumen.tagRazine DTR-a i RTS-a pokrenut će ESP32 u način rada za preuzimanje firmvera. Kao npr.ampDakle, provjerite shemu za razvojnu ploču ESP32 DevKitC.
Općenito, 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 spojene na GPIO0 i CHIP_PU · DTR i RTS linije su drugačije konfigurirane · Uopće ne postoje takve serijske kontrolne linije
Ovisno o vrsti hardvera koji imate, moguće je i ručno staviti vašu ESP32 ploču u način preuzimanja firmvera (resetiranje).
· Za razvojne ploče koje proizvodi Espressif, ove informacije možete pronaći u odgovarajućim vodičima za početak rada ili korisničkim priručnicima. Na primjerampZa ručno resetiranje razvojne ploče ESP-IDF, držite pritisnut gumb Boot (GPIO0) i pritisnite gumb EN (CHIP_PU).
· Za ostale vrste hardvera, pokušajte smanjiti GPIO0.

Normalan rad Tijekom 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) Značajke: WiFi, BT, Dual Core, Shema kodiranja Nema Kristal je 40MHz MAC: 24:0a:c4:05:b9:14 Prijenos stuba… Pokretanje stuba… Stub se izvodi… Promjena brzine prijenosa na 460800 Promijenjeno.
(nastavlja se na sljedećoj stranici)

Espressif sustavi

21 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
(nastavak s prethodne stranice) Konfiguriranje veličine flash memorije… Komprimirano 3072 bajta na 103… Pisanje na 0x00008000… (100 %) Zapisano 3072 bajta (103 komprimirano) na 0x00008000 u 0.0 sekundi (efektivno 5962.8 kbit/s)… Hash podataka provjeren. Komprimirano 26096 bajtova na 15408… Pisanje na 0x00001000… (100 %) Zapisano 26096 bajtova (15408 komprimirano) na 0x00001000 u 0.4 sekunde (efektivno 546.7 kbit/s)… Hash podataka provjeren. Komprimirano 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 komprimirano) na 0x00010000 za 1.9 sekundi (efektivno 615,5 kbit/s)… Hash podataka provjeren.
Odlazak... Hard resetiranje putem RTS pina... Gotovo
Ako do kraja procesa flashanja nema problema, ploča će se ponovno 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 radi li ohello_worldpis doista, 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+] | Izbornik: Ctrl+T | Pomoć: Ctrl+T pa Ctrl+H –ets 8. lipnja 2016. 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8. lipnja 2016. 00:22:57 …
Nakon što se zapisnici pokretanja i dijagnostike pomaknu prema gore, aplikacija bi trebala ispisati natpis oHello world!.
... Pozdrav svijete! Ponovno pokretanje za 10 sekundi... Ovo je esp32 čip s 2 CPU jezgre, WiFi/BT/BLE, silicijska revizija 1, 2 MB vanjske 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 IDF monitora koristite prečac Ctrl+].

Espressif sustavi

22 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Ako IDF monitor zakaže ubrzo nakon prijenosa ili ako umjesto gornjih poruka vidite nasumične greške slične onima u nastavku, vaša ploča vjerojatno koristi kristal od 26 MHz. Većina razvojnih ploča koristi 40 MHz, pa ESP-IDF koristi ovu frekvenciju kao zadanu vrijednost.

Ako imate takav problem, učinite sljedeće: 1. Izađite iz monitora. 2. Vratite se u menuconfig. 3. Idite na config_Component_config > Hardware Settings > Main XTAL Config > Main XTAL frequency, a zatim promijenite CONFIG_XTAL_FREQ_SEL na 26 MHz. 4. Nakon toga, ponovno izgradite i fleširajte aplikaciju.
U trenutnoj verziji ESP-IDF-a, glavne XTAL frekvencije koje podržava ESP32 su sljedeće:
· 26 MHz · 40 MHz
Napomena: Izradu, fleširanje i nadzor možete kombinirati u jednom koraku pokretanjem: idf.py -p PORT flash monitor
Vidi također: · IDF Monitor za praktične prečace i više detalja o korištenju IDF monitora. · idf.py za potpuni popis naredbi i opcija idf.py.
To je sve što vam treba za početak rada s ESP32! Sada ste spremni isprobati neke druge ex...amples 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 pa se ne može podržati. Ako se gradi bivšiample, molimo provjerite README datoteku file za tablicu Podržani ciljevi. Ako je ovo prisutno, uključujući ESP32 cilj, ili tablica uopće ne postoji, exampRadit će na ESP32.
Dodatni savjeti
Problemi s dopuštenjima /dev/ttyUSB0 Kod nekih Linux distribucija možete dobiti poruku o pogrešci Failed to open port /dev/ttyUSB0 prilikom fleširanja ESP32. To 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 sustava na noviju verziju koja zadovoljava ovaj zahtjev. Druge mogućnosti uključuju instalaciju Pythona iz izvornog koda ili korištenje sustava za upravljanje verzijama Pythona kao što je pyenv.
Započnite s paketom podrške za ploču Kako 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 sustavi

23 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

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 upravljačkim programima za vanjske komponente kao što su senzori, zasloni, audio kodeci itd. BSP-ovi se distribuiraju putem IDF Component Managera, tako da se mogu pronaći u IDF Component Registryju. Evo i exampLe kako dodati ESP-WROVER-KIT BSP u svoj projekt: idf.py add-dependency esp_wrover_kit
Više exampManje korištenja BSP-a mogu se pronaći u BSP primjeruampmapa les.
Povezani dokumenti Za napredne korisnike koji žele prilagoditi postupak instalacije: · Ažuriranje ESP-IDF alata na Windowsima · Uspostavljanje serijske veze s ESP32 · Dodatak za Eclipse · VSCode proširenje · IDF monitor
Ažuriranje ESP-IDF alata na Windowsima
Instalirajte ESP-IDF alate pomoću skripte. Iz naredbenog retka sustava Windows prijeđite u direktorij u kojem je instaliran ESPIDF. Zatim pokrenite:
instalirati.bat
Za Powershell, prijeđ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 tijekom procesa instalacije ESP-IDF alata. Prema zadanim postavkama, to je C:\Usersusername.espressif.
Dodavanje ESP-IDF alata u PATH pomoću skripte za izvoz Instalacijski program ESP-IDF alata stvara prečac izbornika Start za ESP-IDF naredbeni redak. Ovaj prečac otvara prozor naredbenog retka u kojem se već nalaze svi alati.
dostupno. U nekim slučajevima možda ćete htjeti raditi s ESP-IDF-om u prozoru naredbenog retka koji nije pokrenut pomoću tog prečaca. Ako je to slučaj, slijedite upute u nastavku da biste dodali ESP-IDF alate u PATH. U naredbenom retku 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 to učini, alati će biti dostupni u ovom naredbenom retku.
Uspostavljanje serijske veze s ESP32 Ovaj odjeljak pruža upute o tome kako uspostaviti serijsku vezu između ESP32 i računala.

Espressif sustavi

24 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Spojite ESP32 na računalo Spojite ESP32 ploču na računalo pomoću USB kabela. Ako se upravljački program uređaja ne instalira automatski, pronađite USB-serijski pretvarač na svojoj ESP32 ploči (ili vanjskom pretvaraču), potražite upravljačke programe na internetu i instalirajte ih. U nastavku je popis USB-serijskih pretvarača instaliranih na većini ESP32 ploča koje proizvodi Espressif, zajedno s poveznicama na upravljačke programe:
· CP210x: CP210x USB na UART Bridge VCP upravljački programi · FTDI: FTDI upravljački programi za virtualni COM port Molimo provjerite korisnički priručnik ploče za specifični USB na serijski pretvarač koji se koristi. Gore navedeni upravljački programi prvenstveno su za referencu. U normalnim okolnostima, upravljački programi trebali bi biti u paketu s operativnim sustavom i automatski se instalirati nakon spajanja ploče na računalo.
Provjerite port na Windowsima Provjerite popis identificiranih COM portova u Upravitelju uređaja sustava Windows. Isključite ESP32 i ponovno ga spojite kako biste provjerili koji port nestaje s popisa, a zatim se ponovno pojavljuje. Slike u nastavku prikazuju serijski port za ESP32 DevKitC i ESP32 WROVER KIT.

Sl. 13: USB-UART most ESP32-DevKitC u Upravitelju uređaja sustava Windows

Provjera porta na Linuxu i macOS-u Za provjeru naziva uređaja za serijski port vaše ESP32 ploče (ili vanjskog pretvarača), pokrenite ovu naredbu dva puta, prvo s isključenom pločom/hard diskom, a zatim s uključenim. Port koji se pojavi drugi put je onaj koji vam je potreban: Linux
ls /dev/tty*
macOS

Espressif sustavi

25 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Sl. 14: Dva USB serijska porta ESP-WROVER-KIT-a u Upravitelju uređaja sustava Windows

Espressif sustavi

26 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

ls /dev/cu.* Napomena: Korisnici macOS-a: ako ne vidite serijski priključak, provjerite imate li instalirane USB/serijske upravljačke programe. Pogledajte odjeljak Spajanje ESP32 s računalom za poveznice na upravljačke programe. Za macOS High Sierra (10.13) možda ćete morati izričito dopustiti učitavanje upravljačkih programa. Otvorite Postavke sustava -> Sigurnost i privatnost -> Općenito i provjerite je li ovdje prikazana poruka o sistemskom softveru od programera lp gdje je ime programera Silicon Labs ili FTDI.

Dodavanje korisnika u dialout na Linuxu Trenutno prijavljeni korisnik trebao bi imati pristup za čitanje i pisanje serijskog porta putem 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 sljedećom naredbom:
sudo usermod -a -G uucp $KORISNIK
Obavezno se ponovno prijavite kako biste omogućili dopuštenja za čitanje i pisanje za serijski priključak.
Provjerite serijsku vezu Sada provjerite je li serijska veza operativna. To možete učiniti pomoću programa serijskog terminala provjerom dobivate li ikakav izlaz na terminalu 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 u nastavku. Pokrenite terminal i postavite identificirani serijski port. Brzina prijenosa podataka = 115200 (ako je potrebno, promijenite ovo na zadanu brzinu prijenosa podataka korištenog čipa), podatkovni bitovi = 8, stop bitovi = 1 i paritet = N. U nastavku su primjeriampsnimke zaslona postavljanja porta i takvih parametara prijenosa (skraćeno opisano kao 115200-8-1-N) na Windowsima i Linuxu. Ne zaboravite odabrati točno isti serijski port koji ste identificirali u gornjim koracima. Zatim otvorite serijski port u terminalu i provjerite vidite li ispisan zapisnik od strane ESP32. Sadržaj zapisnika ovisit će o aplikaciji učitanoj na ESP32, vidi primjerampIzlaz.
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 Kako biste se poštedjeli muke 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-Dolazni-Port /dev/cu.SLAB_USBtoUART USBtoUART7

/dev/cu.SLAB_

· Izlaz će varirati ovisno o vrsti i broju ploča spojenih na vaše računalo. Zatim odaberite naziv uređaja vaše ploče i pokrenite (ako je potrebno, promijenite o115200 na zadanu brzinu prijenosa podataka korištenog čipa):

zaslon /dev/cu.naziv_uređaja 115200 Zamijenite naziv_uređaja s nazivom pronađenim pokretanjem naredbe ls /dev/cu.*.

Espressif sustavi

27 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Sl. 15: Postavljanje serijske komunikacije u PuTTY-ju na Windowsima

Espressif sustavi

28 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Sl. 16: Postavljanje serijske komunikacije u PuTTY-u na Linuxu

Espressif sustavi

29 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
· Ono što tražite je zapisnik prikazan na zaslonu. Sadržaj zapisnika ovisit će o aplikaciji učitanoj u ESP32, vidi primjerampIzlaz. Za izlaz iz sesije zaslona pritisnite Ctrl-A + .
Napomena: Ne zaboravite zatvoriti sesiju prikaza nakon što provjerite radi li komunikacija. 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 dolje. Resetirajte ploču ako ne vidite ništa. ets 8. lipnja 2016. 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8. lipnja 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 zapisnik, to znači da serijska veza radi i spremni ste za nastavak instalacije i konačno prijenos 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 ovisi o samom hardveru, većina razvojnih ploča (uključujući sve Espressif ploče) nema ovaj problem. Problem je prisutan ako su RTS i DTR izravno spojeni na EN i GPIO0 pinove. Za više detalja pogledajte dokumentaciju esptoola.
Ako ste ovdje došli s koraka 5. Prvi koraci na ESP-IDF-u prilikom instaliranja softvera za ESP32 razvoj, tada 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 značajke specifične za IDF. IDF Monitor se može pokrenuti iz IDF projekta pokretanjem idf.py monitor.
Prečaci na tipkovnici Za jednostavnu interakciju s IDF Monitorom koristite prečace na tipkovnici navedene u tablici.

Espressif sustavi

30 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Prečac na tipkovnici 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

Akcijski

Opis

Izlaz iz programa Tipka za izlaz iz izbornika Pošalji sam znak izbornika na daljinski upravljač
Pošalji sam izlazni znak na daljinski upravljač
Resetiraj cilj u bootloader za pauziranje aplikacije putem RTS linije
Resetiraj ciljnu ploču putem RTS-a
Izgradite i fleširajte projekt

Samo izgradnja i fleširanje aplikacije

Zaustavi/nastavi ispis zapisnika na ekranu

Spremljen zapisnik zaustavljanja/nastavka rada u file

Vrijeme zaustavljanja/nastavkaamps

tiskanje

Prikaz svih tipkovničkih prečaca

Pritisnite i slijedite jednu od tipki navedenih u nastavku.
Resetira ciljnu ploču u bootloader putem RTS linije (ako je spojena), tako da ploča ne pokreće ništa. Korisno kada trebate pričekati pokretanje drugog uređaja. Resetira ciljnu ploču i ponovno pokreće aplikaciju putem RTS linije (ako je spojena).
Pauzira idf_monitor za pokretanje flash cilja projekta, a zatim nastavlja idf_monitor. Bilo koji promijenjeni izvor filese ponovno kompajliraju i zatim ponovno fleširaju. Target encrypted-flash se pokreće ako je idf_monitor pokrenut s argumentom -E. Pauzira idf_monitor za pokretanje app-flash cilja, a zatim nastavlja idf_monitor. Slično flash cilju, ali se samo glavna aplikacija gradi i ponovno flešira. Target encrypted-app-flash se pokreće ako je idf_monitor pokrenut s argumentom -E. Odbacuje sve dolazne serijske podatke dok je aktiviran. Omogućuje brzo pauziranje i pregled izlaza zapisnika bez zatvaranja monitora. Stvara file u direktoriju projekta i izlaz se zapisuje u njega file dok se ovo ne onemogući istim prečacem na tipkovnici (ili se IDF Monitor ne zatvori). IDF Monitor može ispisati vremensko razdobljeamp na početku svakog retka. Najkratnije vrijemeamp format se može promijeniti prema –timestamp-format argument naredbenog retka.

Izađite iz programa

Prekid izvršavanja aplikacije

Pauzira IDF Monitor i pokreće GDB projektni debugger za debugiranje aplikacije tijekom izvođenja. Za to je potrebno omogućiti opciju :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME.

Sve pritisnute tipke, osim Ctrl-] i Ctrl-T, bit će poslane kroz serijski port.

Značajke specifične za IDF

Automatsko dekodiranje adrese Kad god ESP-IDF ispiše heksadecimalni kod adrese oblika 0x4_______, IDF Monitor koristi addr2line_ za pretraživanje lokacije u izvornom kodu i pronalaženje naziva funkcije.
Ako se ESP-IDF aplikacija sruši i izazove paniku, generira se izvadak registra i povratno praćenje, kao što je sljedeće:

Espressif sustavi

31 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Pogreška Guru meditacije tipa StoreProhibited dogodila se na jezgri 0. Iznimka je bila

neobrađeno.

Izvadak registra:

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 OPRAVDANJE:

0x0000001d

IZNOSNA ADRESA: 0x00000000 LBEG: 0x4000c46c KREDIT: 0x4000c477 BROJ:

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90

IDF Monitor dodaje više detalja u izvatke:

Pogreška Guru meditacije tipa StoreProhibited dogodila se na jezgri 0. Iznimka je bila

neobrađeno.

Izvadak registra:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: učini_nešto_što_sruši_sistem na /home/gus/esp/32/idf/examples/započni/

hello_world/main/./hello_world_main.c:57

(ugrađeno od strane) inner_dont_crash na /home/gus/esp/32/idf/examples/početak/pozdrav_

svijet/glavna/./pozdrav_svijet_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 OPRAVDANJE:

0x0000001d

IZNOSNA ADRESA: 0x00000000 LBEG: 0x4000c46c KREDIT: 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

Za dekodiranje svake adrese, IDF Monitor izvršava sljedeću naredbu u pozadini: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

Napomena: Postavite varijablu okruženja ESP_MONITOR_DECODE na 0 ili pozovite idf_monitor.py s određenom naredbom u retku

Espressif sustavi

32 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
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 izvodi se pomoću serijskih linija DTR i RTS. Da biste spriječili da IDF Monitor automatski resetira 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 spajanja IDF Monitora na određeni port (npr. idf.py monitor –no-reset -p [PORT]).
Pokretanje GDB-a s GDBStubom GDBStub je korisna značajka za otklanjanje pogrešaka tijekom izvođenja koja se pokreće na ciljnom računalu i spaja se na host putem serijskog porta za primanje naredbi za otklanjanje pogrešaka. GDBStub podržava naredbe poput čitanja memorije i varijabli, ispitivanja okvira poziva itd. Iako je GDBStub manje svestran od J-aTAG otklanjanje pogreš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 za pokretanje GDBStuba u pozadini postavljanjem CONFIG_ESP_SYSTEM_PANIC na GDBStub tijekom izvođenja. GDBStub će se izvoditi u pozadini dok se ne pošalje poruka Ctrl+C preko serijskog porta i uzrokuje da GDBStub prekine (tj. zaustavi izvršavanje) programa, čime se GDBStub omogućuje rukovanje naredbama za otklanjanje pogrešaka. Nadalje, program za obradu panike može se konfigurirati za pokretanje GDBStuba prilikom rušenja postavljanjem CONFIG_ESP_SYSTEM_PANIC na GDBStub prilikom panike. Kada dođe do rušenja, GDBStub će ispisati poseban uzorak niza 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), IDF Monitor će automatski pokrenuti GDB kako bi korisnik mogao slati naredbe za otklanjanje pogrešaka. Nakon što GDB izađe, cilj se resetira putem RTS serijske linije. Ako ova linija nije spojena, korisnici mogu resetirati svoj cilj (pritiskom na tipku 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 može se 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 o tome što će se ispisati mogu se odrediti kao niztag>: stavke gdjetag> je tag niz i je znak iz skupa {N, E, W, I, D, V, *} koji se odnosi na razinu za bilježenje.
Na primjerample, PRINT_FILTER="tag1:W” odgovara i ispisuje samo izlaze zapisane s ESP_LOGW(“tag1”, …) ili na nižoj razini opširnosti, tj. ESP_LOGE(“tag1″, …). Bez navođenja ili korištenjem * zadane vrijednosti se postavlja razina Verbose.
Napomena: Koristite primarno zapisivanje kako biste prilikom kompajliranja onemogućili izlaze koji vam nisu potrebni putem biblioteke za zapisivanje. 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: kako bi bilo kompatibilno s funkcijom filtriranja izlaza.
Ako nakon zadnjeg retka izlaza u vašoj aplikaciji ne slijedi znak za povratak na početak reda, filtriranje izlaza može se zbuniti, tj. monitor počinje ispisivati ​​redak, a kasnije otkrije da redak nije trebao biti ispisan. To je poznati problem i može se izbjeći stalnim dodavanjem znaka za povratak na početak reda (osobito kada odmah nakon toga ne slijedi izlaz).

Espressif sustavi

33 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Examppravila filtriranja:
· * se može koristiti za podudaranje bilo kojeg tagsMeđutim, niz PRINT_FILTER="*:I" tag1:E” u odnosu na 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 razini Verbose ili nižoj znači podudaranje svega.
· “*:N” potiskuje ne samo izlaze iz funkcija zapisivanja, već i ispise koje vrši printf itd. Da biste to izbjegli, koristite *:E ili višu razinu detaljnosti.
· Pravila “tag1:V”, “tag1:v”, “tag1:”, “tag1:*” i “tag1” su ekvivalentni. · Pravilo “tag1:Z tag1:E” je ekvivalentno “tag1:E” jer svako naknadno pojavljivanje istog tag
ime prepisuje prethodno. · Pravilo “tag1:I tagIspisuje se samo 2:W” tag1 na razini detalja informacija ili nižoj i tag2 na Upozorenju
razina govora ili niža. · Pravilo “tag1:I tag2:Z tag3:N” je u biti ekvivalentan prethodnom jer tag3:N specificira
da tag3 ne bi trebalo tiskati. · tag3:N u pravilu “tag1:I tag2:Z tag3:N *:V” ima više smisla jer bez tag3:N
tagMogle su biti ispisane 3 poruke; greške za tag1 i tag2 će se ispisati na navedenoj (ili nižoj) razini detalja, a sve ostalo će se ispisati prema zadanim postavkama.
Složeniji primjer filtriranjaampSljedeći isječak zapisnika je preuzet 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 način rada 255 E (39) boot: Particija tvorničke aplikacije nije pokretačka 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, način rada: 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 upravljačkog programa: 3ffdbf84, prio:23, stog:4096, jezgra=0
Snimljeni izlaz za opcije filtriranja PRINT_FILTER="wifi esp_image:E light_driver:I" dan je u nastavku:
E (31) esp_image: slika na 0x30000 ima nevažeći magični bajt I (328) wifi: zadatak wifi upravljačkog programa: 3ffdbf84, prio:23, stog:4096, jezgra=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, mode: 2
Poznati problemi s IDF monitorom
Problemi uočeni na Windowsima
· 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 nakratko zaustaviti prije nego što počne komunicirati s GDBStubom.

Espressif sustavi

34 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada sa standardnim postavljanjem alata Toolchain 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 s ESP32, potrebno je instalirati neke softverske pakete ovisno o vašem operativnom sustavu. Ovaj vodič za postavljanje pomoći će vam da sve instalirate na Linux i macOS sustave.
Za korisnike Linuxa Za kompajliranje pomoću ESP-IDF-a trebat će vam sljedeći paketi. Naredba koju treba pokrenuti ovisi o tome 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 –potrebno 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 sustava nema jednu. · Ako ne vidite svoju Linux distribuciju na gornjem popisu, provjerite njezinu dokumentaciju kako biste saznali koju naredbu koristiti za instalaciju paketa.
Za korisnike macOS-a ESP-IDF će koristiti verziju Pythona koja je prema zadanim postavkama 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 sustavi

35 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
· Preporučuje se instaliranje i ccache-a za brže skupljanje. Ako imate HomeBrew, to se može učiniti putem brew install ccache ili sudo port install ccache na MacPortovima.
Napomena: Ako se tijekom bilo kojeg koraka prikaže ovakva greška: xcrun: greška: nevažeća aktivna putanja razvojnog programera (/Library/Developer/CommandLineTools), nedostaje xcrun na: /Library/Developer/CommandLineTools/usr/bin/xcrun
Zatim ćete morati instalirati XCode alate naredbenog retka da biste nastavili. Možete ih instalirati pokretanjem xcode-select –install.
Korisnici Apple M1 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 temelju 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 prema zadanim postavkama u budućim verzijama macOS-a. Provjerite koji Python trenutno imate: python –version
Ako je izlaz poput Pythona 2.7.17, vaš zadani interpreter je Python 2.7. Ako je tako, provjerite i je li Python 3 već instaliran na vašem računalu: python3 –version
Ako gornja naredba vrati grešku, to znači da Python 3 nije instaliran. Dolje je prikazana greška.view koraka za instalaciju Pythona 3.
· Instalacija s HomeBrewom može se izvršiti na sljedeći način: brew install python3
· Ako imate MacPortove, možete pokrenuti: sudo port install python38
Korak 2. Nabavite ESP-IDF Za izradu aplikacija za ESP32 potrebne su vam softverske biblioteke koje Espressif nudi 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 sustav. Otvorite Terminal i pokrenite sljedeće naredbe:

Espressif sustavi

36 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekurzivno https://github.com/espressif/esp-idf.git
ESP-IDF će se preuzeti u ~/esp/esp-idf. Obratite se ESP-IDF Verzijama za informacije o tome koju verziju ESP-IDF koristiti u danoj situaciji.
Korak 3. Postavljanje alata Osim ESP-IDF-a, potrebno je instalirati i alate koje koristi ESP-IDF, kao što su kompajler, program za ispravljanje pogrešaka, Python paketi itd., za projekte koji podržavaju ESP32. cd ~/esp/esp-idf ./install.sh esp32
ili s Fish shell cd ~/esp/esp-idf ./install.fish esp32
Gornje naredbe instaliraju alate samo za ESP32. Ako namjeravate razvijati projekte za više čipova, trebali biste ih sve navesti i pokrenuti, na primjerample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
ili s Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Za instalaciju alata za sve podržane ciljeve pokrenite sljedeću naredbu: cd ~/esp/esp-idf ./install.sh all
ili s Fish shell cd ~/esp/esp-idf ./install.fish all
Napomena: Za korisnike macOS-a, ako se tijekom bilo kojeg koraka prikaže ovakva greška:urlpogreška otvaranja [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 mapi Python na računalu za instalaciju certifikata. Za detalje pogledajte Pogreška preuzimanja prilikom instaliranja ESP-IDF alata.

Alternativa File Preuzimanja Instalacijski program alata preuzima nekoliko filepriloženo uz GitHub izdanja. Ako je pristup GitHubu spor, moguće je postaviti varijablu okruženja da se preferira Espressifns poslužitelj za preuzimanje za preuzimanje GitHub resursa.

Napomena: Ova postavka kontrolira samo pojedinačne alate preuzete s izdanja GitHuba, ne mijenja URLkoristi se za pristup bilo kojem Git repozitoriju.

Da biste prilikom instaliranja alata odabrali Espressif poslužitelj za preuzimanje, upotrijebite sljedeći niz naredbi prilikom pokretanja install.sh datoteke:

Espressif sustavi

37 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

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 potrebne za 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 instalacijskih skripti. Provjerite ima li vaš korisnički račun dovoljna dopuštenja za čitanje i pisanje ove putanje. Ako mijenjate IDF_TOOLS_PATH, provjerite je li postavljen na istu vrijednost svaki put kada se izvrše instalacijska skripta (install.bat, install.ps1 ili install.sh) i izvozna skripta (export.bat, export.ps1 ili export.sh).
Korak 4. Postavljanje varijabli okruženja Instalirani alati još nisu dodani u varijablu okruženja PATH. Da bi alati bili upotrebljivi iz naredbenog retka, potrebno je postaviti neke varijable okruženja. ESP-IDF nudi drugu skriptu koja to radi. U terminalu u kojem ćete koristiti ESP-IDF pokrenite:
. $HOME/esp/esp-idf/export.sh
ili za ribu (podržano samo od verzije ribe 3.0.0):
$HOME/esp/esp-idf/export.fish
Obratite pažnju na razmak između početne točke i putanje! Ako planirate često koristiti esp-idf, možete stvoriti alias za izvršavanje export.sh:
1. Kopirajte i zalijepite sljedeću naredbu u svoj 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],
na primjerample, izvor ~/.bashrc. Sada možete pokrenuti get_idf za postavljanje ili osvježavanje esp-idf okruženja u bilo kojoj terminalnoj sesiji. Tehnički, možete dodati export.sh u svoj shellns profile izravno; međutim, to se ne preporučuje. Time se aktivira virtualno okruženje IDF-a u svakoj terminalnoj sesiji (uključujući i one gdje IDF nije potreban), čime se poništava svrha virtualnog okruženja i vjerojatno utječ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 postupak 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 te izgradnju, fleširanje i praćenje izlaza uređaja.
Napomena: Ako još niste instalirali ESP-IDF, idite na Instalacija i slijedite upute kako biste dobili sav softver potreban za korištenje ovog vodiča.

Započnite projekt Sada ste spremni pripremiti svoju aplikaciju za ESP32. Možete započeti s projektom getstarted/hello_world iz examples imenik u ESP-IDF.

Važno: Sustav izgradnje ESP-IDF-a ne podržava razmake u putanjama do ESP-IDF-a ili do projekata.

Kopirajte projekt get-started/hello_world u direktorij ~/esp:

Espressif sustavi

38 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
cd ~/esp cp -r $IDF_STAZA/examples/get-started/hello_world .
Napomena: Postoji niz example projekti u examples imenik u ESP-IDF. Možete kopirati bilo koji projekt na isti način kao što je gore prikazano i pokrenuti ga. Također je moguća izgradnja examples na mjestu bez prethodnog kopiranja.
Spojite svoj uređaj Sada spojite svoju ESP32 ploču na računalo i provjerite pod kojim se serijskim priključkom ploča vidi. Serijski priključki imaju sljedeće obrasce imenovanja:
· Linux: počevši s /dev/tty · macOS: počevši s /dev/cu. Ako niste sigurni kako provjeriti naziv serijskog porta, pogledajte Uspostavljanje serijske veze s ESP32 za više informacija.
Napomena: ime porta imajte pri ruci jer će vam trebati u sljedećim koracima.
Konfigurirajte svoj projekt. Idite do direktorija 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 izbrisane i inicijalizirane u ovom procesu. Cilj se može spremiti u varijablu okruženja kako bi se ovaj korak u potpunosti preskočio. Za dodatne informacije pogledajte Odabir ciljnog čipa: set-target. Ako su prethodni koraci ispravno izvedeni, pojavljuje se sljedeći izbornik:

Sl. 17: Konfiguracija projekta – Početni prozor Ovaj izbornik koristite za postavljanje varijabli specifičnih za projekt, npr. naziva i lozinke Wi-Fi mreže, brzine procesora itd. Postavljanje projekta s menuconfig može se preskočiti za hello_worldp, budući da ovaj example trči s

Espressif sustavi

39 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
zadana konfiguracija.
Pažnja: Ako koristite ESP32-DevKitC ploču s ESP32-SOLO-1 modulom ili ESP32-DevKitM-1 ploču s ESP32-MIN1-1(1U) modulom, prije flashanja ex-a omogućite single core mode (CONFIG_FREERTOS_UNICORE) u menuconfig.amples.
Napomena: Boje izbornika 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. Za više informacija pogledajte Dodatne savjete.
Izgradite projekt Izgradite projekt pokretanjem:
idf.py izgraditi
Ova naredba će kompajlirati aplikaciju i sve komponente ESP-IDF, zatim će generirati bootloader, 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 — Nazivi komponenti: … — Putanje komponenti: …
… (više redaka izlaza sustava izgradnje)
[527/527] Generiranje hello_world.bin esptool.py v2.3.1
Izrada projekta je dovršena. Za flashanje 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 pogrešaka, izrada će završiti generiranjem binarnog .bin firmvera files.
Flash na uređaj Flashajte binarne datoteke koje ste upravo sastavili (bootloader.bin, partition-table.bin i hello_world.bin) na svoju 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 s potrebnom brzinom prijenosa podataka. 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 projekt, tako da pokretanje idf.py build nije potrebno.

Espressif sustavi

40 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada

Problemi prilikom flashanja? Ako pokrenete navedenu naredbu i vidite pogreške poput "Failed to connectp", 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 sustav za izgradnju za resetiranje čipa, interakciju s ROM bootloaderom i flash firmware. Jedno jednostavno rješenje koje možete isprobati 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 resetira ESP32 aktiviranjem DTR i RTS kontrolnih linija USB-serijskog pretvarača, tj. FTDI ili CP210x (za više informacija pogledajte Uspostavljanje serijske veze s ESP32). DTR i RTS kontrolne linije su redom spojene na GPIO0 i CHIP_PU (EN) pinove ESP32, čime se mijenja volumen.tagRazine DTR-a i RTS-a pokrenut će ESP32 u način rada za preuzimanje firmvera. Kao npr.ampDakle, provjerite shemu za razvojnu ploču ESP32 DevKitC.
Općenito, 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 spojene na GPIO0 i CHIP_PU · DTR i RTS linije su drugačije konfigurirane · Uopće ne postoje takve serijske kontrolne linije
Ovisno o vrsti hardvera koji imate, moguće je i ručno staviti vašu ESP32 ploču u način preuzimanja firmvera (resetiranje).
· Za razvojne ploče koje proizvodi Espressif, ove informacije možete pronaći u odgovarajućim vodičima za početak rada ili korisničkim priručnicima. Na primjerampZa ručno resetiranje razvojne ploče ESP-IDF, držite pritisnut gumb Boot (GPIO0) i pritisnite gumb EN (CHIP_PU).
· Za ostale vrste hardvera, pokušajte smanjiti GPIO0.

Normalan rad Tijekom 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) Značajke: WiFi, BT, Dual Core, Shema kodiranja Nema Kristal je 40MHz MAC: 24:0a:c4:05:b9:14 Prijenos stuba… Pokretanje stuba… Stub se izvodi… Promjena brzine prijenosa na 460800 Promijenjeno. Konfiguriranje veličine flash memorije… Komprimirano 3072 bajta na 103… Pisanje na 0x00008000… (100 %) Zapisano 3072 bajta (103 komprimirano) na 0x00008000 za 0.0 sekundi (efektivno 5962.8 kbit/s)… Hash podataka provjeren. Komprimirano 26096 bajtova na 15408… Pisanje na 0x00001000… (100 %) Zapisano 26096 bajtova (15408 komprimirano) na 0x00001000 za 0.4 sekunde (efektivno 546.7 kbit/s)… Hash podataka provjeren. Komprimirano 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 sustavi

41 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
(nastavak s prethodne stranice) Zapisano na 0x00020000… (100 %) Zapisano 147104 bajtova (77364 komprimiranih) na 0x00010000 za 1.9 sekundi (efektivno 615,5 kbit/s)… Hash podataka provjeren.
Odlazak... Hard resetiranje putem RTS pina... Gotovo
Ako do kraja procesa flashanja nema problema, ploča će se ponovno 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 radi li ohello_worldpis doista, 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+] | Izbornik: Ctrl+T | Pomoć: Ctrl+T pa Ctrl+H –ets 8. lipnja 2016. 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8. lipnja 2016. 00:22:57 …
Nakon što se zapisnici pokretanja i dijagnostike pomaknu prema gore, aplikacija bi trebala ispisati natpis oHello world!.
... Pozdrav svijete! Ponovno pokretanje za 10 sekundi... Ovo je esp32 čip s 2 CPU jezgre, WiFi/BT/BLE, silicijska revizija 1, 2 MB vanjske 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čac Ctrl+]. Ako IDF monitor ne uspije ubrzo nakon prijenosa ili ako umjesto gornjih poruka vidite nasumične smetnje slične onima prikazanima u nastavku, vaša ploča vjerojatno koristi kristal od 26 MHz. Većina razvojnih ploča koristi 40 MHz, pa ESP-IDF koristi ovu frekvenciju kao zadanu vrijednost.

Ako imate takav problem, učinite sljedeće:
1. Izađite iz monitora. 2. Vratite se na menuconfig. 3. Idite na config component > Hardware Settings > Main XTAL Config > Main XTAL
frekvenciju, a zatim promijenite CONFIG_XTAL_FREQ_SEL na 26 MHz. 4. Nakon toga, ponovno izgradite i fleširajte aplikaciju.

Espressif sustavi

42 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
U trenutnoj verziji ESP-IDF-a, glavne XTAL frekvencije koje podržava ESP32 su sljedeće:
· 26 MHz · 40 MHz
Napomena: Izradu, fleširanje i nadzor možete kombinirati u jednom koraku pokretanjem: idf.py -p PORT flash monitor
Vidi također: · IDF Monitor za praktične prečace i više detalja o korištenju IDF monitora. · idf.py za potpuni popis naredbi i opcija idf.py.
To je sve što vam treba za početak rada s ESP32! Sada ste spremni isprobati neke druge ex...amples 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 pa se ne može podržati. Ako se gradi bivšiample, molimo provjerite README datoteku file za tablicu Podržani ciljevi. Ako je ovo prisutno, uključujući ESP32 cilj, ili tablica uopće ne postoji, exampRadit će na ESP32.
Dodatni savjeti
Problemi s dopuštenjima /dev/ttyUSB0 Kod nekih Linux distribucija možete dobiti poruku o pogrešci Failed to open port /dev/ttyUSB0 prilikom fleširanja ESP32. To 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 sustava na noviju verziju koja zadovoljava ovaj zahtjev. Druge mogućnosti uključuju instalaciju Pythona iz izvornog koda ili korištenje sustava za upravljanje verzijama Pythona kao što je pyenv.
Započnite s paketom podrške za ploču. Kako 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 upravljačkim programima za vanjske komponente kao što su senzori, zasloni, audio kodeci itd. BSP-ovi se distribuiraju putem IDF Component Managera, tako da se mogu pronaći u IDF Component Registryju. Evo primjera.ampLe kako dodati ESP-WROVER-KIT BSP u svoj projekt: idf.py add-dependency esp_wrover_kit
Više exampManje korištenja BSP-a mogu se pronaći u BSP primjeruampmapa les.
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 značajke. Imajte na umu da svaka glavna i sporedna verzija ESP-IDF-a ima pridruženo razdoblje 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. Za više informacija o razdobljima podrške pogledajte Verzije ESP-IDF-a.

Espressif sustavi

43 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 1. Početak rada
Najjednostavniji način ažuriranja je izbrisati postojeću mapu esp-idf i ponovno je klonirati, kao da izvodite početnu instalaciju opisanu u 2. koraku. Nabavite ESP-IDF. Drugo rješenje je ažurirati samo ono što se promijenilo. Postupak ažuriranja ovisi o verziji ESP-IDF-a koju koristite. Nakon ažuriranja ESP-IDF-a, ponovno pokrenite instalacijsku skriptu u slučaju da nova verzija ESP-IDF-a zahtijeva različite verzije alata. Pogledajte upute u 3. koraku. Postavite alate. Nakon što su novi alati instalirani, ažurirajte okruženje pomoću skripte za izvoz. Pogledajte upute u 4. koraku. Postavite varijable okruženja.
Povezani dokumenti · Uspostavljanje serijske veze s ESP32 · Dodatak za Eclipse · VSCode proširenje · IDF monitor
1.4 Izgradite svoj prvi projekt
Ako već imate instaliran ESP-IDF i ne koristite IDE, svoj prvi projekt možete izraditi iz naredbenog retka slijedeći upute za Pokretanje projekta na Windowsima 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 sustavi

44 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 2
API Referenca
2.1 API konvencije
Ovaj dokument opisuje konvencije i pretpostavke uobičajene za ESP-IDF programska sučelja aplikacija (API-je). ESP-IDF pruža nekoliko vrsta programskih sučelja:
· C funkcije, strukture, nabrajanja, definicije tipova i makroi predprocesora deklarirani u javnom zaglavlju fileESPIDF komponenti. Različite stranice u odjeljku API reference u programskom vodiču sadrže opise tih funkcija, struktura i tipova.
· Funkcije sustava za izgradnju, unaprijed definirane varijable i opcije. Dokumentirane su u vodiču za sustav za izgradnju. · Kconfig opcije mogu se koristiti u kodu i u sustavu za izgradnju (CMakeLists.txt) files. · Alati hosta i njihovi parametri naredbenog retka također su dio ESP-IDF sučelja. ESP-IDF se sastoji od komponenti napisanih posebno za ESP-IDF, kao i za biblioteke trećih strana. U nekim slučajevima, biblioteci treće strane dodaje se omotač specifičan za ESP-IDF, pružajući sučelje koje je ili jednostavnije ili bolje integrirano s ostatkom ESP-IDF sadržaja. U drugim slučajevima, izvorni API biblioteke treće strane predstavlja se programerima aplikacija. Sljedeći odjeljci objašnjavaju neke aspekte ESP-IDF API-ja i njihovu upotrebu.
2.1.1 Rukovanje pogreškama
Većina ESP-IDF API-ja vraća kodove pogrešaka definirane tipom esp_err_t. Za više informacija o pristupima rukovanju pogreškama pogledajte odjeljak Rješavanje pogrešaka. Referenca kodova pogrešaka sadrži popis kodova pogrešaka koje vraćaju ESP-IDF komponente.
2.1.2 Konfiguracijske strukture
Važno: Ispravna inicijalizacija konfiguracijskih struktura važan je dio 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 primjerampono:
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_timer; esp_err_t err = esp_timer_create(&argumenti_mojih_timera, &moj_timer);
Funkcije inicijalizacije nikada ne pohranjuju pokazivač na konfiguracijsku strukturu, tako da je sigurno alocirati strukturu na stogu.
Aplikacija mora inicijalizirati sva polja strukture. Sljedeće je netočno:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Netočno! Polja .arg i .name nisu inicijalizirana */ esp_timer_create(&my_timer_args, &my_timer);
Većina bivših ESP-IDF-aampZa inicijalizaciju strukture koriste inicijalizatore određene standardom C99, budući da oni pružaju sažet način postavljanja podskupa polja i inicijalizacije preostalih polja nulom:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Ispravno, polja .arg i .name su inicijalizirana nulom */
};
Jezik C++ ne podržava sintaksu označenih inicijalizatora sve do 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 uzorka:
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 korištenju 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, poput hal, sadrže samo privatne API-je. Privatni API-ji mogu se ukloniti ili promijeniti 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 dupliciranje koda u exampU datotekama, nekoliko uobičajenih pomoćnih programa definirano je unutar komponenti koje koristi više examples.

Espressif sustavi

46 Pošalji povratne informacije o dokumentu

Izdanje v5.0.9

Poglavlje 2. API referenca
To 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

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *