ESP32 Dev Kitc izstrādes plate
Informācija par produktu
Specifikācijas
- Produkts: ESP32
- Programmēšanas rokasgrāmata: ESP-IDF
- Laidiena versija: v5.0.9
- Ražotājs: Espressif Systems
- Izdošanas datums: 16. gada 2025. maijs
Produkta lietošanas instrukcijas
1. Sāciet darbu
Pirms sākat darbu ar ESP32, iepazīstieties ar
sekojoši:
1.1. Ievads
Uzziniet par ierīces pamatfunkcijām un iespējām
ESP32.
1.2 Kas jums nepieciešams
Pārliecinieties, vai jums ir nepieciešamā aparatūra un programmatūra:
- Aparatūra: Pārbaudiet nepieciešamās aparatūras sarakstu
sastāvdaļas. - Programmatūra: Instalējiet nepieciešamo programmatūru
sastāvdaļas.
1.3 Uzstādīšana
Lai instalētu IDE un iestatītu to, veiciet šīs darbības.
vide:
- IDE: Instalējiet ieteicamo IDE, kas paredzēta
ESP32 programmēšana. - Manuāla uzstādīšana: Manuāli iestatīt
vide, ja nepieciešams.
1.4 Izveidojiet savu pirmo projektu
Izveidojiet un uzbūvējiet savu sākotnējo projektu, izmantojot ESP32.
1.5 ESP-IDF atinstalēšana
Ja nepieciešams, uzziniet, kā atinstalēt ESP-IDF no sava datora.
sistēma.
2. API atsauce
Sīkāku informāciju skatiet API dokumentācijā.
lietojumprogrammu protokoli, kļūdu apstrāde un konfigurācija
struktūras.
Bieži uzdotie jautājumi (FAQ)
J: Kā es varu novērst bieži sastopamas problēmas ar ESP32?
A: Skatiet problēmu novēršanas sadaļu programmēšanas rokasgrāmatā.
vai apmeklējiet ražotāju webvietne atbalsta resursiem.
J: Vai es varu izmantot ESP-IDF ar citiem mikrokontrolleriem?
A: ESP-IDF ir īpaši izstrādāts ESP32, taču jūs varat konstatēt, ka
saderība ar citiem Espressif mikrokontrolleriem.
ESP32
ESP-IDF programmēšanas rokasgrāmata
Izlaidums v5.0.9 Espressif Systems 2025. gada 16. maijā
Satura rādītājs
Satura rādītājs
i
1 Sāciet darbu
3
1.1 Ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Kas jums nepieciešams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Aparatūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Programmatūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Uzstādīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Manuāla instalēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Izveidojiet savu pirmo projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 ESP-IDF atinstalēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 API atsauce
45
2.1 API konvencijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Kļūdu apstrāde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Konfigurācijas struktūras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 Privātās API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 Komponenti piem.ampšie projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 API stabilitāte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Lietojumprogrammu protokoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.1 ASIO ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 ESP HTTP klients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 ESP lokālā vadība . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 ESP seriālā sekotāja saite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 ESP x509 sertifikātu pakotne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 HTTP serveris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 HTTPS serveris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 ICMP atbalss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 mDNS pakalpojums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 IP tīkla slānis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 Bluetooth API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® Common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® ar zemu enerģijas patēriņu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 Kontrolieris un HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 NimBLE bāzes resursdatora API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Kļūdu kodu atsauce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 Tīklošanas API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 Vītne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP tīkla slānis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Lietojumprogrammas slānis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Perifērijas ierīču API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Analogciparu pārveidotāja (ADC) vienreizējas darbības režīma draiveris. . . . . . . . . . . . . . . . . 977 2.6.2 Analogciparu pārveidotāja (ADC) nepārtrauktas darbības draiveris. . . . . . . . . . . . . . . 986 2.6.3 Analogciparu pārveidotāja (ADC) kalibrēšanas draiveris. . . . . . . . . . . . . . . . . . . 993 2.6.4 Pulksteņu koks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Digitālais-analogais pārveidotājs (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO un RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Vispārējas nozīmes taimeris (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Starpintegrālā shēma (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Starp-IC skaņa (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 Šķidro kristālu displejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED vadība (LEDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Motora vadības impulsa platuma modulators (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Impulsu skaitītājs (PCNT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Tālvadības raidītājs-uztvērējs (RMT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD pievilkšanās prasības. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC resursdatora draiveris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI resursdatora draiveris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO kartes pakārtotā draivera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-Delta modulācija (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI galvenais draiveris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI pakārtoto ierīču draiveris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (drošais elements). . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Skāriena sensors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Divvadu automašīnas saskarne (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Universālais asinhronais uztvērējs/raidītājs (UART). . . . . . . . . . . . . . . . . . 1317 2.7 Projekta konfigurācija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Ievads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Projekta konfigurācijas izvēlne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Sdkconfig.defaults izmantošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig formatēšanas noteikumi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kconfig opciju atpakaļsaderība. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Konfigurācijas opciju atsauce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Nodrošināšanas API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokola komunikācija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Vienotā nodrošināšana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Wi-Fi nodrošināšana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Krātuves API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSistēmas atbalsts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Ražošanas utilīta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Nepastāvīgā krātuves bibliotēka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS nodalījumu ģeneratora utilīta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC draiveris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filesistēma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtuālā filesistēmas komponents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Nodiluma izlīdzināšanas API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Sistēmas API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Lietotnes attēla formāts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Lietojumprogrammas līmeņa izsekošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Izsaukuma funkcija ar ārējo steku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Mikroshēmas pārskatīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse pārvaldnieks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Kļūdu kodi un palīgfunkcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Notikumu cilpu bibliotēka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Virsview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Papildu funkcijas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Kaudzes atmiņas piešķiršana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Kaudzes atmiņas atkļūdošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Augstas izšķirtspējas taimeris (ESP taimeris) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Iekšējās un nestabilās API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Starpprocesoru izsaukums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Pārtraukumu piešķiršana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Reģistrēšanas bibliotēka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Dažādi sistēmas API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Atjauninājumi ēterā (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Veiktspējas monitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Enerģijas pārvaldība . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX pavedienu atbalsts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Nejaušo skaitļu ģenerēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Miega režīmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Sistēmas mikroshēmas (SoC) iespējas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Sistēmas laiks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 Hīmera piešķiršanas API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP līdzprocesora programmēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Sargsuņi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 Aparatūras uzziņa
2167
3.1 Čipu sēriju salīdzinājums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 Saistītie dokumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 API rokasgrāmatas
2171
4.1 Lietojumprogrammas līmeņa izsekošanas bibliotēka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 Beigāsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 Darbības režīmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 Konfigurācijas opcijas un atkarības . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 Kā lietot šo bibliotēku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 Lietojumprogrammas startēšanas plūsma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 Pirmā stage sāknēšanas ielādētājs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 sekundes stage sāknēšanas ielādētājs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 Lietojumprogrammas startēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 Beigāsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® ar zemu enerģijas patēriņu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 Beigāsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 Darba sākšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 Sāknēšanas ielādētājs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Sāknēšanas ielādētāja saderība . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 Žurnāla līmenis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 Rūpnīcas iestatījumu atiestatīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 Palaišana no testa programmaparatūras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 Atcelšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 Sargsuns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 Sāknēšanas ielādētāja izmērs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 Ātrā palaišana no dziļa miega režīma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 Pielāgots sāknēšanas ielādētājs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 Sistēmas izveide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 Beigāsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 Izveidošanas sistēmas izmantošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 Piemample Projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Projekta CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponentu CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Komponentu konfigurācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Priekšapstrādātāja definīcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Komponentu prasības . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Projekta daļu ignorēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Tikai konfigurācijai paredzētie komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 CMake atkļūdošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Piemērsample komponentu CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Pielāgoti sdkconfig noklusējuma iestatījumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Flash argumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Sāknēšanas ielādētāja veidošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Tīru CMake komponentu rakstīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Trešo pušu CMake projektu izmantošana ar komponentiem . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Iepriekš izveidotu bibliotēku izmantošana ar komponentiem . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 ESP-IDF izmantošana pielāgotos CMake projektos . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake būvēšanas sistēmas API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globējošas un inkrementālas būvēšanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Sistēmas metadatu būvēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Sistēmas iekšējo daļu būvēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Migrēšana no ESP-IDF GNU Make sistēmas . . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Pamata izmete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Virsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfigurācijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Saglabāt galveno izgāztuvi zibatmiņā . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Drukas kodola izgāztuve uz UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 ROM funkcijas atpakaļizsecēs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Mainīgo izgāztuve pēc pieprasījuma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 espcoredump.py palaišana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Dziļa miega modināšanas atzīmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Modināšanas atzīmju noteikumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Staba ieviešana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Koda ielāde RTC atmiņā . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Datu ielāde RTC atmiņā . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC pārbaude, vai nav modināšanas signālu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Piemērsample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Kļūdu apstrāde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Virsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Kļūdu kodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Kļūdu kodu konvertēšana par kļūdu ziņojumiem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 PĀRBAUDES MAKROS Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Kļūdu apstrādes modeļi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ izņēmumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Virsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 ESP-WIFI-MESH koncepcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Tīkla izveide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Tīkla pārvaldība . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Datu pārraide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Kanālu pārslēgšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 Veiktspēja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Papildu piezīmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Notikumu apstrāde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet un IP notikumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Tīkla notikumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth notikumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Fatālas kļūdas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Virsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Panikas apstrādātājs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Reģistra izmete un atpakaļizsekošana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB fails. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC sargsuņa taimauts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Guru meditācijas kļūdas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Citas fatālas kļūdas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Zibatmiņas šifrēšana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Ievads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Attiecīgie e-drošinātāji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Zibatmiņas šifrēšanas process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Zibatmiņas šifrēšanas konfigurācija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Iespējamās kļūmes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 zibatmiņas šifrēšanas statuss. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Datu lasīšana un rakstīšana šifrētā zibatmiņā. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Šifrētas zibatmiņas atjaunināšana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Zibatmiņas šifrēšanas atspējošana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Galvenie punkti par zibatmiņas šifrēšanu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Zibatmiņas šifrēšanas ierobežojumi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Zibatmiņas šifrēšana un drošā sāknēšana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Paplašinātās funkcijas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Tehniskā informācija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Aparatūras abstrakcija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arhitektūra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (zema līmeņa) slānis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (aparatūras abstrakcijas slānis). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Augsta līmeņa pārtraukumi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Pārtraukuma līmeņi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Piezīmes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Atkļūdošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Kā tas darbojas? . . . . . . . . . . . . . . . . . . . 2379 4.16.3 J izvēleTAG Adapteris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 OpenOCD iestatīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ESP32 mērķa konfigurēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Atkļūdotāja palaišana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Atkļūdošanas piemērsamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 OpenOCD veidošana no pirmkoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Padomi un nianses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Saistītie dokumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Saistītāja skripta ģenerēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Virsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Ātrā palaišana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Saistītāja skripta ģenerēšanas iekšējās sastāvdaļas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Atbalstītie API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS uzdevums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 atbalsts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip pielāgotas modifikācijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 Veiktspējas optimizācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Atmiņas veidi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (datu RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (instrukciju RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (kods, kas tiek izpildīts no zibatmiņas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (dati, kas glabājas zibatmiņā) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC lēnā atmiņa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC ĀTRĀ atmiņa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA spēju prasība . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA buferis kaudzē . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 OpenThread steka režīmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Kā rakstīt OpenThread lietojumprogrammu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThread robežu maršrutētājs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Nodalījumu tabulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Virsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Iebūvētās nodalījumu tabulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Pielāgotu tabulu izveide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Binārās nodalījumu tabulas ģenerēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Nodalījuma lieluma pārbaudes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Nodalījumu tabulas flashēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Nodalīšanas rīks (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Veiktspēja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Kā optimizēt veiktspēju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Rokasgrāmatas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF kalibrēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Daļēja kalibrēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Pilnīga kalibrēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Bez kalibrēšanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY inicializācijas dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API atsauce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Droša sāknēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Drošas sāknēšanas processview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Atslēgas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Sāknēšanas ielādētāja izmērs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Kā iespējot drošu sāknēšanu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Atkārtoti atjaunināms programmatūras sāknēšanas ielādētājs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Drošas sāknēšanas parakstīšanas atslēgas ģenerēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Attēlu attālā parakstīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Drošas sāknēšanas paraugprakse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Tehniskā informācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Droša sāknēšana un zibatmiņas šifrēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Parakstītas lietotnes verifikācija bez aparatūras drošā sāknēšana . . . . . . . . . . . . . . . . . . . . . . 2478 4.24.13 Papildu funkcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Droša sāknēšana V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Fona informācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Drošas sāknēšanas V2 process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Paraksta bloka formāts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Droša pildīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Paraksta bloka verifikācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Attēla verifikācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Sāknēšanas ielādētāja lielums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 eFuse lietošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Kā iespējot drošo sāknēšanu V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Ierobežojumi pēc drošās sāknēšanas iespējošanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Drošās sāknēšanas parakstīšanas atslēgas ģenerēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 Attēlu attālā parakstīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Drošas sāknēšanas paraugprakse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Tehniskā informācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Droša sāknēšana un zibatmiņas šifrēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Parakstītas lietotnes verifikācija bez aparatūras drošā sāknēšana . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.18 Papildu funkcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Atbalsts ārējai RAM atmiņai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Aparatūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Ārējās RAM konfigurēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Ierobežojumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Neizdevās inicializēt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Mikroshēmas versijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Pavedienu lokālā krātuve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Virsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS dzimtā API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Standarts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Instrumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF priekšpuse – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker attēls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows instalētājs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF komponentu pārvaldnieks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Lejupielādējami rīki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Vienības testēšana ESP32 valodā . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Parastie testa gadījumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Vairāku ierīču testa gadījumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 VairākitagTesta gadījumi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Dažādu mērķu testi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Ēkas vienību testēšanas lietotne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Vienības testu veikšana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Laika kods ar kešatmiņas kompensētu taimeri. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Izspēles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Vienību testēšana operētājsistēmā Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Iegultās programmatūras testi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF vienību testi Linux resursdatorā. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi draiveris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 Wi-Fi funkciju saraksts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Kā uzrakstīt Wi-Fi lietojumprogrammu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi API kļūdas kods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi API parametru inicializācija. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wi-Fi programmēšanas modelis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 Wi-Fi notikuma apraksts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi stacijas vispārīgais scenārijs. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi piekļuves punkta vispārīgais scenārijs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi skenēšana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi stacijas savienošanas scenārijs. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi stacijas savienojuma izveide, ja atrasti vairāki piekļuves punkti (AP). . . . . . . . . . . . . 2543 4.31.12 Wi-Fi atkārtota savienojuma izveide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi bākas taimauts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 Wi-Fi konfigurācija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Bezvadu tīkla pārvaldība. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Radio resursu mērīšana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Ātra BSS pāreja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi enerģijas taupīšanas režīms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wi-Fi caurlaidspēja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
4.31.21 Wi-Fi 80211 pakešu sūtīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi ošņāšanas režīms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi vairākas antenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Wi-Fi kanāla stāvokļa informācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Wi-Fi kanāla stāvokļa informācija Konfigurēt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Wi-Fi fragments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS reģistrētājs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Wi-Fi bufera lietojums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Kā uzlabot Wi-Fi veiktspēju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi izvēlnes konfigurācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Problēmu novēršana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Wi-Fi drošība . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 Wi-Fi drošības funkcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Aizsargātie pārvaldības kadri (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF līdzāspastāvēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Virsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Atbalstītais līdzāspastāvēšanas scenārijs ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Līdzāspastāvēšanas mehānisms un politika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Kā lietot līdzāspastāvēšanas funkciju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Reproducējamas būvēšanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Iemesli neatkārtojamām versijām . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Atkārtojamu versiju iespējošana ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Kā tiek panāktas reproducējamas versijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Atkārtojami būvējumi un atkļūdošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Faktori, kas joprojām ietekmē atkārtojamus būvējumus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Lietotāja rokasgrāmata režīmā “Zems enerģijas patēriņš” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578
5 migrācijas ceļveži
2579
5.1 ESP-IDF 5.x migrācijas rokasgrāmata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 Migrācija no 4.4 uz 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 bibliotēkas un ietvari
2611
6.1 Mākoņpakalpojumu ietvari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 AWS lietu internets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 Azure lietu internets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 Aliyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.6 Joylink lietu internets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 Tencent lietu internets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun lietu internets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu lietu internets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 Espressions ietvari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Espressif audio izstrādes ietvars . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Espressif DSP bibliotēka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 ESP-WIFI-MESH izstrādes ietvars . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-PVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 ESP-IoT-risinājums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 ESP protokoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
viii
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
7 ieguldījumu ceļvedis
2615
7.1 Kā sniegt savu ieguldījumu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 Pirms ieguldījumu sniegšanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 Izvilkšanas pieprasījumu process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 Juridiskā daļa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 Saistītie dokumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Espressif lietu interneta izstrādes ietvara stila rokasgrāmata . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.2 Instalēt iepriekšējas apstiprināšanas āķi ESP-IDF projektam . . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Koda dokumentēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 Piemēra izveideamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 API dokumentācijas veidne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 Līdzstrādnieka līgums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 Autortiesību galvenes rokasgrāmata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 ESP-IDF testi ar Pytest rokasgrāmatu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 ESP-IDF versijas
2645
8.1 Laidieni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 Ar kuru versiju man vajadzētu sākt? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 Versiju shēma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 Atbalsta periodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 Pašreizējās versijas pārbaude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Git darbplūsma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 ESP-IDF atjaunināšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 Atjaunināšana uz stabilu laidienu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 Atjaunināšana uz pirmsizlaiduma versiju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 Atjaunināšana uz galveno atzaru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 Atjaunināšana uz laidiena atzaru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9. Resursi
2651
9.1 PlatformIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 Kas ir PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 Uzstādīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 Konfigurācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 Pamācības . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 Projekta pieredzeamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Nākamie soļi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Noderīgas saites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Autortiesības un licences
2653
10.1 Programmatūras autortiesības . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Programmatūras komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Dokumentācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 ROM pirmkoda autortiesības . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Xtensa libhal MIT licence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 TinyBasic Plus MIT licence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 TJpgDec licence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 Par
2657
12 Pārslēgties starp valodām
2659
Rādītājs
2661
Rādītājs
2661
ix
x
Satura rādītājs
Šī ir Espressif IoT izstrādes ietvara (esp-idf) dokumentācija. ESP-IDF ir oficiālais izstrādes ietvars ESP32, ESP32-S un ESP32-C sērijas SoC. Šajā dokumentā ir aprakstīta ESP-IDF izmantošana ar ESP32 SoC.
Sāciet darbu
API atsauce
API rokasgrāmatas
Espressif sistēmas
1 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
Satura rādītājs
Espressif sistēmas
2 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa
Sāciet darbu
Šis dokuments ir paredzēts, lai palīdzētu jums iestatīt programmatūras izstrādes vidi aparatūrai, kuras pamatā ir Espressif ESP32 mikroshēma. Pēc tam vienkārša pārbaudeampŠeit parādīšu, kā izmantot ESP-IDF (Espressif IoT Development Framework) izvēlnes konfigurēšanai, kā arī programmaparatūras izveidei un pārprogrammēšanai uz ESP32 plates.
Piezīme. Šī ir dokumentācija ESP-IDF stabilajai versijai v5.0.9. Ir pieejamas arī citas ESP-IDF versijas.
1.1. Ievads
ESP32 ir mikroshēmā iebūvēta sistēma, kas integrē šādas funkcijas: · Wi-Fi (2.4 GHz josla) · Bluetooth · Divi augstas veiktspējas Xtensa® 32 bitu LX6 centrālā procesora kodoli · Īpaši mazas jaudas līdzprocesors · Vairākas perifērijas ierīces
Darbināms ar 40 nm tehnoloģiju, ESP32 nodrošina stabilu, ļoti integrētu platformu, kas palīdz apmierināt nepārtrauktās prasības attiecībā uz efektīvu enerģijas patēriņu, kompaktu dizainu, drošību, augstu veiktspēju un uzticamību. Espressif nodrošina pamata aparatūras un programmatūras resursus, lai palīdzētu lietojumprogrammu izstrādātājiem īstenot savas idejas, izmantojot ESP32 sērijas aparatūru. Espressif programmatūras izstrādes ietvars ir paredzēts lietu interneta (IoT) lietojumprogrammu izstrādei ar Wi-Fi, Bluetooth, enerģijas pārvaldību un vairākām citām sistēmas funkcijām.
1.2 Kas jums nepieciešams
1.2.1 Aparatūra
· ESP32 plate. · USB kabelis – USB A / micro USB B. · Dators ar operētājsistēmu Windows, Linux vai macOS.
Piezīme: Pašlaik dažas izstrādes plates izmanto USB C tipa savienotājus. Pārliecinieties, vai jums ir pareizais kabelis plates pievienošanai!
Ja jums ir kāda no zemāk uzskaitītajām oficiālajām ESP32 izstrādes platēm, varat noklikšķināt uz saites, lai uzzinātu vairāk par aparatūru.
3
1. nodaļa. Sākšana
ESP32-DevKitS(-R)
Šajā lietotāja rokasgrāmatā ir sniegta informācija par ESP32-DevKitS(-R) — Espressif ražotu uz ESP32 balstītu mirgošanas plati. ESP32-DevKitS(-R) ir divu plates nosaukumu apvienojums: ESP32-DevKitS un ESP32-DevKitS-R. S apzīmē atsperes, bet R — WROVER.
ESP32-DevKitS
ESP32-DevKitS-R
Dokuments sastāv no šādām galvenajām sadaļām: · Darba sākšana: Sniedz pārskatuview ESP32-DevKitS(-R) un aparatūras/programmatūras iestatīšanas instrukcijas, lai sāktu darbu. · Aparatūras atsauce: Sniedz detalizētāku informāciju par ESP32-DevKitS(-R)ns aparatūru. · Saistītie dokumenti: Sniedz saites uz saistīto dokumentāciju.
Darba sākšana Šajā sadaļā ir aprakstīts, kā sākt darbu ar ESP32-DevKitS(-R). Tā sākas ar dažām ievada sadaļām par ESP32-DevKitS(-R), pēc tam sadaļā “Kā veikt plates pārprogrammēšanu” ir sniegti norādījumi par moduļa uzstādīšanu uz ESP32-DevKitS(-R), tā sagatavošanu un programmaparatūras pārprogrammēšanu.
Beigāsview ESP32-DevKitS(-R) ir Espressifns mirgošanas plate, kas īpaši izstrādāta ESP32. To var izmantot, lai mirgotu ESP32 moduļa režīmā, nepielodējot moduli barošanas avotam un signāla līnijām. Pēc uzstādīta moduļa ESP32-DevKitS(-R) var izmantot arī kā mini izstrādes plati, piemēram, ESP32-DevKitC.
ESP32-DevKitS un ESP32-DevKitS-R plates atšķiras tikai ar atsperu tapu izkārtojumu, lai tās atbilstu šādiem ESP32 moduļiem.
· 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 (drukātā plate un IPEX) ESP32-WROVER-B (drukātā plate un IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Informāciju par iepriekš minētajiem moduļiem skatiet sadaļā ESP32 sērijas moduļi.
Komponentu apraksts
Espressif sistēmas
4 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
1. attēls: ESP32-DevKitS – priekšpuse
Espressif sistēmas
2. attēls: ESP32-DevKitS-R – priekšpuse 5
Iesniedziet atsauksmes par dokumentu
Izlaidums v5.0.9
1. nodaļa. Sākšana
Galveno komponentu atsperes tapas 2.54 mm sieviešu savienotāji
USB-UART tilts LDO Micro-USB savienotājs/Micro-USB ports EN poga Sāknēšanas poga
Ieslēgšanas LED
Apraksts Ievietojiet moduli noklikšķiniet vietā. Kontakti iederēsies moduļa rievotajos caurumos. Šīs sievišķās kontaktligzdas ir savienotas ar moduļa kontaktiem, kas uzstādīti uz šīs plates. Sievišķo kontaktligzdu aprakstu skatiet sadaļā Galeņu bloki. Vienas mikroshēmas USB–UART tilts nodrošina pārsūtīšanas ātrumu līdz 3 Mb/s.
5 V līdz 3.3 V zema izkrišanas tilpumstage regulators (LDO).
USB saskarne. Plates barošanas avots, kā arī komunikācijas saskarne starp datoru un plati.
Atiestatīšanas poga.
Lejupielādes poga. Turot nospiestu pogu Boot un pēc tam nospiežot taustiņu EN, tiek aktivizēts programmaparatūras lejupielādes režīms programmaparatūras lejupielādei, izmantojot seriālo portu.
Ieslēdzas, kad platei ir pievienots USB vai barošanas avots.
Kā pārprogrammēt plati Pirms ESP32-DevKitS(-R) ieslēgšanas pārliecinieties, vai tā ir labā stāvoklī un bez acīmredzamām bojājumu pazīmēm.
Nepieciešamā aparatūra · Jūsu izvēlēts ESP32 modulis · USB 2.0 kabelis (standarta A uz Micro B) · Dators ar operētājsistēmu Windows, Linux vai macOS
Aparatūras iestatīšana Lūdzu, uzstādiet izvēlēto moduli uz sava ESP32-DevKitS(-R), veicot tālāk norādītās darbības:
· Uzmanīgi novietojiet moduli uz ESP32-DevKitS(-R) plates. Pārliecinieties, vai moduļa rievotās atveres ir izlīdzinātas ar plates atsperes tapām.
· Spiediet moduli platē, līdz tas noklikšķ. · Pārbaudiet, vai visas atspertapas ir ievietotas rievotajos caurumos. Ja dažas atspertapas ir nepareizi novietotas,
Ievietojiet tos rievotos caurumos ar pinceti.
Programmatūras iestatīšana
Ieteicamā metode ESP-IDF izstrādes ietvars nodrošina vēlamo bināros failus pārprogrammēšanai uz ESP32-DevKitS(-R). Lūdzu, pārejiet uz sadaļu “Darba sākšana”, kur sadaļa “Instalēšana” palīdzēs jums ātri iestatīt izstrādes vidi un pēc tam pārprogrammēt lietojumprogrammas piemēru.ample savā ESP32-DevKitS(-R).
Alternatīva metode Kā alternatīvu Windows lietotāji var flash bināros failus saglabāt, izmantojot Flash lejupielādes rīku. Vienkārši lejupielādējiet to, atzipējiet to un izpildiet norādījumus doc mapē.
Piezīme: 1. Lai pārprogrammētu bināro failu files, ESP32 jāiestata programmaparatūras lejupielādes režīmā. To var izdarīt vai nu automātiski, izmantojot zibatmiņas rīku, vai arī turot nospiestu sāknēšanas pogu un pieskaroties pogai EN. 2. Pēc binārā faila zibatmiņas filePēc tam Flash lejupielādes rīks restartē jūsu ESP32 moduli un pēc noklusējuma palaiž pārprogrammēto lietojumprogrammu.
Plātnes izmēri, saturs un iepakojums
Espressif sistēmas
6 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Darba sākšana 3. attēls: ESP32-DevKitS plates izmēri — aizmugure
Espressif sistēmas
4. attēls: ESP32-DevKitS-R plates izmēri — aizmugure 7
Iesniedziet atsauksmes par dokumentu
Izlaidums v5.0.9
1. nodaļa. Sākšana
Mazumtirdzniecības pasūtījumi Ja pasūtāt dažasampKatrs ESP32-DevKitS(-R) tiek piegādāts atsevišķā iepakojumā vai nu antistatiskā maisiņā, vai jebkurā citā iepakojumā atkarībā no mazumtirgotāja. Lai veiktu pasūtījumu mazumtirdzniecībā, lūdzu, apmeklējiet vietni https://www.espressif.com/en/contact-us/get-samples.
Vairumtirdzniecības pasūtījumi Ja pasūtāt vairumā, dēļi tiek piegādāti lielās kartona kastēs. Lai veiktu vairumtirdzniecības pasūtījumu, lūdzu, apmeklējiet vietni https://www.espressif.com/en/contact-us/sales-questions.
Aparatūras atsauce
Blokshēma Zemāk redzamajā blokshēmā ir parādīti ESP32-DevKitS(-R) komponenti un to savstarpējie savienojumi.
5. attēls: ESP32-DevKitS(-R) (noklikšķiniet, lai palielinātu)
Barošanas avota iespējas Ir trīs savstarpēji izslēdzoši veidi, kā nodrošināt plates barošanu: · Micro USB ports, noklusējuma barošanas avots · 5 V un GND savienotāja tapas · 3 V3 un GND savienotāja tapas
Ieteicams izmantot pirmo iespēju: micro USB portu.
Espressif sistēmas
.
Etiķetes signāls
L1 3V3 VDD 3V3
L2 EN mikroshēma_PU
L3 VP SENSORS_VP
L4 VN SENSORS_VN
L5 34
GPIO34
L6 35
GPIO35
L7 32
GPIO32
L8 33
GPIO33
turpinās nākamajā lapā
8 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
1. tabulas turpinājums no iepriekšējās lapas
.
Etiķetes signāls
L9 25
GPIO25
L10 26
GPIO26
L11 27
GPIO27
L12 14
GPIO14
L13 12
GPIO12
L14 Zemējums Zemējums
L15 13
GPIO13
L16 D2 SD_DATI2
L17 D3 SD_DATI3
L18 CMD SD_CMD
L19 5V
Ārējais 5V
R1 Zemējums Zemējums
R2 23
GPIO23
R3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
R6 21
GPIO21
R7 Zemējums Zemējums
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_DATI1
R18 D0 SD_DATI0
R19 CLK SD_CLK
Galvenes bloki Galvenes bloku attēlu skatiet sadaļā Komponentu apraksts.
Saistītie dokumenti
· ESP32-DevKitS(-R) shēmas (PDF) · ESP32 datu lapa (PDF) · ESP32-WROOM-32 datu lapa (PDF) · ESP32-WROOM-32D un ESP32-WROOM-32U datu lapa (PDF) · ESP32-SOLO-1 datu lapa (PDF) · ESP32-WROVER datu lapa (PDF) · ESP32-WROVER-B datu lapa (PDF) · ESP produktu atlasītājs
ESP32-DevKitM-1
Šī lietotāja rokasgrāmata palīdzēs jums sākt darbu ar ESP32-DevKitM-1 un sniegs arī padziļinātāku informāciju.
ESP32-DevKitM-1 ir uz ESP32-MINI-1(1U) bāzes veidota izstrādes plate, ko ražo Espressif. Lielākā daļa I/O pieslēgvietu ir sadalītas pieslēgvietu galvenēm abās pusēs, lai atvieglotu saskarņu izveidi. Lietotāji var pievienot perifērijas ierīces ar savienotājvadiem vai uzstādīt ESP32-DevKitM-1 uz maketplates.
Espressif sistēmas
9 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
ESP32-DevKitM-1 – priekšpuse
ESP32-DevKitM-1 – izometrisks
Dokuments sastāv no šādām galvenajām sadaļām: · Darba sākšana: Sniedz pārskatuview ESP32-DevKitM-1 un aparatūras/programmatūras iestatīšanas instrukcijas, lai sāktu darbu. · Aparatūras atsauce: Sniedz detalizētāku informāciju par ESP32-DevKitM-1ns aparatūru. · Saistītie dokumenti: Sniedz saites uz saistīto dokumentāciju.
Darba sākšana Šajā sadaļā ir aprakstīts, kā sākt darbu ar ESP32-DevKitM-1. Tā sākas ar dažām ievada sadaļām par ESP32-DevKitM-1, pēc tam sadaļā Lietojumprogrammas izstrādes sākšana ir sniegti norādījumi par to, kā veikt sākotnējo aparatūras iestatīšanu un pēc tam kā instalēt programmaparatūru ESP32-DevKitM-1.
Beigāsview Šī ir maza un ērta izstrādes tāfele, kurai ir:
· ESP32-MINI-1 vai ESP32-MINI-1U modulis · USB-seriālā programmēšanas saskarne, kas nodrošina arī barošanas avotu platei · kontaktu galvenes · spiedpogas atiestatīšanai un programmaparatūras lejupielādes režīma aktivizēšanai · dažas citas sastāvdaļas
Saturs un iepakojums
Mazumtirdzniecības pasūtījumi Ja pasūtāt dažasampKatrs ESP32-DevKitM-1 tiek piegādāts atsevišķā iepakojumā antistatiskā maisiņā vai jebkurā citā iepakojumā atkarībā no jūsu mazumtirgotāja.
Mazumtirdzniecības pasūtījumiem, lūdzu, apmeklējiet vietni https://www.espressif.com/en/contact-us/get-samples.
Vairumtirdzniecības pasūtījumi Ja pasūtāt vairumā, dēļi tiek piegādāti lielās kartona kastēs. Lai veiktu vairumtirdzniecības pasūtījumu, lūdzu, apmeklējiet vietni https://www.espressif.com/en/contact-us/sales-questions.
Komponentu apraksts Šajā attēlā un tabulā ir aprakstītas ESP32-DevKitM-1 plates galvenās sastāvdaļas, saskarnes un vadības ierīces. Kā piemēru ņemsim plati ar ESP32-MINI-1 moduli.ample nākamajās sadaļās.
Espressif sistēmas
10 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
6. attēls: ESP32-DevKitM-1 – priekšpuse
Galvenā sastāvdaļa: borta modulis
5 V līdz 3.3 V LDO sāknēšanas poga
Atiestatīšanas poga Micro USB ports
USB-UART tilts 3.3 V ieslēgšanas gaismas diode
I/O savienotājs
Apraksts
ESP32-MINI-1 modulis vai ESP32-MINI-1U modulis. ESP32-MINI-1 ir aprīkots ar iebūvētu PCB antenu. ESP32-MINI-1U ir aprīkots ar ārējo antenas savienotāju. Abiem moduļiem ir 4 MB zibatmiņa mikroshēmas korpusā. Sīkāku informāciju skatiet ESP32-MINI-1 un ESP32-MINI-1U datu lapā.
Jaudas regulators pārveido 5 V uz 3.3 V.
Lejupielādes poga. Turot nospiestu pogu “Boot” (Sāknēšana) un pēc tam nospiežot pogu “Reset” (Atiestatīt), tiek aktivizēts programmaparatūras lejupielādes režīms programmaparatūras lejupielādei, izmantojot seriālo portu.
Atiestatīšanas poga
USB interfeiss. Barošanas avots platei, kā arī komunikācijas interfeiss starp datoru un ESP32 mikroshēmu.
Viena USB-UART tilta mikroshēma nodrošina pārsūtīšanas ātrumu līdz 3 Mbps.
Ieslēdzas, kad USB ir pievienots platei. Sīkāku informāciju skatiet shēmās saistītajos dokumentos. Visi pieejamie GPIO pieslēgumi (izņemot SPI kopni zibatmiņai) ir sadalīti plates pieslēgumu galvenēs. Lietotāji var ieprogrammēt ESP32 mikroshēmu, lai iespējotu vairākas funkcijas.
Sāciet lietojumprogrammas izstrādi Pirms ESP32-DevKitM-1 ieslēgšanas, lūdzu, pārliecinieties, vai tas ir labā stāvoklī un bez acīmredzamām bojājumu pazīmēm.
Nepieciešamā aparatūra · ESP32-DevKitM-1 · USB 2.0 kabelis (standarta A uz Micro B) · Dators ar operētājsistēmu Windows, Linux vai macOS
Programmatūras iestatīšana Lūdzu, pārejiet uz sadaļu “Darba sākšana”, kur sadaļa “Instalēšana” ātri palīdzēs iestatīt izstrādes vidi un pēc tam instalēt lietojumprogrammas piemēru.ampuz jūsu ESP32-DevKitM-1.
Espressif sistēmas
11 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Uzmanību: ESP32-DevKitM-1 platēm, kas ražotas pirms 2021. gada 2. decembra, ir uzstādīts viena kodola modulis. Lai pārbaudītu, kāds modulis jums ir, lūdzu, pārbaudiet moduļa marķējuma informāciju PCN-2021-021. Ja jūsu platei ir uzstādīts viena kodola modulis, pirms lietojumprogrammu pārprogrammēšanas iespējojiet viena kodola režīmu (CONFIG_FREERTOS_UNICORE) izvēlnē menuconfig.
Aparatūras atsauces blokshēma Zemāk redzamajā blokshēmā ir parādīti ESP32-DevKitM-1 komponenti un to savstarpējie savienojumi.
7. attēls: ESP32-DevKitM-1
Barošanas avota izvēle Ir trīs savstarpēji izslēdzoši veidi, kā nodrošināt barošanu platei: · Micro USB ports, noklusējuma barošanas avots · 5 V un GND savienotāja tapas · 3 V3 un GND savienotāja tapas
Brīdinājums: · Barošana jānodrošina, izmantojot tikai vienu no iepriekš minētajām iespējām, pretējā gadījumā var tikt bojāta plate un/vai barošanas avots. · Ieteicams barot, izmantojot micro USB portu.
Kontaktu apraksti Zemāk esošajā tabulā ir norādīti kontaktu nosaukumi un funkcijas abās plates pusēs. Informāciju par perifērijas kontaktu konfigurācijām skatiet ESP32 datu lapā.
Nē.
Vārds
Tips
1
GND
P
2
3V3
P
Funkcija Zemējums 3.3 V barošanas avots
turpinās nākamajā lapā
Espressif sistēmas
12 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
2. tabulas turpinājums no iepriekšējās lapas
Nē.
Vārds
Tips
Funkcija
3
I36
I
GPIO36, ADC1_CH0, RTC_GPIO0
4
I37
I
GPIO37, ADC1_CH1, RTC_GPIO1
5
I38
I
GPIO38, ADC1_CH2, RTC_GPIO2
6
I39
I
GPIO39, ADC1_CH3, RTC_GPIO3
7
RST
I
Atiestatīt; Augsts: iespējot; Zems: izslēdzas
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 kristāla oscilatora ieeja),
ADC1_CH4, TOUCH9, RTC_GPIO9
11
IO33
I/O
GPIO33, XTAL_32K_N (32.768 kHz kristāla oscilatora izeja),
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 barošanas avots
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
Aparatūras versijas informācija Iepriekšējās versijas nav pieejamas.
Saistītie dokumenti
· ESP32-MINI-1 un ESP32-MINI-1U datu lapa (PDF) · ESP32-DevKitM-1 shēmas (PDF) · ESP32-DevKitM-1 PCB shēma (PDF) · ESP32-DevKitM-1 shēma (DXF) – Jūs varat view to ar Autodesk Viewtiešsaistē · ESP32 datu lapa (PDF) · ESP produktu atlasītājs
Lai saņemtu citu plates dizaina dokumentāciju, lūdzu, sazinieties ar mums pa e-pastu sales@espressif.com.
Espressif sistēmas
13 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
1.2.2 programmatūra
Lai sāktu lietot ESP-IDF ESP32, instalējiet šādu programmatūru: · Toolchain, lai kompilētu kodu ESP32 · Izstrādes rīki – CMake un Ninja, lai izveidotu pilnu ESP32 lietojumprogrammu · ESP-IDF, kas būtībā satur API (programmatūras bibliotēkas un pirmkodu) ESP32 un skriptus Toolchain darbībai
1.3 Uzstādīšana
Lai instalētu visu nepieciešamo programmatūru, mēs piedāvājam dažādus veidus, kā atvieglot šo uzdevumu. Izvēlieties vienu no pieejamajām iespējām.
1.3.1 IDE
Piezīme. Mēs ļoti iesakām instalēt ESP-IDF, izmantojot savu iecienītāko IDE.
· Eclipse spraudnis · VSCode paplašinājums
1.3.2. Manuāla uzstādīšana
Manuālai procedūrai, lūdzu, izvēlieties atbilstoši savai operētājsistēmai.
Espressif sistēmas
14 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Standarta rīkķēdes iestatīšana operētājsistēmai Windows
Ievads Lai varētu veidot programmaparatūru atbalstītajām mikroshēmām, ESP-IDF ir jāinstalē daži priekšnosacījumu rīki. Priekšnosacījumu rīki ietver Python, Git, krustkompilatorus, CMake un Ninja veidošanas rīkus. Šajā darba sākšanas instrukcijā mēs izmantosim komandrindu, bet pēc ESP-IDF instalēšanas varat izmantot Eclipse spraudni vai citu grafisko IDE ar CMake atbalstu. Piezīme. Ierobežojumi: – ESP-IDF un ESP-IDF rīku instalēšanas ceļš nedrīkst būt garāks par 90 rakstzīmēm. Pārāk gari instalēšanas ceļi var izraisīt neizdevušos veidošanu. – Python vai ESP-IDF instalēšanas ceļā nedrīkst būt atstarpes vai iekavas. – Python vai ESP-IDF instalēšanas ceļā nedrīkst būt speciālās rakstzīmes (nevis ASCII), ja vien operētājsistēma nav konfigurēta ar oUnicode UTF-8patbalstu. Sistēmas administrators var iespējot atbalstu, izmantojot vadības paneli – Mainīt datuma, laika vai skaitļu formātus – Administratīva cilne – Mainīt sistēmas lokalizāciju – atzīmējiet opciju oBeta: Izmantot Unicode UTF-8 pasaules valodu atbalstam – Labi un pārstartējiet datoru.
ESP-IDF rīku instalētājs Vienkāršākais veids, kā instalēt ESP-IDFns priekšnosacījumus, ir lejupielādēt vienu no ESP-IDF rīku instalētājiem.
Windows instalētāja lejupielāde
Kāds ir tiešsaistes un bezsaistes instalētāja lietošanas gadījums? Tiešsaistes instalētājs ir ļoti mazs un ļauj instalēt visus pieejamos ESP-IDF laidienus. Instalēšanas laikā instalētājs lejupielādēs tikai nepieciešamās atkarības, tostarp Git for Windows. Instalēšanas programma saglabā lejupielādētos failus. files kešatmiņas direktorijā %userprofile%. espresso
Bezsaistes instalētājam nav nepieciešams tīkla savienojums. Instalēšanas programma satur visas nepieciešamās atkarības, tostarp Git operētājsistēmai Windows.
Instalācijas komponenti Instalētājs izvieto šādus komponentus:
· Iegultais Python · Krosskompilatori · OpenOCD · CMake un Ninja būvēšanas rīki · ESP-IDF
Instalētājs arī ļauj atkārtoti izmantot esošo direktoriju ar ESP-IDF. Ieteicamais direktorijs ir %userpro.file%Desktopesp-idf kur %userprofile% ir jūsu mājas direktorijs.
Espressif sistēmas
15 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
ESP-IDF vides palaišana Instalēšanas procesa beigās varat atzīmēt opciju Palaist ESP-IDF PowerShell vidi vai Palaist ESP-IDF komandu uzvedni (cmd.exe). Instalētājs palaidīs ESP-IDF vidi atlasītajā uzvednē. Palaist ESP-IDF PowerShell vidi:
8. attēls: ESP-IDF rīku iestatīšanas vedņa pabeigšana ar komandu Run ESP-IDF PowerShell Environment
Palaidiet ESP-IDF komandu uzvedni (cmd.exe):
Komandrindas izmantošana Atlikušajās darba sākšanas darbībās mēs izmantosim Windows komandrindu. ESP-IDF rīku instalētājs arī izveido saīsni izvēlnē Sākt, lai palaistu ESP-IDF komandrindu. Šī saīsne palaiž komandrindu (cmd.exe) un palaiž export.bat skriptu, lai iestatītu vides mainīgos (PATH, IDF_PATH un citus). Šajā komandrindā ir pieejami visi instalētie rīki. Ņemiet vērā, ka šī saīsne ir paredzēta tikai ESP-IDF direktorijam, kas atlasīts ESP-IDF rīku instalētājā. Ja datorā ir vairāki ESP-IDF direktoriji (piemēram,amppiemēram, lai strādātu ar dažādām ESP-IDF versijām), jums ir divas iespējas to izmantošanai:
1. Izveidojiet ESP-IDF rīku instalētāja izveidotās saīsnes kopiju un nomainiet jaunās saīsnes darba direktoriju uz ESP-IDF direktoriju, kuru vēlaties izmantot.
2. Varat arī palaist cmd.exe, pēc tam pārslēgties uz vēlamo ESP-IDF direktoriju un palaist export.bat. Ņemiet vērā, ka atšķirībā no iepriekšējās opcijas šajā veidā ir nepieciešams, lai PATH būtu Python un Git. Ja rodas kļūdas, kas saistītas ar to, ka Python vai Git netiek atrasts, izmantojiet pirmo opciju.
Pirmie soļi darbā ar ESP-IDF Tagad, kad visas prasības ir izpildītas, nākamā tēma palīdzēs jums sākt savu pirmo projektu.
Espressif sistēmas
16 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Darba sākšana 9. attēls: ESP-IDF PowerShell
10. attēls: ESP-IDF rīku iestatīšanas vedņa pabeigšana, izmantojot komandu “Palaist ESP-IDF komandrindu” (cmd.exe).
Espressif sistēmas
17 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
11. attēls: ESP-IDF komandu uzvedne
Espressif sistēmas
18 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Šī rokasgrāmata palīdzēs jums veikt pirmos soļus, izmantojot ESP-IDF. Izpildiet šo rokasgrāmatu, lai sāktu jaunu projektu ESP32 un izveidotu, zibatmiņā ievietotu un uzraudzītu ierīces izvadi. Piezīme. Ja vēl neesat instalējis ESP-IDF, lūdzu, dodieties uz sadaļu Instalēšana un izpildiet norādījumus, lai iegūtu visu programmatūru, kas nepieciešama šīs rokasgrāmatas lietošanai.
Projekta sākšana Tagad esat gatavs sagatavot savu pieteikumu ESP32. Varat sākt ar getstarted/hello_world projektu no piem.amples direktorijā ESP-IDF.
Svarīgi: ESP-IDF būvēšanas sistēma neatbalsta atstarpes ceļos uz ESP-IDF vai projektiem.
Kopējiet projektu get-started/hello_world uz ~/esp direktoriju: cd %userprofile%esp xcopy /e /i %IDF_PATH%exampleget-startedhello_world hello_world
Piezīme: Pastāv virkne piemēruample projekti bijušajāamples direktorijā ESP-IDF. Jūs varat kopēt jebkuru projektu tādā pašā veidā, kā parādīts iepriekš, un palaist to. Ir iespējams arī būvēt exampfailus uz vietas, vispirms tos nekopējot.
Pievienojiet ierīci Tagad pievienojiet ESP32 plati datoram un pārbaudiet, kurā seriālajā portā plate ir redzama. Seriālo portu nosaukumi operētājsistēmā Windows sākas ar COM. Ja neesat pārliecināts, kā pārbaudīt seriālā porta nosaukumu, skatiet sadaļu Seriālā savienojuma izveide ar ESP32, lai iegūtu pilnīgu informāciju.
Piezīme. Saglabājiet porta nosaukumu, jo tas būs nepieciešams nākamajās darbībās.
Konfigurējiet savu projektu Dodieties uz savu hello_world direktoriju, iestatiet ESP32 kā mērķi un palaidiet projekta konfigurācijas utilītu menuconfig.
Windows kompaktdisks %userprofile%esphello_world idf.py iestatīt mērķi esp32 idf.py izvēlnes konfigurācija
Pēc jauna projekta atvēršanas vispirms jāiestata mērķis, izmantojot komandu idf.py set-target esp32. Ņemiet vērā, ka šajā procesā tiks notīrītas un inicializētas esošās projekta versijas un konfigurācijas, ja tādas ir. Mērķi var saglabāt vides mainīgajā, lai vispār izlaistu šo darbību. Papildinformāciju skatiet sadaļā Mērķa mikroshēmas atlasīšana: set-target. Ja iepriekšējās darbības ir veiktas pareizi, parādīsies šāda izvēlne: Šo izvēlni izmantojat, lai iestatītu projektam specifiskus mainīgos, piemēram, Wi-Fi tīkla nosaukumu un paroli, procesora ātrumu utt. Projekta iestatīšanu, izmantojot menuconfig, var izlaist ohello_wordp, jo šī piemēraampfails darbojas ar noklusējuma konfigurāciju.
Uzmanību: Ja izmantojat ESP32-DevKitC plati ar ESP32-SOLO-1 moduli vai ESP32-DevKitM-1 plati ar ESP32-MIN1-1(1U) moduli, lūdzu, pirms ex mirgošanas iespējojiet vienkodola režīmu (CONFIG_FREERTOS_UNICORE) izvēlnē config.amples.
Espressif sistēmas
19 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
12. attēls: Projekta konfigurācija — sākuma logs
Piezīme: Izvēlnes krāsas jūsu terminālī var atšķirties. Izskatu var mainīt ar opciju –style. Lai iegūtu papildinformāciju, lūdzu, palaidiet idf.py menuconfig –help.
Ja izmantojat kādu no atbalstītajām izstrādes platēm, varat paātrināt izstrādi, izmantojot plates atbalsta pakotni. Plašāku informāciju skatiet sadaļā Papildu padomi.
Izveidojiet projektu Izveidojiet projektu, palaižot:
idf.py build
Šī komanda apkopos lietojumprogrammu un visus ESP-IDF komponentus, pēc tam ģenerēs sāknēšanas ielādētāju, nodalījuma tabulu un lietojumprogrammu bināros failus.
$ idf.py build Tiek palaista cmake direktorijā /path/to/hello_world/build Tiek izpildīta komanda “cmake -G Ninja –warn-unitialized /path/to/hello_world”… Brīdinājums par neinicializētām vērtībām. — Atrasts Git: /usr/bin/git (atrasta versija “2.17.0”) — Konfigurācijas dēļ tiek veidots tukšs aws_iot komponents — Komponentu nosaukumi: … — Komponentu ceļi: …
… (vairāk sistēmas izveides izvades rindu)
[527/527] Ģenerē hello_world.bin esptool.py v2.3.1
Projekta būvēšana pabeigta. Lai veiktu pārprogrammēšanu, palaidiet šo komandu: ../../../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 vai palaidiet 'idf.py -p PORT flash'.
Ja kļūdu nav, būvēšana tiks pabeigta, ģenerējot programmaparatūras bināro failu .bin files.
Espressif sistēmas
20 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Pārkopējiet tikko izveidotos bināros failus (bootloader.bin, partition-table.bin un hello_world.bin) uz savas ESP32 plates, palaižot: idf.py -p PORT [-b BAUD] flash
Aizstājiet PORT ar savas ESP32 plates seriālā porta nosaukumu. Varat arī mainīt mirgojošās ierīces datu pārraides ātrumu, aizstājot BAUD ar nepieciešamo datu pārraides ātrumu. Noklusējuma datu pārraides ātrums ir 460800. Plašāku informāciju par idf.py argumentiem skatiet idf.py failā.
Piezīme. Opcija flash automātiski veido un instalē projektu, tāpēc idf.py build palaišana nav nepieciešama.
Radušās problēmas zibspuldzes laikā? Ja, izpildot norādīto komandu, redzat tādas kļūdas kā "Neizdevās savienoties ar serveri", tam var būt vairāki iemesli. Viens no iemesliem varētu būt problēmas, ar kurām saskaras esptool.py — utilīta, ko izsauc būvēšanas sistēma, lai atiestatītu mikroshēmu, mijiedarbotos ar ROM sāknēšanas programmu un zibatmiņu programmaparatūrai. Viens vienkāršs risinājums, ko varat izmēģināt, ir manuāla atiestatīšana, kas aprakstīta tālāk, un, ja tas nepalīdz, plašāku informāciju par iespējamām problēmām varat atrast sadaļā Problēmu novēršana.
esptool.py automātiski atiestata ESP32, aktivizējot USB-seriālā pārveidotāja mikroshēmas, piemēram, FTDI vai CP210x, DTR un RTS vadības līnijas (plašāku informāciju skatiet sadaļā Seriālā savienojuma izveide ar ESP32). DTR un RTS vadības līnijas savukārt ir savienotas ar ESP32 GPIO0 un CHIP_PU (EN) pieslēgvietām, tādējādi mainot skaļumu.tagDTR un RTS līmeņi palaidīs ESP32 programmaparatūras lejupielādes režīmā. Kā piemēru var minētampPiemēram, pārbaudiet ESP32 DevKitC izstrādes plates shēmu.
Kopumā ar oficiālajām esp-idf izstrādes platēm nevajadzētu rasties problēmām. Tomēr esptool.py nevar automātiski atiestatīt aparatūru šādos gadījumos:
· Jūsu aparatūrai nav DTR un RTS līniju, kas savienotas ar GPIO0 un CHIP_PU · DTR un RTS līnijas ir konfigurētas atšķirīgi · Šādu seriālo vadības līniju vispār nav
Atkarībā no jūsu aparatūras veida, iespējams, ka ESP32 plati var manuāli iestatīt programmaparatūras lejupielādes režīmā (atiestatīt).
· Espressif ražotajām izstrādes platēm šo informāciju var atrast attiecīgajās darba sākšanas rokasgrāmatās vai lietotāja rokasgrāmatās. Piemēram,ampPiemēram, lai manuāli atiestatītu ESP-IDF izstrādes plati, turiet nospiestu sāknēšanas pogu (GPIO0) un nospiediet EN pogu (CHIP_PU).
· Cita veida aparatūrai mēģiniet novilkt GPIO0.
Normāla darbība Mirgojot, redzēsiet izvades žurnālu, kas ir līdzīgs šim:
... 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 Seriālais ports /dev/ttyUSB0 Savienojas…….._ Čips ir ESP32D0WDQ6 (0. versija) Funkcijas: WiFi, BT, divkodolu procesors, kodēšanas shēma Nav Crystal ir 40MHz MAC: 24:0a:c4:05:b9:14 Notiek stub augšupielāde… Stubs darbojas… Stubs darbojas… Maina datu pārraides ātrumu uz 460800 Mainīts.
(turpinājums nākamajā lapā)
Espressif sistēmas
21 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
(turpinājums no iepriekšējās lapas) Zibatmiņas izmēra konfigurēšana… Saspiesti 3072 baiti līdz 103… Rakstīšana ar ātrumu 0x00008000… (100 %) Ierakstīti 3072 baiti (103 saspiesti) ar ātrumu 0x00008000 0.0 sekundēs (faktiskais ātrums 5962.8 kbit/s)… Datu jaucējkoda pārbaudīta. Saspiesti 26096 baiti līdz 15408… Rakstīšana ar ātrumu 0x00001000… (100 %) Ierakstīti 26096 baiti (15408 saspiesti) ar ātrumu 0x00001000 0.4 sekundēs (faktiskais ātrums 546.7 kbit/s)… Datu jaucējkoda pārbaudīta. Saspiesti 147104 baiti līdz 77364… Rakstīšana ar ātrumu 0x00010000… (20 %) Rakstīšana ar ātrumu 0x00014000… (40 %) Rakstīšana ar ātrumu 0x00018000… (60 %) Rakstīšana ar ātrumu 0x0001c000… (80 %) Rakstīšana ar ātrumu 0x00020000… (100 %) Uzrakstīti 147104 baiti (77364 saspiesti) ar ātrumu 0x00010000 1.9 sekundēs (faktiskais ātrums 615,5 kbit/s)… Datu jaucējkods pārbaudīts.
Notiek aiziešana... Cietā atiestatīšana, izmantojot RTS tapu... Gatavs
Ja līdz zibatmiņas procesa beigām problēmu nav, plate tiks pārstartēta un startēs theohello_worldpapplication. Ja vēlaties izmantot Eclipse vai VS Code IDE, nevis palaist idf.py, skatiet Eclipse spraudni, VSCode paplašinājumu.
Izvades uzraudzība Lai pārbaudītu, vai ohello_worldpis patiešām darbojas, ierakstiet idf.py -p PORT monitor (neaizmirstiet aizstāt PORT ar seriālā porta nosaukumu).
Šī komanda palaiž lietojumprogrammu IDF Monitor:
$ idf.py -p monitors Tiek palaists idf_monitor direktorijā […]/esp/hello_world/build Izpilda “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor ieslēgts 115200 —– Iziet: Ctrl+] | Izvēlne: Ctrl+T | Palīdzība: Ctrl+T, kam seko Ctrl+H –ets 2016. gada 8. jūnijs 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) sākums 2016. gada 8. jūnijs 00:22:57 …
Pēc startēšanas un diagnostikas žurnālu ritināšanas uz augšu jums vajadzētu redzēt lietojumprogrammas izdrukātu tekstu oHello world!p.
... Sveika, pasaule! Restartēšana pēc 10 sekundēm… Šī ir esp32 mikroshēma ar 2 centrālā procesora kodoliem, WiFi/BT/BLE, silīcija 1. versija, 2 MB ārējā zibatmiņa Minimālais brīvais atmiņas apjoms: 298968 baiti Restartēšana pēc 9 sekundēm… Restartēšana pēc 8 sekundēm… Restartēšana pēc 7 sekundēm…
Lai izietu no IDF monitora, izmantojiet saīsni Ctrl+].
Espressif sistēmas
22 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Ja IDF monitors nedarbojas neilgi pēc augšupielādes vai ja iepriekš minēto ziņojumu vietā redzat nejaušus atkritumus, kas līdzīgi tālāk norādītajiem, jūsu plate, visticamāk, izmanto 26 MHz kristālu. Lielākā daļa izstrādes plates konstrukciju izmanto 40 MHz, tāpēc ESP-IDF izmanto šo frekvenci kā noklusējuma vērtību.
Ja rodas šāda problēma, rīkojieties šādi: 1. Izejiet no monitora. 2. Atgriezieties menuconfig. 3. Dodieties uz Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency un pēc tam mainiet CONFIG_XTAL_FREQ_SEL uz 26 MHz. 4. Pēc tam vēlreiz izveidojiet un atjauniniet lietojumprogrammu.
Pašreizējā ESP-IDF versijā galvenās XTAL frekvences, ko atbalsta ESP32, ir šādas:
· 26 MHz · 40 MHz
Piezīme. Veidošanu, zibatmiņu un uzraudzību var apvienot vienā solī, palaižot: idf.py -p PORT flash monitor
Skatiet arī: · IDF monitors, lai iegūtu ērtus īsinājumtaustiņus un plašāku informāciju par IDF monitora lietošanu. · idf.py, lai iegūtu pilnīgu informāciju par idf.py komandām un opcijām.
Tas ir viss, kas jums nepieciešams, lai sāktu darbu ar ESP32! Tagad jūs esat gatavs izmēģināt citus eksemplārus.ampvai arī ķerieties pie savu lietojumprogrammu izstrādes.
Svarīgi: Daži no bijušajiemampfaili neatbalsta ESP32, jo nepieciešamā aparatūra nav iekļauta ESP32, tāpēc to nevar atbalstīt. Ja veidojat examplūdzu, pārbaudiet README failu file Atbalstīto mērķu tabulai. Ja tāda ir, ieskaitot ESP32 mērķi, vai tabula vispār nepastāv, tad exampTas darbosies ar ESP32.
Papildu padomi
Atļauju problēmas /dev/ttyUSB0 Dažās Linux distribūcijās, pārprogrammējot ESP32, var tikt parādīts kļūdas ziņojums "Neizdevās atvērt portu /dev/ttyUSB0". To var atrisināt, pievienojot pašreizējo lietotāju zvanīšanas grupai.
Python saderība ESP-IDF atbalsta Python 3.7 vai jaunāku versiju. Ieteicams jaunināt operētājsistēmu uz jaunāku versiju, kas atbilst šai prasībai. Citas iespējas ietver Python instalēšanu no pirmkoda vai Python versiju pārvaldības sistēmas, piemēram, pyenv, izmantošanu.
Sāciet ar plates atbalsta pakotni Lai paātrinātu prototipu izstrādi dažās izstrādes platēs, varat izmantot plates atbalsta pakotnes (BSP), kas padara konkrētas plates inicializēšanu tikpat vienkāršu kā dažus funkciju izsaukumus.
Espressif sistēmas
23 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
BSP parasti atbalsta visus aparatūras komponentus, kas ir iekļauti izstrādes platē. Papildus kontaktu izvietojuma definīcijai un inicializācijas funkcijām BSP tiek piegādāts ar draiveriem ārējiem komponentiem, piemēram, sensoriem, displejiem, audio kodekiem utt. BSP tiek izplatīti, izmantojot IDF komponentu pārvaldnieku, tāpēc tos var atrast IDF komponentu reģistrā. Šeit ir piemērs.ampInstrukcija, kā savam projektam pievienot ESP-WROVER-KIT BSP: idf.py add-dependency esp_wrover_kit
Vairāk exampBSP lietošanas veidu var atrast BSP piemērā.amples mape.
Saistītie dokumenti Pieredzējušiem lietotājiem, kuri vēlas pielāgot instalēšanas procesu: · ESP-IDF rīku atjaunināšana operētājsistēmā Windows · Seriālā savienojuma izveide ar ESP32 · Eclipse spraudnis · VSCode paplašinājums · IDF monitors
ESP-IDF rīku atjaunināšana operētājsistēmā Windows
ESP-IDF rīku instalēšana, izmantojot skriptu. Windows komandrindā pārejiet uz direktoriju, kurā ir instalēts ESPIDF. Pēc tam palaidiet:
install.bat
Powershell gadījumā pārejiet uz direktoriju, kurā ir instalēts ESP-IDF. Pēc tam palaidiet:
instalēt.ps1
Tas lejupielādēs un instalēs rīkus, kas nepieciešami ESP-IDF lietošanai. Ja konkrētā rīka versija jau ir instalēta, nekāda darbība netiks veikta. Rīki tiek lejupielādēti un instalēti direktorijā, kas norādīta ESP-IDF rīku instalēšanas procesa laikā. Pēc noklusējuma tā ir C:Usersusername.espressif.
Pievienojiet ESP-IDF rīkus ceļam PATH, izmantojot eksportēšanas skriptu. ESP-IDF rīku instalētājs izveido sākuma izvēlnes saīsni funkcijai oESP-IDF komandrinda. Šī saīsne atver komandrindas logu, kurā jau ir visi rīki.
pieejams. Dažos gadījumos, iespējams, vēlēsities strādāt ar ESP-IDF komandrindas logā, kas netika palaists, izmantojot šo saīsni. Šādā gadījumā izpildiet tālāk sniegtos norādījumus, lai pievienotu ESP-IDF rīkus PATH. Komandrindā, kurā jāizmanto ESP-IDF, pārejiet uz direktoriju, kurā ir instalēts ESP-IDF, un pēc tam izpildiet export.bat:
cd %userprofile%espesp-idf export.bat
Vai arī Powershell failā, kur jāizmanto ESP-IDF, pārejiet uz direktoriju, kurā ir instalēts ESP-IDF, un pēc tam izpildiet export.ps1:
cd ~/esp/esp-idf export.ps1
Kad tas būs izdarīts, rīki būs pieejami šajā komandrindā.
Seriālā savienojuma izveide ar ESP32 Šajā sadaļā sniegti norādījumi par seriālā savienojuma izveidi starp ESP32 un datoru.
Espressif sistēmas
24 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Pievienojiet ESP32 datoram Pievienojiet ESP32 plati datoram, izmantojot USB kabeli. Ja ierīces draiveris neinstalējas automātiski, atrodiet USB uz seriālo pārveidotāju mikroshēmu savā ESP32 platē (vai ārējā pārveidotāja spraudnī), meklējiet draiverus internetā un instalējiet tos. Zemāk ir saraksts ar USB uz seriālo pārveidotāju mikroshēmām, kas instalētas lielākajā daļā Espressif ražoto ESP32 plates, kā arī saites uz draiveriem:
· CP210x: CP210x USB uz UART tilta VCP draiveri · FTDI: FTDI virtuālā COM porta draiveri Lūdzu, skatiet plates lietotāja rokasgrāmatu, lai uzzinātu konkrēto izmantoto USB uz seriālo pārveidotāja mikroshēmu. Iepriekš minētie draiveri galvenokārt ir paredzēti uzziņai. Normālos apstākļos draiveriem vajadzētu būt komplektā ar operētājsistēmu un automātiski instalētiem, pievienojot plati datoram.
Pārbaudiet portu operētājsistēmā Windows. Pārbaudiet identificēto COM portu sarakstu Windows ierīču pārvaldniekā. Atvienojiet ESP32 un pievienojiet to atpakaļ, lai pārbaudītu, kurš ports pazūd no saraksta un pēc tam atkal parādās. Zemāk redzamajos attēlos ir parādīts ESP32 DevKitC un ESP32 WROVER KIT seriālais ports.
13. attēls: ESP32-DevKitC USB–UART tilts Windows ierīču pārvaldniekā
Pārbaudiet portu operētājsistēmās Linux un macOS. Lai pārbaudītu ESP32 plates (vai ārējā pārveidotāja spraudņa) seriālā porta ierīces nosaukumu, palaidiet šo komandu divas reizes — vispirms ar atvienotu plati/spraudni un pēc tam ar pievienotu. Otro reizi parādās nepieciešamais ports: Linux.
ls /dev/tty*
macOS
Espressif sistēmas
25 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
14. attēls: ESP-WROVER-KIT divi USB seriālie porti Windows ierīču pārvaldniekā
Espressif sistēmas
26 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
ls /dev/cu.* Piezīme: macOS lietotājiem: ja seriālo portu neredzat, pārbaudiet, vai ir instalēti USB/seriālie draiveri. Saites uz draiveriem skatiet sadaļā ESP32 pievienošana datoram. Operētājsistēmai macOS High Sierra (10.13), iespējams, būs arī jāatļauj draiveru ielāde. Atveriet Sistēmas preferences -> Drošība un privātums -> Vispārīgi un pārbaudiet, vai šeit ir redzams ziņojums par izstrādātāja lp izstrādātāja oSystem Software, kur izstrādātāja vārds ir Silicon Labs vai FTDI.
Lietotāja pievienošana izvades grupai operētājsistēmā Linux. Pašlaik pieteikušajam lietotājam vajadzētu būt lasīšanas un rakstīšanas piekļuvei seriālajam portam, izmantojot USB. Vairumā Linux distribūciju to var izdarīt, pievienojot lietotāju izvades grupai ar šādu komandu:
sudo usermod -a -G izsaukums $USER
operētājsistēmā Arch Linux tas tiek darīts, pievienojot lietotāju grupai uucp ar šādu komandu:
sudo usermod -a -G uucp $USER
Noteikti atkārtoti piesakieties, lai seriālajam portam iespējotu lasīšanas un rakstīšanas atļaujas.
Seriālā savienojuma pārbaude Tagad pārbaudiet, vai seriālais savienojums darbojas. To var izdarīt, izmantojot seriālā termināļa programmu, pārbaudot, vai pēc ESP32 atiestatīšanas terminālī ir kāda izvade. Noklusējuma konsoles datu pārraides ātrums ESP32 ir 115200.
Windows un Linux šajā piemērāampPiemēram, mēs izmantosim PuTTY SSH klientu, kas ir pieejams gan Windows, gan Linux. Varat izmantot arī citas seriālā porta programmas un iestatīt komunikācijas parametrus, kā norādīts tālāk. Palaidiet termināli un iestatiet norādīto seriālo portu. Datu pārraides ātrums = 115200 (ja nepieciešams, nomainiet to uz izmantotās mikroshēmas noklusējuma datu pārraides ātrumu), datu biti = 8, stop biti = 1 un paritāte = N. Tālāk ir sniegti piemēri.ampEkrānuzņēmumi, kuros redzama porta un šādu pārraides parametru (īsumā aprakstītu kā 115200-8-1-N) iestatīšana operētājsistēmās Windows un Linux. Atcerieties atlasīt tieši to pašu seriālo portu, ko identificējāt iepriekš minētajās darbībās. Pēc tam terminālī atveriet seriālo portu un pārbaudiet, vai redzat kādu ESP32 izdrukātu žurnālu. Žurnāla saturs būs atkarīgs no ESP32 ielādētās lietojumprogrammas, skatiet piemēru.ampIzeja.
Piezīme: Pēc tam, kad esat pārliecinājies, ka saziņa darbojas, aizveriet seriālo termināli. Ja termināļa sesija ir atvērta, seriālais ports vēlāk nebūs pieejams programmaparatūras augšupielādei.
macOS Lai atbrīvotos no seriālā termināļa programmas instalēšanas nepatikšanām, macOS piedāvā komandu screen. · Kā aprakstīts sadaļā Pārbaudīt portu Linux un macOS operētājsistēmās, palaidiet:
ls /dev/cu.* · Jums vajadzētu redzēt līdzīgu izvadi:
/dev/cu.Bluetooth-ienākošais-ports /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Izvades rezultāts būs atkarīgs no datoram pievienoto plates veida un skaita. Pēc tam izvēlieties plates ierīces nosaukumu un palaidiet (ja nepieciešams, nomainiet o115200p uz izmantotās mikroshēmas noklusējuma datu pārraides ātrumu):
ekrāns /dev/cu.device_name 115200 Aizstājiet ierīces_nosaukums ar nosaukumu, kas atrasts, izpildot ls /dev/cu.*.
Espressif sistēmas
27 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
15. attēls: Seriālās komunikācijas iestatīšana programmā PuTTY operētājsistēmā Windows
Espressif sistēmas
28 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
16. attēls: Seriālās komunikācijas iestatīšana PuTTY programmā Linux
Espressif sistēmas
29 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
· Jūs meklējat ekrānā redzamo žurnālu. Žurnāla saturs būs atkarīgs no ESP32 ielādētās lietojumprogrammas, skatiet piemēru.ample Output. Lai izietu no ekrāna sesijas, nospiediet Ctrl-A + .
Piezīme: Neaizmirstiet iziet no ekrāna sesijas pēc tam, kad esat pārliecinājies, ka komunikācija darbojas. Ja to neizdarīsiet un vienkārši aizvērsiet termināļa logu, seriālais ports vēlāk nebūs pieejams programmaparatūras augšupielādei.
ExampIzvades piemērsampŽurnāls ir parādīts zemāk. Ja neko neredzat, atiestatiet tāfeli. ets 2016. gada 8. jūnijs 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) sākums 2016. gada 8. jūnijs 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) sāknēšana: kompilēšanas laiks 18:48:10
…
Ja redzat lasāmu žurnāla izvadi, tas nozīmē, ka seriālais savienojums darbojas un esat gatavs turpināt instalēšanu un beidzot augšupielādēt lietojumprogrammu ESP32.
Piezīme: Dažām seriālā porta vadu konfigurācijām termināļa programmā ir jāatspējo seriālā RTS un DTR pieslēgvietas, pirms ESP32 sāk darboties un ģenerē seriālo izvadi. Tas ir atkarīgs no pašas aparatūras; lielākajai daļai izstrādes plates (tostarp visām Espressif platēm) šīs problēmas nav. Problēma rodas, ja RTS un DTR ir tieši savienoti ar EN un GPIO0 pieslēgvietām. Sīkāku informāciju skatiet esptool dokumentācijā.
Ja, instalējot programmatūru ESP32 izstrādei, nokļuvāt šeit no 5. darbības. Pirmie ESP-IDF soļi.
IDF Monitor IDF Monitor galvenokārt ir seriālā termināļa programma, kas pārraida seriālos datus uz mērķa ierīces seriālo portu un no tā. Tā nodrošina arī dažas IDF specifiskas funkcijas. IDF Monitor var palaist no IDF projekta, palaižot idf.py monitor.
Īsinājumtaustiņi Lai ērti mijiedarbotos ar IDF monitoru, izmantojiet tabulā norādītos īsinājumtaustiņus.
Espressif sistēmas
30 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Tastatūras īsinājumtaustiņš Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (vai A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (vai I)
· Ctrl+H (vai H)
· Ctrl+X (vai X)
Ctrl+C
Darbība
Apraksts
Iziet no programmas Izvēlnes taustiņš Escape Nosūtīt pašu izvēlnes simbolu uz tālvadības pulti
Nosūtīt izejas rakstzīmi uz tālvadības pulti
Atiestatiet mērķi sāknēšanas ielādētājā, lai apturētu lietotni, izmantojot RTS līniju
Atiestatiet mērķa plati, izmantojot RTS
Izveidojiet un flashējiet projektu
Izveidojiet un flashējiet tikai lietotni
Apturēt/atsākt žurnāla izvades drukāšanu ekrānā
Apturēšanas/atsākšanas žurnāla izvade saglabāta šeit: file
Apturēšanas/atsākšanas laiksamps
drukāšana
Parādīt visus īsinājumtaustiņus
Nospiediet un pēc tam izmantojiet vienu no tālāk norādītajām pogām.
Atiestata mērķi, pārsūtot to uz sāknēšanas ielādētāju, izmantojot RTS līniju (ja tāda ir pievienota), lai plate nedarbotos. Noderīgi, ja jāgaida, kamēr startēs cita ierīce. Atiestata mērķa plati un restartē lietojumprogrammu, izmantojot RTS līniju (ja tāda ir pievienota).
Aptur idf_monitor, lai palaistu projekta zibatmiņas mērķi, pēc tam atsāk idf_monitor. Jebkurš mainīts avots. filetiek pārkompilēti un pēc tam atkārtoti zibatmiņā ievietoti. Mērķa encrypted-flash tiek palaists, ja idf_monitor tika palaists ar argumentu -E. Aptur idf_monitor, lai palaistu lietotnes zibatmiņas mērķi, pēc tam atsāk idf_monitor. Līdzīgi zibatmiņas mērķim, bet tiek veidota un atkārtoti zibatmiņā ievietota tikai galvenā lietotne. Mērķa encrypted-app-flash tiek palaists, ja idf_monitor tika palaists ar argumentu -E. Aktivizācijas laikā atmet visus ienākošos sērijas datus. Ļauj ātri apturēt un pārbaudīt žurnāla izvadi, neaizverot monitoru. Izveido file projekta direktorijā, un izvade tiek ierakstīta tajā file līdz šī funkcija tiek atspējota ar to pašu īsinājumtaustiņu (vai IDF Monitor aizveras). IDF Monitor var izdrukāt laikuamp katras rindas sākumā. Vismazākaisamp formātu var mainīt par –reizēmamp-format komandrindas arguments.
Izejiet no programmas
Pārtraukt palaisto lietojumprogrammu
Aptur IDF monitoru un palaiž GDB projekta atkļūdotāju, lai atkļūdotu lietojumprogrammu izpildlaikā. Šim nolūkam ir jābūt iespējotai opcijai :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME.
Visi nospiestie taustiņi, izņemot Ctrl-] un Ctrl-T, tiks nosūtīti caur seriālo portu.
IDF specifiskās funkcijas
Automātiska adreses dekodēšana. Ikreiz, kad ESP-IDF izvada heksadecimālā koda adresi formā 0x4_______, IDF Monitor izmanto addr2line_, lai meklētu atrašanās vietu avota kodā un atrastu funkcijas nosaukumu.
Ja ESP-IDF lietotne avarē un rodas paniku, tiek ģenerēts reģistra izgāzums un atpakaļizsekošana, piemēram, šādi:
Espressif sistēmas
31 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
0. kodolā radās Guru meditācijas kļūda ar tipu StoreProhibited. Izņēmums bija
neapstrādāts.
Reģistrācijas izgāztuve:
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: 0x0000000f
: 0x00000019 ATVAINOJUMS:
0x0000001d
IZGATAVOŠANAS ADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF monitors pievieno izgāztuvei vairāk informācijas:
0. kodolā radās Guru meditācijas kļūda ar tipu StoreProhibited. Izņēmums bija
neapstrādāts.
Reģistrācijas izgāztuve:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: darīt_kaut ko_lai_avarētu vietnē /home/gus/esp/32/idf/examples/sākt-darbu/
sveiki_pasaule/galvenā/./sveiki_pasaule_galvenā.c:57
(iekļauts ar) inner_dont_crash vietnē /home/gus/esp/32/idf/examples/sākt-darbu/sveiki_
pasaule/galvenā/./hello_world_main.c:52
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
0x00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
A14
: 0x00000047 A15
SAR: 0x0000000f
: 0x00000019 ATVAINOJUMS:
0x0000001d
IZGATAVOŠANAS ADDR: 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 (iekļauts ar) inner_dont_crash vietnē /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:42 0x400dbf82: lietotnes_main_fails atrodas /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: galvenais_uzdevums vietnē /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254
Lai atšifrētu katru adresi, IDF Monitor fonā palaiž šādu komandu: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Piezīme: Iestatiet vides mainīgo ESP_MONITOR_DECODE uz 0 vai izsauciet idf_monitor.py ar konkrētu komandrindas komandu
Espressif sistēmas
32 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
opcija: idf_monitor.py –disable-address-decoding, lai atspējotu adreses dekodēšanu.
Mērķa atiestatīšana savienojuma laikā Pēc noklusējuma IDF Monitor atiestatīs mērķi, kad tam izveidos savienojumu. Mērķa mikroshēmas atiestatīšana tiek veikta, izmantojot DTR un RTS seriālās līnijas. Lai neļautu IDF Monitor automātiski atiestatīt mērķi savienojuma laikā, izsauciet IDF Monitor ar opciju –no-reset (piemēram, idf_monitor.py –no-reset).
Piezīme. Opcija –no-reset piemēro tādu pašu darbību pat tad, ja IDF monitors tiek pievienots konkrētam portam (piemēram, idf.py monitor –no-reset -p [PORTS]).
GDB palaišana ar GDBStub GDBStub ir noderīga izpildlaika atkļūdošanas funkcija, kas darbojas mērķī un izveido savienojumu ar resursdatoru, izmantojot seriālo portu, lai saņemtu atkļūdošanas komandas. GDBStub atbalsta tādas komandas kā atmiņas un mainīgo lasīšana, izsaukumu steka kadru pārbaude utt. Lai gan GDBStub ir mazāk daudzpusīgs nekā JTAG atkļūdošanai nav nepieciešama īpaša aparatūra (piemēram, JTAG (uz USB tiltu), jo komunikācija notiek pilnībā caur seriālo portu. Mērķi var konfigurēt, lai tas palaistu GDBStub fonā, izpildlaikā iestatot CONFIG_ESP_SYSTEM_PANIC uz GDBStub. GDBStub darbosies fonā, līdz pa seriālo portu tiks nosūtīts Ctrl+C ziņojums, kas apturēs GDBStub programmas izpildi, tādējādi ļaujot GDBStub apstrādāt atkļūdošanas komandas. Turklāt panikas apstrādātāju var konfigurēt, lai tas avārijas gadījumā palaistu GDBStub, panikas gadījumā iestatot CONFIG_ESP_SYSTEM_PANIC uz GDBStub. Avārijas gadījumā GDBStub izvadīs īpašu virknes modeli caur seriālo portu, lai norādītu, ka tas darbojas. Abos gadījumos (t.i., nosūtot Ctrl+C ziņojumu vai saņemot īpašu virknes modeli), IDF Monitor automātiski palaidīs GDB, lai lietotājs varētu nosūtīt atkļūdošanas komandas. Pēc GDB aizvēršanas mērķis tiek atiestatīts, izmantojot RTS seriālo līniju. Ja šī līnija nav pievienota, lietotāji var atiestatīt savu mērķi (nospiežot dēļa pogu Atiestatīt).
Piezīme. Fonā IDF Monitor izpilda šo komandu, lai palaistu GDB:
xtensa-esp32-elf-gdb -ex “iestatīt seriālo baudu BAUD” -ex “mērķa attālā PORTA” -ex pārtraukt build/PROJECT.elf :idf_target:`Sveiks, VĀRDS mikroshēma`
Izvades filtrēšanas IDF monitoru var izsaukt kā idf.py monitor –print-filter=”xyz”, kur –print-filter ir izvades filtrēšanas parametrs. Noklusējuma vērtība ir tukša virkne, kas nozīmē, ka tiek izdrukāta visa informācija.
Ierobežojumus attiecībā uz to, kas jādrukā, var norādīt kā virknitag>: preces, kurtag> ir tag aukla un ir rakstzīme no kopas {N, E, W, I, D, V, *}, kas attiecas uz reģistrēšanas līmeni.
Piemēram,amppiemēram, PRINT_FILTER=”tag1:W” sakrīt un izdrukā tikai tās izvades, kas rakstītas ar ESP_LOGW(“tag1”, …) vai zemākā detalizētības līmenī, t.i., ESP_LOGE(“tag1 collas, …). Nenorādot a vai, izmantojot *, pēc noklusējuma tiek izmantots detalizētais līmenis.
Piezīme. Izmantojiet primāro reģistrēšanu, lai kompilācijas laikā atspējotu nevajadzīgās izvades, izmantojot reģistrēšanas bibliotēku. Izvades filtrēšana ar IDF monitoru ir sekundārs risinājums, kas var būt noderīgs filtrēšanas opciju pielāgošanai, nepārkompilējot lietojumprogrammu.
Jūsu lietotne tags nedrīkst saturēt atstarpes, zvaigznītes * vai kolu : lai būtu saderīgs ar izvades filtrēšanas funkciju.
Ja lietotnes izvades pēdējai rindai neseko rakstatgrieze, izvades filtrēšana var tikt sajaukta, t. i., monitors sāk drukāt rindu un vēlāk atklāj, ka rindai nevajadzēja būt ierakstītai. Šī ir zināma problēma, un to var novērst, vienmēr pievienojot rakstatgriezi (īpaši, ja tūlīt pēc tās neseko izvade).
Espressif sistēmas
33 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
ExampFiltrēšanas noteikumu kopums:
· * var izmantot, lai atrastu atbilstošus rezultātus tagsTomēr virkne PRINT_FILTER=”*:I” tag1:E” attiecībā uz tag1 izdrukā tikai kļūdas, jo noteikums par tag1 ir augstāka prioritāte nekā noteikums attiecībā uz *.
· Noklusējuma (tukšais) noteikums ir līdzvērtīgs *:V, jo atbilstošs katrs tag “Verbose” līmenī vai zemāk nozīmē atbilstību visam.
· “*:N” nomāc ne tikai reģistrēšanas funkciju izvades, bet arī printf u. c. izdrukas. Lai no tā izvairītos, izmantojiet *:E vai augstāku detalizētības līmeni.
· Noteikumi “tag1:V”, “tag1:v”, “tag1:”, “tag1:*”, un “tag1” ir līdzvērtīgi. · Noteikums “tag1:R tag1:E” ir līdzvērtīgs “tag1:E”, jo jebkura tā paša atkārtota parādīšanās tag
nosaukums pārraksta iepriekšējo. · Noteikums “tag1:I tag2:W” drukā tikai tag1 informācijas detalizētības līmenī vai zemāk un tag2 pie brīdinājuma
vārdu krājuma līmenis vai zemāks. · Noteikums “tag1:I tag2:R tag3:N” būtībā ir līdzvērtīgs iepriekšējam, jo tag3:N norāda
ka tag3 nedrīkst tikt drukāts. · tag3:N noteikumā “tag1:I tag2:R tag3:N *:V” ir jēgpilnāka, jo bez tag3:N
tagVarēja tikt izdrukāti 3 ziņojumi; kļūdas par tag1 un tag2 tiks drukāts norādītajā (vai zemākā) detalizētības līmenī, un viss pārējais tiks drukāts pēc noklusējuma.
Sarežģītāka filtrēšanas pieredzeample Šis žurnāla fragments tika iegūts bez filtrēšanas opcijām:
load:0x40078000,len:13564 ieraksts 0x40078d4c E (31) esp_image: attēlam 0x30000 ir nederīgs maģiskais baits W (31) esp_image: attēlam 0x30000 ir nederīgs SPI režīms 255 E (39) boot: Rūpnīcas lietotnes nodalījums nav startējams I (568) cpu_start: Pro procesora palaišana. I (569) heap_init: Inicializēšana. RAM ir pieejama dinamiskajai piešķiršanai: I (603) cpu_start: Pro procesora palaišanas lietotāja kods D (309) light_driver: [light_init, 74]:status: 1, režīms: 2 D (318) vfs: esp_vfs_register_fd_range ir veiksmīgi apstrādāts diapazonā <54; 64) un VFS ID 1 I (328) wifi: wifi draivera uzdevums: 3ffdbf84, prio:23, steks:4096, kodols=0
Filtrēšanas opciju PRINT_FILTER=”wifi esp_image:E light_driver:I” uztvertā izvade ir parādīta zemāk:
E (31) esp_image: attēlam 0x30000 ir nederīgs maģiskais baits I (328) wifi: wifi draivera uzdevums: 3ffdbf84, prio:23, steks:4096, kodols=0
Opcijas “PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” parāda šādu izvadi:
load:0x40078000,len:13564 entry 0x40078d4c I (569) heap_init: Inicializācija. RAM pieejamā dinamiskajai piešķiršanai: D (309) light_driver: [light_init, 74]:status: 1, mode: 2
Zināmas problēmas ar IDF monitoru
Problēmas, kas novērotas operētājsistēmā Windows
· Bulttaustiņi, kā arī daži citi taustiņi nedarbojas GDB Windows konsoles ierobežojumu dēļ. · Reizēm, kad oidf.pypexits tiek palaists, tas var apstāties uz laiku līdz 30 sekundēm, pirms IDF monitors atsāk darbu. · Kad ogdbpis darbojas, tas var apstāties uz īsu brīdi, pirms sāk sazināties ar GDBStub.
Espressif sistēmas
34 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Darba sākšana. Standarta rīkjoslas iestatīšana operētājsistēmām Linux un macOS
Instalēšana soli pa solim Šis ir detalizēts ceļvedis, kas palīdzēs jums veikt instalēšanas procesu.
Izstrādes vides iestatīšana Šie ir ESP-IDF iestatīšanas soļi jūsu ESP32: · 1. solis. Priekšnosacījumu instalēšana · 2. solis. ESP-IDF iegūšana · 3. solis. Rīku iestatīšana · 4. solis. Vides mainīgo iestatīšana · 5. solis. Pirmie soļi darbā ar ESP-IDF
1. darbība. Instalēšanas priekšnosacījumi Lai izmantotu ESP-IDF ar ESP32, jāinstalē dažas programmatūras pakotnes atbilstoši jūsu operētājsistēmai. Šī iestatīšanas rokasgrāmata palīdzēs jums visu instalēt Linux un macOS sistēmās.
Linux lietotājiem Lai kompilētu, izmantojot ESP-IDF, jums būs nepieciešamas šādas pakotnes. Izpildāmā komanda ir atkarīga no izmantotās Linux versijas:
· Ubuntu un 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 un 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 joprojām tiek atbalstīta, taču labākai lietotāja pieredzei ieteicams CentOS 8. versija. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Piezīme: · Lai lietotu ar ESP-IDF, nepieciešama CMake versija 3.16 vai jaunāka. Ja jūsu operētājsistēmas versijās tādas nav, palaidiet komandu otools/idf_tools.py install cmakepta, lai instalētu piemērotu versiju. · Ja iepriekš minētajā sarakstā neredzat savu Linux izplatījumu, lūdzu, pārbaudiet tā dokumentāciju, lai uzzinātu, kuru komandu izmantot pakotnes instalēšanai.
macOS lietotājiem ESP-IDF izmantos Python versiju, kas pēc noklusējuma ir instalēta macOS. · CMake un Ninja build instalēšana: Ja jums ir HomeBrew, varat palaist: brew install cmake ninja dfu-util. Ja jums ir MacPorts, varat palaist: sudo port install cmake ninja dfu-util. Pretējā gadījumā skatiet CMake un Ninja sākumlapas, lai lejupielādētu macOS instalācijas failus.
Espressif sistēmas
35 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
· Ātrākai būvēšanai stingri ieteicams instalēt arī ccache. Ja jums ir HomeBrew, to var izdarīt, izmantojot brew install ccache vai sudo port install ccache MacPort datoros.
Piezīme. Ja jebkuras darbības laikā tiek parādīta šāda kļūda: xcrun: kļūda: nederīgs aktīvais izstrādātāja ceļš (/Library/Developer/CommandLineTools), trūkstošs xcrun šeit: /Library/Developer/CommandLineTools/usr/bin/xcrun
Pēc tam, lai turpinātu, būs jāinstalē XCode komandrindas rīki. Tos var instalēt, palaižot xcode-select –install.
Apple M1 lietotājiem Ja izmantojat Apple M1 platformu un redzat šādu kļūdu: BRĪDINĀJUMS: rīka xtensa-esp32-elf versijas esp-2021r2-patch3-8.4.0 direktorijs ir pieejams, bet rīks nav atrasts KĻŪDA: rīkam xtensa-esp32-elf nav instalētu versiju. Lūdzu, palaidiet 'install.sh', lai to instalētu.
vai: zsh: nepareizs centrālā procesora tips izpildāmajā failā: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Pēc tam jums būs jāinstalē Apple Rosetta 2, palaižot /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Python 3 instalēšana Pamatojoties uz macOS Catalina 10.15 laidiena piezīmēm, Python 2.7 lietošana nav ieteicama, un Python 2.7 pēc noklusējuma netiks iekļauta turpmākajās macOS versijās. Pārbaudiet, kāda Python versija jums pašlaik ir: python –version
Ja izvade ir līdzīga Python 2.7.17 versijai, jūsu noklusējuma interpretētājs ir Python 2.7. Ja tā, pārbaudiet arī, vai jūsu datorā jau nav instalēts Python 3: python3 –version
Ja iepriekš minētā komanda atgriež kļūdu, tas nozīmē, ka Python 3 nav instalēts. Zemāk ir sniegts pārskats.view no darbībām, lai instalētu Python 3.
· Instalēšanu ar HomeBrew var veikt šādi: brew install python3
· Ja jums ir MacPorts, varat palaist: sudo port install python38
2. darbība. Iegūstiet ESP-IDF. Lai izveidotu lietojumprogrammas ESP32, jums ir nepieciešamas Espressif nodrošinātās programmatūras bibliotēkas ESP-IDF repozitorijā. Lai iegūtu ESP-IDF, dodieties uz instalācijas direktoriju un klonējiet repozitoriju ar git clone, ievērojot tālāk norādītās operētājsistēmai paredzētās instrukcijas. Atveriet termināli un palaidiet šādas komandas:
Espressif sistēmas
36 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekursīvs https://github.com/espressif/esp-idf.git
ESP-IDF tiks lejupielādēts mapē ~/esp/esp-idf. Informāciju par to, kuru ESP-IDF versiju izmantot konkrētā situācijā, skatiet sadaļā ESP-IDF versijas.
3. darbība. Rīku iestatīšana. Papildus ESP-IDF projektiem, kas atbalsta ESP32, ir jāinstalē arī ESP-IDF izmantotie rīki, piemēram, kompilators, atkļūdotājs, Python pakotnes utt. cd ~/esp/esp-idf ./install.sh esp32
vai ar Fish shell cd ~/esp/esp-idf ./install.fish esp32
Iepriekš minētās komandas instalē rīkus tikai ESP32. Ja plānojat izstrādāt projektus vairākiem mikroshēmu mērķiem, tad jums tie visi jāuzskaita un jāpalaiž, piemēram,ampfails: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
vai ar Fish shell kompaktdisku ~/esp/esp-idf ./install.fish esp32,esp32s2
Lai instalētu rīkus visiem atbalstītajiem mērķiem, lūdzu, palaidiet šo komandu: cd ~/esp/esp-idf ./install.sh all
vai ar Fish shell cd ~/esp/esp-idf ./install.fish visu
Piezīme. macOS lietotājiem, ja jebkuras darbības laikā tiek parādīta šāda kļūda:urlAtvēršanas kļūda [SSL: CERTIFICATE_VERIFY_FAILED] Sertifikāta verifikācija neizdevās: nevar iegūt lokālo izdevēja sertifikātu (_ssl.c:xxx)
Lai instalētu sertifikātus, datora Python mapē varat palaist komandu Install Certificates.command. Sīkāku informāciju skatiet sadaļā Lejupielādes kļūda, instalējot ESP-IDF rīkus.
Alternatīva File Lejupielādes Rīku instalētājs lejupielādē vairākus fileir pievienots GitHub laidieniem. Ja piekļuve GitHub ir lēna, var iestatīt vides mainīgo, lai GitHub resursu lejupielādēm dotu priekšroku Espressifns lejupielādes serverim.
Piezīme. Šis iestatījums kontrolē tikai atsevišķus rīkus, kas lejupielādēti no GitHub laidieniem, tas nemaina URLtiek izmantoti, lai piekļūtu jebkurām Git krātuvēm.
Lai rīku instalēšanas laikā dotu priekšroku Espressif lejupielādes serverim, palaižot install.sh, izmantojiet šādu komandu secību:
Espressif sistēmas
37 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Rīku instalēšanas ceļa pielāgošana Šajā solī ieviestie skripti instalē ESP-IDF nepieciešamos kompilācijas rīkus lietotāja mājas direktorijā: $HOME/.espressif operētājsistēmā Linux. Ja vēlaties instalēt rīkus citā direktorijā, pirms instalēšanas skriptu palaišanas iestatiet vides mainīgo IDF_TOOLS_PATH. Pārliecinieties, vai jūsu lietotāja kontam ir pietiekamas atļaujas, lai lasītu un rakstītu šo ceļu. Ja maināt IDF_TOOLS_PATH, pārliecinieties, vai tas ir iestatīts uz vienu un to pašu vērtību katru reizi, kad tiek izpildīts instalēšanas skripts (install.bat, install.ps1 vai install.sh) un eksportēšanas skripts (export.bat, export.ps1 vai export.sh).
4. darbība. Vides mainīgo iestatīšana Instalētie rīki vēl nav pievienoti vides mainīgajam PATH. Lai rīkus varētu izmantot no komandrindas, ir jāiestata daži vides mainīgie. ESP-IDF nodrošina citu skriptu, kas to dara. Terminālī, kurā gatavojaties izmantot ESP-IDF, palaidiet:
. $HOME/esp/esp-idf/export.sh
vai zivīm (atbalstīts tikai kopš zivju versijas 3.0.0):
$HOME/esp/esp-idf/export.fish
Ievērojiet atstarpi starp sākuma punktu un ceļu! Ja plānojat bieži izmantot esp-idf, varat izveidot aizstājvārdu export.sh izpildei:
1. Kopējiet un ielīmējiet šo komandu savā shellns pro failāfile (.profile, .bashrc, .zprofileutt.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Atsvaidziniet konfigurāciju, restartējot termināļa sesiju vai palaižot avotu [ceļš uz pro]file],
piemampfails, avots ~/.bashrc. Tagad jūs varat palaist get_idf, lai iestatītu vai atsvaidzinātu esp-idf vidi jebkurā termināļa sesijā. Tehniski jūs varat pievienot export.sh savam shellns profile tieši; tomēr tas nav ieteicams. To darot, IDF virtuālā vide tiek aktivizēta katrā termināļa sesijā (tostarp tajās, kurās IDF nav nepieciešams), tādējādi zaudējot virtuālās vides mērķi un, iespējams, ietekmējot citu programmatūru.
5. solis. Pirmie soļi darbā ar ESP-IDF. Tā kā visas prasības ir izpildītas, nākamā tēma palīdzēs jums sākt savu pirmo projektu. Šī rokasgrāmata palīdzēs jums veikt pirmos soļus, izmantojot ESP-IDF. Izpildiet šo rokasgrāmatu, lai sāktu jaunu projektu ESP32 un izveidotu, zibatmiņā ierakstītu un uzraudzītu ierīces izvadi.
Piezīme. Ja vēl neesat instalējis ESP-IDF, lūdzu, dodieties uz sadaļu Instalēšana un izpildiet norādījumus, lai iegūtu visu programmatūru, kas nepieciešama šīs rokasgrāmatas lietošanai.
Projekta sākšana Tagad esat gatavs sagatavot savu pieteikumu ESP32. Varat sākt ar getstarted/hello_world projektu no piem.amples direktorijā ESP-IDF.
Svarīgi: ESP-IDF būvēšanas sistēma neatbalsta atstarpes ceļos uz ESP-IDF vai projektiem.
Kopējiet projektu get-started/hello_world uz ~/esp direktoriju:
Espressif sistēmas
38 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Piezīme: Pastāv virkne piemēruample projekti bijušajāamples direktorijā ESP-IDF. Jūs varat kopēt jebkuru projektu tādā pašā veidā, kā parādīts iepriekš, un palaist to. Ir iespējams arī būvēt exampfailus uz vietas, vispirms tos nekopējot.
Pievienojiet ierīci Tagad pievienojiet ESP32 plati datoram un pārbaudiet, kurā seriālajā portā plate ir redzama. Seriālajiem portiem ir šādi nosaukumu modeļi:
· Linux: sākot ar /dev/tty · macOS: sākot ar /dev/cu. Ja neesat pārliecināts, kā pārbaudīt seriālā porta nosaukumu, sīkāku informāciju skatiet sadaļā Seriālā savienojuma izveide ar ESP32.
Piezīme. Saglabājiet porta nosaukumu, jo tas būs nepieciešams nākamajās darbībās.
Konfigurējiet savu projektu Dodieties uz savu hello_world direktoriju, iestatiet ESP32 kā mērķi un palaidiet projekta konfigurācijas utilītu menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Pēc jauna projekta atvēršanas vispirms jāiestata mērķis, izmantojot komandu idf.py set-target esp32. Ņemiet vērā, ka šajā procesā tiks notīrītas un inicializētas esošās projekta versijas un konfigurācijas, ja tādas ir. Mērķi var saglabāt vides mainīgajā, lai vispār izlaistu šo darbību. Papildinformāciju skatiet sadaļā Mērķa mikroshēmas atlasīšana: set-target. Ja iepriekšējās darbības ir veiktas pareizi, parādās šāda izvēlne:
17. att.: Projekta konfigurācija — sākuma logs. Šajā izvēlnē varat iestatīt projektam specifiskus mainīgos, piemēram, Wi-Fi tīkla nosaukumu un paroli, procesora ātrumu utt. Projekta iestatīšanu ar menuconfig var izlaist, ja tiek izmantots hello_worldp, jo šī piemēraample skrien ar
Espressif sistēmas
39 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
noklusējuma konfigurācija.
Uzmanību: Ja izmantojat ESP32-DevKitC plati ar ESP32-SOLO-1 moduli vai ESP32-DevKitM-1 plati ar ESP32-MIN1-1(1U) moduli, lūdzu, pirms ex mirgošanas iespējojiet vienkodola režīmu (CONFIG_FREERTOS_UNICORE) izvēlnē config.amples.
Piezīme: Izvēlnes krāsas jūsu terminālī var atšķirties. Izskatu var mainīt ar opciju –style. Lai iegūtu papildinformāciju, lūdzu, palaidiet idf.py menuconfig –help.
Ja izmantojat kādu no atbalstītajām izstrādes platēm, varat paātrināt izstrādi, izmantojot plates atbalsta pakotni. Plašāku informāciju skatiet sadaļā Papildu padomi.
Izveidojiet projektu Izveidojiet projektu, palaižot:
idf.py build
Šī komanda apkopos lietojumprogrammu un visus ESP-IDF komponentus, pēc tam ģenerēs sāknēšanas ielādētāju, nodalījuma tabulu un lietojumprogrammu bināros failus.
$ idf.py build Tiek palaista cmake direktorijā /path/to/hello_world/build Tiek izpildīta komanda “cmake -G Ninja –warn-unitialized /path/to/hello_world”… Brīdinājums par neinicializētām vērtībām. — Atrasts Git: /usr/bin/git (atrasta versija “2.17.0”) — Konfigurācijas dēļ tiek veidots tukšs aws_iot komponents — Komponentu nosaukumi: … — Komponentu ceļi: …
… (vairāk sistēmas izveides izvades rindu)
[527/527] Ģenerē hello_world.bin esptool.py v2.3.1
Projekta būvēšana pabeigta. Lai veiktu pārprogrammēšanu, palaidiet šo komandu: ../../../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 vai palaidiet 'idf.py -p PORT flash'.
Ja kļūdu nav, būvēšana tiks pabeigta, ģenerējot programmaparatūras bināro failu .bin files.
Pārvietojiet tikko izveidotos bināros failus (bootloader.bin, partition-table.bin un hello_world.bin) uz savas ESP32 plates, palaižot:
idf.py -p PORTS [-b BAUD] zibspuldze
Aizstājiet PORT ar savas ESP32 plates seriālā porta nosaukumu. Varat arī mainīt mirgojošās ierīces datu pārraides ātrumu, aizstājot BAUD ar nepieciešamo datu pārraides ātrumu. Noklusējuma datu pārraides ātrums ir 460800. Plašāku informāciju par idf.py argumentiem skatiet idf.py failā.
Piezīme. Opcija flash automātiski veido un instalē projektu, tāpēc idf.py build palaišana nav nepieciešama.
Espressif sistēmas
40 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Radušās problēmas zibspuldzes laikā? Ja, izpildot norādīto komandu, redzat tādas kļūdas kā "Neizdevās savienoties ar serveri", tam var būt vairāki iemesli. Viens no iemesliem varētu būt problēmas, ar kurām saskaras esptool.py — utilīta, ko izsauc būvēšanas sistēma, lai atiestatītu mikroshēmu, mijiedarbotos ar ROM sāknēšanas programmu un zibatmiņu programmaparatūrai. Viens vienkāršs risinājums, ko varat izmēģināt, ir manuāla atiestatīšana, kas aprakstīta tālāk, un, ja tas nepalīdz, plašāku informāciju par iespējamām problēmām varat atrast sadaļā Problēmu novēršana.
esptool.py automātiski atiestata ESP32, aktivizējot USB-seriālā pārveidotāja mikroshēmas, piemēram, FTDI vai CP210x, DTR un RTS vadības līnijas (plašāku informāciju skatiet sadaļā Seriālā savienojuma izveide ar ESP32). DTR un RTS vadības līnijas savukārt ir savienotas ar ESP32 GPIO0 un CHIP_PU (EN) pieslēgvietām, tādējādi mainot skaļumu.tagDTR un RTS līmeņi palaidīs ESP32 programmaparatūras lejupielādes režīmā. Kā piemēru var minētampPiemēram, pārbaudiet ESP32 DevKitC izstrādes plates shēmu.
Kopumā ar oficiālajām esp-idf izstrādes platēm nevajadzētu rasties problēmām. Tomēr esptool.py nevar automātiski atiestatīt aparatūru šādos gadījumos:
· Jūsu aparatūrai nav DTR un RTS līniju, kas savienotas ar GPIO0 un CHIP_PU · DTR un RTS līnijas ir konfigurētas atšķirīgi · Šādu seriālo vadības līniju vispār nav
Atkarībā no jūsu aparatūras veida, iespējams, ka ESP32 plati var manuāli iestatīt programmaparatūras lejupielādes režīmā (atiestatīt).
· Espressif ražotajām izstrādes platēm šo informāciju var atrast attiecīgajās darba sākšanas rokasgrāmatās vai lietotāja rokasgrāmatās. Piemēram,ampPiemēram, lai manuāli atiestatītu ESP-IDF izstrādes plati, turiet nospiestu sāknēšanas pogu (GPIO0) un nospiediet EN pogu (CHIP_PU).
· Cita veida aparatūrai mēģiniet novilkt GPIO0.
Normāla darbība Mirgojot, redzēsiet izvades žurnālu, kas ir līdzīgs šim:
... 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 Seriālais ports /dev/ttyUSB0 Savienojas…….._ Čips ir ESP32D0WDQ6 (0. versija) Funkcijas: WiFi, BT, divkodolu procesors, kodēšanas shēma Nav Crystal ir 40MHz MAC: 24:0a:c4:05:b9:14 Notiek stub augšupielāde… Stubs darbojas… Stubs darbojas… Maina datu pārraides ātrumu uz 460800 Mainīts. Zibatmiņas izmēra konfigurēšana… Saspiesti 3072 baiti līdz 103… Rakstīšana ar ātrumu 0x00008000… (100 %) Ierakstīti 3072 baiti (103 saspiesti) ar ātrumu 0x00008000 0.0 sekundēs (faktiskais ātrums 5962.8 kbit/s)… Datu jaucējkods pārbaudīts. Saspiesti 26096 baiti līdz 15408… Rakstīšana ar ātrumu 0x00001000… (100 %) Ierakstīti 26096 baiti (15408 saspiesti) ar ātrumu 0x00001000 0.4 sekundēs (faktiskais ātrums 546.7 kbit/s)… Datu jaucējkods pārbaudīts. Saspiesti 147 104 baiti līdz 77 364… Rakstīšana ar ciparu kodu 0x00010000… (20 %) Rakstīšana ar ciparu kodu 0x00014000… (40 %) Rakstīšana ar ciparu kodu 0x00018000… (60 %) Rakstīšana ar ciparu kodu 0x0001c000… (80 %)
(turpinājums nākamajā lapā)
Espressif sistēmas
41 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
(turpinājums no iepriekšējās lappuses) Rakstot ar ātrumu 0x00020000… (100 %) Uzrakstīti 147104 baiti (77364 saspiesti) ar ātrumu 0x00010000 1.9 sekundēs (faktiskais ātrums 615,5 kbit/s)… Datu hešs pārbaudīts.
Notiek aiziešana... Cietā atiestatīšana, izmantojot RTS tapu... Gatavs
Ja līdz zibatmiņas procesa beigām problēmu nav, plate tiks pārstartēta un startēs theohello_worldpapplication. Ja vēlaties izmantot Eclipse vai VS Code IDE, nevis palaist idf.py, skatiet Eclipse spraudni, VSCode paplašinājumu.
Izvades uzraudzība Lai pārbaudītu, vai ohello_worldpis patiešām darbojas, ierakstiet idf.py -p PORT monitor (neaizmirstiet aizstāt PORT ar seriālā porta nosaukumu). Šī komanda palaiž IDF Monitor lietojumprogrammu:
$ idf.py -p monitors Tiek palaists idf_monitor direktorijā […]/esp/hello_world/build Izpilda “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor ieslēgts 115200 —– Iziet: Ctrl+] | Izvēlne: Ctrl+T | Palīdzība: Ctrl+T, kam seko Ctrl+H –ets 2016. gada 8. jūnijs 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) sākums 2016. gada 8. jūnijs 00:22:57 …
Pēc startēšanas un diagnostikas žurnālu ritināšanas uz augšu jums vajadzētu redzēt lietojumprogrammas izdrukātu tekstu oHello world!p.
... Sveika, pasaule! Restartēšana pēc 10 sekundēm… Šī ir esp32 mikroshēma ar 2 centrālā procesora kodoliem, WiFi/BT/BLE, silīcija 1. versija, 2 MB ārējā zibatmiņa Minimālais brīvais atmiņas apjoms: 298968 baiti Restartēšana pēc 9 sekundēm… Restartēšana pēc 8 sekundēm… Restartēšana pēc 7 sekundēm…
Lai izietu no IDF monitora, izmantojiet īsinājumtaustiņu Ctrl+]. Ja IDF monitors neizdodas neilgi pēc augšupielādes vai ja iepriekš minēto ziņojumu vietā redzat nejaušus atkritumus, kas līdzīgi tālāk norādītajiem, jūsu plate, visticamāk, izmanto 26 MHz kristālu. Lielākā daļa izstrādes plates konstrukciju izmanto 40 MHz, tāpēc ESP-IDF izmanto šo frekvenci kā noklusējuma vērtību.
Ja rodas šāda problēma, rīkojieties šādi:
1. Izejiet no monitora. 2. Atgriezieties menuconfig. 3. Dodieties uz Component config > Hardware Settings > Main XTAL Config > Main XTAL
frekvenci, pēc tam nomainiet CONFIG_XTAL_FREQ_SEL uz 26 MHz. 4. Pēc tam vēlreiz izveidojiet un atjauniniet lietojumprogrammu.
Espressif sistēmas
42 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Pašreizējā ESP-IDF versijā galvenās XTAL frekvences, ko atbalsta ESP32, ir šādas:
· 26 MHz · 40 MHz
Piezīme. Veidošanu, zibatmiņu un uzraudzību var apvienot vienā solī, palaižot: idf.py -p PORT flash monitor
Skatiet arī: · IDF monitors, lai iegūtu ērtus īsinājumtaustiņus un plašāku informāciju par IDF monitora lietošanu. · idf.py, lai iegūtu pilnīgu informāciju par idf.py komandām un opcijām.
Tas ir viss, kas jums nepieciešams, lai sāktu darbu ar ESP32! Tagad jūs esat gatavs izmēģināt citus eksemplārus.ampvai arī ķerieties pie savu lietojumprogrammu izstrādes.
Svarīgi: Daži no bijušajiemampfaili neatbalsta ESP32, jo nepieciešamā aparatūra nav iekļauta ESP32, tāpēc to nevar atbalstīt. Ja veidojat examplūdzu, pārbaudiet README failu file Atbalstīto mērķu tabulai. Ja tāda ir, ieskaitot ESP32 mērķi, vai tabula vispār nepastāv, tad exampTas darbosies ar ESP32.
Papildu padomi
Atļauju problēmas /dev/ttyUSB0 Dažās Linux distribūcijās, pārprogrammējot ESP32, var tikt parādīts kļūdas ziņojums "Neizdevās atvērt portu /dev/ttyUSB0". To var atrisināt, pievienojot pašreizējo lietotāju zvanīšanas grupai.
Python saderība ESP-IDF atbalsta Python 3.7 vai jaunāku versiju. Ieteicams jaunināt operētājsistēmu uz jaunāku versiju, kas atbilst šai prasībai. Citas iespējas ietver Python instalēšanu no pirmkoda vai Python versiju pārvaldības sistēmas, piemēram, pyenv, izmantošanu.
Sāciet ar plates atbalsta pakotni. Lai paātrinātu prototipu izstrādi dažās izstrādes platēs, varat izmantot plates atbalsta pakotnes (BSP), kas padara konkrētas plates inicializēšanu tikpat vienkāršu kā dažus funkciju izsaukumus. BSP parasti atbalsta visus izstrādes platē nodrošinātos aparatūras komponentus. Papildus kontaktu izvietojuma definīcijai un inicializācijas funkcijām BSP tiek piegādāts ar draiveriem ārējiem komponentiem, piemēram, sensoriem, displejiem, audio kodekiem utt. BSP tiek izplatīti, izmantojot IDF komponentu pārvaldnieku, tāpēc tos var atrast IDF komponentu reģistrā. Šeit ir piemērs.ampInstrukcija, kā savam projektam pievienot ESP-WROVER-KIT BSP: idf.py add-dependency esp_wrover_kit
Vairāk exampBSP lietošanas veidu var atrast BSP piemērā.amples mape.
Padoms: ESP-IDF atjaunināšana. Ieteicams laiku pa laikam atjaunināt ESP-IDF, jo jaunākas versijas novērš kļūdas un/vai nodrošina jaunas funkcijas. Lūdzu, ņemiet vērā, ka katrai ESP-IDF galvenajai un mazākajai laidiena versijai ir saistīts atbalsta periods, un, kad viena laidiena atzara tuvojas darbības laika beigām (EOL), visiem lietotājiem ieteicams jaunināt savus projektus uz jaunākiem ESP-IDF laidieniem. Lai uzzinātu vairāk par atbalsta periodiem, skatiet sadaļu ESP-IDF versijas.
Espressif sistēmas
43 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
1. nodaļa. Sākšana
Vienkāršākais veids, kā veikt atjaunināšanu, ir izdzēst esošo mapi esp-idf un klonēt to vēlreiz, it kā veicot sākotnējo instalēšanu, kas aprakstīta 2. darbībā. Iegūstiet ESP-IDF. Vēl viens risinājums ir atjaunināt tikai to, kas ir mainījies. Atjaunināšanas procedūra ir atkarīga no izmantotās ESP-IDF versijas. Pēc ESP-IDF atjaunināšanas vēlreiz izpildiet instalēšanas skriptu, ja jaunajai ESP-IDF versijai ir nepieciešamas dažādas rīku versijas. Skatiet norādījumus 3. darbībā. Iestatiet rīkus. Kad jaunie rīki ir instalēti, atjauniniet vidi, izmantojot eksportēšanas skriptu. Skatiet norādījumus 4. darbībā. Iestatiet vides mainīgos.
Saistītie dokumenti · Seriālā savienojuma izveide ar ESP32 · Eclipse spraudnis · VSCode paplašinājums · IDF monitors
1.4 Izveidojiet savu pirmo projektu
Ja jums jau ir instalēts ESP-IDF un neizmantojat IDE, varat izveidot savu pirmo projektu no komandrindas, sekojot norādījumiem “Sākt projektu operētājsistēmā Windows” vai “Sākt projektu operētājsistēmās Linux un macOS”.
1.5 ESP-IDF atinstalēšana
Ja vēlaties noņemt ESP-IDF, lūdzu, izpildiet norādījumus par ESP-IDF atinstalēšanu.
Espressif sistēmas
44 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
2. nodaļa
API atsauce
2.1 API konvencijas
Šajā dokumentā ir aprakstītas konvencijas un pieņēmumi, kas ir kopīgi ESP-IDF lietojumprogrammu programmēšanas saskarnēm (API). ESP-IDF nodrošina vairāku veidu programmēšanas saskarnes:
· C funkcijas, struktūras, uzskaitījumi, tipu definīcijas un priekšapstrādātāja makro, kas deklarētas publiskajā galvenē fileESPIDF komponentu. Dažādās programmēšanas rokasgrāmatas API uzziņu sadaļas lapās ir sniegti šo funkciju, struktūru un tipu apraksti.
· Izveidošanas sistēmas funkcijas, iepriekš definēti mainīgie un opcijas. Tās ir dokumentētas izveides sistēmas rokasgrāmatā. · Kconfig opcijas var izmantot kodā un izveides sistēmā (CMakeLists.txt). files. · Resursdatora rīki un to komandrindas parametri arī ir daļa no ESP-IDF saskarnes. ESP-IDF sastāv no komponentiem, kas īpaši rakstīti ESP-IDF, kā arī trešo pušu bibliotēkām. Dažos gadījumos trešās puses bibliotēkai tiek pievienots ESP-IDF specifisks apvalks, nodrošinot saskarni, kas ir vienkāršāka vai labāk integrēta ar pārējām ESP-IDF iespējām. Citos gadījumos lietojumprogrammu izstrādātājiem tiek piedāvāts trešās puses bibliotēkas oriģinālais API. Turpmākajās sadaļās ir paskaidroti daži ESP-IDF API aspekti un to lietošana.
2.1.1 kļūdu apstrāde
Lielākā daļa ESP-IDF API atgriež kļūdu kodus, kas definēti ar esp_err_t tipu. Plašāku informāciju par kļūdu apstrādes pieejām skatiet sadaļā Kļūdu apstrāde. Kļūdu kodu atsauce satur ESP-IDF komponentu atgriezto kļūdu kodu sarakstu.
2.1.2 Konfigurācijas struktūras
Svarīgi: Pareiza konfigurācijas struktūru inicializācija ir svarīga, lai lietojumprogramma būtu saderīga ar turpmākajām ESP-IDF versijām.
Lielākā daļa inicializācijas vai konfigurācijas funkciju ESP-IDF kā argumentu izmanto rādītāju uz konfigurācijas struktūru. Piemēram,ample:
45
2. nodaļa. API atsauce
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = “my_timer”
}; esp_timer_handle_t mans_timer; esp_err_t kļūda = esp_timer_create(&my_timer_args, &my_timer);
Inicializācijas funkcijas nekad nesaglabā rādītāju uz konfigurācijas struktūru, tāpēc struktūru var droši piešķirt kaudzē.
Lietojumprogrammai ir jāinicializē visi struktūras lauki. Tālāk norādītā informācija nav pareiza:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Nepareizi! Lauki .arg un .name nav inicializēti */ esp_timer_create(&my_timer_args, &my_timer);
Lielākā daļa ESP-IDF bijušoampStruktūras inicializācijai tiek izmantoti C99 noteikti inicializatori, jo tie nodrošina kodolīgu veidu, kā iestatīt lauku apakškopu un nulles inicializēt atlikušos laukus:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Pareizi, lauki .arg un .name ir inicializēti ar nulli */
};
C++ valoda neatbalsta norādīto inicializatoru sintaksi līdz C++20 versijai, tomēr GCC kompilators to daļēji atbalsta kā paplašinājumu. Izmantojot ESP-IDF API C++ kodā, varat apsvērt iespēju izmantot šādu modeli:
esp_timer_create_args_t my_timer_args = {}; /* Visi lauki ir inicializēti ar nulli */ my_timer_args.callback = &my_timer_callback;
Noklusējuma inicializatori
Dažām konfigurācijas struktūrām ESP-IDF nodrošina makro lauku noklusējuma vērtību iestatīšanai:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG izvēršas līdz norādītajam inicializatoram.
Tagad visiem laukiem ir iestatītas noklusējuma vērtības. Jebkuru lauku joprojām var modificēt: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Ieteicams izmantot noklusējuma inicializētāja makro, ja tie ir paredzēti konkrētai konfigurācijas struktūrai.
2.1.3 Privātās API
Noteikta galvene fileESP-IDF satur API, kas paredzēti izmantošanai tikai ESP-IDF pirmkodā, nevis lietojumprogrammās. Šāda galvene filebieži vien to nosaukumā vai ceļā ir ietverts private vai esp_private. Daži komponenti, piemēram, hal, satur tikai privātas API. Privātās API var tikt noņemtas vai mainītas nesaderīgā veidā starp nelieliem vai ielāpu izlaidumiem.
2.1.4 Komponenti piem.ample projektiem
ESP-IDF bij.ampFailos ir iekļauti dažādi projekti, kas demonstrē ESP-IDF API izmantošanu. Lai samazinātu koda dublēšanos piemērāampkomponentos ir definēti daži izplatīti palīgi, kurus izmanto vairākas piemērasamples.
Espressif sistēmas
46 Iesniegt dokumenta atsauksmi
Izlaidums v5.0.9
2. nodaļa. API atsauce
Tas ietver komponentus, kas atrodas
Dokumenti / Resursi
![]() |
Espressif Systems ESP32 Dev Kitc izstrādes plate [pdfLietotāja rokasgrāmata ESP32 Dev Kitc izstrādes plate, ESP32, Dev Kitc izstrādes plate, Kitc izstrādes plate, Izstrādes plate, Plate |
