ESP32 Dev Kitc arendusplaat

Tooteteave

Tehnilised andmed

  • Toode: ESP32
  • Programmeerimisjuhend: ESP-IDF
  • Väljalaske versioon: v5.0.9
  • Tootja: Espressif Systems
  • Avaldamise kuupäev: 16. mai 2025

Toote kasutusjuhised

1. Alustage

Enne ESP32 kasutamise alustamist tutvuge
järgmine:

1.1 Sissejuhatus

Siit saate teada põhifunktsioonide ja võimaluste kohta
ESP32.

1.2 Mida te vajate

Veenduge, et teil on olemas vajalik riist- ja tarkvara:

  • Riistvara: Kontrollige vajaliku riistvara loendit
    komponendid.
  • Tarkvara: Paigalda vajalik tarkvara
    komponendid.

1.3 Paigaldamine

IDE installimiseks ja seadistamiseks järgige neid samme
keskkond:

  • IDE: Paigaldage soovitatav IDE
    ESP32 programmeerimine.
  • Käsitsi paigaldamine: Käsitsi seadistamine
    keskkonda, kui vaja.

1.4 Loo oma esimene projekt

Loo ja ehita oma esialgne projekt ESP32 abil.

1.5 ESP-IDF-i desinstallimine

Vajadusel lugege, kuidas ESP-IDF oma arvutist desinstallida.
süsteem.

2. API viide

Täpsema teabe saamiseks vaadake API dokumentatsiooni.
rakendusprotokollid, veakäsitlus ja konfigureerimine
struktuurid.

Korduma kippuvad küsimused (KKK)

K: Kuidas ma saan ESP32-ga seotud levinud probleeme lahendada?

A: Vaadake programmeerimisjuhendi tõrkeotsingu jaotist.
või külastage tootjat webtugiressursside sait.

K: Kas ma saan ESP-IDF-i kasutada teiste mikrokontrolleritega?

A: ESP-IDF on spetsiaalselt loodud ESP32 jaoks, aga võite leida, et
ühilduvus teiste Espressifi mikrokontrolleritega.

ESP32
ESP-IDF programmeerimisjuhend
Väljalase v5.0.9 Espressif Systems 16. mai 2025

Sisukord

Sisukord

i

1 Alustamine

3

1.1 Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Mida sa vajad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Riistvara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Tarkvara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 Paigaldamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3.2 Käsitsi paigaldamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Ehita oma esimene projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 ESP-IDF-i desinstallimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 API viide

45

2.1 API konventsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Veatöötlus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.2 Konfiguratsioonistruktuurid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.3 Privaatsed API-d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.4 Komponendid näitesampprojektid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.5 API stabiilsus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2 Rakendusprotokollid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.1 ASIO port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

2.2.5 ESP HTTP klient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 ESP lokaalne juhtimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2.2.7 ESP jadapordi slave-ühendus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2.2.8 ESP x509 sertifikaadipakett . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 HTTP-server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 HTTPS-server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2.2.11 ICMP kaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

2.2.12 mDNS-teenus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.2.14 IP-võrgukiht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3 Bluetoothi ​​API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.1 Bluetooth® Common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.2 Bluetooth® madala energiatarbega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

2.3.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

2.3.4 Kontroller ja HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

2.3.6 NimBLE-põhised host-API-d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767

2.4 Veakoodide viide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769

2.5 Võrgustuse API-d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

2.5.2 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899

2.5.3 Lõim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936

i

2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP-võrgu kiht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Rakenduskiht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Välisseadmete API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Analoog-digitaalmuunduri (ADC) ühe võtterežiimi draiver. . . . . . . . . . . . . . . . . 977 2.6.2 Analoog-digitaalmuunduri (ADC) pideva režiimi draiver. . . . . . . . . . . . . . . 986 2.6.3 Analoog-digitaalmuunduri (ADC) kalibreerimisdraiver. . . . . . . . . . . . . . . . . . . 993 2.6.4 Kellapuu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Digitaal-analoogmuundur (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO ja RTC GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Üldotstarbeline taimer (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Integraallülitus (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Kiirelementidevaheline heli (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD-ekraan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED-juhtimine (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Mootori juhtimise impulsi laiuse modulaator (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Impulssloendur (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Kaugjuhtimispuldi saatja-vastuvõtja (RMT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD lõuatõmbe nõuded. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC hosti draiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI hosti draiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO-kaardi alamdraiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-delta modulatsioon (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI põhidraiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI slave-draiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (turvaline element) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Puutesensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Kahejuhtmeline autoliides (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Universaalne asünkroonne vastuvõtja/saatja (UART). . . . . . . . . . . . . . . . . . 1317 2.7 Projekti konfiguratsioon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Projekti konfiguratsioonimenüü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 sdkconfig.defaults kasutamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig'i vormindusreeglid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kconfig'i valikute tagasiühilduvus . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Konfiguratsioonivalikute viide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Ettevalmistus-API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokollisuhtlus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Ühendatud varustamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 WiFi-ühenduse loomine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Salvestusliidese API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSüsteemi tugi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Tootmisutiliit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Püsiv salvestusteek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS-i partitsioonigeneraatori utiliit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC draiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filesüsteem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtuaalne filesüsteemi komponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Kulumise tasandamise API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Süsteemi API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Rakenduse pildi vorming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Rakenduse tasemel jälgimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Kutsefunktsioon välise pinuga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Kiibi versioon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konsool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse'i haldur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Veakoodid ja abifunktsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii

2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Sündmuste tsükli teek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (üleview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Lisafunktsioonid) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Kuhjamälu eraldamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Kuhjamälu silumine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Kõrge eraldusvõimega taimer (ESP-taimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Sisemised ja ebastabiilsed API-d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Protsessoritevaheline kutse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Katkestuse eraldamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Logiteek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Mitmesugused süsteemi API-d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Õhu kaudu värskendused (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Jõudlusmonitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Toitehaldus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX-i lõimede tugi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Juhuslike arvude genereerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Unerežiimid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Süsteemikaardi võimalused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Süsteemi aeg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 Meedia eraldamise API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP kaasprotsessori programmeerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Valvekoerad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161

3 Riistvaraviide

2167

3.1 Kiibiseeriate võrdlus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 Seotud dokumendid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

4 API juhendit

2171

4.1 Rakendustaseme jälgimise teek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Töörežiimid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Konfiguratsioonivalikud ja sõltuvused . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Kuidas seda teeki kasutada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Rakenduse käivitamisvoog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 Esimene stage alglaadur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 sekundit stage alglaadur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Rakenduse käivitamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

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

4.3.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® madala energiatarbega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Alustamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

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

4.5 Alglaadur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Käivituslaaduri ühilduvus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Logi tase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Tehase lähtestamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Käivitamine test-püsivarast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Tagasipööramine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.6 Valvekoer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.7 Alglaaduri suurus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Kiire käivitus sügavast unerežiimist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Kohandatud alglaadur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Ehitussüsteem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Ehitussüsteemi kasutamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 Ntample Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Projekti CMakeListid File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponentide CMakeList'id Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Komponentide konfiguratsioon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Eelprotsessori definitsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Komponentide nõuded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Projekti alistavad osad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Ainult konfiguratsiooni vajavad komponendid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 CMake'i silumine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 NäideampKomponendi CMakeListid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Kohandatud sdkconfig vaikesätted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Flashi argumendid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Käivituslaaduri ehitamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Puhaste CMake'i komponentide kirjutamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Kolmandate osapoolte CMake'i projektide kasutamine komponentidega . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Eelnevalt loodud teekide kasutamine komponentidega . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 ESP-IDF-i kasutamine kohandatud CMake'i projektides . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake'i ehitussüsteemi API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globeerivad ja inkrementaalsed järgud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Süsteemi metaandmete ehitamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Süsteemi sisemiste osade ehitamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Migreerimine ESP-IDF GNU Make süsteemist . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Põhimälutõmmis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfiguratsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Põhimälu salvestamine välkmälusse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Põhimälu prükistamine UART-i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 ROM-funktsioonid tagasijälitustes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Muutujate prükistamine nõudmisel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Espcoredump.py käivitamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Sügava une äratussignaalid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Äratussignaalide reeglid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Tüve rakendamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Koodi laadimine RTC mällu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Andmete laadimine RTC mällu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC kontroll äratussignaalide osas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Näideample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Veatöötlus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Veakoodid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Veakoodide teisendamine veateadeteks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_WITHOUT_ABORT makro . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 KONTROLLMAKROD Näideamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Veatöötlusmustrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ erandid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-VÕRK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 ESP-WIFI-MESH kontseptsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Võrgu loomine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Võrgu haldamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Andmeedastus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Kanali vahetamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv

4.10.8 Jõudlus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Lisamärkused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Sündmuste käsitlemine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 WiFi-, Etherneti- ja IP-sündmused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Võrgusündmused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetoothi ​​sündmused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Saatuslikud vead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Paanikahaldur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Registri väljavõte ja tagasijälitus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB tüvi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC valvekoera ajalõpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Guru meditatsiooni vead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Muud saatuslikud vead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Välkmälu krüptimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Asjakohased e-kaitsmed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Välkmälu krüpteerimisprotsess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Välkmälu krüptimise konfiguratsioon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Võimalikud tõrked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 välkmälu krüptimise olek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Krüpteeritud välkmälust andmete lugemine ja kirjutamine. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Krüptitud välkmälu värskendamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Flash-krüptimise keelamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Flash-krüptimise põhipunktid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Flash-krüptimise piirangud. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Välkmälu krüptimine ja turvaline alglaadimine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Lisafunktsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Tehnilised üksikasjad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Riistvara abstraktsioon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arhitektuur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (madala taseme) kiht. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (riistvaraline abstraktsioonikiht) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Kõrgetasemelised katkestused. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Katkestustasemed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Märkused. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Silumine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Kuidas see töötab? . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 J valimineTAG Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 OpenOCD seadistamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ESP32 sihtmärgi seadistamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Siluri käivitamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Silumisnäideamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 OpenOCD ehitamine lähtekoodist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Näpunäited ja iseärasused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Seotud dokumendid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Linkeri skripti genereerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Kiirjuhend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Linkeri skripti genereerimise sisemised osad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Toetatud API-d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconni API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS-i ülesanne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 tugi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip kohandatud muudatused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Jõudluse optimeerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Mälutüübid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (andme-RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (käskude RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (välkmälust käivitatav kood) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (välkmällu salvestatud andmed) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC aeglane mälu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC kiirmälu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA-võimekuse nõue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA puhver pinus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 OpenThreadi pinu režiimid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Kuidas kirjutada OpenThreadi rakendust . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThreadi piiriruuter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Partitsioonitabelid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Sisseehitatud partitsioonitabelid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Kohandatud tabelite loomine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Binaarse partitsioonitabeli genereerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Partitsiooni suuruse kontrollid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Partitsioonitabeli vilkumine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Partitsioonitööriist (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Jõudlus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Kuidas optimeerida jõudlust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Juhendid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 Raadiosagedusliku (RF) kalibreerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Osaline kalibreerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Täielik kalibreerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Kalibreerimist ei toimunud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY initsialiseerimisandmed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API viide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Turvaline käivitus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Turvalise alglaadimise protsessview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Võtmed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Alglaaduri suurus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Turvalise alglaadimise lubamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Taasvärskendatav tarkvaraline alglaadur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Turvalise alglaadimise allkirjastamisvõtme genereerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Kujutiste kaugallkirjastamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Turvalise alglaadimise parimad tavad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Tehnilised üksikasjad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Turvaline alglaadimine ja välkmälu krüptimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Allkirjastatud rakenduse kontrollimine ilma riistvarata Turvaline alglaadimine . . . . . . . . . . . . . . . . . . . . . . 2478 4.24.13 Täiustatud funktsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Turvaline käivitus V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Taust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Täiustatudtages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Turvalise alglaadimise V2 protsess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Allkirjaploki vorming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Turvaline polster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Allkirjaploki kontrollimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Pildi kontrollimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Alglaaduri suurus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 eFuse'i kasutamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Turvalise alglaadimise V2 lubamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Piirangud pärast turvalise alglaadimise lubamist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Turvalise alglaadimise allkirjastamisvõtme genereerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi

4.25.13 Kujutiste kaugallkirjastamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Turvalise alglaadimise parimad tavad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Tehnilised üksikasjad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Turvaline alglaadimine ja välkmälu krüptimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Allkirjastatud rakenduse kontrollimine ilma riistvarata Turvaline alglaadimine . . . . . . . . . . . . . . . . . . . . . 2484 4.25.18 Täiustatud funktsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Välise RAM-i tugi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Riistvara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Välise muutmälu (RAM) seadistamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Piirangud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Initsialiseerimise nurjumine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Kiibi revisioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Lõime kohalik salvestusruum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS-i natiivne API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthreadi API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Tööriistad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF-i eesliide – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF-i Dockeri kujutis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windowsi Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF-i komponentide haldur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF-i Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Allalaaditavad tööriistad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Ühiktestimine ESP32-s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Tavalised testjuhtumid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Mitme seadmega testijuhtumid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Mitmedtage Testjuhtumid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Erinevate sihtmärkide testid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Hooneüksuse testimise rakendus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Ühiktestide käivitamine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Ajastuskood vahemäluga kompenseeritud taimeriga. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Piltmängud. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Ühiktestimine Linuxis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Manussüsteemide tarkvara testid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF-i ühiktestid Linuxi hostil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 WiFi-draiver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 WiFi funktsioonide loend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Kuidas kirjutada WiFi-rakendust. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 WiFi API veakood. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi API parameetrite initsialiseerimine . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 WiFi programmeerimismudel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 WiFi sündmuse kirjeldus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 WiFi-jaama üldine stsenaarium. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 WiFi AP üldine stsenaarium. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 WiFi-skannimine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 WiFi-jaama ühendamise stsenaarium. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 WiFi-jaam loob ühenduse mitme pääsupunkti leidmisel. . . . . . . . . . . . . 2543 4.31.12 WiFi-ühenduse taasloomine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 WiFi-majaka ajalõpp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 WiFi konfiguratsioon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Traadita võrgu haldus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Raadioressursi mõõtmine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Kiire BSS-i üleminek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 WiFi energiasäästurežiim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 WiFi läbilaskevõime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Wi-Fi 80211 pakettide saatmine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi nuhkimisrežiim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi mitu antenni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 WiFi-kanali oleku teave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 WiFi-kanali oleku teabe konfigureerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 WiFi fragment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS-i registreeruja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 WiFi puhvri kasutus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Kuidas parandada Wi-Fi jõudlust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi menüü konfiguratsioon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Veaotsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 WiFi turvalisus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 WiFi turvafunktsioonid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Kaitstud haldusraamid (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 Raadiosagedusliku kooseksisteerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Üleview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Toetatud kooseksisteerimise stsenaarium ESP32 jaoks . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Kooseksisteerimise mehhanism ja poliitika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Kooseksisteerimise funktsiooni kasutamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Reprodutseeritavad järgud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Mittereprodutseeritavate järkude põhjused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Reprodutseeritavate järkude lubamine ESP-IDF-is . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Kuidas saavutatakse reprodutseeritavad järkud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Reprodutseeritavad järkud ja veaotsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Tegurid, mis endiselt mõjutavad reprodutseeritavaid järke . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Madala energiatarbega režiimi kasutusjuhend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578

5 migratsioonijuhendit

2579

5.1 ESP-IDF 5.x migratsiooni juhend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 Migratsioon versioonilt 4.4 versioonile 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 teeki ja raamistikku

2611

6.1 Pilveraamistikud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

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

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

6.1.3 Azure'i asjade internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

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

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

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

6.1.7 Tencenti asjade internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.8 Tencentyuni asjade internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.9 Baidu IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2 Espressiooni raamistikud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.1 Espressifi heli arendusraamistik . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.3 Espressifi DSP teek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.4 ESP-WIFI-MESH arendusraamistik . . . . . . . . . . . . . . . . . . . . . . . . . 2613

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

6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.7 ESP-IoT-lahendus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.8 ESP-protokollid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

viii

6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614

7 panuse juhend

2615

7.1 Kuidas panustada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.2 Enne kaastöö tegemist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.3 Tõmbetaotluse protsess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.4 Juriidiline osa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5 Seotud dokumendid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.1 Espressifi IoT arendusraamistiku stiilijuhend . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.2 ESP-IDF projekti jaoks eelkinnituse konksu paigaldamine . . . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Koodi dokumenteerimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Näite loomineamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 API dokumentatsiooni mall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Kaastööleping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 Autoriõiguse päise juhend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 ESP-IDF testid Pytesti juhendiga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635

8 ESP-IDF versioonid

2645

8.1 Väljalasked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.2 Millise versiooniga peaksin alustama? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.3 Versioonimisskeem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.4 Toeperioodid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 Praeguse versiooni kontrollimine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

8.6 Giti töövoog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7 ESP-IDF-i värskendamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 Stabiilsele versioonile värskendamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.2 Eelväljaande versioonile värskendamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 Üleminek põhiharule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 Värskendamine väljalaskeharule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 Vahendid

2651

9.1 Platvormi IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.1 Mis on PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 Paigaldamine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Konfiguratsioon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Õpetused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Projekti näideamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Järgmised sammud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Kasulikud lingid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

10 Autoriõigused ja litsentsid

2653

10.1 Tarkvara autoriõigused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.1 Püsivara komponendid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 Dokumentatsioon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 ROM-i lähtekoodi autoriõigused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.3 Xtensa libhal MIT-litsents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.4 TinyBasic Plus MIT-litsents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.5 TJpgDec litsents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

11 Umbes

2657

12 Keelte vahetamine

2659

Indeks

2661

Indeks

2661

ix

x

Sisukord
See on Espressif IoT arendusraamistiku (esp-idf) dokumentatsioon. ESP-IDF on ESP32, ESP32-S ja ESP32-C seeria kiibistiku ametlik arendusraamistik. See dokument kirjeldab ESP-IDF-i kasutamist ESP32 kiibistikuga.

Alustage

API viide

API juhendid

Espressifi süsteemid

1 Esita dokumendi tagasiside

Väljalase v5.0.9

Sisukord

Espressifi süsteemid

2 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk
Alustage
See dokument on mõeldud abistama teid Espressifi ESP32 kiibil põhineva riistvara tarkvaraarenduskeskkonna seadistamisel. Pärast seda lihtne eksemplarampLe näitab sulle, kuidas kasutada ESP-IDF-i (Espressif IoT Development Framework) menüü konfigureerimiseks ning seejärel püsivara loomiseks ja vilkumiseks ESP32-plaadile.
Märkus: See on ESP-IDF-i stabiilse versiooni v5.0.9 dokumentatsioon. Saadaval on ka teisi ESP-IDF-i versioone.
1.1 Sissejuhatus
ESP32 on kiibil põhinev süsteem, mis integreerib järgmised funktsioonid: · WiFi (2.4 GHz sagedusala) · Bluetooth · Kaks suure jõudlusega Xtensa® 32-bitist LX6 protsessorituuma · Ülimadala energiatarbega kaasprotsessor · Mitmed välisseadmed
40 nm tehnoloogial põhinev ESP32 pakub vastupidavat ja integreeritud platvormi, mis aitab rahuldada pidevaid nõudmisi tõhusa energiatarbimise, kompaktse disaini, turvalisuse, suure jõudluse ja töökindluse osas. Espressif pakub rakenduste arendajatele põhilisi riist- ja tarkvararessursse, mis aitavad ESP32 seeria riistvara abil oma ideid ellu viia. Espressifi tarkvaraarendusraamistik on mõeldud asjade interneti (IoT) rakenduste arendamiseks, mis sisaldavad WiFi, Bluetoothi, energiahaldust ja mitmeid muid süsteemifunktsioone.
1.2 Mida te vajate
1.2.1 Riistvara
· ESP32 plaat. · USB-kaabel – USB A / micro USB B. · Arvuti, kus töötab Windows, Linux või macOS.
Märkus: Praegu kasutavad mõned arendusplaadid USB Type C-pistikuid. Veenduge, et teil oleks plaadi ühendamiseks õige kaabel!
Kui teil on üks allpool loetletud ESP32 ametlikest arendusplaatidest, saate riistvara kohta lisateabe saamiseks klõpsata lingil.
3

1. peatükk. Alustamine
ESP32-DevKitS(-R)
See kasutusjuhend annab teavet ESP32-DevKitS(-R) kohta, mis on Espressifi toodetud ESP32-põhine vilkuv plaat. ESP32-DevKitS(-R) on kahe plaadinime kombinatsioon: ESP32-DevKitS ja ESP32-DevKitS-R. S tähistab vedrusid ja R tähistab WROVERit.

ESP32-DevKitS

ESP32-DevKitS-R

Dokument koosneb järgmistest põhiosadest: · Alustamine: annab ülevaateview ESP32-DevKitS(-R) ja riist-/tarkvara seadistamise juhised alustamiseks. · Riistvara viide: Annab üksikasjalikumat teavet ESP32-DevKitS(-R)ns riistvara kohta. · Seotud dokumendid: Annab linke seotud dokumentatsioonile.

Alustamine Selles jaotises kirjeldatakse, kuidas ESP32-DevKitS(-R)-iga alustada. See algab mõne sissejuhatava osaga ESP32-DevKitS(-R) kohta ning seejärel antakse jaotises „Kuidas plaati flashida” juhised mooduli ESP32-DevKitS(-R)-ile paigaldamiseks, ettevalmistamiseks ja püsivara flashimiseks.

Läbiview ESP32-DevKitS(-R) on Espressifnsi välkplaat, mis on spetsiaalselt loodud ESP32 jaoks. Seda saab kasutada ESP32 mooduli välklambiks ilma moodulit toiteallika ja signaaliliinide külge jootmata. Paigaldatud mooduliga saab ESP32-DevKitS(-R) moodulit kasutada ka mini-arendusplaadina nagu ESP32-DevKitC.
ESP32-DevKitS ja ESP32-DevKitS-R plaadid erinevad ainult vedrutihvtide paigutuse poolest, et need sobiksid järgmiste ESP32 moodulitega.
· 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 (trükkplaat ja IPEX) ESP32-WROVER-B (trükkplaat ja IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Teavet ülaltoodud moodulite kohta leiate ESP32 seeria moodulitest.

Komponentide kirjeldus

Espressifi süsteemid

4 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Joonis 1: ESP32-DevKitS – esikülg

Espressifi süsteemid

Joonis 2: ESP32-DevKitS-R – esikülg 5
Esitage tagasisidet dokumendi kohta

Väljalase v5.0.9

1. peatükk. Alustamine

Põhikomponentide vedrutihvtid 2.54 mm emased pistikud
USB-UART sild LDO Micro-USB-pistik/Micro-USB-port EN-nupp Käivitusnupp
Toite sisselülitamise LED

Kirjeldus Klõpsake moodul sisse. Tihvtid sobivad mooduli süvenditega aukudesse. Need emased ühendusklemmid on ühendatud sellele plaadile kinnitatud mooduli tihvtidega. Emaste ühendusklemmide kirjelduse leiate jaotisest Päiseplokid. Ühekiibiline USB-UART sild pakub edastuskiirust kuni 3 Mbps.
5V kuni 3.3V madala pingelangusega helitugevustage-regulaator (LDO).
USB-liides. Plaadi toiteallikas ja arvuti ning plaadi vaheline sideliides.
Nupp Lähtesta.
Allalaadimise nupp. Hoides all nuppu Boot ja seejärel vajutades EN, käivitatakse püsivara allalaadimise režiim, kus saab püsivara jadapordi kaudu alla laadida.
Lülitub sisse, kui USB või toiteplokk on plaadiga ühendatud.

Kuidas plaati flashida Enne ESP32-DevKitS(-R) sisselülitamist veenduge, et see on heas seisukorras ja ilma nähtavate kahjustusteta.
Vajalik riistvara · Teie valitud ESP32 moodul · USB 2.0 kaabel (Standard-A kuni Micro-B) · Arvuti, millel töötab Windows, Linux või macOS
Riistvara seadistamine Palun paigaldage oma valitud moodul oma ESP32-DevKitS(-R)-le järgmiste sammude järgi:
· Asetage moodul ettevaatlikult ESP32-DevKitS(-R) plaadile. Veenduge, et mooduli kroonlehed oleksid plaadi vedrutihvtidega joondatud.
· Suruge moodul plaadile, kuni see klõpsatab. · Kontrollige, kas kõik vedrutihvtid on sisestatud kroonlehtedega aukudesse. Kui mõned vedrutihvtid on valesti joondatud,
Asetage need pintsettidega kroonlehtedega aukudesse.
Tarkvara seadistamine
Eelistatud meetod ESP-IDF arendusraamistik pakub eelistatud viisi binaarfailide vilkumiseks ESP32-DevKitS(-R)-ile. Jätkake jaotisega Alustamine, kus jaotis Installimine aitab teil kiiresti arenduskeskkonna seadistada ja seejärel rakenduseksemplari vilkuda.ample oma ESP32-DevKitS(-R)-le.
Alternatiivne meetod Alternatiivina saavad Windowsi kasutajad binaarfaile flashida Flashi allalaadimistööriista abil. Lihtsalt laadige see alla, pakkige lahti ja järgige doc-kaustas olevaid juhiseid.
Märkus: 1. Binaarse faili vilkumiseks files, ESP32 peaks olema seatud püsivara allalaadimise režiimi. Seda saab teha kas automaatselt välkmälu tööriista abil või hoides all nuppu Boot ja vajutades nuppu EN. 2. Pärast binaarfaili vilkumist filePärast seda taaskäivitab Flashi allalaadimise tööriist teie ESP32 mooduli ja käivitab vaikimisi vilkunud rakenduse.

Plaadi mõõtmed Sisu ja pakend

Espressifi süsteemid

6 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine Joonis 3: ESP32-DevKitS plaadi mõõtmed – tagakülg

Espressifi süsteemid

Joonis 4: ESP32-DevKitS-R plaadi mõõtmed – tagakülg 7
Esitage tagasisidet dokumendi kohta

Väljalase v5.0.9

1. peatükk. Alustamine
Jaemüügitellimused Kui tellite paar tükkiampIga ESP32-DevKitS(-R) on eraldi pakendis kas antistaatilises kotis või mis tahes muus pakendis, olenevalt jaemüüjast. Jaemüügitellimuste esitamiseks külastage palun veebilehte https://www.espressif.com/en/contact-us/get-sampvähem.
Hulgitellimused Hulgitellimuste korral tarnitakse lauad suurtes pappkarpides. Hulgitellimuste esitamiseks külastage palun veebilehte https://www.espressif.com/en/contact-us/sales-questions.
Riistvaraviide
Plokkskeem Allolev plokkskeem näitab ESP32-DevKitS(-R) komponente ja nende ühendusi.

Joonis 5: ESP32-DevKitS(-R) (suurendamiseks klõpsake)
Toiteallika valikud Plaadi toiteks on kolm teineteist välistavat viisi: · Micro USB-port, vaikimisi toiteallikas · 5 V ja GND ühendusklemmid · 3 V ja GND ühendusklemmid
Soovitatav on kasutada esimest võimalust: micro-USB-porti.

Espressifi süsteemid

.

Sildi signaal

L1 3V3 VDD 3V3

L2 EN kiip_PU

L3 VP-andur_VP

L4 VN ANDUR_VN

L5 34

GPIO34

L6 35

GPIO35

L7 32

GPIO32

L8 33

GPIO33

jätkub järgmisel lehel

8 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Tabel 1 jätkub eelmiselt lehelt

.

Sildi signaal

L9 25

GPIO25

L10 26

GPIO26

L11 27

GPIO27

L12 14

GPIO14

L13 12

GPIO12

L14 MAANDUS MAANDUS

L15 13

GPIO13

L16 D2 SD_ANDMED2

L17 D3 SD_ANDMED3

L18 CMD SD_CMD

L19 5V

Väline 5V

R1 MAANDUS MAANDUS

R2 23

GPIO23

R3 22

GPIO22

R4 TX U0TXD

R5 RX U0RXD

R6 21

GPIO21

R7 MAANDUS MAANDUS

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_ANDMED1

R18 D0 SD_ANDMED0

R19 CLK SD_CLK

Päiseplokid Päiseplokkide pildi leiate komponentide kirjeldusest.

Seotud dokumendid
· ESP32-DevKitS(-R) skeemid (PDF) · ESP32 andmeleht (PDF) · ESP32-WROOM-32 andmeleht (PDF) · ESP32-WROOM-32D ja ESP32-WROOM-32U andmeleht (PDF) · ESP32-SOLO-1 andmeleht (PDF) · ESP32-WROVER andmeleht (PDF) · ESP32-WROVER-B andmeleht (PDF) · ESP tootevalija

ESP32-DevKitM-1

See kasutusjuhend aitab teil ESP32-DevKitM-1 kasutamist alustada ja pakub ka põhjalikumat teavet.
ESP32-DevKitM-1 on Espressifi toodetud ESP32-MINI-1(1U)-põhine arendusplaat. Enamik I/O-tihvte on mõlemal küljel tihvtipeade külge lahti murtud, et hõlbustada liideste loomist. Kasutajad saavad välisseadmeid ühendada kas ühendusjuhtmete abil või paigaldada ESP32-DevKitM-1 makettplaadile.

Espressifi süsteemid

9 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

ESP32-DevKitM-1 – ees

ESP32-DevKitM-1 – isomeetriline

Dokument koosneb järgmistest põhiosadest: · Alustamine: annab ülevaateview ESP32-DevKitM-1 ja riist-/tarkvara seadistamise juhised alustamiseks. · Riistvara viide: Annab üksikasjalikumat teavet ESP32-DevKitM-1ns riistvara kohta. · Seotud dokumendid: Annab linke seotud dokumentidele.

Alustamine Selles jaotises kirjeldatakse, kuidas ESP32-DevKitM-1 kasutamist alustada. See algab mõne sissejuhatava osaga ESP32-DevKitM-1 kohta ning seejärel jaotises „Rakenduse arendamise alustamine” antakse juhiseid riistvara esmase seadistamise ja püsivara ESP32-DevKitM-1-le vilkumise kohta.

Läbiview See on väike ja mugav arendusplaat, millel on:
· ESP32-MINI-1 või ESP32-MINI-1U moodul · USB-järjestikprogrammeerimisliides, mis pakub ka plaadile toiteallikat · tihvtidega pistikud · nupud lähtestamiseks ja püsivara allalaadimisrežiimi aktiveerimiseks · mõned muud komponendid

Sisu ja pakend

Jaemüügitellimused Kui tellite paar tükkiampIga ESP32-DevKitM-1 on eraldi pakendis kas antistaatilises kotis või mis tahes muus pakendis, olenevalt jaemüüjast.
Jaemüügitellimuste tegemiseks külastage palun veebilehte https://www.espressif.com/en/contact-us/get-sampvähem.

Hulgitellimused Hulgitellimuste korral tarnitakse lauad suurtes pappkarpides. Hulgitellimuste esitamiseks külastage palun veebilehte https://www.espressif.com/en/contact-us/sales-questions.

Komponentide kirjeldus Järgmisel joonisel ja tabelis on kirjeldatud ESP32-DevKitM-1 plaadi põhikomponente, liideseid ja juhtelemente. Näiteks võtame ESP32-MINI-1 mooduliga plaadi.ample järgmistes jaotistes.

Espressifi süsteemid

10 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Joonis 6: ESP32-DevKitM-1 – esikülg

Põhikomponent: rongisisene moodul
5 V kuni 3.3 V LDO käivitusnupp
Lähtestamisnupp Mikro-USB-port
USB-UART sild 3.3 V toite LED
I/O pistik

Kirjeldus
ESP32-MINI-1 moodul või ESP32-MINI-1U moodul. ESP32-MINI-1 on varustatud sisseehitatud trükkplaadile paigaldatud antenniga. ESP32-MINI-1U on varustatud välise antenni pistikuga. Mõlemal moodulil on kiibipakendis 4 MB välkmälu. Lisateabe saamiseks vaadake ESP32-MINI-1 ja ESP32-MINI-1U andmelehte.
Võimsusregulaator muudab 5 V pinge 3.3 V.
Allalaadimise nupp. Hoides all nuppu Boot ja seejärel vajutades nuppu Reset, käivitatakse püsivara allalaadimisrežiim, kus saab püsivara jadapordi kaudu alla laadida.
Lähtestamisnupp
USB liides. Toiteplokk plaadile, samuti sideliides arvuti ja ESP32 kiibi vahel.
Üks USB-UART-sillakiip tagab edastuskiiruse kuni 3 Mbps.
Lülitub sisse, kui USB on plaadiga ühendatud. Üksikasjade saamiseks vaadake skeeme seotud dokumentides. Kõik saadaolevad GPIO-tihvtid (välja arvatud välkmälu SPI-siin) on jaotatud plaadi tihvtide päistesse. Kasutajad saavad ESP32 kiibi programmeerida mitme funktsiooni lubamiseks.

Rakenduse arendamise alustamine Enne ESP32-DevKitM-1 sisselülitamist veenduge, et see on heas seisukorras ja ilma ilmsete kahjustusteta.
Vajalik riistvara · ESP32-DevKitM-1 · USB 2.0 kaabel (Standard-A kuni Micro-B) · Arvuti, kus töötab Windows, Linux või macOS
Tarkvara seadistamine Palun jätkake jaotisega Alustamine, kus jaotis Installimine aitab teil kiiresti arenduskeskkonna seadistada ja seejärel rakendusex-i flashida.ampoma ESP32-DevKitM-1-le.

Espressifi süsteemid

11 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
Tähelepanu: Enne 2. detsembrit 2021 toodetud ESP32-DevKitM-1 plaatidel on paigaldatud ühetuumaline moodul. Mooduli tüübi kontrollimiseks vaadake PCN-2021-021 mooduli märgistusteavet. Kui teie plaadil on paigaldatud ühetuumaline moodul, lubage enne rakenduste vilkumist menüükonfiguratsioonis ühetuumaline režiim (CONFIG_FREERTOS_UNICORE).
Riistvara viiteplokkskeem Allolev plokkskeem näitab ESP32-DevKitM-1 komponente ja nende ühendusi.

Joonis 7: ESP32-DevKitM-1
Toiteallika valik Plaadi toiteks on kolm teineteist välistavat viisi: · Micro USB-port, vaikimisi toiteallikas · 5 V ja GND ühendusklemmid · 3 V ja GND ühendusklemmid
Hoiatus: · Toiteallikas tuleb tagada ühe ja ainult ühe ülaltoodud valiku abil, vastasel juhul võib plaat ja/või toiteallikas kahjustuda. · Soovitatav on toide micro-USB-pordi kaudu.

Kontaktide kirjeldused Allolev tabel annab plaadi mõlemal küljel asuvate kontaktide nimed ja funktsioonid. Välisseadmete kontaktide konfiguratsioonide kohta vaadake ESP32 andmelehte.

Ei.

Nimi

Tüüp

1

GND

P

2

3V3

P

Funktsioon Maandus 3.3 V toiteallikas

jätkub järgmisel lehel

Espressifi süsteemid

12 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Tabel 2 jätkub eelmiselt lehelt

Ei.

Nimi

Tüüp

Funktsioon

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

Lähtesta; Kõrge: luba; Madal: lülitub välja

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32

I/O

GPIO32, XTAL_32K_P (32.768 kHz kristallostsillaatori sisend),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

I/O

GPIO33, XTAL_32K_N (32.768 kHz kristallostsillaatori väljund),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25

I/O

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26

I/O

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27

I/O

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14

I/O

GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

5 V toiteallikas

17

IO12

I/O

GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,

HS2_DATA2, SD_DATA2, EMAC_TXD3

18

IO13

I/O

GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,

HS2_DATA3, SD_DATA3, EMAC_RX_ER

19

IO15

I/O

GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,

HS2_CMD, SD_CMD, EMAC_RXD3

20

IO2

I/O

GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,

HS2_DATA0, SD_DATA0

21

IO0

I/O

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,

EMAC_TX_CLK

22

IO4

I/O

GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,

HS2_DATA1, SD_DATA1, EMAC_TX_ER

23

IO9

I/O

GPIO9, HS1_DATA2, U1RXD, SD_DATA2

24

IO10

I/O

GPIO10, HS1_DATA3, U1TXD, SD_DATA3

25

IO5

I/O

GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK

26

IO18

I/O

GPIO18, HS1_DATA7, VSPICLK

27

IO23

I/O

GPIO23, HS1_STROBE, VSPID

28

IO19

I/O

GPIO19, VSPIQ, U0CTS, EMAC_TXD0

29

IO22

I/O

GPIO22, VSPIWP, U0RTS, EMAC_TXD1

30

IO21

I/O

GPIO21, VSPIHD, EMAC_TX_EN

31

TXD0

I/O

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

RXD0

I/O

GPIO3, U0RXD, CLK_OUT2

Riistvara versiooni üksikasjad Varasemaid versioone pole saadaval.
Seotud dokumendid
· ESP32-MINI-1 ja ESP32-MINI-1U andmeleht (PDF) · ESP32-DevKitM-1 skeemid (PDF) · ESP32-DevKitM-1 trükkplaadi skeem (PDF) · ESP32-DevKitM-1 skeem (DXF) – Saate view seda Autodeskiga Viewveebis · ESP32 andmeleht (PDF) · ESP tootevalija
Plaadi muu disainidokumentatsiooni saamiseks võtke meiega ühendust aadressil sales@espressif.com.

Espressifi süsteemid

13 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
1.2.2 Tarkvara
ESP-IDF-i kasutamise alustamiseks ESP32-l installige järgmine tarkvara: · Toolchain ESP32 koodi kompileerimiseks · Tööriistad – CMake ja Ninja ESP32 täieliku rakenduse loomiseks · ESP-IDF, mis sisaldab sisuliselt ESP32 API-t (tarkvarateegid ja lähtekood) ja skripte Toolchaini haldamiseks

1.3 Paigaldamine
Kogu vajaliku tarkvara installimiseks pakume selle ülesande hõlbustamiseks erinevaid viise. Valige üks saadaolevatest valikutest.
1.3.1 IDE

Märkus. Soovitame tungivalt ESP-IDF-i installida oma lemmik IDE kaudu.
· Eclipse'i plugin · VSCode'i laiendus

1.3.2 Käsitsi paigaldamine
Manuaalse protseduuri puhul valige palun oma operatsioonisüsteemi järgi.

Espressifi süsteemid

14 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
Tööriistaahela standardseadistus Windowsi jaoks
Sissejuhatus ESP-IDF nõuab teatud eeltingimustel tööriistade installimist, et saaksite luua toetatud kiipide püsivara. Eeltingimustel tööriistade hulka kuuluvad Python, Git, ristkompilaatorid, CMake ja Ninja ehitustööriistad. Selle alustamise jaoks kasutame käsuviiba, kuid pärast ESP-IDF installimist saate kasutada Eclipse'i pluginat või mõnda muud graafilist IDE-d, millel on CMake tugi. Märkus. Piirangud: – ESP-IDF ja ESP-IDF tööriistade installitee ei tohi olla pikem kui 90 tähemärki. Liiga pikad installiteed võivad põhjustada ehituse ebaõnnestumise. – Pythoni või ESP-IDF installitee ei tohi sisaldada tühikuid ega sulgusid. – Pythoni või ESP-IDF installitee ei tohiks sisaldada erimärke (mitte ASCII), välja arvatud juhul, kui operatsioonisüsteem on konfigureeritud Unicode UTF-8 toega. Süsteemiadministraator saab toe lubada juhtpaneeli kaudu – Muuda kuupäeva, kellaaja või numbrivorminguid – Administraator vahekaart – Muuda süsteemi asukohta – märgista suvand oBeta: Kasuta Unicode UTF-8 ülemaailmse keeletoe jaoks – Ok ja taaskäivitage arvuti.
ESP-IDF tööriistade installija Lihtsaim viis ESP-IDFns-i eeltingimuste installimiseks on alla laadida üks ESP-IDF tööriistade installijatest.

Windowsi installija allalaadimine
Milleks kasutatakse võrguühenduseta ja võrguühenduseta installijat? Võrguühendusega installija on väga väike ja võimaldab installida kõiki ESP-IDF-i saadaolevaid versioone. Installer laadib installiprotsessi ajal alla ainult vajalikud sõltuvused, sealhulgas Git for Windows. Installer salvestab allalaaditud failid. files vahemälu kataloogis %userprofile%. espresso
Võrguühenduseta installija ei vaja võrguühendust. Installer sisaldab kõiki vajalikke sõltuvusi, sh Git For Windowsi.
Installi komponendid Installer juurutab järgmised komponendid:
· Sisseehitatud Python · Ristkompilaatorid · OpenOCD · CMake'i ja Ninja ehitustööriistad · ESP-IDF
Installer lubab ka olemasoleva kataloogi taaskasutamist ESP-IDF-iga. Soovitatav kataloog on %userpro.file%Desktopesp-idf kus %userprofile% on teie kodukataloog.

Espressifi süsteemid

15 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
ESP-IDF keskkonna käivitamine Installiprotsessi lõpus saate märkida valiku „Käivita ESP-IDF PowerShelli keskkond” või „Käivita ESP-IDF käsuviip (cmd.exe)”. Installer käivitab valitud käsuviibas ESP-IDF keskkonna. Käivita ESP-IDF PowerShelli keskkond:

Joonis 8: ESP-IDF tööriistade häälestusviisardi lõpuleviimine käsuga Run ESP-IDF PowerShell Environment
Käivita ESP-IDF käsuviip (cmd.exe):
Käsuviiba kasutamine Ülejäänud alustamisetappide jaoks kasutame Windowsi käsuviiba. ESP-IDF tööriistade installija loob menüüsse Start ka otsetee ESP-IDF käsuviiba käivitamiseks. See otsetee avab käsuviiba (cmd.exe) ja käivitab skripti export.bat, et seadistada keskkonnamuutujad (PATH, IDF_PATH ja teised). Selles käsuviibas on saadaval kõik installitud tööriistad. Pange tähele, et see otsetee kehtib ainult ESP-IDF tööriistade installijas valitud ESP-IDF kataloogi kohta. Kui teil on arvutis mitu ESP-IDF kataloogi (ntampnäiteks ESP-IDF-i erinevate versioonidega töötamiseks on teil nende kasutamiseks kaks võimalust:
1. Looge ESP-IDF tööriistade installija loodud otseteest koopia ja muutke uue otsetee töökataloogiks ESP-IDF kataloog, mida soovite kasutada.
2. Teise võimalusena käivitage cmd.exe, seejärel minge soovitud ESP-IDF kataloogi ja käivitage export.bat. Pange tähele, et erinevalt eelmisest valikust nõuab see meetod, et PATH-is oleksid Python ja Git. Kui saate veateateid, mis on seotud Pythoni või Giti mitteleidmisega, kasutage esimest valikut.
ESP-IDF-i esimesed sammud Nüüd, kui kõik nõuded on täidetud, juhendab järgmine teema teid oma esimese projekti alustamisel.

Espressifi süsteemid

16 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine Joonis 9: ESP-IDF PowerShell

Joonis 10: ESP-IDF-i tööriistade häälestusviisardi lõpuleviimine käsuga Käivita ESP-IDF käsuviip (cmd.exe)

Espressifi süsteemid

17 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Joonis 11: ESP-IDF käsuviip

Espressifi süsteemid

18 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
See juhend aitab teil ESP-IDF-i kasutamise esimesi samme astuda. Järgige seda juhendit uue projekti alustamiseks ESP32-l ning seadme väljundi loomiseks, vilkumiseks ja jälgimiseks. Märkus. Kui te pole veel ESP-IDF-i installinud, minge palun installimise juurde ja järgige juhiseid, et saada kogu selle juhendi kasutamiseks vajalik tarkvara.

Projekti alustamine Nüüd olete valmis oma ESP32 rakendust ette valmistama. Võite alustada projektiga getstarted/hello_world näiteksamples kataloog ESP-IDF-is.
Tähtis: ESP-IDF-i ehitussüsteem ei toeta tühikuid ESP-IDF-i ega projektide teedel.
Kopeeri projekt get-started/hello_world kataloogi ~/esp: cd %userprofile%esp xcopy /e /i %IDF_PATH%exampalustaminetere_maailmtere_maailm
Märkus: Saadaval on mitmesuguseid näiteidample projektid endisesamples kataloog ESP-IDF-is. Saate kopeerida mis tahes projekti ülaltoodud viisil ja käivitada. Võimalik ehitada ka eksampfailid kohapeal ilma neid eelnevalt kopeerimata.

Ühendage oma seade Nüüd ühendage oma ESP32 plaat arvutiga ja kontrollige, millise jadapordi all plaat nähtav on. Jadapordi nimed algavad Windowsis COM-iga. Kui te pole kindel, kuidas jadapordi nime kontrollida, vaadake lisateavet jaotisest Jadaühenduse loomine ESP32-ga.
Märkus. Hoidke pordi nimi käepärast, kuna vajate seda järgmistes sammudes.

Projekti seadistamine Liikuge oma hello_world kataloogi, määrake sihtmärgiks ESP32 ja käivitage projekti seadistamise utiliit menuconfig.
Windowsi CD %userprofile%esphello_world idf.py seatud sihtmärk esp32 idf.py menüükonfiguratsioon
Pärast uue projekti avamist peaksite esmalt määrama sihtmärgi käsuga idf.py set-target esp32. Pange tähele, et projekti olemasolevad järgud ja konfiguratsioonid, kui neid on, kustutatakse ja initsialiseeritakse selle protsessi käigus. Selle sammu vahelejätmiseks saab sihtmärgi salvestada keskkonnamuutujasse. Lisateabe saamiseks vaadake jaotist Sihtkiibi valimine: set-target. Kui eelmised sammud on õigesti tehtud, kuvatakse järgmine menüü: Seda menüüd kasutate projektipõhiste muutujate seadistamiseks, nt WiFi-võrgu nimi ja parool, protsessori kiirus jne. Projekti seadistamine käsuga menuconfig võib ohello_wordp puhul vahele jääda, kuna see näide...ampfail töötab vaikimisi konfiguratsiooniga.
Tähelepanu: Kui kasutate ESP32-DevKitC plaati koos ESP32-SOLO-1 mooduliga või ESP32-DevKitM-1 plaati koos ESP32-MIN1-1(1U) mooduliga, lubage enne ex-i vilkumist menüükonfiguratsioonis ühetuumaline režiim (CONFIG_FREERTOS_UNICORE).ampvähem.

Espressifi süsteemid

19 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Joonis 12: Projekti konfiguratsioon – avaaken
Märkus: Menüü värvid võivad teie terminalis erineda. Saate välimust muuta valikuga –style. Lisateabe saamiseks käivitage idf.py menuconfig –help.
Kui kasutate mõnda toetatud arendusplaati, saate oma arendust kiirendada plaadi tugipaketi abil. Lisateavet leiate jaotisest Lisanõuanded.
Projekti loomine Projekti loomiseks käivitage järgmine käsk:
idf.py build
See käsk kompileerib rakenduse ja kõik ESP-IDF komponendid ning seejärel genereerib alglaaduri, partitsioonitabeli ja rakenduse binaarfailid.
$ idf.py build Käivitatakse käsk „cmake” kataloogis /path/to/hello_world/build Käivitatakse käsk „cmake -G Ninja –warn-unitialized /path/to/hello_world”… Hoiatus initsialiseerimata väärtuste kohta. — Leitud Git: /usr/bin/git (leitud versioon „2.17.0”) — Konfiguratsiooni tõttu luuakse tühi aws_iot komponent — Komponentide nimed: … — Komponentide teed: …
… (veel rida ehitussüsteemi väljundit)
[527/527] Hello_world.bin esptool.py v2.3.1 genereerimine
Projekti ehitus on lõppenud. Flashimiseks käivitage see käsk: ../../../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 või käivitage 'idf.py -p PORT flash'.
Kui vigu ei esine, lõpetatakse ehitamine püsivara kahendfaili .bin genereerimisega files.

Espressifi süsteemid

20 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
Flashi seadmesse Flashi äsja loodud binaarfailid (bootloader.bin, partition-table.bin ja hello_world.bin) oma ESP32 plaadile, käivitades käsu: idf.py -p PORT [-b BAUD] flash
Asenda PORT oma ESP32 plaadi jadapordi nimega. Samuti saad muuta välgatava baudikiirust, asendades BAUD vajaliku baudikiirusega. Vaikimisi baudikiirus on 460800. Lisateavet idf.py argumentide kohta leiad failist idf.py.
Märkus: Valik „flash“ ehitab ja flashib projekti automaatselt, seega pole idf.py buildi käivitamine vajalik.

Kas välklambi käivitamisel tekkis probleeme? Kui käivitate antud käsu ja näete selliseid vigu nagu „Failed to connectp”, võib sellel olla mitu põhjust. Üks põhjustest võib olla esptool.py probleemid. See utiliit kutsub ehitussüsteemi poolt kiibi lähtestamiseks, ROM-i alglaaduriga suhtlemiseks ja püsivara välklambiks. Üks lihtne lahendus on allpool kirjeldatud käsitsi lähtestamine ja kui see ei aita, leiate lisateavet võimalike probleemide kohta jaotisest Veaotsing.
esptool.py lähtestab ESP32 automaatselt, kinnitades USB-jadapordi muunduri kiibi, nt FTDI või CP210x, DTR ja RTS juhtimisliinid (lisateabe saamiseks vaadake jaotist Jadapordi ühenduse loomine ESP32-ga). DTR ja RTS juhtimisliinid on omakorda ühendatud ESP32 GPIO0 ja CHIP_PU (EN) tihvtidega, seega muutuvad helitugevus.tagDTR ja RTS tasemed käivitavad ESP32 püsivara allalaadimisrežiimi. NäiteksampNäiteks, vaata ESP32 DevKitC arendusplaadi skeemi.
Üldiselt ei tohiks teil ametlike esp-idf arendusplaatidega probleeme tekkida. Siiski ei suuda esptool.py teie riistvara automaatselt lähtestada järgmistel juhtudel:
· Teie riistvaral pole DTR- ja RTS-liine ühendatud GPIO0 ja CHIP_PU-ga · DTR- ja RTS-liinid on konfigureeritud erinevalt · Selliseid jadajuhtliine pole üldse olemas
Sõltuvalt teie riistvarast võib olla võimalik ESP32 plaat käsitsi püsivara allalaadimisrežiimi (lähtestamine) panna.
· Espressifi toodetud arendusplaatide kohta leiate selle teabe vastavatest alustusjuhenditest või kasutusjuhenditest. NäiteksampNäiteks ESP-IDF arendusplaadi käsitsi lähtestamiseks hoidke all nuppu Boot (GPIO0) ja vajutage nuppu EN (CHIP_PU).
· Muud tüüpi riistvara puhul proovige GPIO0 alla tõmmata.

Normaalne töö Vilkumise ajal näete väljundlogi, mis sarnaneb järgmisega:
... 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 Jadaport /dev/ttyUSB0 Ühendub…….._ Kiip on ESP32D0WDQ6 (versioon 0) Omadused: WiFi, BT, kahetuumaline, kodeerimisskeem Puudub Crystal on 40MHz MAC: 24:0a:c4:05:b9:14 Tüve üleslaadimine… Tüvi töötab… Tüvi töötab… Edastuskiiruse muutmine 460800-le Muudetud.
(jätkub järgmisel lehel)

Espressifi süsteemid

21 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
(jätkub eelmiselt lehelt) Välkmälu suuruse konfigureerimine… Tihendatud 3072 baiti kiiruseks 103… Kirjutamine kiirusel 0x00008000… (100%) Kirjutas 3072 baiti (103 tihendatud) kiirusel 0x00008000 0.0 sekundiga (efektiivne kiirus 5962.8 kbit/s)… Andmete räsi on kontrollitud. Tihendatud 26096 baiti kiiruseks 15408… Kirjutamine kiirusel 0x00001000… (100%) Kirjutas 26096 baiti (15408 tihendatud) kiirusel 0x00001000 0.4 sekundiga (efektiivne kiirus 546.7 kbit/s)… Andmete räsi on kontrollitud. Tihendatud 147104 baiti kiiruseks 77364… Kirjutamine kiirusel 0x00010000… (20%) Kirjutamine kiirusel 0x00014000… (40%) Kirjutamine kiirusel 0x00018000… (60%) Kirjutamine kiirusel 0x0001c000… (80%) Kirjutamine kiirusel 0x00020000… (100%) Kirjutas 147104 baiti (77364 tihendatud) kiirusel 0x00010000 1.9 sekundiga (efektiivne kiirus 615,5 kbit/s)… Andmete räsi on kontrollitud.
Lahkumine… Raske lähtestamine RTS-i viigu kaudu… Valmis
Kui välkmälu installimise lõpuks probleeme ei esine, taaskäivitub plaat ja käivitab rakenduse theohello_worldpapplication. Kui soovite idf.py asemel kasutada Eclipse'i või VS Code'i IDE-d, vaadake Eclipse'i pluginat, VSCode'i laiendust.
Väljundi jälgimine Selleks, et kontrollida, kas ohello_worldpis tõepoolest töötab, tippige idf.py -p PORT monitor (ärge unustage PORTi asendada oma jadapordi nimega).
See käsk käivitab rakenduse IDF Monitor:
$ idf.py -p monitor Käivitatakse idf_monitor kataloogis […]/esp/hello_world/build Käivitatakse käsk „python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor sees 115200 —– Välju: Ctrl+] | Menüü: Ctrl+T | Abi: Ctrl+T, millele järgneb Ctrl+H –ets 8. juuni 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) algus 8. juuni 2016 00:22:57 …
Pärast käivitus- ja diagnostikalogide üleskerimist peaksite nägema rakenduse poolt prinditud teksti oTere maailm!
... Tere maailm! Taaskäivitub 10 sekundi pärast… See on esp32 kiip 2 protsessorituumaga, WiFi/BT/BLE, silicon versioon 1, 2 MB välise välkmäluga Minimaalne vaba mälumaht: 298968 baiti Taaskäivitub 9 sekundi pärast… Taaskäivitub 8 sekundi pärast… Taaskäivitub 7 sekundi pärast…
IDF-monitorist väljumiseks kasutage otseteed Ctrl+].

Espressifi süsteemid

22 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
Kui IDF-monitor lakkab töötamast varsti pärast üleslaadimist või kui ülaltoodud teadete asemel näete juhuslikku prügi, mis sarnaneb allpool näidatule, kasutab teie plaat tõenäoliselt 26 MHz kristalli. Enamik arendusplaadi disaine kasutab 40 MHz, seega kasutab ESP-IDF seda sagedust vaikeväärtusena.

Kui teil tekib selline probleem, tehke järgmist. 1. Väljuge monitorist. 2. Minge tagasi menuconfig'i. 3. Minge Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency ja seejärel muutke CONFIG_XTAL_FREQ_SEL väärtuseks 26 MHz. 4. Pärast seda looge ja flashige rakendus uuesti.
ESP-IDF praeguses versioonis on ESP32 poolt toetatud peamised XTAL-sagedused järgmised:
· 26 MHz · 40 MHz
Märkus: Saate ühendada loomise, vilkumise ja jälgimise üheks sammuks, käivitades käsu: idf.py -p PORT flash monitor
Vaata ka: · IDF Monitor käepäraste otseteede ja IDF Monitori kasutamise kohta lisateabe saamiseks. · idf.py käskude ja valikute täieliku ülevaate saamiseks.
See on kõik, mida vajad ESP32-ga alustamiseks! Nüüd oled valmis proovima mõnda muud näidet.ampvõi minge otse oma rakenduste arendamise juurde.
Tähtis: Mõned endisedampfailid ei toeta ESP32-d, kuna vajalik riistvara pole ESP32-sse kaasatud ja seega ei saa seda toetada. Kui ehitate eksemplariampPalun vaadake README faili file Toetatud sihtmärkide tabeli jaoks. Kui see on olemas, sealhulgas ESP32 sihtmärk, või tabel puudub üldse, siis näideampSee töötab ESP32 peal.
Täiendavad näpunäited
Lubade probleemid /dev/ttyUSB0 Mõnede Linuxi distributsioonide puhul võidakse ESP32 vilkumisel kuvada veateade „Failed to open port /dev/ttyUSB0”. Selle saab lahendada, lisades praeguse kasutaja väljahelistusgruppi.
Pythoni ühilduvus ESP-IDF toetab Python 3.7 või uuemat versiooni. Soovitatav on uuendada oma operatsioonisüsteem uuemale versioonile, mis vastab sellele nõudele. Muude võimaluste hulka kuuluvad Pythoni installimine lähtekoodist või Pythoni versioonihaldussüsteemi (nt pyenv) kasutamine.
Alusta plaadi tugipaketiga. Mõnede arendusplaatide prototüüpimise kiirendamiseks saate kasutada plaadi tugipakette (BSP-sid), mis muudavad konkreetse plaadi initsialiseerimise sama lihtsaks kui mõne funktsioonikõne.

Espressifi süsteemid

23 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

BSP toetab tavaliselt kõiki arendusplaadil olevaid riistvarakomponente. Lisaks pin-asendi määratlemisele ja initsialiseerimisfunktsioonidele on BSP-l draiverid väliste komponentide, näiteks andurite, kuvarite, helikoodekite jne jaoks. BSP-sid levitatakse IDF-i komponentide halduri kaudu, seega leiate need IDF-i komponentide registrist. Siin on näide...ampKuidas lisada oma projektile ESP-WROVER-KIT BSP: idf.py add-dependency esp_wrover_kit
Veel eksampBSP kasutamise detaile leiab BSP näidetest.amples kaust.
Seotud dokumendid Edasijõudnutele kasutajatele, kes soovivad installiprotsessi kohandada: · ESP-IDF tööriistade värskendamine Windowsis · Jadaühenduse loomine ESP32-ga · Eclipse'i plugin · VSCode laiendus · IDF monitor
ESP-IDF tööriistade värskendamine Windowsis
ESP-IDF tööriistade installimine skripti abil Windowsi käsuviibalt minge kausta, kuhu ESPIDF on installitud. Seejärel käivitage:
install.bat
PowerShelli puhul minge kausta, kuhu on installitud ESP-IDF. Seejärel käivitage:
install.ps1
See laadib alla ja installib ESP-IDF-i kasutamiseks vajalikud tööriistad. Kui tööriista konkreetne versioon on juba installitud, siis midagi ette ei võeta. Tööriistad laaditakse alla ja installitakse ESP-IDF-i tööriistade installiprotsessi käigus määratud kataloogi. Vaikimisi on see C:Usersusername.espressif.
Lisage ESP-IDF tööriistad teele PATH ekspordiskripti abil. ESP-IDF tööriistade installija loob menüü Start otsetee oESP-IDF käsuviibale. See otsetee avab käsuviiba akna, kus kõik tööriistad on juba olemas.
saadaval. Mõnel juhul võite soovida töötada ESP-IDF-iga käsuviibaaknas, mida selle otsetee abil ei käivitatud. Sellisel juhul järgige alltoodud juhiseid, et lisada ESP-IDF-i tööriistad teele (PATH). Käsureal, kus peate ESP-IDF-i kasutama, minge kataloogi, kuhu ESP-IDF on installitud, ja seejärel käivitage export.bat:
cd %userprofile%espesp-idf export.bat
Teise võimalusena minge Powershellis, kus peate kasutama ESP-IDF-i, kataloogi, kuhu ESP-IDF on installitud, ja käivitage seejärel export.ps1:
cd ~/esp/esp-idf export.ps1
Kui see on tehtud, on tööriistad selles käsureal saadaval.
Jadaühenduse loomine ESP32-ga See jaotis annab juhiseid jadaühenduse loomiseks ESP32 ja arvuti vahel.

Espressifi süsteemid

24 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
Ühendage ESP32 arvutiga Ühendage ESP32 plaat arvutiga USB-kaabli abil. Kui seadme draiver ei installi automaatselt, leidke oma ESP32 plaadil (või välise muunduri donglil) USB-jadapordi muunduri kiip, otsige internetist draivereid ja installige need. Allpool on nimekiri USB-jadapordi muunduri kiipidest, mis on installitud enamikule Espressifi toodetud ESP32 plaatidele, koos linkidega draiveritele:
· CP210x: CP210x USB-UART silla VCP draiverid · FTDI: FTDI virtuaalse COM-pordi draiverid Palun kontrollige plaadi kasutusjuhendist konkreetse USB-järjestikmuunduri kiibi kohta teavet. Ülaltoodud draiverid on peamiselt viitamiseks. Tavatingimustes peaksid draiverid olema kaasas operatsioonisüsteemiga ja installitud automaatselt plaadi ühendamisel arvutiga.
Kontrollige Windowsi porti. Kontrollige Windowsi seadmehalduris tuvastatud COM-portide loendit. Ühendage ESP32 lahti ja ühendage see uuesti, et kontrollida, milline port loendist kaob ja milline uuesti kuvatakse. Allolevad joonised näitavad ESP32 DevKitC ja ESP32 WROVER KIT jadaporti.

Joonis 13: ESP32-DevKitC USB-UART sild Windowsi seadmehalduris

Kontrollige porti Linuxis ja macOS-is. ESP32-plaadi (või välise konverteri dongli) jadapordi seadme nime kontrollimiseks käivitage see käsk kaks korda, esmalt lahti ühendatud ja seejärel ühendatud plaadi/dongliga. Teist korda kuvatav port on see, mida vajate: Linux
ls /dev/tty*
macOS

Espressifi süsteemid

25 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Joonis 14: ESP-WROVER-KITI kaks USB-jadaporti Windowsi seadmehalduris

Espressifi süsteemid

26 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

ls /dev/cu.* Märkus: macOS-i kasutajad: kui te ei näe jadaporti, siis kontrollige, kas teil on installitud USB/jadapordi draiverid. Draiverite linkide kohta vaadake jaotist Ühendage ESP32 arvutiga. macOS High Sierra (10.13) puhul peate võib-olla ka draiverite laadimise selgesõnaliselt lubama. Avage Süsteemieelistused -> Turvalisus ja privaatsus -> Üldine ja kontrollige, kas siin kuvatakse teadet arendaja lp süsteemitarkvara kohta, kus arendaja nimi on Silicon Labs või FTDI.

Kasutaja lisamine Linuxis väljahelistamisgruppi Praegu sisselogitud kasutajal peaks olema lugemis- ja kirjutamisõigus jadapordile USB kaudu. Enamikus Linuxi distributsioonides tehakse seda kasutaja lisamisega väljahelistamisgruppi järgmise käsuga:
sudo usermod -a -G väljahelistamine $USER
Arch Linuxis tehakse seda kasutaja lisamisega uucp gruppi järgmise käsuga:
sudo usermod -a -G uucp $USER
Jadapordi lugemis- ja kirjutamisõiguste lubamiseks logige kindlasti uuesti sisse.
Jadapordi ühenduse kontrollimine Nüüd kontrolli, kas jadaporti ühendus töötab. Seda saab teha jadapordi terminaliprogrammi abil, kontrollides, kas pärast ESP32 lähtestamist on terminalil väljundit. ESP32 konsooli vaikesäte on 115200.
Windows ja Linux selles näitesampNäiteks kasutame PuTTY SSH klienti, mis on saadaval nii Windowsi kui ka Linuxi jaoks. Võite kasutada ka teisi jadapordi programme ja määrata sideparameetrid allpool toodud viisil. Käivitage terminal ja määrake tuvastatud jadaport. Boodikiirus = 115200 (vajadusel muutke see kasutatava kiibi vaikeväärtuseks), andmebitid = 8, stoppbitid = 1 ja pariteet = N. Allpool on toodud näited...ampSiin on ekraanipildid pordi ja selliste edastusparameetrite (lühidalt 115200-8-1-N) seadistamisest Windowsis ja Linuxis. Pidage meeles, et peate valima täpselt sama jadapordi, mille olete ülaltoodud sammudes tuvastanud. Seejärel avage terminalis jadaport ja kontrollige, kas ESP32 prindib logi välja. Logi sisu sõltub ESP32-sse laaditud rakendusest, vt näidet.ampVäljund.
Märkus: Pärast side toimimise kontrollimist sulgege jadaport. Kui hoiate terminaliseansi avatuna, ei ole jadaport hiljem püsivara üleslaadimiseks ligipääsmatu.

macOS Selleks, et säästa teid jadaterminali programmi installimise vaevast, pakub macOS käsku screen. · Nagu on arutatud jaotises Kontrolli porti Linuxis ja macOS-is, käivitage:

ls /dev/cu.* · Peaksite nägema sarnast väljundit:

/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7

/dev/cu.SLAB_

· Väljund varieerub sõltuvalt arvutiga ühendatud plaatide tüübist ja arvust. Seejärel vali oma plaadi seadme nimi ja käivita (vajadusel muuda o115200p kasutatava kiibi vaikesäteteks):

ekraan /dev/cu.device_name 115200 Asenda seadme_nimi nimega, mis leiti käsu ls /dev/cu.* käivitamisel.

Espressifi süsteemid

27 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Joonis 15: Jadapordi seadistamine PuTTY-s Windowsis

Espressifi süsteemid

28 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Joonis 16: Jadapordi seadistamine PuTTY-s Linuxis

Espressifi süsteemid

29 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
· Otsid ekraanil kuvatavat logi. Logi sisu sõltub ESP32-sse laaditud rakendusest, vaata näidetample Output. Ekraaniseansist väljumiseks vajutage Ctrl-A + .
Märkus: Pärast side toimimise kontrollimist ärge unustage ekraanilukku sulgeda. Kui te seda ei tee ja lihtsalt sulgete terminaliakna, pole jadaport hiljem püsivara üleslaadimiseks ligipääsetav.
Example Output NäideampLogi on näidatud allpool. Lähtestage tahvel, kui te midagi ei näe. ets 8. juuni 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) algus 8. juuni 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) alglaadimine: kompileerimise aeg 18:48:10

Kui näete loetavat logiväljundit, tähendab see, et jadaühendus töötab ja olete valmis installimist jätkama ning lõpuks rakenduse ESP32-sse üles laadima.
Märkus: Mõnede jadapordi juhtmestiku konfiguratsioonide puhul tuleb terminaliprogrammis jadapordi RTS- ja DTR-tihvtid keelata, enne kui ESP32 käivitub ja jadapordi väljundit genereerib. See sõltub riistvarast endast, enamikul arendusplaatidel (sealhulgas kõigil Espressifi plaatidel) seda probleemi ei esine. Probleem esineb siis, kui RTS ja DTR on ühendatud otse EN- ja GPIO0-tihvtidega. Lisateavet leiate esptooli dokumentatsioonist.
Kui jõudsite ESP32 arendustarkvara installimisel 5. sammust „Esmased sammud ESP-IDF-iga” siia, siis võite jätkata 5. sammuga „Esmased sammud ESP-IDF-iga”.
IDF Monitor IDF Monitor on peamiselt jadapordi programm, mis edastab jadaandmeid sihtseadme jadapordile ja sealt tagasi. See pakub ka mõningaid IDF-spetsiifilisi funktsioone. IDF Monitori saab IDF-projektist käivitada, käivitades käsu idf.py monitor.
Kiirklahvid IDF Monitoriga hõlpsaks suhtlemiseks kasutage tabelis toodud kiirklahve.

Espressifi süsteemid

30 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Kiirklahv Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (või A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (või I)
· Ctrl+H (või H)
· Ctrl+X (või X)
Ctrl+C

Tegevus

Kirjeldus

Välju programmist Menüü Escape-klahv Saadab menüümärgi enda puldile
Saada väljumismärk ise kaugjuhtimispuldile
Rakenduse peatamiseks RTS-liini kaudu lähtestage sihtmärk alglaadurisse
Lähtestage sihtplaat RTS-i kaudu
Projekti loomine ja flashimine

Ainult rakenduse loomine ja flashimine

Logi väljundi ekraanil printimise peatamine/jätkamine

Logi väljundi peatamise/jätkamise režiim salvestatud asukohta file

Peatamise/jätkamise aegamps

trükkimine

Kuva kõik klaviatuuri otseteed

Vajutage ja seejärel ühte allpool toodud klahvidest.
Lähtestab sihtseadme RTS-liini kaudu alglaadurisse (kui see on ühendatud), nii et plaat ei käivita midagi. Kasulik, kui peate ootama teise seadme käivitumist. Lähtestab sihtseadme ja taaskäivitab rakenduse RTS-liini kaudu (kui see on ühendatud).
Peatab idf_monitori projekti välkmälu sihtmärgi käivitamiseks ja jätkab seejärel idf_monitori tööd. Kõik muudetud allikad fileid kompileeritakse uuesti ja seejärel flashitakse uuesti. Target encrypted-flash käivitatakse, kui idf_monitor käivitati argumendiga -E. Peatab idf_monitori, et käivitada app-flash target, seejärel jätkab idf_monitor. Sarnane flash targetiga, kuid ainult põhirakendus ehitatakse ja flashitakse uuesti. Target encrypted-app-flash käivitatakse, kui idf_monitor käivitati argumendiga -E. Aktiveerimise ajal kustutab kõik sissetulevad jadaandmed. Võimaldab logi väljundit kiiresti peatada ja uurida ilma monitori sulgemata. Loob file projektikataloogis ja väljund kirjutatakse sinna file kuni see sama kiirklahviga keelatakse (või IDF Monitor sulgub). IDF Monitor saab printida ajaamp iga rea ​​alguses. Kõige sagedaminiamp vormingut saab muuta –timest võrraamp-format käsurea argument.

Välju programmist

Katkesta töötav rakendus

Peatab IDF Monitori ja käivitab GDB projekti siluri, et rakendust käitusajal siluda. See nõuab, et valik :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME oleks lubatud.

Kõik vajutatud klahvid, välja arvatud Ctrl-] ja Ctrl-T, saadetakse jadapordi kaudu.

IDF-i spetsiifilised funktsioonid

Automaatne aadressi dekodeerimine. Kui ESP-IDF väljastab kuueteistkümnendsüsteemis koodiaadressi kujul 0x4_______, kasutab IDF Monitor funktsiooni addr2line_, et otsida asukohta lähtekoodis ja leida funktsiooni nimi.
Kui ESP-IDF rakendus krahhib ja tekib paanika, luuakse registritõmmis ja tagasijälg, näiteks järgmine:

Espressifi süsteemid

31 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Tuumas 0 esines StoreProhibited tüüpi guru meditatsiooni viga. Erandiks oli

käsitlemata.

Registri prügimägi:

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

SAR-i väärtus: 0x0000000f

VABANDUS: 0x00000019

0x0000001d

EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:

0x00000000

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

IDF Monitor lisab prügimäele rohkem üksikasju:

Tuumas 0 esines StoreProhibited tüüpi guru meditatsiooni viga. Erandiks oli

käsitlemata.

Registri prügimägi:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: tee_midagi_to_crash aadressil /home/gus/esp/32/idf/examples/alustamine/

tere_maailm/main/./tere_maailm_main.c:57

(rida lisab) inner_dont_crash aadressil /home/gus/esp/32/idf/examples/alustamine/tere_

maailm/peamine/./hello_maailm_peamine.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

SAR-i väärtus: 0x0000000f

VABANDUS: 0x00000019

0x0000001d

EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:57 (rida lisab) inner_dont_crash aadressil /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash aadressil /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash aadressil /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:42 0x400dbf82: rakenduse_main asukoht /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: peamine_ülesanne aadressil /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

Iga aadressi dekodeerimiseks käivitab IDF Monitor taustal järgmise käsu: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

Märkus: Määrake keskkonnamuutuja ESP_MONITOR_DECODE väärtuseks 0 või käivitage idf_monitor.py konkreetse käsurea abil.

Espressifi süsteemid

32 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
valik: idf_monitor.py –disable-address-decoding aadressi dekodeerimise keelamiseks.
Sihtmärgi lähtestamine ühenduse loomisel Vaikimisi lähtestab IDF Monitor sihtmärgi sellega ühenduse loomisel. Sihtkiibi lähtestamine toimub DTR- ja RTS-jadaliinide abil. IDF Monitori sihtmärgi automaatse lähtestamise takistamiseks ühenduse loomisel kutsuge IDF Monitor välja valikuga –no-reset (nt idf_monitor.py –no-reset).
Märkus: Valik –no-reset rakendab sama käitumist isegi siis, kui IDF Monitor on ühendatud kindla pordiga (nt idf.py monitor –no-reset -p [PORT]).
GDB käivitamine GDBStubiga GDBStub on kasulik käitusaja silumisfunktsioon, mis töötab sihtmärgil ja loob hostiga ühenduse jadapordi kaudu silumiskäskude vastuvõtmiseks. GDBStub toetab käske nagu mälu ja muutujate lugemine, väljakutsete pinu raamide uurimine jne. Kuigi GDBStub on vähem mitmekülgne kui JTAG silumise korral ei vaja see spetsiaalset riistvara (näiteks JTAG USB-sillani), kuna kommunikatsioon toimub täielikult jadapordi kaudu. Sihtmärki saab konfigureerida GDBStubi taustal käivitama, määrates CONFIG_ESP_SYSTEM_PANIC väärtuseks GDBStub käitusajal. GDBStub töötab taustal, kuni jadapordi kaudu saadetakse Ctrl+C sõnum, mis peatab GDBStubi programmi täitmise, võimaldades GDBStubil silumiskäsklusi käsitleda. Lisaks saab paanikakäitleja konfigureerida GDBStubi käivitama krahhi korral, määrates CONFIG_ESP_SYSTEM_PANIC väärtuseks GDBStub paanika korral. Krahhi korral väljastab GDBStub jadapordi kaudu spetsiaalse stringi mustri, mis näitab, et see töötab. Mõlemal juhul (st Ctrl+C sõnumi saatmisel või spetsiaalse stringi mustri vastuvõtmisel) käivitab IDF Monitor automaatselt GDB, et võimaldada kasutajal silumiskäsklusi saata. Pärast GDB väljumist lähtestatakse sihtmärk RTS-jadaliini kaudu. Kui see liin pole ühendatud, saavad kasutajad oma sihtmärgi lähtestada (vajutades tahvli lähtestamisnuppu).
Märkus: Taustal käivitab IDF Monitor GDB käivitamiseks järgmise käsu:
xtensa-esp32-elf-gdb -ex “set serial baud BAUD” -ex “target remote PORT” -ex interrupt build/PROJECT.elf :idf_target:`Tere NIMI kiip`

Väljundi filtreerimise IDF-monitori saab käivitada järgmiselt: idf.py monitor –print-filter=”xyz”, kus –print-filter on väljundi filtreerimise parameeter. Vaikimisi on see tühi string, mis tähendab, et kõik prinditakse.
Prinditava sisu piiranguid saab määrata rea ​​kujul.tag>: esemed, kustag> on tag nöör ja on märk hulgast {N, E, W, I, D, V, *}, mis viitab logimise tasemele.
Näiteksampnt PRINT_FILTER =”tag1:W” vasted ja prindib ainult ESP_LOGW(“}] abil kirjutatud väljundid.tag1”, …) või madalamal detailsuse tasemel, st ESP_LOGE(“tag1″, …). Ei täpsusta a Või * kasutamine vaikimisi Verbose tasemele.
Märkus: Kasutage primaarset logimist, et kompileerimise ajal keelata logimisteegi kaudu mittevajalikud väljundid. Väljundi filtreerimine IDF-monitoriga on teisejärguline lahendus, mis võib olla kasulik filtreerimisvalikute kohandamiseks ilma rakendust uuesti kompileerimata.
Teie rakendus tags ei tohi sisaldada tühikuid, tärne * ega kooloneid : et see oleks väljundi filtreerimise funktsiooniga ühilduv.
Kui rakenduse väljundi viimasele reale ei järgne tagasijooksumärki, võib väljundi filtreerimine segadusse minna, st monitor hakkab rida välja printima, kuid avastab hiljem, et seda rida poleks tohtinud kirjutada. See on teadaolev probleem ja seda saab vältida, lisades alati tagasijooksumärgi (eriti kui sellele kohe ei järgne väljundit).

Espressifi süsteemid

33 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
ExampFiltreerimisreeglite reeglid:
· * saab kasutada mis tahes vaste leidmiseks tags. Siiski string PRINT_FILTER=”*:I tag1:E” seoses järgmisega tag1 prindib ainult vigu, kuna reegel tag1-l on * puhul reegli ees kõrgem prioriteet.
· Vaikimisi (tühi) reegel on samaväärne *:V-ga, kuna iga sobivus tag „Verbose” tasemel või madalamal tähendab kõigega vastavusse viimist.
· „*:N” pärsib mitte ainult logimisfunktsioonide väljundeid, vaid ka printf-i jms tehtud väljatrükke. Selle vältimiseks kasutage *:E või kõrgemat detailsuse taset.
· Reeglid “tag1:V”, “tag1:v”, “tag1:”, “tag1:*” ja „tag1” on samaväärsed. · Reegel „tag1:V tag„1:E” on samaväärne „tag1:E”, sest sama esinemine järjestikune tag
nimi kirjutab eelmise üle. · Reegel „tag1:I tag2:W” prindib ainult tag1 info detailsuse tasemel või madalamal ja tag2 hoiatuse juures
sõnastustase või madalam. · Reegel „tag1:I tag2:V tag3:N” on sisuliselt samaväärne eelmisega, sest tag3:N täpsustab
et tag3 ei tohiks trükkida. · tag3:N reeglis „tag1:I tag2:V tag3:N *:V” on tähendusrikkam, sest ilma selleta tag3:N
tagOleks võinud printida 3 sõnumit; vead tag1 ja tag2 trükitakse määratud (või madalama) üksikasjalikkuse tasemel ja kõik muu trükitakse vaikimisi.
Keerulisem filtreerimise näideample Järgmine logikoodilõik hangiti ilma filtreerimisvalikuteta:
load:0x40078000,len:13564 kirje 0x40078d4c E (31) esp_image: pildil aadressil 0x30000 on sobimatu maagiline bait W (31) esp_image: pildil aadressil 0x30000 on sobimatu SPI režiim 255 E (39) boot: Tehaserakenduse partitsioon ei ole käivitatav I (568) cpu_start: Pro protsessor käivitub. I (569) heap_init: Initsialiseeritakse. RAM on dünaamiliseks eraldamiseks saadaval: I (603) cpu_start: Pro protsessori käivitamise kasutajakood D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range on edukas vahemiku <54 jaoks; 64) ja VFS ID 1 I (328) wifi: wifi draiveri ülesanne: 3ffdbf84, prio:23, stack:4096, core=0
Filtreerimisvalikute PRINT_FILTER=”wifi esp_image:E light_driver:I” jäädvustatud väljund on toodud allpool:
E (31) esp_image: pildil aadressil 0x30000 on sobimatu maagiline bait I (328) wifi: wifi draiveri ülesanne: 3ffdbf84, prio:23, stack:4096, core=0
Valikud „PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" näitavad järgmist väljundit:
load:0x40078000,len:13564 entry 0x40078d4c I (569) heap_init: Initsialiseeritakse. Dünaamiliseks eraldamiseks saadaval olev RAM: D (309) light_driver: [light_init, 74]:status: 1, mode: 2
IDF-monitori teadaolevad probleemid
Windowsis täheldatud probleemid
· Nooleklahvid ja mõned muud klahvid ei tööta GDB-s Windowsi konsooli piirangute tõttu. · Mõnikord võib oidf.pypexits-i käivitamisel see enne IDF Monitori jätkamist kuni 30 sekundiks seisma jääda. · ogdbpis-i käivitamisel võib see enne GDBStub-iga suhtlemise alustamist lühikeseks ajaks seisma jääda.

Espressifi süsteemid

34 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine Linuxi ja macOS-i standardse tööriistaketi seadistamine

Paigaldamine samm-sammult See on üksikasjalik teejuht, mis juhendab teid installiprotsessis.
Arenduskeskkonna seadistamine Need on sammud ESP-IDF-i seadistamiseks teie ESP32 jaoks. · 1. samm. Eeltingimuste installimine · 2. samm. ESP-IDF-i hankimine · 3. samm. Tööriistade seadistamine · 4. samm. Keskkonnamuutujate seadistamine · 5. samm. ESP-IDF-i esimesed sammud
1. samm. Installimise eeltingimused ESP-IDF-i kasutamiseks ESP32-ga peate installima mõned oma operatsioonisüsteemile vastavad tarkvarapaketid. See häälestusjuhend aitab teil kõike Linuxi ja macOS-põhistele süsteemidele installida.
Linuxi kasutajatele ESP-IDF-i abil kompileerimiseks on vaja järgmisi pakette. Käivitatav käsk sõltub kasutatavast Linuxi distributsioonist:
· Ubuntu ja 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 ja 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 on endiselt toetatud, kuid parema kasutuskogemuse tagamiseks on soovitatav CentOS versioon 8. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Märkus: · ESP-IDF-iga kasutamiseks on vaja CMake'i versiooni 3.16 või uuemat. Kui teie operatsioonisüsteemi versioonil seda pole, käivitage sobiva versiooni installimiseks käsk otools/idf_tools.py install cmakepta. · Kui te ei näe oma Linuxi distributsiooni ülaltoodud loendis, siis vaadake selle dokumentatsiooni, et teada saada, millist käsku pakettide installimiseks kasutada.
macOS-i kasutajatele kasutab ESP-IDF macOS-i vaikimisi installitud Pythoni versiooni. · CMake'i ja Ninja buildi installimine: Kui teil on HomeBrew, saate käivitada järgmise käsu: brew install cmake ninja dfu-util Kui teil on MacPorts, saate käivitada järgmise käsu: sudo port install cmake ninja dfu-util Vastasel juhul vaadake macOS-i installifailide allalaadimiseks CMake'i ja Ninja kodulehti.

Espressifi süsteemid

35 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
· Kiiremate versioonide loomiseks on tungivalt soovitatav installida ka ccache. Kui sul on HomeBrew, saab seda teha käsuga "brew install ccache" või MacPortides käsuga "sudo port install ccache".
Märkus: Kui mõne sammu ajal kuvatakse selline tõrge: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Seejärel peate jätkamiseks installima XCode'i käsurea tööriistad. Saate need installida, käivitades käsu xcode-select –install.
Apple M1 kasutajad Kui kasutate Apple M1 platvormi ja näete sellist viga: HOIATUS: tööriista xtensa-esp32-elf versiooni esp-2021r2-patch3-8.4.0 kataloog on olemas, kuid tööriista ei leitud TÕRGE: tööriistal xtensa-esp32-elf pole installitud versioone. Installimiseks käivitage fail „install.sh”.
või: zsh: vigane protsessori tüüp käivitatavas failis: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Seejärel peate installima Apple Rosetta 2, käivitades käsuga /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Python 3 installimine macOS Catalina 10.15 väljalaskemärkmete põhjal ei ole Python 2.7 kasutamine soovitatav ja Python 2.7 ei lisata macOS-i tulevastesse versioonidesse vaikimisi. Kontrollige, milline Python teil praegu on: python –versioon
Kui väljund on nagu Python 2.7.17, on teie vaikeinterpretaator Python 2.7. Sellisel juhul kontrollige ka, kas teie arvutisse pole juba installitud Python 3: python3 –versioon
Kui ülaltoodud käsk tagastab vea, tähendab see, et Python 3 pole installitud. Allpool on ülevaadeview Python 3 installimise sammudest.
· HomeBrew'ga installimine toimub järgmiselt: brew install python3
· Kui sul on MacPorts, saad käivitada järgmise käsu: sudo port install python38
2. samm. Hankige ESP-IDF. ESP32 rakenduste loomiseks vajate Espressifi pakutavaid tarkvarateegid ESP-IDF repositooriumis. ESP-IDF hankimiseks navigeerige oma installikataloogi ja kloonige repositoorium git clone'iga, järgides alltoodud juhiseid oma operatsioonisüsteemi kohta. Avage terminal ja käivitage järgmised käsud:

Espressifi süsteemid

36 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekursiivne https://github.com/espressif/esp-idf.git
ESP-IDF laaditakse alla kausta ~/esp/esp-idf. Teavet selle kohta, millist ESP-IDF versiooni antud olukorras kasutada, vaadake jaotisest ESP-IDF Versions.
3. samm. Tööriistade seadistamine Lisaks ESP-IDF-ile peate ESP32-d toetavate projektide jaoks installima ka ESP-IDF-i kasutatavad tööriistad, näiteks kompilaatori, siluri, Pythoni paketid jne. cd ~/esp/esp-idf ./install.sh esp32
või Fish shell cd-ga ~/esp/esp-idf ./install.fish esp32
Ülaltoodud käsud installivad tööriistu ainult ESP32 jaoks. Kui kavatsete arendada projekte rohkemate kiibieesmärkide jaoks, peaksite need kõik loetlema ja käivitama näiteksampfail: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
või Fish shell cd-ga ~/esp/esp-idf ./install.fish esp32,esp32s2
Kõigi toetatud sihtmärkide tööriistade installimiseks käivitage järgmine käsk: cd ~/esp/esp-idf ./install.sh all
või käsuga Fish shell cd ~/esp/esp-idf ./install.fish kõik
Märkus. macOS-i kasutajatele, kui mõne sammu ajal kuvatakse selline tõrge:urlavamisviga [SSL: CERTIFICATE_VERIFY_FAILED] sertifikaadi kontrollimine ebaõnnestus: kohaliku väljastaja sertifikaati (_ssl.c:xxx) ei õnnestunud hankida
Sertifikaatide installimiseks võite oma arvuti Pythoni kaustas käivitada käsu Install Certificates.command. Lisateavet leiate jaotisest „Allalaadimisviga ESP-IDF tööriistade installimisel”.

Alternatiivne File Allalaadimised Tööriistade installija laadib alla hulga files on lisatud GitHubi väljaannetele. Kui GitHubile juurdepääs on aeglane, on võimalik määrata keskkonnamuutuja, mis eelistab GitHubi varade allalaadimiseks Espressifnsi allalaadimisserverit.

Märkus. See säte kontrollib ainult GitHubi väljaannetest alla laaditud üksikuid tööriistu, see ei muuda URLkasutatakse Giti repositooriumidele juurdepääsuks.

Tööriistade installimisel Espressifi allalaadimisserveri eelistamiseks kasutage install.sh käivitamisel järgmist käskude jada:

Espressifi süsteemid

37 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Tööriistade installitee kohandamine Selles etapis tutvustatud skriptid installivad ESP-IDF-i jaoks vajalikud kompileerimistööriistad kasutaja kodukataloogi: $HOME/.espressif Linuxis. Kui soovite tööriistad installida teise kataloogi, määrake enne installiskriptide käivitamist keskkonnamuutuja IDF_TOOLS_PATH. Veenduge, et teie kasutajakontol on selle tee lugemiseks ja kirjutamiseks piisavad õigused. IDF_TOOLS_PATH muutmisel veenduge, et see oleks iga kord, kui installiskript (install.bat, install.ps1 või install.sh) ja ekspordiskript (export.bat, export.ps1 või export.sh) käivitatakse, seatud samale väärtusele.
4. samm. Keskkonnamuutujate seadistamine Installitud tööriistu pole veel keskkonnamuutujasse PATH lisatud. Tööriistade käsurealt kasutatavaks muutmiseks tuleb määrata mõned keskkonnamuutujad. ESP-IDF pakub selleks teist skripti. Terminalis, kus kavatsete ESP-IDF-i kasutada, käivitage järgmine käsk:
. $HOME/esp/esp-idf/export.sh
või kalade puhul (toetatud ainult alates kalade versioonist 3.0.0):
$HOME/esp/esp-idf/export.fish
Pane tähele tühikut alguspunkti ja tee vahel! Kui plaanid esp-idf-i sageli kasutada, saad luua export.sh käivitamiseks aliase:
1. Kopeeri ja kleebi järgmine käsk oma shellns pro-ssefile (.profile, .bashrc, .zprofilejne)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Värskenda konfiguratsiooni terminaliseansi taaskäivitamisega või käsuga source [path to pro]file],
ntample, lähtekood ~/.bashrc. Nüüd saate käivitada käsu get_idf, et seadistada või värskendada esp-idf keskkonda mis tahes terminaliseansis. Tehnilises mõttes saate lisada export.sh oma shellns pro-le.file otse; aga see pole soovitatav. Nii tehes aktiveeritakse IDF virtuaalne keskkond igas terminaliseansis (kaasa arvatud need, kus IDF-i pole vaja), mis muudab virtuaalse keskkonna eesmärgi nurjatuks ja mõjutab tõenäoliselt ka muud tarkvara.
5. samm. Esimesed sammud ESP-IDF-iga Nüüd, kui kõik nõuded on täidetud, juhendab järgmine teema teid oma esimese projekti alustamisel. See juhend aitab teil ESP-IDF-i kasutamise esimesi samme astuda. Järgige seda juhendit uue projekti alustamiseks ESP32-l ning seadme väljundi loomiseks, vilkumiseks ja jälgimiseks.
Märkus. Kui te pole veel ESP-IDF-i installinud, minge palun installimise juurde ja järgige juhiseid, et saada kogu selle juhendi kasutamiseks vajalik tarkvara.

Projekti alustamine Nüüd olete valmis oma ESP32 rakendust ette valmistama. Võite alustada projektiga getstarted/hello_world näiteksamples kataloog ESP-IDF-is.

Tähtis: ESP-IDF-i ehitussüsteem ei toeta tühikuid ESP-IDF-i ega projektide teedel.

Kopeeri projekt get-started/hello_world kataloogi ~/esp:

Espressifi süsteemid

38 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Märkus: Saadaval on mitmesuguseid näiteidample projektid endisesamples kataloog ESP-IDF-is. Saate kopeerida mis tahes projekti ülaltoodud viisil ja käivitada. Võimalik ehitada ka eksampfailid kohapeal ilma neid eelnevalt kopeerimata.
Ühendage oma seade Nüüd ühendage oma ESP32 plaat arvutiga ja kontrollige, millise jadapordi all plaat nähtav on. Jadaportidel on järgmised nimetused:
· Linux: alustades /dev/tty · macOS: alustades /dev/cu. Kui te pole kindel, kuidas jadapordi nime kontrollida, vaadake täieliku teabe saamiseks jaotist Jadaühenduse loomine ESP32-ga.
Märkus. Hoidke pordi nimi käepärast, kuna vajate seda järgmistes sammudes.
Projekti seadistamine Liikuge oma hello_world kataloogi, määrake sihtmärgiks ESP32 ja käivitage projekti seadistamise utiliit menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Pärast uue projekti avamist peaksite esmalt määrama sihtmärgi käsuga idf.py set-target esp32. Pange tähele, et projekti olemasolevad järgud ja konfiguratsioonid, kui neid on, kustutatakse ja initsialiseeritakse selle protsessi käigus. Selle sammu vahelejätmiseks saab sihtmärgi salvestada keskkonnamuutujasse. Lisateabe saamiseks vaadake jaotist Sihtkiibi valimine: set-target. Kui eelmised sammud on õigesti tehtud, kuvatakse järgmine menüü:

Joonis 17: Projekti konfiguratsioon – avaleht Selles menüüs saate seadistada projektispetsiifilisi muutujaid, nt WiFi-võrgu nimi ja parool, protsessori kiirus jne. Projekti seadistamise menüüga menuconfig võib hello_worldp puhul vahele jätta, kuna seeample jookseb kaasa

Espressifi süsteemid

39 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
vaikekonfiguratsioon.
Tähelepanu: Kui kasutate ESP32-DevKitC plaati koos ESP32-SOLO-1 mooduliga või ESP32-DevKitM-1 plaati koos ESP32-MIN1-1(1U) mooduliga, lubage enne ex-i vilkumist menüükonfiguratsioonis ühetuumaline režiim (CONFIG_FREERTOS_UNICORE).ampvähem.
Märkus: Menüü värvid võivad teie terminalis erineda. Saate välimust muuta valikuga –style. Lisateabe saamiseks käivitage idf.py menuconfig –help.
Kui kasutate mõnda toetatud arendusplaati, saate oma arendust kiirendada plaadi tugipaketi abil. Lisateavet leiate jaotisest Lisanõuanded.
Projekti loomine Projekti loomiseks käivitage järgmine käsk:
idf.py build
See käsk kompileerib rakenduse ja kõik ESP-IDF komponendid ning seejärel genereerib alglaaduri, partitsioonitabeli ja rakenduse binaarfailid.
$ idf.py build Käivitatakse käsk „cmake” kataloogis /path/to/hello_world/build Käivitatakse käsk „cmake -G Ninja –warn-unitialized /path/to/hello_world”… Hoiatus initsialiseerimata väärtuste kohta. — Leitud Git: /usr/bin/git (leitud versioon „2.17.0”) — Konfiguratsiooni tõttu luuakse tühi aws_iot komponent — Komponentide nimed: … — Komponentide teed: …
… (veel rida ehitussüsteemi väljundit)
[527/527] Hello_world.bin esptool.py v2.3.1 genereerimine
Projekti ehitus on lõppenud. Flashimiseks käivitage see käsk: ../../../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 või käivitage 'idf.py -p PORT flash'.
Kui vigu ei esine, lõpetatakse ehitamine püsivara kahendfaili .bin genereerimisega files.
Flashi seadmesse Flashi äsja loodud binaarfailid (bootloader.bin, partition-table.bin ja hello_world.bin) oma ESP32 plaadile, käivitades järgmise:
idf.py -p PORT [-b BAUD] välk
Asenda PORT oma ESP32 plaadi jadapordi nimega. Samuti saad muuta välgatava baudikiirust, asendades BAUD vajaliku baudikiirusega. Vaikimisi baudikiirus on 460800. Lisateavet idf.py argumentide kohta leiad failist idf.py.
Märkus: Valik „flash“ ehitab ja flashib projekti automaatselt, seega pole idf.py buildi käivitamine vajalik.

Espressifi süsteemid

40 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine

Kas välklambi käivitamisel tekkis probleeme? Kui käivitate antud käsu ja näete selliseid vigu nagu „Failed to connectp”, võib sellel olla mitu põhjust. Üks põhjustest võib olla esptool.py probleemid. See utiliit kutsub ehitussüsteemi poolt kiibi lähtestamiseks, ROM-i alglaaduriga suhtlemiseks ja püsivara välklambiks. Üks lihtne lahendus on allpool kirjeldatud käsitsi lähtestamine ja kui see ei aita, leiate lisateavet võimalike probleemide kohta jaotisest Veaotsing.
esptool.py lähtestab ESP32 automaatselt, kinnitades USB-jadapordi muunduri kiibi, nt FTDI või CP210x, DTR ja RTS juhtimisliinid (lisateabe saamiseks vaadake jaotist Jadapordi ühenduse loomine ESP32-ga). DTR ja RTS juhtimisliinid on omakorda ühendatud ESP32 GPIO0 ja CHIP_PU (EN) tihvtidega, seega muutuvad helitugevus.tagDTR ja RTS tasemed käivitavad ESP32 püsivara allalaadimisrežiimi. NäiteksampNäiteks, vaata ESP32 DevKitC arendusplaadi skeemi.
Üldiselt ei tohiks teil ametlike esp-idf arendusplaatidega probleeme tekkida. Siiski ei suuda esptool.py teie riistvara automaatselt lähtestada järgmistel juhtudel:
· Teie riistvaral pole DTR- ja RTS-liine ühendatud GPIO0 ja CHIP_PU-ga · DTR- ja RTS-liinid on konfigureeritud erinevalt · Selliseid jadajuhtliine pole üldse olemas
Sõltuvalt teie riistvarast võib olla võimalik ESP32 plaat käsitsi püsivara allalaadimisrežiimi (lähtestamine) panna.
· Espressifi toodetud arendusplaatide kohta leiate selle teabe vastavatest alustusjuhenditest või kasutusjuhenditest. NäiteksampNäiteks ESP-IDF arendusplaadi käsitsi lähtestamiseks hoidke all nuppu Boot (GPIO0) ja vajutage nuppu EN (CHIP_PU).
· Muud tüüpi riistvara puhul proovige GPIO0 alla tõmmata.

Normaalne töö Vilkumise ajal näete väljundlogi, mis sarnaneb järgmisega:
... 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 Jadaport /dev/ttyUSB0 Ühendub…….._ Kiip on ESP32D0WDQ6 (versioon 0) Omadused: WiFi, BT, kahetuumaline, kodeerimisskeem Puudub Crystal on 40MHz MAC: 24:0a:c4:05:b9:14 Tüve üleslaadimine… Tüvi töötab… Tüvi töötab… Edastuskiiruse muutmine 460800-le Muudetud. Välkmälu suuruse konfigureerimine… Tihendatud 3072 baiti kiirusel 103… Kirjutamine kiirusel 0x00008000… (100%) Kirjutas 3072 baiti (103 tihendatud) kiirusel 0x00008000 0.0 sekundiga (efektiivne kiirus 5962.8 kbit/s)… Andmete räsi on kinnitatud. Tihendatud 26096 baiti kiirusel 15408… Kirjutamine kiirusel 0x00001000… (100%) Kirjutas 26096 baiti (15408 tihendatud) kiirusel 0x00001000 0.4 sekundiga (efektiivne kiirus 546.7 kbit/s)… Andmete räsi on kinnitatud. Tihendatud 147104 baiti bittide arvuks 77364… Kirjutamine aadressil 0x00010000… (20%) Kirjutamine aadressil 0x00014000… (40%) Kirjutamine aadressil 0x00018000… (60%) Kirjutamine aadressil 0x0001c000… (80%)
(jätkub järgmisel lehel)

Espressifi süsteemid

41 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
(jätkub eelmiselt lehelt) Kirjutamine kiirusel 0x00020000… (100%) Kirjutas 147104 baiti (77364 tihendatud) kiirusel 0x00010000 1.9 sekundiga (efektiivne kiirus 615,5 kbit/s)… Andmete räsi on kontrollitud.
Lahkumine… Raske lähtestamine RTS-i viigu kaudu… Valmis
Kui välkmälu installimise lõpuks probleeme ei esine, taaskäivitub plaat ja käivitab rakenduse theohello_worldpapplication. Kui soovite idf.py asemel kasutada Eclipse'i või VS Code'i IDE-d, vaadake Eclipse'i pluginat, VSCode'i laiendust.
Väljundi jälgimine Selleks, et kontrollida, kas ohello_worldpis tõepoolest töötab, tippige idf.py -p PORT monitor (ärge unustage PORTi asendada oma jadapordi nimega). See käsk käivitab IDF Monitori rakenduse:
$ idf.py -p monitor Käivitatakse idf_monitor kataloogis […]/esp/hello_world/build Käivitatakse käsk „python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor sees 115200 —– Välju: Ctrl+] | Menüü: Ctrl+T | Abi: Ctrl+T, millele järgneb Ctrl+H –ets 8. juuni 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) algus 8. juuni 2016 00:22:57 …
Pärast käivitus- ja diagnostikalogide üleskerimist peaksite nägema rakenduse poolt prinditud teksti oTere maailm!
... Tere maailm! Taaskäivitub 10 sekundi pärast… See on esp32 kiip 2 protsessorituumaga, WiFi/BT/BLE, silicon versioon 1, 2 MB välise välkmäluga Minimaalne vaba mälumaht: 298968 baiti Taaskäivitub 9 sekundi pärast… Taaskäivitub 8 sekundi pärast… Taaskäivitub 7 sekundi pärast…
IDF-monitorist väljumiseks kasutage otseteed Ctrl+]. Kui IDF-monitor ebaõnnestub varsti pärast üleslaadimist või kui ülaltoodud teadete asemel näete juhuslikku prügi, mis sarnaneb allpool näidatule, kasutab teie plaat tõenäoliselt 26 MHz kristalli. Enamik arendusplaatide disaine kasutab 40 MHz, seega kasutab ESP-IDF seda sagedust vaikeväärtusena.

Kui teil on selline probleem, tehke järgmist.
1. Väljuge monitorist. 2. Minge tagasi menüüsse menuconfig. 3. Minge jaotisse Component config > Hardware Settings > Main XTAL Config > Main XTAL
sagedus, seejärel muutke CONFIG_XTAL_FREQ_SEL väärtuseks 26 MHz. 4. Pärast seda looge ja flashige rakendus uuesti.

Espressifi süsteemid

42 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
ESP-IDF praeguses versioonis on ESP32 poolt toetatud peamised XTAL-sagedused järgmised:
· 26 MHz · 40 MHz
Märkus: Saate ühendada loomise, vilkumise ja jälgimise üheks sammuks, käivitades käsu: idf.py -p PORT flash monitor
Vaata ka: · IDF Monitor käepäraste otseteede ja IDF Monitori kasutamise kohta lisateabe saamiseks. · idf.py käskude ja valikute täieliku ülevaate saamiseks.
See on kõik, mida vajad ESP32-ga alustamiseks! Nüüd oled valmis proovima mõnda muud näidet.ampvõi minge otse oma rakenduste arendamise juurde.
Tähtis: Mõned endisedampfailid ei toeta ESP32-d, kuna vajalik riistvara pole ESP32-sse kaasatud ja seega ei saa seda toetada. Kui ehitate eksemplariampPalun vaadake README faili file Toetatud sihtmärkide tabeli jaoks. Kui see on olemas, sealhulgas ESP32 sihtmärk, või tabel puudub üldse, siis näideampSee töötab ESP32 peal.
Täiendavad näpunäited
Lubade probleemid /dev/ttyUSB0 Mõnede Linuxi distributsioonide puhul võidakse ESP32 vilkumisel kuvada veateade „Failed to open port /dev/ttyUSB0”. Selle saab lahendada, lisades praeguse kasutaja väljahelistusgruppi.
Pythoni ühilduvus ESP-IDF toetab Python 3.7 või uuemat versiooni. Soovitatav on uuendada oma operatsioonisüsteem uuemale versioonile, mis vastab sellele nõudele. Muude võimaluste hulka kuuluvad Pythoni installimine lähtekoodist või Pythoni versioonihaldussüsteemi (nt pyenv) kasutamine.
Alustage plaadi tugipaketiga. Mõne arendusplaadi prototüüpimise kiirendamiseks võite kasutada plaadi tugipakette (BSP-sid), mis muudavad konkreetse plaadi initsialiseerimise sama lihtsaks kui mõne funktsioonikõne. BSP toetab tavaliselt kõiki arendusplaadil olevaid riistvarakomponente. Lisaks pin-asendi määratlusele ja initsialiseerimisfunktsioonidele on BSP-l draiverid väliste komponentide jaoks, nagu andurid, ekraanid, helikoodekid jne. BSP-sid levitatakse IDF-i komponentide halduri kaudu, seega leiate need IDF-i komponentide registrist. Siin on näide...ampKuidas lisada oma projektile ESP-WROVER-KIT BSP: idf.py add-dependency esp_wrover_kit
Veel eksampBSP kasutamise detaile leiab BSP näidetest.amples kaust.
Näpunäide: ESP-IDF-i värskendamine Soovitatav on ESP-IDF-i aeg-ajalt värskendada, kuna uuemad versioonid parandavad vigu ja/või pakuvad uusi funktsioone. Pange tähele, et igal ESP-IDF-i põhi- ja lisaversioonil on oma tugiperiood ning kui ühe väljaande haru eluiga läheneb lõpule, soovitatakse kõigil kasutajatel oma projektid uuematele ESP-IDF-i versioonidele uuendada. Lisateavet tugiperioodide kohta leiate jaotisest ESP-IDF-i versioonid.

Espressifi süsteemid

43 Esita dokumendi tagasiside

Väljalase v5.0.9

1. peatükk. Alustamine
Lihtsaim viis värskendamiseks on kustutada olemasolev kaust esp-idf ja see uuesti kloonida, justkui teostaksite 2. etapis kirjeldatud esialgset installi. Hankige ESP-IDF. Teine lahendus on värskendada ainult seda, mis on muutunud. Värskendamise protseduur sõltub teie kasutatavast ESP-IDF versioonist. Pärast ESP-IDF värskendamist käivitage installiskript uuesti, juhuks kui uus ESP-IDF versioon nõuab erinevaid tööriistade versioone. Vaadake 3. etapi juhiseid. Seadistage tööriistad. Kui uued tööriistad on installitud, värskendage keskkonda ekspordiskripti abil. Vaadake 4. etapi juhiseid. Seadistage keskkonnamuutujad.
Seotud dokumendid · Jadaühenduse loomine ESP32-ga · Eclipse'i plugin · VSCode'i laiendus · IDF-monitor
1.4 Loo oma esimene projekt
Kui sul on ESP-IDF juba installitud ja sa ei kasuta IDE-d, saad oma esimese projekti luua käsurealt, järgides käsku „Käivita projekt Windowsis” või „Käivita projekt Linuxis ja macOS-is”.
1.5 ESP-IDF-i desinstallimine
ESP-IDF-i eemaldamiseks järgige palun juhiseid, kuidas ESP-IDF-i desinstallida.

Espressifi süsteemid

44 Esita dokumendi tagasiside

Väljalase v5.0.9

2. peatükk
API viide
2.1 API konventsioonid
See dokument kirjeldab ESP-IDF rakendusliideste (API-de) ühiseid konventsioone ja eeldusi. ESP-IDF pakub mitut tüüpi programmeerimisliideseid:
· Avalikus päises deklareeritud C funktsioonid, struktuurid, loendid, tüübidefinitsioonid ja eelprotsessori makrod fileESPIDF-komponentide kohta. Programmeerimisjuhendi API viiteosa erinevad leheküljed sisaldavad nende funktsioonide, struktuuride ja tüüpide kirjeldusi.
· Ehitussüsteemi funktsioonid, eelmääratletud muutujad ja valikud. Need on dokumenteeritud ehitussüsteemi juhendis. · Kconfig valikuid saab kasutada nii koodis kui ka ehitussüsteemis (CMakeLists.txt). files. · Hostitööriistad ja nende käsureaparameetrid on samuti osa ESP-IDF liidesest. ESP-IDF koosneb spetsiaalselt ESP-IDF-i jaoks kirjutatud komponentidest ja ka kolmandate osapoolte teekide omadest. Mõnel juhul lisatakse kolmanda osapoole teeki ESP-IDF-spetsiifiline ümbris, mis pakub liidest, mis on kas lihtsam või paremini integreeritud ülejäänud ESP-IDF-i funktsioonidega. Teistel juhtudel esitatakse rakenduste arendajatele kolmanda osapoole teeki algne API. Järgmistes jaotistes selgitatakse mõningaid ESP-IDF API-de aspekte ja nende kasutamist.
2.1.1 Veakäsitlus
Enamik ESP-IDF API-sid tagastab veakoode, mis on määratletud tüübiga esp_err_t. Lisateavet veakäsitlusmeetodite kohta leiate jaotisest Veakäsitlus. Veakoodide viide sisaldab ESP-IDF komponentide tagastatud veakoodide loendit.
2.1.2 Konfiguratsioonistruktuurid
Tähtis: Konfiguratsioonistruktuuride õige initsialiseerimine on oluline osa rakenduse ühilduvuse tagamiseks ESP-IDF-i tulevaste versioonidega.
Enamik ESP-IDF-i initsialiseerimis- või konfiguratsioonifunktsioone võtab argumendina osuti konfiguratsioonistruktuurile. Näiteksample:
45

2. peatükk. API viide

const esp_timer_create_args_t minu_timer_args = { .callback = &minu_timer_callback, .arg = tagasihelistamise_arg, .name = “minu_timer” }
}; esp_timer_handle_t minu_timer; esp_err_t err = esp_timer_create(&minu_timer_args, &minu_timer);
Initsialiseerimisfunktsioonid ei salvesta kunagi pointerit konfiguratsioonistruktuurile, seega on struktuuri pinule eraldamine ohutu.
Rakendus peab initsialiseerima kõik struktuuri väljad. Järgnev on vale:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Vale! Väljad .arg ja .name pole initsialiseeritud */ esp_timer_create(&my_timer_args, &my_timer);
Enamik ESP-IDF-i endisiampProgrammid kasutavad struktuuri initsialiseerimiseks C99-le määratud initsialiseerijaid, kuna need pakuvad lihtsat viisi väljade alamhulga määramiseks ja ülejäänud väljade nullinitiseerimiseks:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Õige, väljad .arg ja .name on nulliga initsialiseeritud */
};
C++ keel ei toeta määratud initsialiseerijate süntaksit enne C++20-t, kuid GCC kompilaator toetab seda osaliselt laiendusena. ESP-IDF API-de kasutamisel C++ koodis võiksite kaaluda järgmise mustri kasutamist:
esp_timer_create_args_t my_timer_args = {}; /* Kõik väljad on nullitud */ my_timer_args.callback = &my_timer_callback;

Vaikimisi initsialiseerijad
Mõnede konfiguratsioonistruktuuride puhul pakub ESP-IDF makrosid väljade vaikeväärtuste määramiseks:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG laieneb määratud initsialiseerijaks.
Nüüd on kõik väljad seatud vaikeväärtustele. Iga välja saab endiselt muuta: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Soovitatav on kasutada vaikimisi initsialiseerimismakrosid alati, kui need on konkreetse konfiguratsioonistruktuuri jaoks ette nähtud.

2.1.3 Privaatsed API-d
Teatud päis fileESP-IDF-i päised sisaldavad API-sid, mis on mõeldud kasutamiseks ainult ESP-IDF lähtekoodis, mitte rakenduste poolt. Selline päis files sisaldavad sageli oma nimes või teel private või esp_private. Teatud komponendid, näiteks hal, sisaldavad ainult privaatseid API-sid. Privaatseid API-sid võidakse väiksemate või parandusväljaannete vahel eemaldada või muuta ühildumatul viisil.

2.1.4 Komponendid näitesample projektid
ESP-IDF ntampFailid sisaldavad mitmesuguseid projekte, mis demonstreerivad ESP-IDF API-de kasutamist. Koodi dubleerimise vähendamiseks näitesampkomponentide sees on defineeritud mõned levinud abilised, mida kasutavad mitmed näitedampvähem.

Espressifi süsteemid

46 Esita dokumendi tagasiside

Väljalase v5.0.9

2. peatükk. API viide
See hõlmab komponente, mis asuvad

Dokumendid / Ressursid

Espressif Systemsi ESP32 Dev Kitc arendusplaat [pdfKasutusjuhend
ESP32 Dev Kitci arendusnõukogu, ESP32, Dev Kitci arendusnõukogu, Kitci arendusnõukogu, Arendusnõukogu, Juhatus

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *