ESP32 Dev Kitc İnkişaf Şurası
Məhsul haqqında məlumat
Spesifikasiyalar
- Məhsul: ESP32
- Proqramlaşdırma bələdçisi: ESP-IDF
- Buraxılış versiyası: v5.0.9
- İstehsalçı: Espressif Systems
- Buraxılış tarixi: 16 may 2025-cü il
Məhsuldan İstifadə Təlimatları
1. Başlayın
ESP32 ilə başlamazdan əvvəl, ilə tanış olun
aşağıdakı:
1.1 Giriş
Əsas funksiyaları və imkanları haqqında məlumat əldə edin
ESP32.
1.2 Nə lazımdır
Lazımi avadanlıq və proqram təminatının olduğundan əmin olun:
- Avadanlıq: Tələb olunan avadanlıqların siyahısını yoxlayın
komponentlər. - Proqram təminatı: Lazım olan proqramı quraşdırın
komponentlər.
1.3 Quraşdırma
IDE-ni quraşdırmaq və quraşdırmaq üçün bu addımları yerinə yetirin
mühit:
- IDE: üçün tövsiyə olunan IDE-ni quraşdırın
ESP32-nin proqramlaşdırılması. - Əl ilə quraşdırma: Əl ilə qurun
lazım olduqda mühit.
1.4 İlk Layihənizi Yaradın
ESP32 istifadə edərək ilkin layihənizi yaradın və qurun.
1.5 ESP-IDF proqramını silin
Lazım gələrsə, ESP-IDF-ni kompüterinizdən necə silməyi öyrənin
sistemi.
2. API arayışı
Haqqında ətraflı məlumat üçün API sənədlərinə baxın
proqram protokolları, səhvlərin idarə edilməsi və konfiqurasiya
strukturlar.
Tez-tez verilən suallar (FAQ)
S: ESP32 ilə ümumi problemləri necə həll edə bilərəm?
A: Proqramlaşdırma təlimatında nasazlıqların aradan qaldırılması bölməsinə baxın
və ya istehsalçıya baş çəkin webdəstək resursları üçün sayt.
S: ESP-IDF-ni digər mikro nəzarətçilərlə istifadə edə bilərəmmi?
A: ESP-IDF xüsusi olaraq ESP32 üçün nəzərdə tutulub, lakin tapa bilərsiniz
digər Espressif mikro nəzarətçiləri ilə uyğunluq.
ESP32
ESP-IDF Proqramlaşdırma Bələdçisi
Buraxılış v5.0.9 Espressif Systems 16 may 2025-ci il
Mündəricat
Mündəricat
i
1 Başlayın
3
1.1 Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Sizə nə lazımdır. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Avadanlıq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Proqram təminatı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Quraşdırma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Əl ilə quraşdırma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 İlk Layihənizi Yaradın. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 ESP-IDF-ni silin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 API Referansı
45
2.1 API Konvensiyaları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Səhvlərin idarə edilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Konfiqurasiya strukturları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 Şəxsi API-lər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 məsələn, komponentləramplayihələr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 API Sabitliyi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Tətbiq Protokolları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.1 ASIO portu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 ESP HTTP Müştərisi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 ESP Yerli Nəzarət. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 ESP Serial Slave Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 ESP x509 Sertifikat Paketi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 HTTP Serveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 HTTPS Serveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 ICMP Echo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 mDNS Xidməti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 IP Şəbəkə Qatı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 Bluetooth API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® Ümumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® Aşağı Enerji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 Nəzarətçi və HCI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 NimBLE əsaslı host API-ləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Xəta Kodlarına İstinad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 Şəbəkə API-ləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 Ethernet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 Mövzu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP Şəbəkə Qatı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Tətbiq təbəqəsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Periferik API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Analoqdan Rəqəmə Çevirici (ADC) Oneshot Rejim Sürücüsü . . . . . . . . . . . . . . . . . 977 2.6.2 Analoqdan Rəqəmə Çevirici (ADC) Davamlı Rejim Sürücüsü . . . . . . . . . . . . . . . 986 2.6.3 Analoqdan Rəqəmə Çevirici (ADC) Kalibrləmə Sürücüsü . . . . . . . . . . . . . . . . . . . 993 2.6.4 Saat ağacı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Rəqəmsaldan Analoqa çevirici (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO & RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Ümumi Məqsədli Taymer (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Interintegrated Circuit (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Inter-IC Sound (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED İdarəetmə (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Mühərrikə Nəzarət Pulse Eni Modulyatoru (MCPWM) . . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Nəbz Sayğacı (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Uzaqdan İdarəetmə Ötürücü (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD Pull-up Tələbləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC Host Sürücüsü. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI Host Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO Card Slave Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Siqma-Delta Modulyasiyası (SDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI Master Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI Slave Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Təhlükəsiz Element) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Toxunma Sensoru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 İki Telli Avtomobil İnterfeysi (TWAI) . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Universal Asinxron Qəbuledici/Ötürücü (UART) . . . . . . . . . . . . . . . . . . 1317 2.7 Layihə Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Layihənin Konfiqurasiyası Menyu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 sdkconfig.defaults istifadə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig Formatlaşdırma Qaydaları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kconfig Seçimlərinin Geriyə Uyğunluğu. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Konfiqurasiya Seçimlərinə İstinad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Təminat API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokol Əlaqəsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Vahid Təminat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Wi-Fi Təminatı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Storage API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Filesistem dəstəyi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 İstehsalat Kommunal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Qeyri-uçucu Yaddaş Kitabxanası . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS Partition Generator Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC Sürücü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filesistemi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtual filesistem komponenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Wear Leveling API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Sistem API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Proqram Şəkil Formatı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Tətbiq Səviyyəsinin İzlənməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Xarici yığınla zəng funksiyası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Chip Revision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konsol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Xəta kodları və köməkçi funksiyalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Hadisə Loop Kitabxanası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Üstview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Əlavə Xüsusiyyətlər) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Yığın Yaddaşın Ayrılması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Yığın Yaddaş Sazlama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Yüksək Rezolyusiya Taymeri (ESP Taymeri) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Daxili və Qeyri-sabit API-lər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Prosessorlararası Zəng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Fasilələrin ayrılması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Giriş kitabxanası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Müxtəlif Sistem API-ləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Hava Yeniləmələri (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Performans Monitoru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Güc İdarəetmə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX Threads Dəstəyi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Təsadüfi ədədlərin yaradılması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Yuxu rejimləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC İmkanları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Sistem vaxtı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 himem ayırma API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP Coprocessor proqramlaşdırma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Gözətçi itləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 Hardware Reference
2167
3.1 Çip seriyalarının müqayisəsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 Əlaqədar Sənədlər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 API Bələdçiləri
2171
4.1 Tətbiq Səviyyəsinin İzlənməsi kitabxanası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 İş rejimləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 Konfiqurasiya Seçimləri və Asılılıqlar. . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 Bu Kitabxanadan Necə İstifadə Edilir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 Tətbiqin işə salınması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 İlk stage yükləyici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 saniyə stage yükləyici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 Proqramın işə salınması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® Aşağı Enerji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 Başlayın. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 Yükləyici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Yükləyicinin uyğunluğu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 Giriş Səviyyəsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 Zavod parametrlərinə sıfırlama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 Test Firmware-dən yükləmə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 Geriyə qayıt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 Gözətçi iti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 Yükləyicinin Ölçüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 Dərin Yuxudan sürətli yükləmə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 Xüsusi yükləyici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 Sistemin qurulması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 Quraşdırma sistemindən istifadə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 ÇıxışampLayihə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Layihə CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponent CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Komponent Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Preprosessorun tərifləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Komponent Tələbləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Layihənin əsas hissələrinin dəyişdirilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Yalnız Konfiqurasiya Komponentləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 CMake-in sazlanması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Məsample Komponent CMakeLists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Xüsusi sdkconfig defoltları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Flash arqumentləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Yükləyicinin qurulması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Saf CMake Komponentlərinin Yazılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Üçüncü Tərəf CMake Layihələrindən Komponentlərlə İstifadə . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Komponentlərlə əvvəlcədən qurulmuş kitabxanalardan istifadə . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Xüsusi CMake Layihələrində ESP-IDF-dən istifadə . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globbing & Artan Quraşdırmalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Sistem metaməlumatlarının qurulması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Sistemin daxili hissələrinin qurulması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 ESP-IDF GNU Make System-dən köçürmə . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Əsas boşaltma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfiqurasiyalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Əsas boşqabını flaşda saxlayın. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Əsas tullantıları UART-a çap edin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 Backtraces-də ROM funksiyaları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Tələb üzrə dəyişənlərin dempinqi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 espcoredump.py proqramının icrası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Dərin Yuxudan Oyanma Kətanları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Oyanma stubları üçün qaydalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Stubın həyata keçirilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Kodun RTC Yaddaşına Yüklənməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Məlumatların RTC Yaddaşına Yüklənməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC Oyanma stublarını yoxlayın. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Məsample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Xətaların idarə edilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Xəta kodları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Səhv kodlarının xəta mesajlarına çevrilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK makrosu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 MAKROLARI YOXLAYIN Məsamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Nümunələrlə işləmə xətası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ İstisnaları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 ESP-WIFI-MESH Konsepsiyaları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Şəbəkənin qurulması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Şəbəkənin idarə edilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Məlumatların ötürülməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Kanalların dəyişdirilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 Performans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Əlavə Qeydlər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Hadisələrin idarə edilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet və IP Hadisələri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Mesh Hadisələri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth hadisələri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Fatal Xətalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Çaxnaşma idarəedicisi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Reyestr Dump və Backtrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog Taymout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Guru Meditasiya Səhvləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Digər Fatal Səhvlər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Flaş Şifrələmə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Müvafiq eFuses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Flash Şifrələmə Prosesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Flash Şifrələmə Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Mümkün uğursuzluqlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 Flash Şifrələmə Vəziyyəti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Şifrələnmiş Flashda verilənlərin oxunması və yazılması . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Şifrələnmiş Flaşın Yenilənməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Flaş Şifrələmənin Deaktiv edilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Flash Şifrələmə Haqqında Əsas Nöqtələr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Flash Şifrələmə Məhdudiyyətləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Flash Şifrələmə və Təhlükəsiz Yükləmə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Qabaqcıl Xüsusiyyətlər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Texniki təfərrüatlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Avadanlıq Abstraksiya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Memarlıq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (Aşağı Səviyyə) Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Təchizat Abstraksiya Layeri) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Yüksək Səviyyəli Kesintilər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Kesinti səviyyələri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Qeydlər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Sazlama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Necə işləyir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 J-nin seçilməsiTAG Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 OpenOCD-nin qurulması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ESP32 Hədəfinin Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Sazlayıcının işə salınması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Sazlama Məsamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Mənbələrdən OpenOCD-nin yaradılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Məsləhətlər və qəribəliklər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Əlaqədar sənədlər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Bağlayıcı Skript Yaradılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Sürətli başlanğıc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Bağlayıcı Skript Yaradılması Daxili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Dəstəklənən API-lər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS Tapşırığı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 Dəstəyi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip xüsusi dəyişikliklər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 Performansın optimallaşdırılması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Yaddaş növləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (Data RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Təlimat RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (flaşdan icra edilən kod) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (flaşda saxlanılan məlumat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Yavaş yaddaş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC FAST yaddaşı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA Tələbləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 Yığındakı DMA Bufer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 OpenThread stekinin rejimləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 OpenThread Proqramını Necə Yazmaq olar. . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThread Sərhəd Routeri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Bölmə cədvəlləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Quraşdırılmış Bölmə Cədvəlləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Fərdi cədvəllərin yaradılması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 İkili bölmə cədvəlinin yaradılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Bölmə Ölçüsü Yoxlamaları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Bölmə cədvəlinin yanıb-sönməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Bölmə Aləti (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Performans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Performansı necə optimallaşdırmaq olar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Bələdçilər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF kalibrlənməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Qismən kalibrləmə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Tam kalibrləmə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Kalibrləmə yoxdur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY başlanğıc məlumatları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API İstinad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Təhlükəsiz yükləmə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Ümumi məlumat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Təhlükəsiz Yükləmə Prosesi Bitdiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Açarlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Yükləyicinin Ölçüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Təhlükəsiz yükləməni necə aktivləşdirmək olar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Yenidən Yandırılan Proqram Yükləyicisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Təhlükəsiz Yükləmə İmza Açarının Yaradılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Şəkillərin Uzaqdan İmzalanması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Təhlükəsiz Yükləmə Ən Yaxşı Təcrübələri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Texniki təfərrüatlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Secure Boot & Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Avadanlıq Təhlükəsiz Yükləməsiz İmzalanmış Proqram Doğrulaması. . . . . . . . . . . . . . . . . . 2478 4.24.13 Qabaqcıl Xüsusiyyətlər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Ümumi məlumat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Təhlükəsiz Yükləmə V2 Prosesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 İmza Bloku Formatı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Təhlükəsiz Doldurma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 İmza blokunun yoxlanması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Şəklin yoxlanması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Yükləyicinin Ölçüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 eFuse istifadəsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Təhlükəsiz Yükləmə V2-ni necə aktivləşdirmək olar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Secure Boot aktivləşdirildikdən sonra məhdudiyyətlər. . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Təhlükəsiz Yükləmə İmza Açarının Yaradılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 Şəkillərin Uzaqdan İmzalanması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Təhlükəsiz Yükləmə Ən Yaxşı Təcrübələr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Texniki təfərrüatlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Secure Boot & Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Avadanlıq Təhlükəsiz Yükləməsiz İmzalanmış Proqram Doğrulaması. . . . . . . . . . . . . . . . . . 2484 4.25.18 Qabaqcıl Xüsusiyyətlər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Xarici RAM üçün dəstək. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Aparat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Xarici operativ yaddaşın konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Məhdudiyyətlər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 İnsializasiya edilməməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Çip Reviziyaları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Thread Local Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Native API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Standart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Alətlər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows Quraşdırıcısı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF Komponent Meneceri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Yüklənə bilən alətlər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 ESP32-də vahid sınağı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Normal sınaq halları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Çox cihazlı sınaq halları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Multi-stage Test İşləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Müxtəlif hədəflər üçün sınaqlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Bina Vahidinin Test Tətbiqi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 İşləyən Vahid Testləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Keş Kompensasiya Taymeri ilə Zamanlama Kodu . . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 İstehza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Linux-da vahid sınağı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Daxili Proqram Testləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Linux Host-da IDF Vahid Testləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi Sürücü. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 Wi-Fi Xüsusiyyət Siyahısı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Wi-Fi Tətbiqini Necə Yazmaq olar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi API Xəta Kodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi API Parametrinin Başlanması . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wi-Fi Proqramlaşdırma Modeli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 Wi-Fi Hadisəsinin Təsviri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi Stansiyası Ümumi Ssenari . . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP Ümumi Ssenari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi Stansiyasının Qoşulması Ssenarisi . . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi Stansiyası Çoxlu AP tapıldıqda qoşulur. . . . . . . . . . . . . 2543 4.31.12 Wi-Fi Yenidən Qoşulun. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi İşarağı Vaxt Aşımı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 Wi-Fi Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Simsiz Şəbəkə İdarəetmə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Radio resursunun ölçülməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Sürətli BSS keçidi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi Enerjiyə qənaət rejimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wi-Fi Ötürmə qabiliyyəti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
4.31.21 Wi-Fi 80211 Paket Göndərmə . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi Sniffer Rejimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi Çoxlu Antenalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Wi-Fi Kanalının Dövlət Məlumatı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Wi-Fi Kanalı Dövlət Məlumatı Konfiqurasiya . . . . . . . . . . . . . . . . . . . . . . . . . 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 Fraqmenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS Qeydiyyatçısı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Wi-Fi Bufer İstifadəsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Wi-Fi Performansını Necə Təkmilləşdirmək olar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi Menuconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Problemlərin aradan qaldırılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Wi-Fi Təhlükəsizliyi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 Wi-Fi Təhlükəsizlik Xüsusiyyətləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Qorunan İdarəetmə Çərçivələri (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Şəxsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF birgəyaşayışı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Artıqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 ESP32 üçün dəstəklənən birgəyaşayış ssenarisi. . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Birgəyaşayış Mexanizmi və Siyasəti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Birgə yaşamaq xüsusiyyətindən necə istifadə etməli. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Təkrarlana bilən quruluşlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Təkrarlana bilməyən quruluşların səbəbləri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 ESP-IDF-də təkrarlana bilən quruluşların işə salınması . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Təkrarlana bilən quruluşlar necə əldə edilir. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Təkrarlana bilən quruluşlar və sazlama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Təkrarlana bilən quruluşlara hələ də təsir edən amillər. . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Aşağı Güc Rejimi İstifadəçi Təlimatı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578
5 Miqrasiya Bələdçisi
2579
5.1 ESP-IDF 5.x Miqrasiya Bələdçisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 4.4-dən 5.0-a keçid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 Kitabxanalar və Çərçivələr
2611
6.1 Bulud Çərçivələri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 AWS IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 Azure IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 Aliyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.6 Joylink IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 Tencent IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 Espressifns Çərçivələri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Espressif Audio İnkişaf Çərçivəsi. . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Espressif DSP Kitabxanası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 ESP-WIFI-MESH İnkişaf Çərçivəsi . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-ÜST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 ESP-IoT-Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 ESP-Protokolları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
viii
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
7 Töhfələr Bələdçisi
2615
7.1 Necə töhfə vermək olar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 Töhfə verməzdən əvvəl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 Çəkmə Sorğu Prosesi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 Hüquqi hissə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 Əlaqədar Sənədlər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Espressif IoT İnkişaf Çərçivə Stil Bələdçisi. . . . . . . . . . . . . . . . . . . . 2616
7.5.2 ESP-IDF Layihəsi üçün əvvəlcədən icra edilmiş Hook quraşdırın. . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Sənədləşdirmə Məcəlləsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 Yaradılması Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 API Sənədləşdirmə Şablonu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 Töhfəçi Müqaviləsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 Müəllif Hüququ Başlığı Bələdçisi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 Pytest Bələdçisi ilə ESP-IDF Testləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 ESP-IDF versiyaları
2645
8.1 Buraxılışlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 Hansı Versiyadan Başlamalıyam? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 Versiya sxemi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 Dəstək Müddətləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 Cari versiyanın yoxlanılması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Git İş axını. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 ESP-IDF-nin yenilənməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 Stabil buraxılışa yenilənmə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 Buraxılışdan əvvəlki versiyaya yenilənməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 Master Filialda yenilənmə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 Buraxılış filialına yenilənmə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 Resurslar
2651
9.1 PlatformIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 PlatformIO nədir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 Quraşdırma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 Konfiqurasiya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 Dərsliklər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 Layihə Məsamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Növbəti addımlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Faydalı Linklər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Müəllif Hüquqları və Lisenziyalar
2653
10.1 Proqram təminatının müəllif hüquqları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Mikroproqram Komponentləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Sənədləşdirmə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 ROM Mənbə Kodu Müəllif Hüquqları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Xtensa libhal MIT Lisenziyası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 TinyBasic Plus MIT Lisenziyası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 TJpgDec Lisenziyası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 Haqqında
2657
12 Dillər arasında keçid
2659
indeks
2661
indeks
2661
ix
x
Mündəricat
Bu, Espressif IoT Development Framework (esp-idf) üçün sənədlərdir. ESP-IDF ESP32, ESP32-S və ESP32-C Series SoC-lər üçün rəsmi inkişaf çərçivəsidir. Bu sənəd ESP32 SoC ilə ESP-IDF-dən istifadəni təsvir edir.
Başlayın
API Referansı
API Bələdçiləri
Espressif sistemləri
1 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Mündəricat
Espressif sistemləri
2 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1
Başlayın
Bu sənəd Espressif tərəfindən ESP32 çipinə əsaslanan aparat üçün proqram təminatı inkişaf mühitini qurmağınıza kömək etmək üçün nəzərdə tutulub. Bundan sonra sadə keçmişample menyu konfiqurasiyası üçün ESP-IDF-dən (Espressif IoT İnkişaf Çərçivəsi) necə istifadə edəcəyinizi, sonra ESP32 lövhəsində proqram təminatının qurulması və yanıb-söndürülməsi üçün sizə göstərəcək.
Qeyd: Bu, ESP-IDF-nin stabil v5.0.9 versiyası üçün sənədləşdirmədir. Digər ESP-IDF versiyaları da mövcuddur.
1.1 Giriş
ESP32 aşağıdakı funksiyaları özündə birləşdirən çip üzərində sistemdir: · Wi-Fi (2.4 GHz diapazonu) · Bluetooth · İkili yüksək performanslı Xtensa® 32-bit LX6 CPU nüvələri · Ultra Aşağı Güclü ko-prosessor · Çoxsaylı periferik qurğular
40 nm texnologiyası ilə təchiz edilmiş ESP32, səmərəli enerji istifadəsi, yığcam dizayn, təhlükəsizlik, yüksək performans və etibarlılıq üçün davamlı tələblərə cavab verməyə kömək edən möhkəm, yüksək inteqrasiya olunmuş platforma təqdim edir. Espressif proqram tərtibatçılarına ESP32 seriyalı avadanlığından istifadə edərək öz ideyalarını həyata keçirməyə kömək etmək üçün əsas aparat və proqram təminatı resurslarını təqdim edir. Espressif tərəfindən proqram təminatının hazırlanması çərçivəsi Wi-Fi, Bluetooth, enerjinin idarə edilməsi və bir sıra digər sistem xüsusiyyətləri ilə İnternet-Əşyalar (IoT) proqramlarının inkişafı üçün nəzərdə tutulub.
1.2 Nə lazımdır
1.2.1 Aparat
· ESP32 lövhəsi. · USB kabel – USB A / mikro USB B. · Windows, Linux və ya macOS ilə işləyən kompüter.
Qeyd: Hazırda bəzi inkişaf lövhələri USB Type C konnektorlarından istifadə edir. Lövhənizi birləşdirmək üçün düzgün kabeliniz olduğundan əmin olun!
Aşağıda sadalanan ESP32 rəsmi inkişaf lövhələrindən birinə sahibsinizsə, aparat haqqında ətraflı öyrənmək üçün linkə klikləyə bilərsiniz.
3
Fəsil 1. Başlayın
ESP32-DevKitS(-R)
Bu istifadəçi təlimatı Espressif tərəfindən istehsal olunan ESP32 əsaslı yanıb-sönən lövhə olan ESP32-DevKitS(-R) haqqında məlumat verir. ESP32-DevKitS(-R) iki lövhə adının birləşməsidir: ESP32-DevKitS və ESP32-DevKitS-R. S yaylar, R isə WROVER deməkdir.
ESP32-DevKitS
ESP32-DevKitS-R
Sənəd aşağıdakı əsas bölmələrdən ibarətdir: · Başlanğıc: Başlanğıc təmin edirview başlamaq üçün ESP32-DevKitS(-R) və aparat/proqram quraşdırma təlimatları. · Hardware Reference: ESP32-DevKitS(-R)ns avadanlığı haqqında daha ətraflı məlumat verir. · Əlaqəli Sənədlər: Əlaqədar sənədlərə keçidlər verir.
Başlanğıc Bu bölmə ESP32-DevKitS(-R) ilə necə işə başlamağı təsvir edir. Bu, ESP32-DevKitS(-R) haqqında bir neçə giriş bölməsi ilə başlayır, sonra Lövhəni necə yandırmaq olar bölməsi modulu ESP32-DevKitS(-R)-ə necə quraşdırmaq, onu hazırlamaq və proqram təminatını yandırmaq barədə təlimatları təqdim edir.
Bitdiview ESP32-DevKitS(-R) ESP32 üçün xüsusi olaraq hazırlanmış Espressifns flaş lövhəsidir. O, modulu enerji təchizatı və siqnal xətlərinə lehimləmədən ESP32 modulunu yandırmaq üçün istifadə edilə bilər. Quraşdırılmış modul ilə ESP32-DevKitS(-R) ESP32-DevKitC kimi mini inkişaf lövhəsi kimi də istifadə edilə bilər.
ESP32-DevKitS və ESP32-DevKitS-R lövhələri yalnız aşağıdakı ESP32 modullarına uyğunlaşmaq üçün yay sancaqlarının düzülüşündə fərqlənir.
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB və IPEX) ESP32-WROVER-B (PCB və IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Yuxarıdakı modullar haqqında məlumat üçün ESP32 Seriya Modullarına müraciət edin.
Komponentlərin təsviri
Espressif sistemləri
4 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Şəkil 1: ESP32-DevKitS – ön
Espressif sistemləri
Şəkil 2: ESP32-DevKitS-R – ön 5
Sənəd Əlaqəsini Göndərin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Əsas Komponent Yay Sancaqları 2.54 mm Dişi Başlıqlar
USB-to-UART Körpüsü LDO Mikro-USB Konnektoru/Mikro USB Portu EN Düymə Yükləmə Düyməsi
Güclü LED
Təsvir Modulu klikləyin. Sancaqlar modullarla təchiz olunmuş deşiklərə uyğun olacaq. Bu qadın başlıqlar bu lövhədə quraşdırılmış modulun sancaqlarına birləşdirilir. Qadın başlıqların təsviri üçün Başlıq Bloklarına müraciət edin. Tək çipli USB-UART körpüsü 3 Mbit/s-ə qədər ötürmə sürətini təmin edir.
5V-dən 3.3V-ə qədər aşağı düşmə voltage tənzimləyici (LDO).
USB interfeysi. Lövhə üçün enerji təchizatı, həmçinin kompüter və lövhə arasında əlaqə interfeysi.
Sıfırlama düyməsi.
Yükləmə düyməsi. Boot düyməsini basıb saxlamaq və sonra EN düyməsini sıxmaq serial port vasitəsilə mikroproqramı yükləmək üçün Firmware Download rejimini işə salır.
USB və ya enerji təchizatı lövhəyə qoşulduqda açılır.
Lövhəni necə yandırmaq olar ESP32-DevKitS(-R) cihazınızı işə salmazdan əvvəl, onun açıq-aşkar zədə əlamətləri olmadan yaxşı vəziyyətdə olduğundan əmin olun.
Tələb olunan Avadanlıq · Seçdiyiniz ESP32 modulu · USB 2.0 kabeli (Standart-A - Micro-B) · Windows, Linux və ya macOS ilə işləyən kompüter
Avadanlıq Quraşdırma Lütfən, seçdiyiniz modulu aşağıdakı addımlara uyğun olaraq ESP32-DevKitS(-R)-ə quraşdırın:
· Modulunuzu ESP32-DevKitS(-R) lövhəsinə yumşaq bir şəkildə qoyun. Modulunuzdakı deşiklərin lövhədəki yay sancaqları ilə düzləndiyinə əmin olun.
· Modulunuzu klik səsinə qədər lövhənin içərisinə basın. · Bütün yay sancaqlarının kastelli deşiklərə daxil olub-olmadığını yoxlayın. Bəzi yanlış hizalanmış yay sancaqları varsa,
onları cımbızla kəsilmiş deşiklərə yerləşdirin.
Proqram Quraşdırması
Üstünlük Verilən Metod ESP-IDF inkişaf çərçivəsi ikili faylları ESP32-DevKitS(-R) üzərində yandırmağın üstünlük verilən üsulunu təmin edir. Lütfən, Başlayın bölməsinə keçin, burada Bölmə Quraşdırma tez bir zamanda inkişaf mühitini qurmağınıza kömək edəcək və daha sonra köhnə tətbiqi flaş edəcəkampESP32-DevKitS(-R)-ə daxil olun.
Alternativ Metod Alternativ olaraq, Windows istifadəçiləri Flash Yükləmə Alətindən istifadə edərək ikili faylları yandıra bilərlər. Sadəcə onu endirin, arxivdən çıxarın və doc qovluğundakı təlimatlara əməl edin.
Qeyd: 1. Binar sönmək üçün files, ESP32 Firmware Download rejiminə təyin edilməlidir. Bu, avtomatik olaraq flaş aləti ilə və ya Yükləmə düyməsini basıb EN düyməsini sıxmaqla edilə bilər. 2. İkili yanıb-sönəndən sonra files, Flash Yükləmə Aləti ESP32 modulunuzu yenidən işə salır və defolt olaraq yandırılmış proqramı işə salır.
Lövhə Ölçüləri Məzmun və Qablaşdırma
Espressif sistemləri
6 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın Şəkil 3: ESP32-DevKitS lövhə ölçüləri – geri
Espressif sistemləri
Şəkil 4: ESP32-DevKitS-R lövhə ölçüləri – arxa 7
Sənəd Əlaqəsini Göndərin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Pərakəndə sifarişlər Əgər bir neçə samples, hər bir ESP32-DevKitS(-R) fərdi paketdə ya antistatik çantada, ya da pərakəndə satıcıdan asılı olaraq hər hansı qablaşdırmada gəlir. Pərakəndə sifarişlər üçün https://www.espressif.com/en/contact-us/get-s saytına daxil olun.amples.
Topdansatış Sifarişlər Əgər toplu sifariş etsəniz, lövhələr böyük karton qutularda gəlir. Topdan sifarişlər üçün https://www.espressif.com/en/contact-us/sales-questions ünvanına daxil olun.
Aparat Referansı
Blok diaqramı Aşağıdakı blok diaqram ESP32-DevKitS(-R) komponentlərini və onların qarşılıqlı əlaqələrini göstərir.
Şəkil 5: ESP32-DevKitS(-R) (böyütmək üçün klikləyin)
Enerji Təchizatı Seçimləri Lövhəni enerji ilə təmin etməyin üç qarşılıqlı eksklüziv yolu var: · Mikro USB portu, standart enerji təchizatı · 5V və GND başlıq sancaqları · 3V3 və GND başlıq sancaqları
Birinci seçimdən istifadə etmək tövsiyə olunur: mikro USB port.
Espressif sistemləri
.
Etiket siqnalı
L1 3V3 VDD 3V3
L2 EN CHIP_PU
L3 VP SENSOR_VP
L4 VN SENSOR_VN
L5 34
GPIO34
L6 35
GPIO35
L7 32
GPIO32
L8 33
GPIO33
növbəti səhifədə davam edir
8 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Cədvəl 1 əvvəlki səhifədən davam edir
.
Etiket siqnalı
L9 25
GPIO25
L10 26
GPIO26
L11 27
GPIO27
L12 14
GPIO14
L13 12
GPIO12
L14 GND GND
L15 13
GPIO13
L16 D2 SD_DATA2
L17 D3 SD_DATA3
L18 CMD SD_CMD
L19 5V
Xarici 5V
R1 GND GND
R2 23
GPIO23
R3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
R6 21
GPIO21
R7 GND GND
R8 19
GPIO19
R9 18
GPIO18
R10 5
GPIO5
R11 17
GPIO17
R12 16
GPIO16
R13 4
GPIO4
R14 0
GPIO0
R15 2
GPIO2
R16 15
GPIO15
R17 D1 SD_DATA1
R18 D0 SD_DATA0
R19 CLK SD_CLK
Başlıq Blokları Başlıq bloklarının təsviri üçün Komponentlərin Təsvirinə baxın.
Əlaqədar Sənədlər
· ESP32-DevKitS(-R) Sxematikası (PDF) · ESP32 Məlumat Cədvəli (PDF) · ESP32-WROOM-32 Məlumat Cədvəli (PDF) · ESP32-WROOM-32D & ESP32-WROOM-32U Məlumat Vərəqi (PDF) · ESP32-SOLODFRO-1W Datasheet (PDF) · ESP32-WROVER-B Datasheet (PDF) · ESP Product Selector
ESP32-DevKitM-1
Bu istifadəçi təlimatı sizə ESP32-DevKitM-1 ilə başlamağa kömək edəcək və həmçinin daha ətraflı məlumat verəcəkdir.
ESP32-DevKitM-1 Espressif tərəfindən istehsal olunan ESP32-MINI-1(1U) əsaslı inkişaf lövhəsidir. Giriş/çıxış pinlərinin çoxu asan əlaqə üçün hər iki tərəfdəki pin başlıqlarına parçalanır. İstifadəçilər ya periferiyaları keçid naqilləri ilə birləşdirə və ya ESP32-DevKitM-1-i çörək lövhəsinə quraşdıra bilərlər.
Espressif sistemləri
9 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
ESP32-DevKitM-1 – ön
ESP32-DevKitM-1 – izometrik
Sənəd aşağıdakı əsas bölmələrdən ibarətdir: · Başlanğıc: Bitməni təmin edirview başlamaq üçün ESP32-DevKitM-1 və aparat/proqram quraşdırma təlimatları. · Avadanlıq arayışı: ESP32-DevKitM-1ns aparatı haqqında daha ətraflı məlumat verir. · Əlaqəli Sənədlər: Müvafiq sənədlərə keçidlər verir.
Başlanğıc Bu bölmə ESP32-DevKitM-1 ilə necə işə başlamağı təsvir edir. Bu, ESP32-DevKitM-1 haqqında bir neçə giriş bölməsi ilə başlayır, daha sonra Tətbiq İnkişafına Başlanğıc Bölməsi ilkin aparat quraşdırmasının və sonra ESP32-DevKitM-1-də mikroproqramın necə yandırılmasına dair təlimatları təqdim edir.
Bitdiview Bu, xüsusiyyətləri olan kiçik və rahat inkişaf lövhəsidir:
· ESP32-MINI-1 və ya ESP32-MINI-1U modulu · Həmçinin lövhə üçün enerji təchizatı təmin edən USB-dən seriyaya proqramlaşdırma interfeysi · pin başlıqları · Firmware yükləmə rejiminin sıfırlanması və aktivləşdirilməsi üçün düymələr · bir neçə digər komponentlər
Tərkibi və Qablaşdırma
Pərakəndə sifarişlər Əgər bir neçə samples, hər bir ESP32-DevKitM-1 fərdi paketdə ya antistatik çantada, ya da satıcınızdan asılı olaraq hər hansı qablaşdırmada gəlir.
Pərakəndə sifarişlər üçün https://www.espressif.com/en/contact-us/get-s saytına daxil olun.amples.
Topdansatış Sifarişlər Əgər toplu sifariş etsəniz, lövhələr böyük karton qutularda gəlir. Topdan sifarişlər üçün https://www.espressif.com/en/contact-us/sales-questions ünvanına daxil olun.
Komponentlərin təsviri Aşağıdakı şəkil və aşağıdakı cədvəl ESP32-DevKitM-1 lövhəsinin əsas komponentlərini, interfeyslərini və idarəetmə vasitələrini təsvir edir. ESP32-MINI-1 modulu olan lövhəni keçmiş olaraq götürürükample aşağıdakı bölmələrdə.
Espressif sistemləri
10 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Şəkil 6: ESP32-DevKitM-1 – ön
Əsas Komponent Bort modulu
5 V - 3.3 V LDO yükləmə düyməsi
Sıfırlama düyməsi Micro-USB Portu
USB-UART Körpüsü 3.3 V Yandırma LED
I/O birləşdiricisi
Təsvir
ESP32-MINI-1 modulu və ya ESP32-MINI-1U modulu. ESP32-MINI-1 bortda PCB antenası ilə gəlir. ESP32-MINI-1U xarici antena konnektoru ilə gəlir. Hər iki modulda çip paketində 4 MB flaş var. Ətraflı məlumat üçün ESP32-MINI-1 və ESP32-MINI-1U məlumat cədvəlinə baxın.
Güc tənzimləyicisi 5 V-u 3.3 V-a çevirir.
Yükləmə düyməsi. Boot düyməsini basıb saxlayın və sonra Sıfırla düyməsini sıxaraq, serial port vasitəsilə mikroproqramı yükləmək üçün Firmware Download rejimini işə salın.
Sıfırlama düyməsi
USB interfeysi. Lövhə üçün enerji təchizatı, eləcə də kompüter və ESP32 çipi arasında əlaqə interfeysi.
Tək USB-UART körpü çipi 3 Mbps-ə qədər ötürmə sürətini təmin edir.
USB lövhəyə qoşulduqda yanır. Ətraflı məlumat üçün Əlaqədar Sənədlərdəki sxemlərə baxın. Bütün mövcud GPIO sancaqları (flaş üçün SPI avtobusundan başqa) lövhədəki pin başlıqlarına parçalanır. İstifadəçilər bir çox funksiyanı aktivləşdirmək üçün ESP32 çipini proqramlaşdıra bilərlər.
Tətbiq İnkişafına Başlayın ESP32-DevKitM-1-i işə salmazdan əvvəl, onun heç bir aşkar zədə əlamətləri olmadan yaxşı vəziyyətdə olduğundan əmin olun.
Tələb olunan Avadanlıq · ESP32-DevKitM-1 · USB 2.0 kabeli (Standart-A - Micro-B) · Windows, Linux və ya macOS ilə işləyən kompüter
Proqram təminatının qurulması Lütfən, Başlayın bölməsinə keçin, burada Bölmə Quraşdırma tez bir zamanda inkişaf mühitini qurmağınıza kömək edəcək və daha sonra məsələn, proqramı yandırın.ampESP32-DevKitM-1-ə daxil olun.
Espressif sistemləri
11 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Diqqət: 2 dekabr 2021-ci il tarixindən əvvəl istehsal edilmiş ESP32-DevKitM-1 lövhələrində tək nüvəli modul quraşdırılmışdır. Hansı modula malik olduğunuzu yoxlamaq üçün PCN-2021-021-də modul işarələmə məlumatını yoxlayın. Lövhənizdə tək nüvəli modul quraşdırılıbsa, proqramlarınızı yandırmazdan əvvəl menyu konfiqurasiyasında tək nüvə rejimini (CONFIG_FREERTOS_UNICORE) aktiv edin.
Hardware Reference Blok Diaqramı Aşağıdakı blok diaqram ESP32-DevKitM-1 komponentlərini və onların qarşılıqlı əlaqələrini göstərir.
Şəkil 7: ESP32-DevKitM-1
Güc Mənbəsini Seçin Lövhəni enerji ilə təmin etməyin bir-birini istisna edən üç yolu var: · Mikro USB portu, standart enerji təchizatı · 5V və GND başlıq sancaqları · 3V3 və GND başlıq sancaqları
Xəbərdarlıq: · Enerji təchizatı yuxarıdakı seçimlərdən yalnız biri ilə təmin edilməlidir, əks halda lövhə və/yaxud enerji təchizatı mənbəyi zədələnə bilər. · Mikro USB portu ilə enerji təchizatı tövsiyə olunur.
Pin təsvirləri Aşağıdakı cədvəl lövhənin hər iki tərəfindəki sancaqların adı və funksiyasını təqdim edir. Periferik pin konfiqurasiyaları üçün ESP32 məlumat cədvəlinə baxın.
yox.
ad
Növ
1
GND
P
2
3V3
P
Funksiya Torpaq 3.3 V enerji təchizatı
növbəti səhifədə davam edir
Espressif sistemləri
12 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Cədvəl 2 əvvəlki səhifədən davam edir
yox.
ad
Növ
Funksiya
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
Sıfırla; Yüksək: aktivləşdirin; Aşağı: enerji söndürülür
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 kristal osilator girişi),
ADC1_CH4, TOUCH9, RTC_GPIO9
11
IO33
I/O
GPIO33, XTAL_32K_N (32.768 kHz kristal osilator çıxışı),
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 enerji təchizatı
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
Hardware Revision Details Əvvəlki versiyalar mövcud deyil.
Əlaqədar Sənədlər
· ESP32-MINI-1 & ESP32-MINI-1U Məlumat vərəqi (PDF) · ESP32-DevKitM-1 Sxematikası (PDF) · ESP32-DevKitM-1 PCB düzeni (PDF) · ESP32-DevKitM-1 düzeni (DXF) – Siz edə bilərsiniz view Autodesk ilə Viewer online · ESP32 Datasheet (PDF) · ESP Product Selector
Lövhə üçün digər dizayn sənədləri üçün sales@espressif.com ünvanında bizimlə əlaqə saxlayın.
Espressif sistemləri
13 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
1.2.2 Proqram təminatı
ESP32-də ESP-IDF-dən istifadə etməyə başlamaq üçün aşağıdakı proqramı quraşdırın: · ESP32 üçün kodu tərtib etmək üçün alətlər silsiləsi · ESP32 üçün tam Tətbiq yaratmaq üçün alətlər yaradın – CMake və Ninja · ESP32 üçün API (proqram kitabxanaları və mənbə kodu) və Alətlər silsiləsi ilə işləmək üçün skriptləri ehtiva edən ESP-IDF
1.3 Quraşdırma
Bütün tələb olunan proqram təminatını quraşdırmaq üçün biz bu işi asanlaşdırmaq üçün bir neçə fərqli yol təklif edirik. Mövcud variantlardan birini seçin.
1.3.1 IDE
Qeyd: ESP-IDF-ni sevimli IDE vasitəsilə quraşdırmağı tövsiyə edirik.
· Eclipse Plugin · VSCode Genişlənməsi
1.3.2 Əl ilə quraşdırma
Əl proseduru üçün əməliyyat sisteminizə uyğun olaraq seçin.
Espressif sistemləri
14 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Windows üçün Toolchain Standart Quraşdırma
Giriş ESP-IDF bəzi ilkin alətlərin quraşdırılmasını tələb edir ki, siz dəstəklənən çiplər üçün proqram təminatı yarada biləsiniz. Tələb olunan alətlərə Python, Git, çarpaz tərtibçilər, CMake və Ninja qurma alətləri daxildir. Bunun üçün Başlanğıc üçün Əmr əmrindən istifadə edəcəyik, lakin ESP-IDF quraşdırıldıqdan sonra bunun əvəzinə Eclipse Plugin və ya CMake dəstəyi ilə başqa qrafik IDE-dən istifadə edə bilərsiniz. Qeyd: Məhdudiyyətlər: – ESP-IDF və ESP-IDF Alətlərinin quraşdırma yolu 90 simvoldan çox olmamalıdır. Çox uzun quraşdırma yolları uğursuz qurulma ilə nəticələnə bilər. – Python və ya ESP-IDF quraşdırma yolunda boşluqlar və ya mötərizələr olmamalıdır. – Əməliyyat sistemi oUnicode UTF-8psupport ilə konfiqurasiya edilmədikdə, Python və ya ESP-IDF quraşdırma yolunda xüsusi simvollar (ASCII olmayan) olmamalıdır. Sistem Administratoru dəstəyi İdarəetmə Paneli vasitəsilə aktivləşdirə bilər – Tarix, vaxt və ya nömrə formatlarını dəyişdirin – İnzibati sekmesi – Sistemin lokalizasiyasını dəyişdirin – oBeta seçimini yoxlayın: Ümumdünya dil dəstəyi üçün Unicode UTF-8 istifadə edinp – Tamam və kompüteri yenidən başladın.
ESP-IDF Alətlər Quraşdırıcısı ESP-IDFns ilkin şərtlərini quraşdırmağın ən asan yolu ESP-IDF Alətləri Quraşdırıcılarından birini yükləməkdir.
Windows quraşdırıcısını yükləyin
Onlayn və Oflayn Quraşdırıcı Onlayn Quraşdırıcının istifadəsi çox kiçikdir və ESP-IDF-in bütün mövcud buraxılışlarının quraşdırılmasına imkan verir. Quraşdırıcı quraşdırma prosesi zamanı Git For Windows daxil olmaqla, yalnız zəruri asılılıqları endirəcək. Quraşdırıcı yüklənmiş mağazalar files keş qovluğunda %userprofile%. espressif
Offline Installer heç bir şəbəkə bağlantısı tələb etmir. Quraşdırıcı Windows üçün Git daxil olmaqla bütün tələb olunan asılılıqları ehtiva edir.
Quraşdırmanın komponentləri Quraşdırıcı aşağıdakı komponentləri yerləşdirir:
· Daxili Python · Çarpaz tərtibçilər · OpenOCD · CMake və Ninja qurma alətləri · ESP-IDF
Quraşdırıcı həmçinin ESP-IDF ilə mövcud kataloqdan yenidən istifadə etməyə imkan verir. Tövsiyə olunan kataloq %userpro-durfile%Desktopesp-idf burada %userprofile% sizin ev kataloqunuzdur.
Espressif sistemləri
15 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
ESP-IDF Mühitinin işə salınması Quraşdırma prosesinin sonunda siz ESP-IDF PowerShell mühitini işə salın və ya ESP-IDF əmr sorğusunu işə salın (cmd.exe) seçimini yoxlaya bilərsiniz. Quraşdırıcı seçilmiş sorğuda ESP-IDF mühitini işə salacaq. ESP-IDF PowerShell mühitini işə salın:
Şəkil 8: ESP-IDF PowerShell mühitini işə salmaqla ESP-IDF Alətləri Quraşdırma Sihirbazının tamamlanması
ESP-IDF əmr satırını işə salın (cmd.exe):
Əmr əmrindən istifadə Qalan Başlanğıc addımları üçün Windows Əmr İstemini istifadə edəcəyik. ESP-IDF Alətlər Quraşdırıcısı, həmçinin ESP-IDF Əmr əmrini işə salmaq üçün Başlat menyusunda qısa yol yaradır. Bu qısayol əmr sorğusunu (cmd.exe) işə salır və mühit dəyişənlərini (PATH, IDF_PATH və başqaları) qurmaq üçün export.bat skriptini işə salır. Bu əmr sorğusunda bütün quraşdırılmış alətlər mövcuddur. Qeyd edək ki, bu qısayol ESP-IDF Alətlər Quraşdırıcısında seçilmiş ESP-IDF qovluğuna xasdır. Əgər kompüterinizdə bir neçə ESP-IDF kataloqunuz varsa (məsampESP-IDF-in müxtəlif versiyaları ilə işləmək üçün) onlardan istifadə etmək üçün iki seçiminiz var:
1. ESP-IDF Tools Installer tərəfindən yaradılan qısayolun surətini yaradın və yeni qısayolun iş kataloqunu istifadə etmək istədiyiniz ESP-IDF qovluğuna dəyişin.
2. Alternativ olaraq cmd.exe faylını işə salın, sonra istifadə etmək istədiyiniz ESP-IDF qovluğuna keçin və export.bat faylını işə salın. Qeyd edək ki, əvvəlki seçimdən fərqli olaraq bu üsul Python və Git-in PATH-də olmasını tələb edir. Python və ya Git ilə bağlı səhvlər əldə edirsinizsə və ya tapılmadıqda, birinci variantdan istifadə edin.
ESP-IDF üzrə ilk addımlar İndi bütün tələblər yerinə yetirildiyinə görə, növbəti mövzu sizə ilk layihənizə necə başlamaq barədə məlumat verəcəkdir.
Espressif sistemləri
16 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın Şək. 9: ESP-IDF PowerShell
Şəkil 10: ESP-IDF Alətləri Quraşdırma Sihirbazının ESP-IDF əmr sorğusunu işə salın (cmd.exe) ilə tamamlanması
Espressif sistemləri
17 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Şəkil 11: ESP-IDF əmr sorğusu
Espressif sistemləri
18 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Bu təlimat ESP-IDF istifadə edərək ilk addımlarda sizə kömək edəcək. ESP32-də yeni layihəyə başlamaq və cihazın çıxışını qurmaq, yandırmaq və nəzarət etmək üçün bu təlimatı izləyin. Qeyd: Əgər siz hələ ESP-IDF quraşdırmamısınızsa, bu təlimatdan istifadə etmək üçün lazım olan bütün proqram təminatını əldə etmək üçün Quraşdırma bölməsinə keçin və təlimata əməl edin.
Layihəyə başlayın İndi siz ESP32 üçün ərizənizi hazırlamağa hazırsınız. Siz keçmişdən getstarted/hello_world layihəsi ilə başlaya bilərsinizamples kataloqu ESP-IDF-də.
Vacib: ESP-IDF qurma sistemi nə ESP-IDF, nə də layihələrə gedən yollarda boşluqları dəstəkləmir.
Layihə get-started/hello_world faylını ~/esp qovluğuna kopyalayın: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world salam_dünya
Qeyd: Bir sıra keçmiş varample layihələri keçmişdəampESP-IDF-də les kataloqu. İstənilən layihəni yuxarıda göstərildiyi kimi kopyalayıb işlədə bilərsiniz. Keçmiş tikmək də mümkündüramples in-place ilk onları kopyalamadan.
Cihazınızı birləşdirin İndi ESP32 lövhənizi kompüterə qoşun və lövhənin hansı serial portun altında göründüyünü yoxlayın. Serial port adları Windows-da COM ilə başlayır. Serial port adını necə yoxlayacağınızdan əmin deyilsinizsə, lütfən, tam təfərrüatlar üçün ESP32 ilə Serial Bağlantının qurulmasına baxın.
Qeyd: Port adını əlinizdə saxlayın, çünki növbəti addımlarda ona ehtiyacınız olacaq.
Layihənizi konfiqurasiya edin hello_world kataloqunuza gedin, ESP32-ni hədəf olaraq təyin edin və layihə konfiqurasiya yardım proqramını işə salın menuconfig.
Windows cd %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Yeni bir layihəni açdıqdan sonra əvvəlcə idf.py set-target esp32 ilə hədəf təyin etməlisiniz. Qeyd edək ki, layihədəki mövcud konfiqurasiyalar və konfiqurasiyalar, əgər varsa, bu prosesdə təmizlənəcək və işə salınacaq. Bu addımı ümumiyyətlə atlamaq üçün hədəf mühit dəyişənində yadda saxlanıla bilər. Əlavə məlumat üçün Hədəf Çipi Seçin: hədəf təyinatına baxın. Əvvəlki addımlar düzgün yerinə yetirilibsə, aşağıdakı menyu görünür: Siz bu menyudan layihəyə aid dəyişənləri quraşdırmaq üçün istifadə edirsiniz, məsələn, Wi-Fi şəbəkəsinin adı və parolu, prosessorun sürəti və s. Layihənin menuconfig ilə qurulması ohello_wordp üçün atlana bilər, çünki bu keçmişample standart konfiqurasiya ilə işləyir.
Diqqət: Əgər siz ESP32-SOLO-1 modulu ilə ESP32-DevKitC lövhəsindən və ya ESP32-MIN1-1(1U) modulu ilə ESP32-DevKitM-1 lövhəsindən istifadə edirsinizsə, lütfən, keçmiş yanıb-sönmədən əvvəl menyu konfiqurasiyasında tək nüvə rejimini (CONFIG_FREERTOS_UNICORE) aktivləşdirin.amples.
Espressif sistemləri
19 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Şəkil 12: Layihənin konfiqurasiyası – Əsas pəncərə
Qeyd: Menyunun rəngləri terminalınızda fərqli ola bilər. Görünüşü stil seçimi ilə dəyişə bilərsiniz. Əlavə məlumat üçün idf.py menuconfig –help proqramını işə salın.
Dəstəklənən inkişaf lövhələrindən birini istifadə edirsinizsə, Board Support Paketindən istifadə edərək inkişafınızı sürətləndirə bilərsiniz. Əlavə məlumat üçün Əlavə Məsləhətlərə baxın.
Layihəni qurun Layihəni işləməklə qurun:
idf.py qurun
Bu əmr proqramı və bütün ESP-IDF komponentlərini tərtib edəcək, sonra yükləyicini, bölmə cədvəlini və proqram ikili fayllarını yaradacaq.
$ idf.py build /path/to/hello_world/build qovluğunda cmake işə salınır “cmake -G Ninja –warn-uninitialized /path/to/hello_world” icra edilir... Başlanmamış dəyərlər haqqında xəbərdarlıq edin. — Tapılan Git: /usr/bin/git (“2.17.0” versiyası tapıldı) — Konfiqurasiyaya görə boş aws_iot komponenti qurmaq — Komponent adları: … — Komponent yolları: …
… (sistem çıxışının daha çox sətirləri)
[527/527] hello_world.bin esptool.py v2.3.1 yaradılır
Layihənin qurulması tamamlandı. Yandırmaq üçün bu əmri yerinə yetirin: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_ld bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin və ya 'idf.py -p PORT flash'ı işə salın
Heç bir xəta yoxdursa, quraşdırma ikili proqram .bin faylını yaratmaqla tamamlanacaq files.
Espressif sistemləri
20 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Cihazda flaş edin İndicə qurduğunuz binari faylları (bootloader.bin, partition-table.bin və hello_world.bin) ESP32 lövhənizdə işlətməklə yandırın: idf.py -p PORT [-b BAUD] flash
PORT-u ESP32 lövhənizin seriya port adı ilə əvəz edin. Siz həmçinin BAUD-u sizə lazım olan ötürmə sürəti ilə əvəz etməklə flasherin ötürmə sürətini dəyişə bilərsiniz. Defolt ötürmə sürəti 460800-dir. Idf.py arqumentləri haqqında ətraflı məlumat üçün idf.py-ə baxın.
Qeyd: Flaş seçimi avtomatik olaraq layihəni qurur və yanıb-sönür, ona görə də idf.py build proqramını işə salmaq lazım deyil.
Yanıb-sönən zaman problemlərlə qarşılaşdınız? Verilmiş əmri icra etsəniz və qoşulmaq mümkün olmadı kimi xətaları görsəniz, bunun bir neçə səbəbi ola bilər. Səbəblərdən biri çipi sıfırlamaq, ROM yükləyicisi ilə qarşılıqlı əlaqə qurmaq və flash proqram təminatı ilə işləmək üçün quraşdırma sistemi tərəfindən çağırılan esptool.py yardım proqramı ilə qarşılaşdığı problemlər ola bilər. Sınamaq üçün sadə həll yollarından biri aşağıda təsvir edilən əl ilə sıfırlamadır və bu kömək etmirsə, Problemlərin aradan qaldırılması bölməsində mümkün problemlər haqqında ətraflı məlumat tapa bilərsiniz.
esptool.py, USB-dən serial çevirici çipinin DTR və RTS idarəetmə xətlərini, yəni FTDI və ya CP210x-i təsdiq edərək ESP32-ni avtomatik olaraq sıfırlayır (ətraflı məlumat üçün ESP32 ilə Serial Bağlantının qurulmasına baxın). DTR və RTS idarəetmə xətləri öz növbəsində ESP32-nin GPIO0 və CHIP_PU (EN) pinlərinə qoşulur, beləliklə, həcmdə dəyişikliklər baş verir.tage DTR və RTS səviyyələri ESP32-ni Firmware Download rejiminə yükləyəcək. Keçmiş kimiample, ESP32 DevKitC inkişaf lövhəsi üçün sxemi yoxlayın.
Ümumiyyətlə, rəsmi esp-idf inkişaf lövhələri ilə heç bir probleminiz olmamalıdır. Bununla belə, esptool.py aşağıdakı hallarda avadanlığınızı avtomatik olaraq sıfırlaya bilmir:
· Aparatınızın GPIO0 və CHIP_PU-ya qoşulmuş DTR və RTS xətləri yoxdur · DTR və RTS xətləri fərqli şəkildə konfiqurasiya olunub · Belə seriyalı idarəetmə xətləri ümumiyyətlə yoxdur
Sahib olduğunuz avadanlığın növündən asılı olaraq, ESP32 lövhənizi Firmware Download rejiminə (sıfırlama) əl ilə qoymaq da mümkün ola bilər.
· Espressif tərəfindən hazırlanmış inkişaf lövhələri üçün bu məlumatı müvafiq başlanğıc təlimatlarında və ya istifadəçi təlimatlarında tapa bilərsiniz. məsələnample, ESP-IDF inkişaf lövhəsini əl ilə sıfırlamaq üçün Yükləmə düyməsini (GPIO0) basıb saxlayın və EN düyməsini (CHIP_PU) basın.
· Digər avadanlıq növləri üçün GPIO0-u aşağı çəkməyə çalışın.
Normal Əməliyyat Yanıb-sönən zaman aşağıdakı kimi çıxış jurnalını görəcəksiniz:
… 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/ttyUSB1000- bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Qoşulur…….._ Çip ESP32D0WDQ6-dır (revision 0) Xüsusiyyətlər: WiFi, BT, Dual Core, Kodlaşdırma Sxemi MAC4 yoxdur: MAC40 24:0a:c0:05:b9:14 stub yüklənir... stub işləyir... stub işləyir... ötürmə sürəti 460800-ə dəyişdirilir Dəyişdirildi.
(növbəti səhifədə davam edir)
Espressif sistemləri
21 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
(əvvəlki səhifədən davam edir) Flaş ölçüsü konfiqurasiya edilir... 3072 baytdan 103-ə qədər sıxılmışdır... 0x00008000… (100 %) ilə yazılır. 0x00008000-də 0.0 saniyəyə 3072 bayt (103 sıxılmış) yazdı (effektiv 2072 bayt…86 bit məlumat) 26096 bayt 15408-ə sıxıldı… 0x00001000… (100 %) ilə yazıldı. 0x00001000-də 26096 baytı (15408 sıxılmış) 0.4 saniyəyə yazdı (effektiv 546.7 kbit/s data)…. 147104 baytı 77364-ə sıxışdırdı… 0x00010000… (20 %) ilə yazır 0x00014000… (40 %) ilə yazır… 0x00018000… (60 %) ilə yazır… 0x00020000… (100 %) 1.9 saniyəyə 0x00010000-də 147104 bayt (77364 sıxılmış) yazdı (effektiv 615. 5 kbit/s)… Məlumatın hashı təsdiqləndi.
Ayrılır... RTS pin vasitəsilə sərt sıfırlanır... Hazırdır
Flaş prosesinin sonuna qədər heç bir problem olmasa, lövhə yenidən başlayacaq və theohello_worldpapplication işə başlayacaq. Əgər idf.py ilə işləmək əvəzinə Eclipse və ya VS Code IDE-dən istifadə etmək istəyirsinizsə, Eclipse Plugin, VSCode Extension-a baxın.
Çıxışın monitorinqi Ohello_worldpis-in həqiqətən işlədiyini yoxlamaq üçün idf.py -p PORT monitor yazın (PORT-u serial port adı ilə əvəz etməyi unutmayın).
Bu əmr IDF Monitor proqramını işə salır:
$ idf.py -p monitor […]/esp/hello_world/build qovluğunda idf_monitor işləyir “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”…mon icra edilir. 115200 —– Çıxın: Ctrl+] | Menyu: Ctrl+T | Yardım: Ctrl+T və sonra Ctrl+H –ets 8 İyun 2016 00:22:57
ilk: 0x1 (POWERON_RESET), yükləmə: 0x13 (SPI_FAST_FLASH_BOOT) və 8 iyun 2016 00:22:57 …
Başlanğıc və diaqnostik qeydlər yuxarı sürüşdürüldükdən sonra siz proqram tərəfindən çap edilmiş oSalam dünya!
… Salam dünya! 10 saniyəyə yenidən işə salınır… Bu, 2 CPU nüvəsi(ləri), WiFi/BT/BLE, silikon revizyonu 1, 2MB xarici flaşlı esp32 çipidir Minimum pulsuz yığın ölçüsü: 298968 bayt 9 saniyəyə yenidən işə salınır… 8 saniyəyə yenidən işə salınır… 7 saniyəyə yenidən işə salınır…
IDF monitorundan çıxmaq üçün Ctrl+] qısa yolundan istifadə edin.
Espressif sistemləri
22 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Yükləmədən qısa müddət sonra IDF monitoru uğursuz olarsa və ya yuxarıdakı mesajların əvəzinə aşağıda göstərilənlərə bənzər təsadüfi zibil görürsünüzsə, lövhəniz çox güman ki, 26 MHz kristaldan istifadə edir. Əksər inkişaf lövhəsi dizaynları 40 MHz-dən istifadə edir, buna görə də ESP-IDF bu tezliyi standart dəyər kimi istifadə edir.
Əgər belə probleminiz varsa, aşağıdakıları edin: 1. Monitordan çıxın. 2. Menyu konfiqurasiyasına qayıdın. 3. Komponent konfiqurasiyası > Hardware Parametrləri > Əsas XTAL Konfiqurasiyası > Əsas XTAL tezliyinə keçin, sonra CONFIG_XTAL_FREQ_SEL-i 26 MHz-ə dəyişin. 4. Bundan sonra proqramı yenidən qurun və flash edin.
ESP-IDF-in cari versiyasında ESP32 tərəfindən dəstəklənən əsas XTAL tezlikləri aşağıdakılardır:
· 26 MHz · 40 MHz
Qeyd: Quraşdırma, yanıb-sönmə və monitorinqi bir addımda birləşdirə bilərsiniz: idf.py -p PORT flash monitor
Həmçinin baxın: · Faydalı qısa yollar və IDF monitorundan istifadə haqqında ətraflı məlumat üçün IDF Monitor. · idf.py əmrləri və seçimləri haqqında tam istinad üçün idf.py.
ESP32 ilə başlamaq üçün sizə lazım olan bütün bunlardır! İndi başqa bir keçmişi sınamağa hazırsınızamples, və ya birbaşa öz proqramlarınızı inkişaf etdirməyə gedin.
Əhəmiyyətli: bəzi keçmişamples ESP32-ni dəstəkləmir, çünki tələb olunan avadanlıq ESP32-yə daxil deyil, ona görə də dəstəklənə bilməz. Keçmiş tikinti varsaample, lütfən README-ni yoxlayın file Dəstəklənən Hədəflər cədvəli üçün. Bu, ESP32 hədəfi daxil olmaqla mövcuddursa və ya cədvəl ümumiyyətlə mövcud deyilsə, keçmişample ESP32 üzərində işləyəcək.
Əlavə məsləhətlər
İcazə problemləri /dev/ttyUSB0 Bəzi Linux paylamaları ilə siz ESP32-ni yandırarkən /dev/ttyUSB0 portunu açmaq uğursuz oldu səhv mesajını ala bilərsiniz. Bu, cari istifadəçini dialoq qrupuna əlavə etməklə həll edilə bilər.
Python uyğunluğu ESP-IDF Python 3.7 və ya daha yenisini dəstəkləyir. Əməliyyat sisteminizi bu tələbi ödəyən ən son versiyaya təkmilləşdirmək tövsiyə olunur. Digər seçimlərə mənbələrdən Python quraşdırılması və ya pyenv kimi Python versiyası idarəetmə sisteminin istifadəsi daxildir.
Lövhə Dəstəyi Paketi ilə başlayın Bəzi inkişaf lövhələrində prototipləşdirməni sürətləndirmək üçün siz müəyyən lövhənin işə salınmasını bir neçə funksiya çağırışı kimi asanlaşdıran Board Support Paketlərindən (BSP) istifadə edə bilərsiniz.
Espressif sistemləri
23 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
BSP adətən inkişaf lövhəsində təqdim olunan bütün aparat komponentlərini dəstəkləyir. Pinout tərifi və işə salma funksiyalarından başqa, BSP sensorlar, displeylər, audio kodeklər və s. kimi xarici komponentlər üçün drayverlərlə göndərilir. BSP-lər IDF Komponent Meneceri vasitəsilə paylanır, ona görə də onları IDF Komponent Reyestrində tapmaq olar. Herens keçmişdirampLayihənizə ESP-WROVER-KIT BSP-ni necə əlavə etmək olar: idf.py add-dependency esp_wrover_kit
Daha çox məsampBSP-dən istifadə qaydaları BSP-də tapıla biləramples qovluğu.
Əlaqədar Sənədlər Quraşdırma prosesini fərdiləşdirmək istəyən qabaqcıl istifadəçilər üçün: · Windows-da ESP-IDF alətlərinin yenilənməsi · ESP32 ilə Serial Bağlantının qurulması · Eclipse Plugin · VSCode Genişlənməsi · IDF Monitor
Windows-da ESP-IDF alətlərinin yenilənməsi
Skriptdən istifadə edərək ESP-IDF alətlərini quraşdırın Windows Əmr Sorğundan ESPIDF-in quraşdırıldığı qovluğa keçin. Sonra qaçın:
install.bat
Powershell üçün ESP-IDF-nin quraşdırıldığı qovluğa dəyişin. Sonra qaçın:
install.ps1
Bu, ESP-IDF-dən istifadə etmək üçün lazım olan alətləri endirəcək və quraşdıracaq. Alətin xüsusi versiyası artıq quraşdırılıbsa, heç bir tədbir görülməyəcək. Alətlər endirilir və ESP-IDF Alətlər Quraşdırıcısı prosesi zamanı müəyyən edilmiş qovluğa quraşdırılır. Varsayılan olaraq, bu C:Userusername.espressif-dir.
İxrac skriptindən istifadə edərək ESP-IDF alətlərini PATH-ə əlavə edin ESP-IDF alətləri quraşdırıcısı oESP-IDF Komanda İstemi üçün Başlat menyusu qısayolunu yaradır. Bu qısayol bütün alətlərin artıq olduğu Əmr İstemi pəncərəsini açır
mövcuddur. Bəzi hallarda, siz ESP-IDF ilə bu qısayoldan istifadə etməyə başlamamış komanda əmri pəncərəsində işləmək istəyə bilərsiniz. Əgər belədirsə, ESP-IDF alətlərini PATH-ə əlavə etmək üçün aşağıdakı təlimatlara əməl edin. ESP-IDF-dən istifadə etməli olduğunuz əmr sorğusunda ESP-IDF-nin quraşdırıldığı qovluğa keçin, sonra export.bat-ı yerinə yetirin:
cd %userprofile%espesp-idf export.bat
Alternativ olaraq, ESP-IDF-dən istifadə etməli olduğunuz Powershell-də ESP-IDF-nin quraşdırıldığı qovluğa keçin, sonra export.ps1-i yerinə yetirin:
cd ~/esp/esp-idf eksport.ps1
Bu edildikdə, alətlər bu əmr sorğusunda mövcud olacaq.
ESP32 ilə Serial Bağlantının qurulması Bu bölmə ESP32 və PC arasında serial əlaqənin necə qurulacağı ilə bağlı təlimatları təqdim edir.
Espressif sistemləri
24 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
ESP32-ni PC-yə qoşun USB kabeldən istifadə edərək ESP32 lövhəsini kompüterə qoşun. Cihaz drayveri avtomatik olaraq quraşdırılmırsa, ESP32 lövhənizdə (və ya xarici çevirici dongle) USB-dən serial çevirici çipini müəyyənləşdirin, internetdə sürücüləri axtarın və quraşdırın. Aşağıda Espressif tərəfindən istehsal olunan ESP32 lövhələrinin əksəriyyətində quraşdırılmış USB-dən serial çevirici çiplərinin siyahısı və sürücülərə bağlantılar verilmişdir:
· CP210x: CP210x USB to UART Bridge VCP Drivers · FTDI: FTDI Virtual COM Port Drivers Lütfən, istifadə olunan xüsusi USB-dən serial çevirici çipi üçün lövhənin istifadəçi təlimatını yoxlayın. Yuxarıdakı sürücülər ilk növbədə istinad üçündür. Normal şəraitdə drayverlər əməliyyat sistemi ilə yığılmalı və lövhəni PC-yə qoşduqdan sonra avtomatik quraşdırılmalıdır.
Windows-da portu yoxlayın Windows Cihaz Menecerində müəyyən edilmiş COM portlarının siyahısını yoxlayın. ESP32-ni ayırın və hansı portun siyahıdan silindiyini və sonra yenidən göründüyünü yoxlamaq üçün onu yenidən birləşdirin. Aşağıdakı rəqəmlər ESP32 DevKitC və ESP32 WROVER DƏSTİ üçün seriya portunu göstərir
Şəkil 13: Windows Cihaz Menecerində ESP32-DevKitC-nin USB-UART körpüsü
Linux və macOS-da portu yoxlayın ESP32 platanızın (və ya xarici çevirici dongle) serial portu üçün cihaz adını yoxlamaq üçün bu əmri iki dəfə, əvvəlcə board/dnql ayırılmış, sonra isə qoşulmuş vəziyyətdə yerinə yetirin. İkinci dəfə görünən port sizə lazım olan portdur: Linux
ls /dev/tty*
macOS
Espressif sistemləri
25 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Şəkil 14: Windows Cihaz Menecerində ESP-WROVER-KIT-in iki USB Serial Portu
Espressif sistemləri
26 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
ls /dev/cu.* Qeyd: macOS istifadəçiləri: əgər serial portunu görmürsünüzsə, USB/seriya drayverlərinin quraşdırıldığını yoxlayın. Sürücülərə bağlantılar üçün ESP32-ni PC-yə qoşun bölməsinə baxın. macOS High Sierra (10.13) üçün siz həmçinin sürücülərin yüklənməsinə açıq şəkildə icazə verməli ola bilərsiniz. Sistem Tərcihləri -> Təhlükəsizlik və Məxfilik -> Ümumi bölməsini açın və burada tərtibatçının adı Silicon Labs və ya FTDI olduğu yerdə oSystem Software haqqında tərtibatçı tərəfindən göstərilən mesajın olub olmadığını yoxlayın.
İstifadəçinin Linux-da dialoqa əlavə edilməsi Hazırda daxil olmuş istifadəçi USB vasitəsilə serial portuna oxumaq və yazmaq imkanına malik olmalıdır. Əksər Linux paylamalarında bu, istifadəçini aşağıdakı əmrlə dialoq qrupuna əlavə etməklə həyata keçirilir:
sudo usermod -a -G dialout $USER
Arch Linux-da bu, istifadəçini aşağıdakı komanda ilə uucp qrupuna əlavə etməklə həyata keçirilir:
sudo usermod -a -G uucp $USER
Serial portu üçün oxumaq və yazma icazələrini aktivləşdirmək üçün yenidən daxil olduğunuzdan əmin olun.
Serial əlaqəni yoxlayın İndi serial əlaqənin işlək olduğunu yoxlayın. ESP32-ni sıfırladıqdan sonra terminalda hər hansı bir çıxış əldə edib-etmədiyinizi yoxlayaraq, serial terminal proqramından istifadə edərək bunu edə bilərsiniz. ESP32-də standart konsol ötürmə sürəti 115200-dir.
Bu keçmişdə Windows və LinuxampBiz həm Windows, həm də Linux üçün mövcud olan PuTTY SSH Client-dən istifadə edəcəyik. Siz digər serial proqramlardan istifadə edə və aşağıdakı kimi rabitə parametrlərini təyin edə bilərsiniz. Terminalı işə salın və müəyyən edilmiş seriya portunu təyin edin. Məlumat ötürmə sürəti = 115200 (lazım olduqda, bunu istifadə olunan çipin standart ötürmə sürətinə dəyişdirin), məlumat bitləri = 8, dayandırma bitləri = 1 və paritet = N. Aşağıda məsələn,ampWindows və Linux-da portun və bu cür ötürmə parametrlərinin (qısaca 115200-8-1-N kimi təsvir edilməsi) skrinşotları. Yuxarıdakı addımlarda müəyyən etdiyiniz eyni seriya portunu seçməyi unutmayın. Sonra terminalda serial portunu açın və ESP32 tərəfindən çap edilmiş hər hansı jurnalı görüb-görmədiyinizi yoxlayın. Jurnal məzmunu ESP32-yə yüklənmiş proqramdan asılı olacaq, Məsample Çıxış.
Qeyd: Rabitənin işlədiyini yoxladıqdan sonra serial terminalı bağlayın. Terminal sessiyasını açıq saxlasanız, sonradan proqram təminatının yüklənməsi üçün serial port əlçatmaz olacaq.
macOS Sizi serial terminal proqramını quraşdırmaq problemindən xilas etmək üçün macOS ekran əmrini təklif edir. · Linux və macOS-da Yoxlama portunda müzakirə edildiyi kimi, işləyin:
ls /dev/cu.* · Siz oxşar çıxışı görməlisiniz:
/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Çıxış kompüterinizə qoşulmuş lövhələrin növündən və sayından asılı olaraq dəyişəcək. Sonra lövhənizin cihaz adını seçin və işə salın (lazım olduqda, o115200p-ni istifadə olunan çipin standart ötürmə sürətinə dəyişdirin):
ekran /dev/cu.device_name 115200 Cihaz_adını ls /dev/cu.* ilə işləyən tapılan adla əvəz edin.
Espressif sistemləri
27 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Şəkil 15: Windows-da PuTTY-də Serial Əlaqəsinin qurulması
Espressif sistemləri
28 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Şəkil 16: Linux-da PuTTY-də Serial Əlaqəsinin qurulması
Espressif sistemləri
29 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
· Axtardığınız ekranda göstərilən bəzi jurnaldır. Jurnal məzmunu ESP32-yə yüklənmiş proqramdan asılı olacaq, Məsample Çıxış. Ekran seansından çıxmaq üçün Ctrl-A + yazın.
Qeyd: Əlaqənin işlədiyini yoxladıqdan sonra ekran seansından çıxmağı unutmayın. Bunu etməsəniz və sadəcə terminal pəncərəsini bağlasanız, daha sonra proqram təminatını yükləmək üçün seriya portu əlçatmaz olacaq.
Example Çıxış An example log aşağıda göstərilmişdir. Heç bir şey görmürsənsə, lövhəni yenidən qurun. ets 8 iyun 2016 00:22:57
ilk: 0x5 (DEEPSLEEP_RESET), yükləmə: 0x13 (SPI_FAST_FLASH_BOOT) və 8 iyun 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stage bootloader I (45) yükləmə: tərtib vaxtı 18:48:10
…
Əgər oxuna bilən jurnal çıxışını görə bilirsinizsə, bu o deməkdir ki, seriyalı əlaqə işləyir və siz quraşdırmaya davam etməyə və nəhayət tətbiqi ESP32-yə yükləməyə hazırsınız.
Qeyd: Bəzi seriyalı port məftil konfiqurasiyaları üçün, ESP32 işə düşməzdən və seriya çıxışı verməzdən əvvəl serial RTS və DTR pinləri terminal proqramında deaktiv edilməlidir. Bu, aparatın özündən asılıdır, əksər inkişaf lövhələrində (bütün Espressif lövhələri daxil olmaqla) bu problem yoxdur. Problem RTS və DTR birbaşa EN və GPIO0 pinlərinə qoşulduqda mövcuddur. Daha ətraflı məlumat üçün esptool sənədlərinə baxın.
Əgər siz 5-ci addımdan bura gəldinizsə. ESP32 inkişafı üçün s/w quraşdırarkən ESP-IDF üzrə ilk addımlar, onda siz 5-ci addımla davam edə bilərsiniz. ESP-IDF üzrə ilk addımlar.
IDF Monitor IDF Monitor əsasən serial məlumatları hədəf cihazların seriya portuna ötürən serial terminal proqramıdır. O, həmçinin bəzi IDF-ə xas xüsusiyyətləri təmin edir. IDF Monitor idf.py monitorunu işə salmaqla IDF layihəsindən işə salına bilər.
Klaviatura qısa yolları IDF Monitor ilə asan qarşılıqlı əlaqə üçün cədvəldə verilmiş klaviatura qısa yollarından istifadə edin.
Espressif sistemləri
30 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Klaviatura Qısayolu Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (və ya A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (və ya I)
· Ctrl+H (və ya H)
· Ctrl+X (və ya X)
Ctrl+C
Fəaliyyət
Təsvir
Proqramdan çıxın Menyu qaçış düyməsi Menyu simvolunun özünü uzaqdan idarəetməyə göndərin
Çıxış simvolunun özünü pultu göndərin
Proqramı RTS xətti ilə dayandırmaq üçün hədəfi yükləyiciyə sıfırlayın
RTS vasitəsilə hədəf lövhəsini sıfırlayın
Layihəni qurun və flaş edin
Yalnız proqramı qurun və yandırın
Giriş çıxışının ekranda çapını dayandırın/davam edin
Giriş çıxışını dayandırın/davam edin file
Dayandırmaq/davam etmək vaxtıamps
çap
Bütün klaviatura qısa yollarını göstərin
Aşağıda verilmiş düymələrdən birini basın və izləyin.
RTS xətti (əgər qoşulubsa) vasitəsilə hədəfi yükləyiciyə sıfırlayır ki, lövhə heç nə işlətməsin. Başqa bir cihazın işə salınmasını gözləmək lazım olduqda faydalıdır. Hədəf lövhəsini sıfırlayır və RTS xətti vasitəsilə tətbiqi yenidən işə salır (əgər bağlıdırsa).
Layihə flaş hədəfini işə salmaq üçün idf_monitor-u dayandırır, sonra idf_monitor-u davam etdirir. Hər hansı dəyişdirilmiş mənbə files yenidən tərtib edilir və sonra yenidən işıqlandırılır. Əgər idf_monitor -E arqumenti ilə işə salınıbsa, hədəf şifrələnmiş flaş işə salınır. Tətbiq flaş hədəfini işə salmaq üçün idf_monitor-u dayandırır, sonra idf_monitor-u davam etdirir. Flaş hədəfinə bənzəyir, lakin yalnız əsas proqram qurulur və yenidən işıqlandırılır. Əgər idf_monitor -E arqumenti ilə işə salınıbsa, hədəf şifrələnmiş-app-flash işə salınır. Aktivləşdirilərkən bütün daxil olan seriya məlumatlarını rədd edir. Monitordan çıxmadan jurnalın çıxışını tez bir zamanda dayandırmağa və yoxlamağa imkan verir. yaradır a file layihə kataloqunda və çıxış buna yazılır file bu eyni klaviatura qısayolu ilə söndürülənə qədər (və ya IDF Monitoru çıxana qədər). IDF Monitor bir vaxt çapını çap edə biləramp hər sətrin əvvəlində. Ən vaxtamp format -timest ilə dəyişdirilə biləramp-format komanda xətti arqumenti.
Proqramdan çıxın
Çalışan tətbiqi dayandırın
IDF Monitorunu dayandırır və proqramın iş vaxtında sazlanması üçün GDB layihə sazlayıcısını işə salın. Bunun üçün :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME seçiminin aktiv edilməsi tələb olunur.
Ctrl-] və Ctrl-T-dən başqa basılan istənilən düymələr serial port vasitəsilə göndəriləcək.
IDF-ə xas xüsusiyyətlər
Avtomatik Ünvan Deşifrəsi ESP-IDF 0x4_______ formanın onaltılıq kod ünvanını çıxardıqda, IDF Monitor mənbə kodunda yeri axtarmaq və funksiya adını tapmaq üçün addr2line_ istifadə edir.
ESP-IDF tətbiqi qəzaya uğrayarsa və panikaya düşərsə, aşağıdakılar kimi reyestr tullantıları və geri çəkilmə əmələ gəlir:
Espressif sistemləri
31 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Əsas 0-da StoreProhibited tipli Guru Meditasiya xətası baş verdi. İstisna idi
idarəsiz.
Qeydiyyat tullantıları:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
0x00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
A14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 SABAH:
0x0000001d
EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitor zibilliyə daha çox təfərrüat əlavə edir:
Əsas 0-da StoreProhibited tipli Guru Meditasiya xətası baş verdi. İstisna idi
idarəsiz.
Qeydiyyat tullantıları:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: /home/gus/esp/32/idf/ex ünvanında qəza etmək üçün bir şey edinamples/başlamaq/
salam_dünya/main/./hello_world_main.c:57
(daxili) /home/gus/esp/32/idf/ex ünvanında inner_dont_crashamples/get-started/salam_
dünya/main/./hello_world_main.c:52
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
0x00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
A14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 SABAH:
0x0000001d
EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (daxil edilmiş) inner_dont_crash at /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: app_main ünvanında /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254 ünvanında əsas_tapşırıq
Hər bir ünvanı deşifrə etmək üçün IDF Monitor fonda aşağıdakı əmri işlədir: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Qeyd: ESP_MONITOR_DECODE mühit dəyişənini 0-a təyin edin və ya xüsusi komanda xətti ilə idf_monitor.py-ə zəng edin
Espressif sistemləri
32 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
seçim: idf_monitor.py – ünvanın deşifrəsini deaktiv etmək üçün disable-address-decoding.
Bağlantıda Hədəfin Sıfırlanması Varsayılan olaraq, IDF Monitor ona qoşulduqda hədəfi sıfırlayacaq. Hədəf çipinin sıfırlanması DTR və RTS seriya xətlərindən istifadə etməklə həyata keçirilir. IDF Monitorun qoşulma zamanı hədəfi avtomatik olaraq sıfırlamasının qarşısını almaq üçün –no-reset seçimi ilə IDF Monitor-a zəng edin (məsələn, idf_monitor.py –no-reset).
Qeyd: –no-reset seçimi hətta IDF Monitor-u müəyyən bir porta qoşarkən belə eyni davranışı tətbiq edir (məsələn, idf.py monitor –no-reset -p [PORT]).
GDB-nin GDBStub ilə işə salınması GDBStub, hədəfdə işləyən və sazlama əmrlərini qəbul etmək üçün serial portu üzərindən hosta qoşulan faydalı iş vaxtı sazlama xüsusiyyətidir. GDBStub yaddaşı və dəyişənləri oxumaq, zəng yığını çərçivələrini yoxlamaq və s. kimi əmrləri dəstəkləyir. Baxmayaraq ki, GDBStub J ilə müqayisədə daha az universaldır.TAG sazlama üçün heç bir xüsusi avadanlıq tələb etmir (məsələn, JTAG USB körpüsünə) kimi rabitə tamamilə seriya portu üzərindən həyata keçirilir. Məqsəd CONFIG_ESP_SYSTEM_PANIC-i icra müddətində GDBStub-a təyin etməklə GDBStub-u fonda işə salmaq üçün konfiqurasiya edilə bilər. GDBStub serial port üzərindən Ctrl+C mesajı göndərilənə və GDBStub-un proqramı pozmasına (yəni, icrasını dayandırmasına) səbəb olana qədər fonda işləyəcək, beləliklə, GDBStub-a sazlama əmrlərini idarə etməyə imkan verir. Bundan əlavə, panik idarəçisi CONFIG_ESP_SYSTEM_PANIC-i panik zamanı GDBStub-a təyin etməklə qəza zamanı GDBStub-u işə salmaq üçün konfiqurasiya edilə bilər. Qəza baş verdikdə, GDBStub onun işlədiyini göstərmək üçün serial port üzərində xüsusi sətir nümunəsi çıxaracaq. Hər iki halda (yəni, Ctrl+C mesajının göndərilməsi və ya xüsusi sətir modelinin qəbulu) istifadəçiyə sazlama əmrləri göndərmək imkanı vermək üçün IDF Monitor avtomatik olaraq GDB-ni işə salacaq. GDB çıxdıqdan sonra hədəf RTS seriya xətti ilə sıfırlanır. Bu xətt bağlı deyilsə, istifadəçilər hədəflərini sıfırlaya bilərlər (boardn Reset düyməsini basaraq).
Qeyd: Fonda IDF Monitor GDB-ni işə salmaq üçün aşağıdakı əmri işlədir:
xtensa-esp32-elf-gdb -ex “set serial baud BAUD” -ex “target remote PORT” -ex interrupt build/PROJECT.elf :idf_target:`Salam NAME chip`
Çıxış Filtrləmə IDF monitoru idf.py monitor –print-filter=”xyz” kimi işə salına bilər, burada –print-filter çıxış filtri üçün parametrdir. Varsayılan dəyər boş sətirdir, yəni hər şey çap olunur.
Nə çap ediləcəyinə dair məhdudiyyətlər bir sıra olaraq təyin edilə bilərtag>: maddələr haradatag> edir tag simli və giriş üçün səviyyəyə istinad edən {N, E, W, I, D, V, *} dəstindən simvoldur.
məsələnample, PRINT_FILTER=”tag1:W” yalnız ESP_LOGW ilə yazılmış çıxışlara uyğun gəlir və çap edir(“tag1”, …) və ya daha aşağı genişlik səviyyəsində, yəni ESP_LOGE(“tag1″, …). Müəyyənləşdirmədən a və ya Verbose səviyyəsinə * defoltlarından istifadə edin.
Qeyd: Giriş kitabxanası vasitəsilə sizə lazım olmayan çıxışları tərtib edərkən söndürmək üçün ilkin girişdən istifadə edin. IDF monitoru ilə çıxış filtrləmə tətbiqi yenidən tərtib etmədən filtrləmə seçimlərini tənzimləmək üçün faydalı ola biləcək ikinci dərəcəli həlldir.
Proqramınız tags boşluq, ulduz * və ya iki nöqtədən ibarət olmamalıdır: çıxış filtrləmə xüsusiyyətinə uyğun olmalıdır.
Tətbiqinizdəki çıxışın son sətirindən sonra karetin qaytarılması yoxdursa, çıxış filtrləməsi çaşqın ola bilər, yəni monitor xətti çap etməyə başlayır və daha sonra xəttin yazılmamalı olduğunu öyrənir. Bu məlum məsələdir və hər zaman vaqonun qaytarılması əlavə etməklə qarşısını almaq olar (xüsusilə də dərhal sonra heç bir çıxış olmadıqda).
Espressif sistemləri
33 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
ExampFiltrləmə Qaydaları:
· * istənilən uyğunluq üçün istifadə edilə bilər tags. Bununla belə, sətir PRINT_FILTER=”*:I tag1:E” ilə bağlı tag1 yalnız səhvləri çap edir, çünki qayda üçün tag1, * üçün qaydadan daha yüksək prioritetə malikdir.
· Standart (boş) qayda *:V-ə bərabərdir, çünki hər birinə uyğun gəlir tag Verbose səviyyəsində və ya aşağı hər şeyə uyğun gələn deməkdir.
· “*:N” təkcə giriş funksiyalarının çıxışlarını deyil, həm də printf və s. tərəfindən edilən çapları sıxışdırır. Bunun qarşısını almaq üçün *:E və ya daha yüksək təfərrüat səviyyəsindən istifadə edin.
· Qaydalar”tag1:V”, “tag1:v”, “tag1:”, “tag1:*”, və “tag1” ekvivalentdir. · Qayda “tag1: W tag1:E” “ə bərabərdir”tag1:E” çünki eyni şeyin hər hansı bir nəticəsi baş verir tag
ad əvvəlkinin üzərinə yazır. · Qayda "tag1: I tag2:W” yalnız çap edir tag1 Məlumatın genişliyi səviyyəsində və ya daha aşağı və tagXəbərdarlıqda 2
genişlik səviyyəsi və ya daha aşağı. · Qayda "tag1: I tag2: W tag3:N” mahiyyətcə əvvəlkinə bərabərdir, çünki tag3:N müəyyən edir
ki tag3 çap edilməməlidir. · tagQaydada 3:N "tag1: I tag2: W tag3:N *:V” daha mənalıdır, çünki olmadan tag3:N
tag3 mesaj çap edilə bilərdi; üçün səhvlər tag1 və tag2 müəyyən edilmiş (və ya daha aşağı) təfərrüat səviyyəsində çap olunacaq və qalan hər şey standart olaraq çap olunacaq.
Daha mürəkkəb filtrləmə Example Aşağıdakı log parçası heç bir filtrləmə seçimləri olmadan əldə edildi:
load:0x40078000,len:13564 giriş 0x40078d4c E (31) esp_image: 0x30000-də olan şəkil etibarsız sehrli bayta malikdir W (31) esp_image: 0x30000-də olan şəkil etibarsız SPI rejiminə malikdir (E3 bölməsi 255 yüklənə bilməz) (568) cpu_start: Pro cpu yuxarı. I (569) heap_init: Başlanğıc edilir. Dinamik ayırma üçün əlçatan RAM: I (603) cpu_start: Pro cpu başlanğıc istifadəçi kodu D (309) light_driver: [light_init, 74]:status: 1, rejim: 2 D (318) vfs: esp_vfs_register_fd_aralığı <54 diapazonu üçün uğurludur; 64) və VFS ID 1 I (328) wifi: wifi sürücüsü tapşırığı: 39ffdbf84, prio: 23, yığın: 4096, nüvə = 0
PRINT_FILTER=”wifi esp_image:E light_driver:I” filtrləmə seçimləri üçün çəkilmiş çıxış aşağıda verilmişdir:
E (31) esp_image: 0x30000-də təsvirin yanlış sehrli baytı var I (328) wifi: wifi sürücüsü tapşırığı: 3ffdbf84, prio:23, yığın:4096, nüvə=0
“PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” seçimləri aşağıdakı çıxışı göstərir:
yüklə: 0x40078000, len: 13564 giriş 0x40078d4c I (569) heap_init: Başlanılır. Dinamik ayırma üçün əlçatan RAM: D (309) light_driver: [light_init, 74]:status: 1, rejim: 2
IDF Monitor ilə bağlı məlum problemlər
Windows-da müşahidə edilən problemlər
· Ok düymələri, eləcə də bəzi digər düymələr Windows Konsolu məhdudiyyətlərinə görə GDB-də işləmir. · Bəzən, oidf.pypexit olduqda, IDF Monitor davam etməzdən əvvəl 30 saniyəyə qədər dayana bilər. · Ogdbpis işə salındıqda, GDBStub ilə əlaqə yaratmazdan əvvəl qısa müddətə dayana bilər.
Espressif sistemləri
34 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın Linux və macOS üçün Standart Alətlər Zinciri Quraşdırması
Addım-addım quraşdırma Bu quraşdırma prosesində sizə kömək edəcək ətraflı yol xəritəsidir.
İnkişaf Mühitinin qurulması Bunlar ESP32-niz üçün ESP-IDF qurmaq üçün addımlardır. · Addım 1. İlkin şərtləri quraşdırın · Addım 2. ESP-IDF əldə edin · Addım 3. Alətləri quraşdırın · Addım 4. Mühit dəyişənlərini quraşdırın · Addım 5. ESP-IDF üzrə ilk addımlar
Addım 1. İlkin şərtləri quraşdırın ESP-IDF-dən ESP32 ilə istifadə etmək üçün siz Əməliyyat Sisteminizə əsaslanan bəzi proqram paketləri quraşdırmalısınız. Bu quraşdırma təlimatı sizə Linux və macOS əsaslı sistemlərdə quraşdırılmış hər şeyi əldə etməyə kömək edəcək.
Linux İstifadəçiləri üçün ESP-IDF-dən istifadə edərək tərtib etmək üçün aşağıdakı paketləri əldə etməlisiniz. Çalıştırma əmri istifadə etdiyiniz Linux paylanmasından asılıdır:
· Ubuntu və Debian: sudo apt-get install git wget flex bizon gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 və 8: sudo yum -y yeniləmə && sudo yum quraşdırmaq git wget flex bizon gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 hələ də dəstəklənir, lakin daha yaxşı istifadəçi təcrübəsi üçün CentOS 8 versiyası tövsiyə olunur. · Arch: sudo pacman -S –needed gcc git make flex bizon gperf python cmake ninja ccache dfu-util libusb
Qeyd: · ESP-IDF ilə istifadə üçün CMake 3.16 və ya daha yeni versiyası tələb olunur. ƏS versiyalarınızda bir versiya yoxdursa, uyğun versiyanı quraşdırmaq üçün otools/idf_tools.py install cmakep-i işə salın. · Əgər yuxarıdakı siyahıda Linux paylamanızı görmürsünüzsə, paketin quraşdırılması üçün hansı əmrdən istifadə edəcəyinizi öyrənmək üçün onun sənədlərini yoxlayın.
macOS İstifadəçiləri üçün ESP-IDF, macOS-da defolt olaraq quraşdırılmış Python versiyasından istifadə edəcək. · CMake & Ninja build-i quraşdırın: HomeBrew varsa, işlədə bilərsiniz: brew install cmake ninja dfu-util MacPort-larınız varsa, işlədə bilərsiniz: sudo port install cmake ninja dfu-util Əks halda, macOS quraşdırma yükləmələri üçün CMake və Ninja ana səhifələrinə müraciət edin.
Espressif sistemləri
35 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
· Daha sürətli qurmaq üçün ccache quraşdırmaq da tövsiyə olunur. Əgər sizdə HomeBrew varsa, bu MacPorts-da brew install ccache və ya sudo port install ccache vasitəsilə edilə bilər.
Qeyd: Hər hansı bir addımda belə bir səhv göstərilirsə: xcrun: xəta: etibarsız aktiv inkişaf etdirici yolu (/Library/Developer/CommandLineTools), xcrun yoxdur: /Library/Developer/CommandLineTools/usr/bin/xcrun
Sonra davam etmək üçün XCode komanda xətti alətlərini quraşdırmalısınız. Bunları xcode-select –install işlətməklə quraşdıra bilərsiniz.
Apple M1 İstifadəçiləri Apple M1 platformasından istifadə edirsinizsə və belə bir xəta görürsünüzsə: XƏBƏRDARLIQ: xtensa-esp32-elf versiyası esp-2021r2-patch3-8.4.0 üçün kataloq mövcuddur, lakin alət tapılmadı. XƏTƏ: xtensa-esp32-elf alətinin quraşdırılmış versiyaları yoxdur. Quraşdırmaq üçün 'install.sh' proqramını işə salın.
və ya: zsh: icra olunanda pis CPU növü: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Sonra /usr/sbin/softwareupdate –install-rosetta –agree-to-license işlətməklə Apple Rosetta 2-ni quraşdırmalı olacaqsınız.
Python 3-ün quraşdırılması macOS Catalina 10.15 buraxılış qeydlərinə əsasən, Python 2.7-dən istifadə tövsiyə edilmir və Python 2.7 defolt olaraq macOS-un gələcək versiyalarına daxil edilməyəcək. Hazırda hansı Python-a sahib olduğunuzu yoxlayın: python –versiya
Əgər çıxış Python 2.7.17 kimidirsə, defolt tərcüməçiniz Python 2.7-dir. Əgər belədirsə, Python 3-ün kompüterinizdə artıq quraşdırılmadığını da yoxlayın: python3 –versiya
Yuxarıdakı əmr xəta qaytarırsa, bu, Python 3-ün quraşdırılmadığını bildirir. Aşağıda bir bitdiview Python 3-ü quraşdırmaq üçün addımlar.
· HomeBrew ilə quraşdırma aşağıdakı kimi edilə bilər: brew install python3
· Əgər sizin MacPortlarınız varsa, işlədə bilərsiniz: sudo port install python38
Addım 2. ESP-IDF əldə edin ESP32 üçün proqramlar yaratmaq üçün sizə ESP-IDF deposunda Espressif tərəfindən təmin edilmiş proqram kitabxanaları lazımdır. ESP-IDF əldə etmək üçün quraşdırma kataloqunuza gedin və əməliyyat sisteminiz üçün aşağıdakı təlimatları izləyərək git clone ilə deponu klonlayın. Terminalı açın və aşağıdakı əmrləri yerinə yetirin:
Espressif sistemləri
36 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekursiv https://github.com/espressif/esp-idf.git
ESP-IDF ~/esp/esp-idf-ə endiriləcək. Verilmiş vəziyyətdə hansı ESP-IDF versiyasının istifadə ediləcəyi haqqında məlumat üçün ESP-IDF Versiyalarına müraciət edin.
Addım 3. Alətləri quraşdırın ESP-IDF-dən başqa, siz həmçinin ESP-IDF tərəfindən istifadə olunan kompilyator, sazlayıcı, Python paketləri və s. kimi ESP32-ni dəstəkləyən layihələr üçün alətləri quraşdırmalısınız. cd ~/esp/esp-idf ./install.sh esp32
və ya Balıq qabığı cd ~/esp/esp-idf ./install.fish esp32 ilə
Yuxarıdakı əmrlər yalnız ESP32 üçün alətlər quraşdırır. Əgər daha çox çip hədəfləri üçün layihələr hazırlamaq niyyətindəsinizsə, onların hamısını sadalayıb keçmiş üçün qaçmalısınızample: cd ~/esp/esp-idf ./install.sh esp32, esp32s2
və ya Balıq qabığı ilə cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Bütün dəstəklənən hədəflər üçün alətlər quraşdırmaq üçün aşağıdakı əmri icra edin: cd ~/esp/esp-idf ./install.sh all
və ya Fish shell cd ~/esp/esp-idf ./install.fish all ilə
Qeyd: MacOS istifadəçiləri üçün, hər hansı bir addımda belə bir xəta göstərilərsə:urlaçıq xəta [SSL: CERTIFICATE_VERIFY_FAILED] sertifikatının yoxlanılması uğursuz oldu: yerli emitent sertifikatını əldə etmək mümkün deyil (_ssl.c:xxx)
Siz sertifikatları quraşdırmaq üçün kompüterinizin Python qovluğunda Install Certificates.command proqramını işlədə bilərsiniz. Təfərrüatlar üçün ESP-IDF Alətlərini Quraşdırarkən Yükləmə Xətası bölməsinə baxın.
Alternativ File Yükləmələr Alətlər quraşdırıcısı bir sıra yükləyir files GitHub Releases-ə əlavə edilmişdir. GitHub-a daxil olmaq yavaşdırsa, GitHub aktivlərinin endirilməsi üçün Espressifns yükləmə serverinə üstünlük vermək üçün mühit dəyişənini təyin etmək mümkündür.
Qeyd: Bu parametr yalnız GitHub buraxılışlarından endirilmiş fərdi alətlərə nəzarət edir, o, dəyişdirmir URLs istənilən Git depolarına daxil olmaq üçün istifadə olunur.
Alətləri quraşdırarkən Espressif yükləmə serverinə üstünlük vermək üçün install.sh proqramını işlədən zaman aşağıdakı əmrlər ardıcıllığından istifadə edin:
Espressif sistemləri
37 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
cd ~/esp/esp-idf ixracı IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Alətlərin quraşdırılması yolunun fərdiləşdirilməsi Bu addımda təqdim edilən skriptlər ESP-IDF tərəfindən tələb olunan kompilyasiya alətlərini istifadəçinin ev kataloqunda quraşdırır: Linux-da $HOME/.espressif. Əgər alətləri başqa qovluğa quraşdırmaq istəyirsinizsə, quraşdırma skriptlərini işə salmazdan əvvəl IDF_TOOLS_PATH mühit dəyişənini təyin edin. İstifadəçi hesabınızın bu yolu oxumaq və yazmaq üçün kifayət qədər icazələrə malik olduğundan əmin olun. IDF_TOOLS_PATH dəyişdirilərsə, hər dəfə Quraşdırma skripti (install. bat, install.ps1 və ya install.sh) və İxrac skripti (export.bat, export.ps1 və ya export.sh) icra ediləndə onun eyni dəyərə təyin olunduğundan əmin olun.
Addım 4. Ətraf mühit dəyişənlərini qurun Quraşdırılmış alətlər hələ PATH mühit dəyişəninə əlavə edilməyib. Alətləri komanda xəttindən istifadə etmək üçün bəzi mühit dəyişənləri təyin edilməlidir. ESP-IDF bunu edən başqa bir skript təqdim edir. ESP-IDF-dən istifadə edəcəyiniz terminalda aşağıdakıları işlədin:
. $HOME/esp/esp-idf/export.sh
və ya balıq üçün (yalnız balıq versiyası 3.0.0-dan bəri dəstəklənir):
. $HOME/esp/esp-idf/export.fish
Aparıcı nöqtə ilə yol arasındakı boşluğa diqqət yetirin! Əgər esp-idf-dən tez-tez istifadə etməyi planlaşdırırsınızsa, siz export.sh-ni yerinə yetirmək üçün ləqəb yarada bilərsiniz:
1. Aşağıdakı əmri kopyalayıb shellns pro-ya yapışdırınfile (.profile, .bashrc, .zprofilevə s.)
ləqəb get_idf ='. $HOME/esp/esp-idf/export.sh' 2. Terminal sessiyasını yenidən başlatmaqla və ya mənbəni [pro-ya gedən yoldan işə salmaqla konfiqurasiyanı yeniləyinfile],
məsələnample, mənbə ~/.bashrc. İndi istənilən terminal sessiyasında esp-idf mühitini qurmaq və ya yeniləmək üçün get_idf-i işə sala bilərsiniz. Texniki olaraq, siz shellns pro-ya export.sh əlavə edə bilərsinizfile birbaşa; lakin tövsiyə edilmir. Bununla, hər terminal sessiyasında IDF virtual mühitini aktivləşdirir (IDF-ə ehtiyac olmayanlar daxil olmaqla), virtual mühitin məqsədini pozur və ehtimal ki, digər proqram təminatına təsir göstərir.
Addım 5. ESP-IDF üzrə ilk addımlar İndi bütün tələblər yerinə yetirildiyinə görə, növbəti mövzu sizə ilk layihənizə necə başlamaq barədə məlumat verəcəkdir. Bu təlimat ESP-IDF istifadə edərək ilk addımlarda sizə kömək edəcək. ESP32-də yeni layihəyə başlamaq və cihazın çıxışını qurmaq, yandırmaq və nəzarət etmək üçün bu təlimatı izləyin.
Qeyd: Əgər siz hələ ESP-IDF quraşdırmamısınızsa, bu təlimatdan istifadə etmək üçün lazım olan bütün proqram təminatını əldə etmək üçün Quraşdırma bölməsinə keçin və təlimata əməl edin.
Layihəyə başlayın İndi siz ESP32 üçün ərizənizi hazırlamağa hazırsınız. Siz keçmişdən getstarted/hello_world layihəsi ilə başlaya bilərsinizamples kataloqu ESP-IDF-də.
Vacib: ESP-IDF qurma sistemi nə ESP-IDF, nə də layihələrə gedən yollarda boşluqları dəstəkləmir.
Layihə get-started/hello_world-u ~/esp qovluğuna kopyalayın:
Espressif sistemləri
38 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Qeyd: Bir sıra keçmiş varample layihələri keçmişdəampESP-IDF-də les kataloqu. İstənilən layihəni yuxarıda göstərildiyi kimi kopyalayıb işlədə bilərsiniz. Keçmiş tikmək də mümkündüramples in-place ilk onları kopyalamadan.
Cihazınızı birləşdirin İndi ESP32 lövhənizi kompüterə qoşun və lövhənin hansı serial portun altında göründüyünü yoxlayın. Serial portların aşağıdakı adlandırma nümunələri var:
· Linux: /dev/tty ilə başlayan · macOS: /dev/cu ilə başlayan. Serial port adını necə yoxlayacağınızdan əmin deyilsinizsə, lütfən, tam təfərrüatlar üçün ESP32 ilə Serial Bağlantının qurulmasına baxın.
Qeyd: Port adını əlinizdə saxlayın, çünki növbəti addımlarda ona ehtiyacınız olacaq.
Layihənizi konfiqurasiya edin hello_world kataloqunuza gedin, ESP32-ni hədəf olaraq təyin edin və layihə konfiqurasiya yardım proqramını işə salın menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Yeni bir layihəni açdıqdan sonra əvvəlcə idf.py set-target esp32 ilə hədəf təyin etməlisiniz. Qeyd edək ki, layihədəki mövcud konfiqurasiyalar və konfiqurasiyalar, əgər varsa, bu prosesdə təmizlənəcək və işə salınacaq. Bu addımı ümumiyyətlə atlamaq üçün hədəf mühit dəyişənində yadda saxlanıla bilər. Əlavə məlumat üçün Hədəf Çipi Seçin: hədəf təyinatına baxın. Əvvəlki addımlar düzgün aparılıbsa, aşağıdakı menyu görünür:
Şəkil 17: Layihənin konfiqurasiyası – Əsas pəncərə Siz bu menyudan layihəyə aid dəyişənləri qurmaq üçün istifadə edirsiniz, məsələn, Wi-Fi şəbəkəsinin adı və parolu, prosessorun sürəti və s. Layihənin menuconfig ilə qurulması ohello_worldp üçün atlana bilər, çünki bu keçmişampilə qaçır
Espressif sistemləri
39 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
standart konfiqurasiya.
Diqqət: Əgər siz ESP32-SOLO-1 modulu ilə ESP32-DevKitC lövhəsindən və ya ESP32-MIN1-1(1U) modulu ilə ESP32-DevKitM-1 lövhəsindən istifadə edirsinizsə, lütfən, keçmiş yanıb-sönmədən əvvəl menyu konfiqurasiyasında tək nüvə rejimini (CONFIG_FREERTOS_UNICORE) aktivləşdirin.amples.
Qeyd: Menyunun rəngləri terminalınızda fərqli ola bilər. Görünüşü stil seçimi ilə dəyişə bilərsiniz. Əlavə məlumat üçün idf.py menuconfig –help proqramını işə salın.
Dəstəklənən inkişaf lövhələrindən birini istifadə edirsinizsə, Board Support Paketindən istifadə edərək inkişafınızı sürətləndirə bilərsiniz. Əlavə məlumat üçün Əlavə Məsləhətlərə baxın.
Layihəni qurun Layihəni işləməklə qurun:
idf.py qurun
Bu əmr proqramı və bütün ESP-IDF komponentlərini tərtib edəcək, sonra yükləyicini, bölmə cədvəlini və proqram ikili fayllarını yaradacaq.
$ idf.py build /path/to/hello_world/build qovluğunda cmake işə salınır “cmake -G Ninja –warn-uninitialized /path/to/hello_world” icra edilir... Başlanmamış dəyərlər haqqında xəbərdarlıq edin. — Tapılan Git: /usr/bin/git (“2.17.0” versiyası tapıldı) — Konfiqurasiyaya görə boş aws_iot komponenti qurmaq — Komponent adları: … — Komponent yolları: …
… (sistem çıxışının daha çox sətirləri)
[527/527] hello_world.bin esptool.py v2.3.1 yaradılır
Layihənin qurulması tamamlandı. Yandırmaq üçün bu əmri yerinə yetirin: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_ld bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin və ya 'idf.py -p PORT flash'ı işə salın
Heç bir xəta yoxdursa, quraşdırma ikili proqram .bin faylını yaratmaqla tamamlanacaq files.
Cihazda flaş edin İndicə qurduğunuz binar faylları (bootloader.bin, partition-table.bin və hello_world.bin) işlətməklə ESP32 lövhənizdə yandırın:
idf.py -p PORT [-b BAUD] flash
PORT-u ESP32 lövhənizin seriya port adı ilə əvəz edin. Siz həmçinin BAUD-u sizə lazım olan ötürmə sürəti ilə əvəz etməklə flasherin ötürmə sürətini dəyişə bilərsiniz. Defolt ötürmə sürəti 460800-dir. Idf.py arqumentləri haqqında ətraflı məlumat üçün idf.py-ə baxın.
Qeyd: Flaş seçimi avtomatik olaraq layihəni qurur və yanıb-sönür, ona görə də idf.py build proqramını işə salmaq lazım deyil.
Espressif sistemləri
40 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Yanıb-sönən zaman problemlərlə qarşılaşdınız? Verilmiş əmri icra etsəniz və qoşulmaq mümkün olmadı kimi xətaları görsəniz, bunun bir neçə səbəbi ola bilər. Səbəblərdən biri çipi sıfırlamaq, ROM yükləyicisi ilə qarşılıqlı əlaqə qurmaq və flash proqram təminatı ilə işləmək üçün quraşdırma sistemi tərəfindən çağırılan esptool.py yardım proqramı ilə qarşılaşdığı problemlər ola bilər. Sınamaq üçün sadə həll yollarından biri aşağıda təsvir edilən əl ilə sıfırlamadır və bu kömək etmirsə, Problemlərin aradan qaldırılması bölməsində mümkün problemlər haqqında ətraflı məlumat tapa bilərsiniz.
esptool.py, USB-dən serial çevirici çipinin DTR və RTS idarəetmə xətlərini, yəni FTDI və ya CP210x-i təsdiq edərək ESP32-ni avtomatik olaraq sıfırlayır (ətraflı məlumat üçün ESP32 ilə Serial Bağlantının qurulmasına baxın). DTR və RTS idarəetmə xətləri öz növbəsində ESP32-nin GPIO0 və CHIP_PU (EN) pinlərinə qoşulur, beləliklə, həcmdə dəyişikliklər baş verir.tage DTR və RTS səviyyələri ESP32-ni Firmware Download rejiminə yükləyəcək. Keçmiş kimiample, ESP32 DevKitC inkişaf lövhəsi üçün sxemi yoxlayın.
Ümumiyyətlə, rəsmi esp-idf inkişaf lövhələri ilə heç bir probleminiz olmamalıdır. Bununla belə, esptool.py aşağıdakı hallarda avadanlığınızı avtomatik olaraq sıfırlaya bilmir:
· Aparatınızın GPIO0 və CHIP_PU-ya qoşulmuş DTR və RTS xətləri yoxdur · DTR və RTS xətləri fərqli şəkildə konfiqurasiya olunub · Belə seriyalı idarəetmə xətləri ümumiyyətlə yoxdur
Sahib olduğunuz avadanlığın növündən asılı olaraq, ESP32 lövhənizi Firmware Download rejiminə (sıfırlama) əl ilə qoymaq da mümkün ola bilər.
· Espressif tərəfindən hazırlanmış inkişaf lövhələri üçün bu məlumatı müvafiq başlanğıc təlimatlarında və ya istifadəçi təlimatlarında tapa bilərsiniz. məsələnample, ESP-IDF inkişaf lövhəsini əl ilə sıfırlamaq üçün Yükləmə düyməsini (GPIO0) basıb saxlayın və EN düyməsini (CHIP_PU) basın.
· Digər avadanlıq növləri üçün GPIO0-u aşağı çəkməyə çalışın.
Normal Əməliyyat Yanıb-sönən zaman aşağıdakı kimi çıxış jurnalını görəcəksiniz:
… 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 0x800000 partition_table/ttyUSB000- bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Qoşulur…….._ Çip ESP32D0WDQ6-dır (revision 0) Xüsusiyyətlər: WiFi, BT, Dual Core, Kodlaşdırma Sxemi MAC4 yoxdur: MAC4 24:0a:c4:05:b9:14 stub yüklənir... stub işləyir... stub işləyir... ötürmə sürəti 460800-ə dəyişdirilir Dəyişdirildi. Flaş ölçüsü konfiqurasiya edilir... 3072 baytdan 103-ə qədər sıxılmışdır... 0x00008000… (100 %) ilə yazılır. 0x00008000-də 3072 bayt (103 sıxılmış) 0.0 saniyəyə yazdı (effektiv 5962.8 kbit/saniyə məlumat) 26096 bayt 15408-ə sıxıldı… 0x00001000… (100 %) ilə yazıldı. 0x00001000-də 26096 baytı (15408 sıxılmış) 0.4 saniyəyə yazdı (effektiv 546.7 kbit/s data)…. Sıxılmış 147104 bayt 77364… 0x00010000… (20 %) 0x00014000… (40 %) ilə yazılır… 0x00018000… (60 %) ilə yazılır…
(növbəti səhifədə davam edir)
Espressif sistemləri
41 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
(əvvəlki səhifənin davamı) 0x00020000… (100 %) 1.9 saniyəyə 0x00010000-də 147104 bayt (77364 sıxılmış) yazdı (effektiv 615. 5 kbit/s)… Məlumatın hashı təsdiqləndi.
Ayrılır... RTS pin vasitəsilə sərt sıfırlanır... Hazırdır
Flaş prosesinin sonuna qədər heç bir problem olmasa, lövhə yenidən başlayacaq və theohello_worldpapplication işə başlayacaq. Əgər idf.py ilə işləmək əvəzinə Eclipse və ya VS Code IDE-dən istifadə etmək istəyirsinizsə, Eclipse Plugin, VSCode Extension-a baxın.
Çıxışın monitorinqi Ohello_worldpis-in həqiqətən işlədiyini yoxlamaq üçün idf.py -p PORT monitor yazın (PORT-u serial port adı ilə əvəz etməyi unutmayın). Bu əmr IDF Monitor proqramını işə salır:
$ idf.py -p monitor […]/esp/hello_world/build qovluğunda idf_monitor işləyir “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”…mon icra edilir. 115200 —– Çıxın: Ctrl+] | Menyu: Ctrl+T | Yardım: Ctrl+T və sonra Ctrl+H –ets 8 İyun 2016 00:22:57
ilk: 0x1 (POWERON_RESET), yükləmə: 0x13 (SPI_FAST_FLASH_BOOT) və 8 iyun 2016 00:22:57 …
Başlanğıc və diaqnostik qeydlər yuxarı sürüşdürüldükdən sonra siz proqram tərəfindən çap edilmiş oSalam dünya!
… Salam dünya! 10 saniyəyə yenidən işə salınır… Bu, 2 CPU nüvəsi(ləri), WiFi/BT/BLE, silikon revizyonu 1, 2MB xarici flaşlı esp32 çipidir Minimum pulsuz yığın ölçüsü: 298968 bayt 9 saniyəyə yenidən işə salınır… 8 saniyəyə yenidən işə salınır… 7 saniyəyə yenidən işə salınır…
IDF monitorundan çıxmaq üçün Ctrl+] qısa yolundan istifadə edin. Yükləmədən qısa müddət sonra IDF monitoru uğursuz olarsa və ya yuxarıdakı mesajların əvəzinə aşağıda göstərilənlərə bənzər təsadüfi zibil görürsünüzsə, lövhəniz çox güman ki, 26 MHz kristaldan istifadə edir. Əksər inkişaf lövhəsi dizaynları 40 MHz-dən istifadə edir, buna görə də ESP-IDF bu tezliyi standart dəyər kimi istifadə edir.
Əgər belə bir probleminiz varsa, aşağıdakıları edin:
1. Monitordan çıxın. 2. Menyu konfiqurasiyasına qayıdın. 3. Komponent konfiqurasiyası > Hardware Parametrləri > Əsas XTAL Konfiqurasiyası > Əsas XTAL-a keçin
tezliyi, sonra CONFIG_XTAL_FREQ_SEL-i 26 MHz-ə dəyişin. 4. Bundan sonra proqramı yenidən qurun və flash edin.
Espressif sistemləri
42 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
ESP-IDF-in cari versiyasında ESP32 tərəfindən dəstəklənən əsas XTAL tezlikləri aşağıdakılardır:
· 26 MHz · 40 MHz
Qeyd: Quraşdırma, yanıb-sönmə və monitorinqi bir addımda birləşdirə bilərsiniz: idf.py -p PORT flash monitor
Həmçinin baxın: · Faydalı qısa yollar və IDF monitorundan istifadə haqqında ətraflı məlumat üçün IDF Monitor. · idf.py əmrləri və seçimləri haqqında tam istinad üçün idf.py.
ESP32 ilə başlamaq üçün sizə lazım olan bütün bunlardır! İndi başqa bir keçmişi sınamağa hazırsınızamples, və ya birbaşa öz proqramlarınızı inkişaf etdirməyə gedin.
Əhəmiyyətli: bəzi keçmişamples ESP32-ni dəstəkləmir, çünki tələb olunan avadanlıq ESP32-yə daxil deyil, ona görə də dəstəklənə bilməz. Keçmiş tikinti varsaample, lütfən README-ni yoxlayın file Dəstəklənən Hədəflər cədvəli üçün. Bu, ESP32 hədəfi daxil olmaqla mövcuddursa və ya cədvəl ümumiyyətlə mövcud deyilsə, keçmişample ESP32 üzərində işləyəcək.
Əlavə məsləhətlər
İcazə problemləri /dev/ttyUSB0 Bəzi Linux paylamaları ilə siz ESP32-ni yandırarkən /dev/ttyUSB0 portunu açmaq uğursuz oldu səhv mesajını ala bilərsiniz. Bu, cari istifadəçini dialoq qrupuna əlavə etməklə həll edilə bilər.
Python uyğunluğu ESP-IDF Python 3.7 və ya daha yenisini dəstəkləyir. Əməliyyat sisteminizi bu tələbi ödəyən ən son versiyaya təkmilləşdirmək tövsiyə olunur. Digər seçimlərə mənbələrdən Python quraşdırılması və ya pyenv kimi Python versiyası idarəetmə sisteminin istifadəsi daxildir.
Lövhə Dəstəyi Paketi ilə başlayın Bəzi inkişaf lövhələrində prototipləşdirməni sürətləndirmək üçün siz müəyyən lövhənin işə salınmasını bir neçə funksiya çağırışı kimi asanlaşdıran Board Support Paketlərindən (BSP) istifadə edə bilərsiniz. BSP adətən inkişaf lövhəsində təqdim olunan bütün aparat komponentlərini dəstəkləyir. Pinout tərifi və işə salma funksiyalarından başqa, BSP sensorlar, displeylər, audio kodeklər və s. kimi xarici komponentlər üçün drayverlərlə göndərilir. BSP-lər IDF Komponent Meneceri vasitəsilə paylanır, ona görə də onları IDF Komponent Reyestrində tapmaq olar. Herens keçmişdirampLayihənizə ESP-WROVER-KIT BSP-ni necə əlavə etmək olar: idf.py add-dependency esp_wrover_kit
Daha çox məsampBSP-dən istifadə qaydaları BSP-də tapıla biləramples qovluğu.
İpucu: ESP-IDF-nin yenilənməsi ESP-IDF-nin vaxtaşırı yenilənməsi tövsiyə olunur, çünki daha yeni versiyalar səhvləri düzəldir və/yaxud yeni funksiyalar təqdim edir. Nəzərə alın ki, hər bir ESP-IDF əsas və kiçik buraxılış versiyasında əlaqəli dəstək müddəti var və bir buraxılış filialı ömrünün sonuna (EOL) yaxınlaşdıqda, bütün istifadəçilər layihələrini daha son ESP-IDF buraxılışlarına təkmilləşdirməyə təşviq edilir, dəstək müddətləri haqqında daha çox məlumat əldə etmək üçün ESP-IDF Versiyalarına baxın.
Espressif sistemləri
43 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 1. Başlayın
Yeniləmənin ən sadə yolu mövcud esp-idf qovluğunu silmək və 2-ci addımda təsvir edilən ilkin quraşdırmanı yerinə yetirirmiş kimi yenidən klonlaşdırmaqdır. ESP-IDF əldə edin. Başqa bir həll yalnız dəyişmiş şeyi yeniləməkdir. Yeniləmə proseduru istifadə etdiyiniz ESP-IDF versiyasından asılıdır. ESP-IDF-ni yenilədikdən sonra, yeni ESP-IDF versiyası alətlərin müxtəlif versiyalarını tələb etdiyi halda Quraşdırma skriptini yenidən icra edin. Addım 3-də təlimatlara baxın. Alətləri quraşdırın. Yeni alətlər quraşdırıldıqdan sonra İxrac skripti ilə mühiti yeniləyin. Addım 4-də təlimatlara baxın. Ətraf mühit dəyişənlərini qurun.
Əlaqədar Sənədlər · ESP32 ilə Serial Bağlantı qurun · Eclipse Plugin · VSCode Genişlənməsi · IDF Monitor
1.4 İlk Layihənizi Yaradın
Əgər sizdə artıq ESP-IDF quraşdırılıbsa və IDE-dən istifadə etmirsinizsə, Windows-da Layihəyə Başla və ya Linux və macOS-da Layihəyə Başladıqdan sonra komanda xəttindən ilk layihənizi qura bilərsiniz.
1.5 ESP-IDF proqramını silin
Əgər siz ESP-IDF-ni silmək istəyirsinizsə, lütfən, ESP-IDF-ni sil edin.
Espressif sistemləri
44 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 2
API Referansı
2.1 API Konvensiyaları
Bu sənəd ESP-IDF Tətbiq Proqramlaşdırma İnterfeysləri (API) üçün ümumi olan konvensiyaları və fərziyyələri təsvir edir. ESP-IDF bir neçə növ proqramlaşdırma interfeysi təqdim edir:
· Ümumi başlıqda elan edilmiş C funksiyaları, strukturları, nömrələri, tip tərifləri və preprosessor makroları fileESPIDF komponentləri. Proqramlaşdırma təlimatının API İstinad bölməsindəki müxtəlif səhifələrdə bu funksiyaların, strukturların və növlərin təsvirləri var.
· Sistem funksiyaları, əvvəlcədən təyin edilmiş dəyişənlər və seçimlər yaradın. Bunlar qurma sistemi təlimatında sənədləşdirilmişdir. · Kconfig variantları kodda və qurma sistemində istifadə edilə bilər (CMakeLists.txt) files. · Host alətləri və onların komanda xətti parametrləri də ESP-IDF interfeysinin bir hissəsidir. ESP-IDF ESP-IDF və üçüncü tərəf kitabxanaları üçün xüsusi olaraq yazılmış komponentlərdən ibarətdir. Bəzi hallarda, üçüncü tərəf kitabxanasına ESP-IDF-ə məxsus sarğı əlavə edilir və ya daha sadə və ya digər ESP-IDF qurğuları ilə daha yaxşı inteqrasiya olunmuş interfeys təmin edilir. Digər hallarda, üçüncü tərəf kitabxanasının orijinal API-si proqram tərtibatçılarına təqdim olunur. Aşağıdakı bölmələr ESP-IDF API-lərinin bəzi aspektlərini və onların istifadəsini izah edir.
2.1.1 İdarəetmə xətası
Əksər ESP-IDF API-ləri esp_err_t növü ilə müəyyən edilmiş xəta kodlarını qaytarır. Səhvlərin idarə edilməsi yanaşmaları haqqında ətraflı məlumat üçün Səhvlərin idarə edilməsi bölməsinə baxın. Xəta Kodu Referansı ESP-IDF komponentləri tərəfindən qaytarılan xəta kodlarının siyahısını ehtiva edir.
2.1.2 Konfiqurasiya strukturları
Əhəmiyyətli: Konfiqurasiya strukturlarının düzgün işə salınması proqramın ESP-IDF-in gələcək versiyaları ilə uyğunlaşmasının vacib hissəsidir.
ESP-IDF-də əksər başlatma və ya konfiqurasiya funksiyaları arqument kimi konfiqurasiya strukturuna göstərici götürür. məsələnample:
45
Fəsil 2. API Referansı
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = "mənim_taymerim"
}; esp_timer_handle_t my_timer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
İnisiallaşdırma funksiyaları heç vaxt göstəricini konfiqurasiya strukturuna saxlamır, ona görə də strukturu yığında yerləşdirmək təhlükəsizdir.
Tətbiq strukturun bütün sahələrini işə salmalıdır. Aşağıdakılar yanlışdır:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Səhv! .arg və .name sahələri işə salınmayıb */ esp_timer_create(&my_timer_args, &my_timer);
Əksər ESP-IDF examples strukturun işə salınması üçün C99 təyin edilmiş başlatıcılardan istifadə edir, çünki onlar sahələrin alt çoxluğunu təyin etmək və qalan sahələri sıfırla başlamaq üçün qısa bir yol təqdim edir:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Düzgün, .arg və .name sahələri sıfırla işə salınıb */
};
C++ dili təyin edilmiş başlatıcıların sintaksisini C++20-yə qədər dəstəkləmir, lakin GCC tərtibçisi onu genişləndirmə kimi qismən dəstəkləyir. C++ kodunda ESP-IDF API istifadə edərkən, aşağıdakı nümunədən istifadə etməyi düşünə bilərsiniz:
esp_timer_create_args_t my_timer_args = {}; /* Bütün sahələr sıfırla işə salınıb */ my_timer_args.callback = &my_timer_callback;
Defolt başlatıcılar
Bəzi konfiqurasiya strukturları üçün ESP-IDF sahələrin standart dəyərlərini təyin etmək üçün makrolar təmin edir:
httpd_config_t konfiqurasiyası = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG təyin edilmiş başlatıcıya qədər genişlənir.
İndi bütün sahələr standart dəyərlərə təyin edilmişdir. İstənilən sahə hələ də dəyişdirilə bilər: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Müəyyən bir konfiqurasiya strukturu üçün təqdim edildikdə, standart başlatıcı makrolarından istifadə etmək tövsiyə olunur.
2.1.3 Şəxsi API-lər
Müəyyən başlıq fileESP-IDF-dəki s proqramlar tərəfindən deyil, yalnız ESP-IDF mənbə kodunda istifadə edilmək üçün nəzərdə tutulmuş API-ləri ehtiva edir. Belə başlıq files tez-tez adında və ya yolunda şəxsi və ya esp_private ehtiva edir. Hal kimi müəyyən komponentlər yalnız şəxsi API-ləri ehtiva edir. Şəxsi API-lər kiçik və ya yamaq buraxılışları arasında uyğun olmayan şəkildə silinə və ya dəyişdirilə bilər.
2.1.4 məsələn, komponentləramplayihələr
ESP-IDF məsələnamples ESP-IDF API-lərin istifadəsini nümayiş etdirən müxtəlif layihələri ehtiva edir. Ex-də kodun təkrarlanmasını azaltmaq üçünamples, bir neçə ümumi köməkçi bir neçə ex tərəfindən istifadə olunan komponentlər daxilində müəyyən ediliramples.
Espressif sistemləri
46 Sənədlə bağlı rəy təqdim edin
v5.0.9-u buraxın
Fəsil 2. API Referansı
Bura yerləşən komponentlər daxildir
Sənədlər / Resurslar
![]() |
Espressif Systems ESP32 Dev Kitc İnkişaf Şurası [pdf] İstifadəçi təlimatı ESP32 Dev Kitc İnkişaf Şurası, ESP32, Dev Kitc İnkişaf Şurası, Kitc İnkişaf Şurası, İnkişaf Şurası, İdarə Heyəti |
