Espressif Systems ESP32 Dev Kitc Development Board foydalanuvchi qo'llanmasi

ESP32 Dev Kitc ishlab chiqish kengashi

Mahsulot haqida ma'lumot

Texnik xususiyatlari

  • Mahsulot: ESP32
  • Dasturlash bo'yicha qo'llanma: ESP-IDF
  • Chiqarish versiyasi: v5.0.9
  • Ishlab chiqaruvchi: Espressif Systems
  • Chiqarilgan sana: 16 yil 2025-may

Mahsulotdan foydalanish bo'yicha ko'rsatmalar

1. Ishni boshlash

ESP32 bilan ishlashni boshlashdan oldin, o'zingiz bilan tanishib chiqing
quyidagi:

1.1 Kirish

ning asosiy funktsiyalari va imkoniyatlari haqida bilib oling
ESP32.

1.2 Sizga kerak bo'lgan narsa

Kerakli apparat va dasturiy ta'minot mavjudligiga ishonch hosil qiling:

  • Uskuna: Kerakli uskunalar ro'yxatini tekshiring
    komponentlar.
  • Dasturiy ta'minot: Kerakli dasturiy ta'minotni o'rnating
    komponentlar.

1.3 O'rnatish

IDE-ni o'rnatish va sozlash uchun quyidagi amallarni bajaring
muhit:

  • IDE: Tavsiya etilgan IDE-ni o'rnating
    ESP32 dasturlash.
  • Qo'lda o'rnatish: ni qo'lda sozlang
    agar kerak bo'lsa, atrof-muhit.

1.4 Birinchi loyihangizni yarating

ESP32 yordamida dastlabki loyihangizni yarating va yarating.

1.5 ESP-IDFni o'chirib tashlang

Agar kerak bo'lsa, ESP-IDFni kompyuteringizdan qanday olib tashlashni bilib oling
tizimi.

2. API havolasi

Haqida batafsil ma'lumot olish uchun API hujjatlariga qarang
dastur protokollari, xatolarni qayta ishlash va konfiguratsiya
tuzilmalar.

Tez-tez so'raladigan savollar (FAQ)

Savol: ESP32 bilan umumiy muammolarni qanday hal qilishim mumkin?

Javob: Dasturlash qoʻllanmasining nosozliklarni bartaraf etish boʻlimiga qarang
yoki ishlab chiqaruvchiga tashrif buyuring webqo'llab-quvvatlash manbalari uchun sayt.

Savol: ESP-IDFni boshqa mikrokontrollerlar bilan ishlata olamanmi?

Javob: ESP-IDF ESP32 uchun maxsus ishlab chiqilgan, ammo siz topishingiz mumkin
boshqa Espressif mikrokontrollerlari bilan muvofiqligi.

ESP32
ESP-IDF dasturlash bo'yicha qo'llanma
Espressif Systems v5.0.9 versiyasi 2025 yil 16-may

Mundarija

Mundarija

i

1 Ishni boshlash

3

1.1 Kirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Sizga kerak bo'lgan narsa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Uskuna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Dasturiy ta'minot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 O'rnatish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

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

1.3.2 Qo'lda o'rnatish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Birinchi loyihangizni yarating. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 ESP-IDF-ni o'chirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 API havolasi

45

2.1 API konventsiyalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Xatolarni hal qilish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.2 Konfiguratsiya tuzilmalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.3 Shaxsiy API'lar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.4 Masalan, komponentlarample loyihalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.5 API barqarorligi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2 Ilova protokollari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.1 ASIO porti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

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

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

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

2.2.5 ESP HTTP mijozi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 ESP mahalliy boshqaruvi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2.2.7 ESP Serial Slave Link. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2.2.8 ESP x509 sertifikatlar to'plami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 HTTP serveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 HTTPS serveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2.2.11 ICMP aks sadosi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

2.2.12 mDNS xizmati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

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

2.2.14 IP tarmoq qatlami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3 Bluetooth API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.1 Bluetooth® Umumiy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.2 Bluetooth® past energiya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

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

2.3.4 Controller & HCI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

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

2.3.6 NimBLE asosidagi xost API'lari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767

2.4 Xato kodlari ma'lumotnomasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769

2.5 Tarmoq API'lari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

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

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

2.5.3 Mavzu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936

i

2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP tarmoq qatlami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Ilova qatlami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Periferik qurilmalar API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Analogdan raqamligacha konvertor (ADC) Oneshot rejimi drayveri. . . . . . . . . . . . . . . . . 977 2.6.2 Analog-raqamli konvertor (ADC) uzluksiz rejim drayveri. . . . . . . . . . . . . . . 986 2.6.3 Analog-raqamli konvertor (ADC) kalibrlash drayveri. . . . . . . . . . . . . . . . . . . 993 2.6.4 Soat daraxti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Raqamli-analog konvertor (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO va RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Umumiy maqsadli taymer (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Inter-integratsiyalashgan sxema (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Inter-IC Sound (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED boshqaruvi (LEDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Dvigatelni boshqarish puls kengligi modulatori (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Puls hisoblagichi (PCNT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Masofadan boshqarish pulti (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD tortishish talablari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC xost drayveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI xost drayveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO Card Slave Driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-Delta modulyatsiyasi (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI Master drayveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI Slave drayveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Xavfsiz element) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Sensor sensori. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Ikki simli avtomobil interfeysi (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Universal asinxron qabul qiluvchi/uzatuvchi (UART) . . . . . . . . . . . . . . . . . . 1317 2.7 Loyiha konfiguratsiyasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Kirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Loyihani sozlash menyusi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 sdkconfig.defaults dan foydalanish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig formatlash qoidalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kconfig parametrlarining orqaga qarab muvofiqligi. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Konfiguratsiya parametrlari ma'lumotnomasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Provisioning API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokol aloqasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Yagona ta'minot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Wi-Fi bilan ta'minlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Saqlash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Filetizimni qo'llab-quvvatlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Kommunal ishlab chiqarish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 O'zgaruvchan bo'lmagan saqlash kutubxonasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS Partition Generator Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC drayveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filetizimi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtual filetizim komponenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Wear Leveling API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Tizim API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Ilova tasvir formati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Ilova darajasini kuzatish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Tashqi stek bilan chaqiruv funksiyasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Chipni qayta ko'rib chiqish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konsol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse menejeri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Xato kodlari va yordamchi funktsiyalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846 yil
ii

2.10.8 ESP HTTPS OTA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Voqealar davri kutubxonasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (O'tganview). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Qo'shimcha xususiyatlar). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Uyma xotirani ajratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 yil 2.10.14 Xotirada nosozliklarni tuzatish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Yuqori aniqlikdagi taymer (ESP taymer). . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Ichki va beqaror API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Protsessorlararo qo'ng'iroq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Uzilishlarni ajratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Jurnal kutubxonasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Turli tizim API'lari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Havoda yangilanishlar (OTA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Ishlash monitori. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Quvvatni boshqarish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX mavzularini qo'llab-quvvatlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Tasodifiy sonlarni yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Kutish rejimlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC imkoniyatlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Tizim vaqti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 Himem ajratish API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP Coprocessor dasturlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Qo'riqchi itlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161

3 Uskuna ma’lumotnomasi

2167

3.1 Chip seriyasini taqqoslash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 Tegishli hujjatlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

4 API ko'rsatmalari

2171

4.1 Ilova darajasini kuzatish kutubxonasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.1 dan ortiqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Ishlash rejimlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Konfiguratsiya imkoniyatlari va bog'liqliklar. . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Ushbu kutubxonadan qanday foydalanish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Ilovani ishga tushirish oqimi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 Birinchi stage yuklovchi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 soniya stage yuklovchi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Ilovani ishga tushirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

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

4.3.1 dan ortiqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® past energiya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 dan ortiqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Ishni boshlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

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

4.5 Bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Bootloader mosligi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Jurnal darajasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Zavod sozlamalarini tiklash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Test proshivka dasturidan yuklash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Orqaga qaytarish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.6 Watchdog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.7 Bootloader hajmi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Chuqur uyqu rejimidan tez yuklash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Maxsus yuklovchi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Tizimni yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 dan ortiqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Qurilish tizimidan foydalanish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 Masalanample loyiha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 CMakeLists loyihasi File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponent CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Komponent konfiguratsiyasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Preprotsessor ta'riflari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Komponentga qo'yiladigan talablar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Loyiha qismlarini bekor qilish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Faqat konfiguratsiya komponentlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 CMake disk raskadrovka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Masalanample Component CMakeLists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Maxsus sdkconfig standart sozlamalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Flash argumentlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Bootloaderni yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Sof CMake komponentlarini yozish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Komponentlar bilan uchinchi tomon CMake loyihalaridan foydalanish. . . . . . . . . . . . . . . . . . . 2306 4.6.18 Komponentlar bilan oldindan tuzilgan kutubxonalardan foydalanish. . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Maxsus CMake loyihalarida ESP-IDF dan foydalanish. . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globbing va qo'shimcha tuzilmalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Tizim metamaʼlumotlarini yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Tizimning ichki qismlarini yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 ESP-IDF GNU Make tizimidan ko'chirish. . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Yadro borini. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Oshganview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfiguratsiyalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Yadro dumpni fleshga saqlang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 UART ga asosiy dumpni chop etish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 Orqa izlardagi ROM funksiyalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Talab bo'yicha damping o'zgaruvchilari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 espcoredump.py dasturini ishga tushirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Chuqur uyqu uyg'otish stublari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Wake Stub uchun qoidalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Stubni amalga oshirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Kodni RTC xotirasiga yuklash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 RTC xotirasiga ma'lumotlarni yuklash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 Uyg'otish stublarini CRC tekshirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Masalanample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Xatolarni boshqarish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Oshganview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Xato kodlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Xato kodlarini xato xabarlariga aylantirish. . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK makrosi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_WITHOUT_ABORT makro. . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR makrosi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR makrosi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE makros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE makros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 MAKROLARNI TEKSHIRISh Masalanamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Naqshlarni qayta ishlashda xatolik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ istisnolari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Oshganview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Kirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 ESP-WIFI-MESH tushunchalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Tarmoqni qurish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Tarmoqni boshqarish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Ma'lumotlarni uzatish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Kanallarni almashtirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv

4.10.8 Ishlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Qo'shimcha eslatmalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Hodisalarni boshqarish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet va IP hodisalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Mesh hodisalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth hodisalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Muhim xatolar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Oshganview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Vahima bilan kurashuvchi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Ro'yxatdan o'tish Dump va Backtrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog vaqti tugashi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Guru meditatsiya xatolari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Boshqa halokatli xatolar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Flash shifrlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Kirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Tegishli eFuses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Flash shifrlash jarayoni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Flash shifrlash konfiguratsiyasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Mumkin bo'lgan nosozliklar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 Flash shifrlash holati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Shifrlangan Flashda ma'lumotlarni o'qish va yozish. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Shifrlangan Flashni yangilash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Flash shifrlashni o'chirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Flash shifrlash haqida asosiy fikrlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Flash shifrlash cheklovlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Flash shifrlash va xavfsiz yuklash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Kengaytirilgan funksiyalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Texnik ma'lumotlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Uskunani abstraktsiya qilish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arxitektura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (pastki daraja) qatlam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Uskuna abstraktsiya qatlami). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Yuqori darajadagi uzilishlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Uzilish darajalari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Eslatmalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Nosozliklarni tuzatish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Kirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 U qanday ishlaydi? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 J ni tanlashTAG Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 OpenOCD ni sozlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ESP32 maqsadini sozlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Nosozliklarni tuzatuvchini ishga tushirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Nosozliklarni tuzatish Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Manbalardan OpenOCD yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Maslahatlar va g'oyalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Tegishli hujjatlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Bog'lovchi skriptini yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Oshganview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Tez boshlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Bog'lovchi skript yaratish ichki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Qo'llab-quvvatlanadigan API'lar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS vazifasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 qo'llab-quvvatlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip maxsus o'zgartirishlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Ishlashni optimallashtirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Xotira turlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (Data RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Ko'rsatma RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (fleshdan bajarilgan kod) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (fleshda saqlangan ma'lumotlar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Sekin xotira. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC FAST xotirasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA qobiliyatiga bo'lgan talab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 stekdagi DMA buferi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 OpenThread stekining rejimlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 OpenThread ilovasini qanday yozish kerak. . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThread chegara marshrutizatori. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Bo'lim jadvallari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Oshganview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 O'rnatilgan qismlar jadvallari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Maxsus jadvallar yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Ikkilik bo'limlar jadvalini yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Bo'lim hajmini tekshirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Bo'lim jadvalini miltillash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Bo'lim vositasi (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Ishlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Ishlashni qanday optimallashtirish mumkin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Qo'llanmalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF kalibrlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Qisman kalibrlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 To'liq kalibrlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Kalibrlash yo'q. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY ishga tushirish ma'lumotlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API havolasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Xavfsiz yuklash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Fon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Xavfsiz yuklash jarayoni tugadiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Kalitlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Bootloader hajmi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Xavfsiz yuklashni qanday yoqish mumkin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Qayta yonib-o'chadigan dasturiy ta'minot bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Xavfsiz yuklash imzolash kalitini yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Tasvirlarni masofadan imzolash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Xavfsiz yuklashning eng yaxshi amaliyotlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Texnik ma'lumotlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Xavfsiz yuklash va Flash shifrlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Uskuna xavfsiz yuklashsiz imzolangan ilovani tekshirish. . . . . . . . . . . . . . . . . . 2478 4.24.13 Kengaytirilgan funksiyalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Xavfsiz yuklash V2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Fon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Xavfsiz yuklash V2 jarayoni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Imzo bloki formati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Xavfsiz to'ldirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Imzo blokini tekshirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Rasmni tekshirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Bootloader hajmi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 eFuse foydalanish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Xavfsiz yuklash V2 ni qanday yoqish mumkin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Xavfsiz yuklash yoqilgandan keyin cheklovlar. . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Xavfsiz yuklash imzolash kalitini yaratish. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi

4.25.13 Tasvirlarni masofadan imzolash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Xavfsiz yuklashning eng yaxshi amaliyotlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Texnik ma'lumotlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Xavfsiz yuklash va Flash shifrlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Uskuna xavfsiz yuklashsiz imzolangan ilovani tekshirish. . . . . . . . . . . . . . . . . . 2484 4.25.18 Kengaytirilgan xususiyatlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Tashqi operativ xotirani qo'llab-quvvatlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Kirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Uskuna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Tashqi operativ xotirani sozlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Cheklovlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Ishga tushirilmadi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Chip tahrirlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Mavzuni mahalliy saqlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Oshib ketdiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Native API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 standarti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Asboblar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker tasviri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows Installer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF komponent menejeri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Yuklab olinadigan asboblar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 ESP32 da birlik sinovi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Oddiy sinov holatlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Ko'p qurilmali sinov holatlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Multi-stage Test holatlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Turli maqsadlar uchun testlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Bino birligi sinov ilovasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Ishlaydigan birlik sinovlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Kesh kompensatsiyalangan taymer bilan vaqt kodi. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Masxara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Linuxda birlik sinovi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 O'rnatilgan dasturiy ta'minot sinovlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Linux hostida IDF birligi sinovlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi drayveri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 Wi-Fi xususiyatlari ro'yxati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Wi-Fi ilovasini qanday yozish kerak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi API xato kodi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi API parametrini ishga tushirish. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wi-Fi dasturlash modeli. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 Wi-Fi hodisasi tavsifi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi stantsiyasining umumiy stsenariysi. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP Umumiy stsenariy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi skanerlash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi stansiyasini ulash stsenariysi. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi stansiyasi bir nechta AP topilganda ulanadi. . . . . . . . . . . . . 2543 4.31.12 Wi-Fi qayta ulanish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi mayoq vaqt tugashi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 Wi-Fi konfiguratsiyasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Simsiz tarmoq boshqaruvi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Radio resurslarini o'lchash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Tez BSS o'tish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi quvvatni tejash rejimi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wi-Fi o'tkazuvchanligi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Wi-Fi 80211 Paket yuborish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi Sniffer rejimi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi bir nechta antennalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Wi-Fi kanali holati haqida ma'lumot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Wi-Fi kanali holati haqida ma'lumotni sozlash. . . . . . . . . . . . . . . . . . . . . . . . . 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 fragmenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS Ro'yxatdan o'tgan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Wi-Fi buferidan foydalanish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Wi-Fi ish faoliyatini qanday yaxshilash mumkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi Menuconfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Nosozliklarni bartaraf etish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Wi-Fi xavfsizligi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 Wi-Fi xavfsizlik xususiyatlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Himoyalangan boshqaruv ramkalari (PMF). . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Shaxsiy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RFning birgalikda yashashi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Oshib ketdiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 ESP32 uchun qo'llab-quvvatlanadigan birgalikda yashash stsenariysi. . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Birgalikda yashash mexanizmi va siyosati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Birgalikda yashash xususiyatidan qanday foydalanish. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Qayta tiklanadigan tuzilmalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Kirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Qayta tiklanmaydigan tuzilmalarning sabablari. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 ESP-IDF da takrorlanadigan tuzilmalarni yoqish. . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Qayta ishlab chiqarishga qanday erishiladi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Qayta tiklanadigan tuzilmalar va disk raskadrovka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Qayta ishlab chiqarishga hali ham ta'sir ko'rsatadigan omillar. . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Kam quvvat rejimi foydalanuvchi qo'llanmasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578

5 Migratsiya bo'yicha qo'llanma

2579

5.1 ESP-IDF 5.x Migratsiya qo‘llanmasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 4.4 dan 5.0 gacha ko'chish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 Kutubxonalar va ramkalar

2611

6.1 Cloud Frameworks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Frameworks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.1 Espressif Audio Development Framework. . . . . . . . . . . . . . . . . . . . . . . . . 2612

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

6.2.3 Espressif DSP kutubxonasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.4 ESP-WIFI-MESH ishlab chiqish asosi. . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.5 ESP-VOZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

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

6.2.7 ESP-IoT-yechim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.8 ESP-protokollari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

viii

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

7 hissa qoʻshish boʻyicha qoʻllanma

2615

7.1 Qanday hissa qo'shish kerak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.2 Hissa qo'shishdan oldin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.3 So'rovni olish jarayoni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.4 Yuridik qism. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5 Tegishli hujjatlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.1 Espressif IoT Development Framework Style Guide. . . . . . . . . . . . . . . . . . . . 2616

7.5.2 ESP-IDF loyihasi uchun oldindan topshirilgan kancani o'rnating. . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Hujjatlashtirish kodi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Misol yaratishamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 API hujjatlari shabloni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Himoyachi shartnomasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 Mualliflik huquqi sarlavhasi qo'llanmasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 Pytest qo'llanmasi bilan ESP-IDF testlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635

8 ESP-IDF versiyalari

2645

8.1 Relizlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.2 Qaysi versiyadan boshlashim kerak? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.3 Versiyalash sxemasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.4 Qo'llab-quvvatlash davrlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 Joriy versiyani tekshirish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

8.6 Git ish jarayoni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7 ESP-IDF ni yangilash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 Barqaror nashrga yangilash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.2 Chiqarishdan oldingi versiyaga yangilash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 Asosiy filialga yangilash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 Relizlar bo'limiga yangilash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 Resurslar

2651

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

9.1.1 PlatformIO nima? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 O'rnatish. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Konfiguratsiya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Qo'llanmalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Loyiha Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Keyingi qadamlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Foydali havolalar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

10 Mualliflik huquqi va litsenziyalar

2653

10.1 Dasturiy ta'minot mualliflik huquqi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.1 Mikrodastur komponentlari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 Hujjatlar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 ROM manba kodi mualliflik huquqi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.3 Xtensa libhal MIT litsenziyasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.4 TinyBasic Plus MIT litsenziyasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.5 TJpgDec litsenziyasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

11 Haqida

2657

12 Tillarni almashtirish

2659

indeks

2661

indeks

2661

ix

x

Mundarija
Bu Espressif IoT Development Framework (esp-idf) uchun hujjatlar. ESP-IDF ESP32, ESP32-S va ESP32-C seriyali SoClar uchun rasmiy ishlab chiqish asosidir. Ushbu hujjat ESP32 SoC bilan ESP-IDFdan foydalanishni tavsiflaydi.

Boshlash

API havolasi

API qo'llanmalari

Espressif tizimlari

1 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

Mundarija

Espressif tizimlari

2 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob
Boshlash
Ushbu hujjat Espressif tomonidan ESP32 chipiga asoslangan apparat uchun dasturiy ta'minotni ishlab chiqish muhitini sozlashda yordam berish uchun mo'ljallangan. Shundan so'ng, oddiy sobiqampMenyu konfiguratsiyasi uchun ESP-IDF (Espressif IoT Development Framework) dan qanday foydalanishni, keyin esa ESP32 platasida proshivka yaratish va miltillash uchun foydalanishni ko'rsataman.
Eslatma: Bu ESP-IDF ning barqaror v5.0.9 versiyasi uchun hujjatlardir. Boshqa ESP-IDF versiyalari ham mavjud.
1.1 Kirish
ESP32 quyidagi funksiyalarni birlashtirgan chipdagi tizimdir: · Wi-Fi (2.4 gigagertsli diapazon) · Bluetooth · Ikkita yuqori unumdorlikli Xtensa® 32-bit LX6 protsessor yadrolari · Ultra past quvvatli koprotsessor · Bir nechta tashqi qurilmalar
40 nm texnologiyasidan foydalangan holda, ESP32 mustahkam, yuqori darajada integratsiyalashgan platformani taqdim etadi, bu esa energiyadan samarali foydalanish, ixcham dizayn, xavfsizlik, yuqori unumdorlik va ishonchlilik uchun doimiy talablarni qondirishga yordam beradi. Espressif dastur ishlab chiquvchilarga ESP32 seriyali apparat yordamida o'z g'oyalarini amalga oshirishda yordam berish uchun asosiy apparat va dasturiy ta'minot resurslarini taqdim etadi. Espressif tomonidan dasturiy ta'minotni ishlab chiqish tizimi Wi-Fi, Bluetooth, quvvatni boshqarish va boshqa bir qator tizim xususiyatlariga ega Internetof-Things (IoT) ilovalarini ishlab chiqish uchun mo'ljallangan.
1.2 Sizga kerak bo'lgan narsa
1.2.1 Uskuna
· ESP32 platasi. · USB kabeli – USB A / micro USB B. · Windows, Linux yoki macOS operatsion tizimida ishlaydigan kompyuter.
Eslatma: Hozirda ba'zi ishlab chiqish platalari USB Type C ulagichlaridan foydalanmoqda. Bortni ulash uchun to'g'ri kabel borligiga ishonch hosil qiling!
Agar sizda quyida sanab o'tilgan ESP32 rasmiy ishlab chiqish kengashlaridan biri bo'lsa, apparat haqida ko'proq ma'lumot olish uchun havolani bosishingiz mumkin.
3

1-bob. Ishni boshlash
ESP32-DevKitS(-R)
Ushbu foydalanuvchi qo'llanmasi Espressif tomonidan ishlab chiqarilgan ESP32-ga asoslangan miltillovchi plata ESP32-DevKitS(-R) haqida ma'lumot beradi. ESP32-DevKitS(-R) ikkita plata nomining kombinatsiyasi: ESP32-DevKitS va ESP32-DevKitS-R. S buloqlarni, R esa WROVER degan ma'noni anglatadi.

ESP32-DevKitS

ESP32-DevKitS-R

Hujjat quyidagi asosiy bo'limlardan iborat: · Ishga kirishish: Tugatishni ta'minlaydiview boshlash uchun ESP32-DevKitS(-R) va apparat/dasturiy ta'minotni sozlash bo'yicha ko'rsatmalar. · Uskuna ma'lumotnomasi: ESP32-DevKitS(-R)ns apparati haqida batafsil ma'lumot beradi. · Tegishli hujjatlar: Tegishli hujjatlarga havolalar beradi.

Ishga kirishish Ushbu bo'limda ESP32-DevKitS(-R) bilan ishlashni qanday boshlash kerakligi tasvirlangan. U ESP32-DevKitS(-R) haqidagi bir nechta kirish bo'limlari bilan boshlanadi, so'ngra "Boshqani qanday o'chirish" bo'limi modulni ESP32-DevKitS(-R) ga o'rnatish, uni tayyorlash va proshivkani o'chirish bo'yicha ko'rsatmalar beradi.

tugadiview ESP32-DevKitS(-R) ESP32 uchun maxsus ishlab chiqilgan Espressifns miltillovchi platadir. U modulni quvvat manbai va signal liniyalariga lehimsiz ESP32 modulini miltillash uchun ishlatilishi mumkin. O'rnatilgan modul bilan ESP32-DevKitS(-R) ESP32-DevKitC kabi mini ishlab chiqish platasi sifatida ham foydalanish mumkin.
ESP32-DevKitS va ESP32-DevKitS-R platalari faqat quyidagi ESP32 modullariga mos keladigan bahor pinlarining joylashuvida farqlanadi.
· 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 va IPEX) ESP32-WROVER-B (PCB va IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Yuqoridagi modullar haqida ma'lumot olish uchun ESP32 seriyali modullarga qarang.

Komponentlarning tavsifi

Espressif tizimlari

4 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

1-rasm: ESP32-DevKitS - old

Espressif tizimlari

2-rasm: ESP32-DevKitS-R – old 5
Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

Asosiy komponentning bahor pinlari 2.54 mm Ayol sarlavhalari
USB-to-UART Bridge LDO Micro-USB ulagichi/Mikro USB porti EN tugmasi yuklash tugmasi
Yoqilgan LED

Ta'rif Modulni bosing. Pinlar modullar bilan qoplangan teshiklarga mos keladi. Ushbu ayol sarlavhalari ushbu plataga o'rnatilgan modulning pinlariga ulangan. Ayol sarlavhalarining tavsifi uchun Sarlavha bloklariga qarang. Yagona chipli USB-UART ko'prigi 3 Mbit / s gacha uzatish tezligini ta'minlaydi.
5V-dan-3.3V gacha bo'lgan past tushish voltage regulyator (LDO).
USB interfeysi. Kengash uchun quvvat manbai, shuningdek, kompyuter va plata o'rtasidagi aloqa interfeysi.
Qayta tiklash tugmasi.
Yuklab olish tugmasi. Boot tugmasini bosib ushlab turing va keyin EN tugmasini bosish proshivkani ketma-ket port orqali yuklab olish uchun Firmware Download rejimini ishga tushiradi.
USB yoki quvvat manbai plataga ulanganda yoqiladi.

ESP32-DevKitS(-R) ni yoqishdan oldin, uning yaxshi holatda ekanligiga ishonch hosil qiling.
Kerakli uskuna · Siz tanlagan ESP32 moduli · USB 2.0 kabeli (Standart-A dan Micro-B gacha) · Windows, Linux yoki macOS bilan ishlaydigan kompyuter
Uskunani sozlash ESP32-DevKitS(-R) qurilmangizga quyidagi bosqichlarga muvofiq oʻzingiz tanlagan modulni oʻrnating:
· Modulingizni ESP32-DevKitS(-R) platasiga muloyimlik bilan joylashtiring. Modulingizdagi kastellangan teshiklar taxtadagi kamon pinlari bilan mos kelishiga ishonch hosil qiling.
· Modulni chertib chiqmaguncha doskaga bosing. · Barcha prujina pinlari kastellangan teshiklarga o'rnatilganligini tekshiring. Ba'zi noto'g'ri tekislangan bahor pinlari bo'lsa,
ularni cımbızla kastellangan teshiklarga joylashtiring.
Dasturiy ta'minotni sozlash
Afzal usul ESP-IDF ishlab chiqish tizimi ESP32-DevKitS(-R) ga ikkilik fayllarni miltillashning afzal usulini taqdim etadi. Iltimos, "Ishga tushirish" ga o'ting, bu erda bo'limni o'rnatish sizga tezda ishlab chiqish muhitini sozlashga yordam beradi va so'ngra oldingi ilovani o'chiradiampESP32-DevKitS(-R) ga kiring.
Muqobil usul Shu bilan bir qatorda, Windows foydalanuvchilari Flash Download Tool yordamida ikkilik fayllarni o'chirib qo'yishlari mumkin. Uni yuklab oling, uni oching va doc jildidagi ko'rsatmalarga amal qiling.
Eslatma: 1. Ikkilik o'chirish uchun files, ESP32 Firmware Download rejimiga o'rnatilishi kerak. Buni flesh vositasi avtomatik ravishda yoki Yuklash tugmasini bosib ushlab, EN tugmasini bosish orqali amalga oshirish mumkin. 2. Ikkilik miltillagandan keyin files, Flash Yuklash vositasi ESP32 modulingizni qayta ishga tushiradi va sukut bo'yicha o'chirilgan dasturni ishga tushiradi.

Kengash o'lchamlari Mundarija va qadoqlash

Espressif tizimlari

6 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash 3-rasm: ESP32-DevKitS platasining o‘lchamlari – orqaga

Espressif tizimlari

4-rasm: ESP32-DevKitS-R taxtasi o'lchamlari - orqa 7
Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
Chakana buyurtmalar Agar siz bir necha s buyurtma qilsangizamples, har bir ESP32-DevKitS(-R) antistatik sumkada yoki chakana sotuvchiga qarab har qanday qadoqda individual paketda keladi. Chakana buyurtmalar uchun https://www.espressif.com/en/contact-us/get-s saytiga o'ting.amples.
Ulgurji buyurtmalar Agar siz ommaviy buyurtma qilsangiz, taxtalar katta karton qutilarda keladi. Ulgurji buyurtmalar uchun https://www.espressif.com/en/contact-us/sales-questions saytiga o'ting.
Uskuna ma'lumotnomasi
Blok diagrammasi Quyidagi blok diagrammada ESP32-DevKitS(-R) komponentlari va ularning o'zaro aloqalari ko'rsatilgan.

5-rasm: ESP32-DevKitS(-R) (kattalashtirish uchun bosing)
Quvvat manbai opsiyalari Kengashni quvvat bilan ta'minlashning uchta o'zaro istisno usuli mavjud: · Micro USB port, standart quvvat manbai · 5V va GND sarlavha pinlari · 3V3 va GND sarlavha pinlari
Birinchi variantdan foydalanish tavsiya etiladi: mikro USB port.

Espressif tizimlari

.

Yorliq signali

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

keyingi sahifada davom etadi

8 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

1-jadval oldingi sahifadagi davomi

.

Yorliq signali

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

Tashqi 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

Sarlavha bloklari Sarlavha bloklari tasviri uchun Komponentlar tavsifiga qarang.

Tegishli hujjatlar
· ESP32-DevKitS(-R) sxemalari (PDF) · ESP32 maʼlumotlar jadvali (PDF) · ESP32-WROOM-32 maʼlumotlar jadvali (PDF) · ESP32-WROOM-32D va ESP32-WROOM-32U maʼlumotlar jadvali (PDF) · ESP32-SOLODOVRO-1W maʼlumotlar jadvali (PDF) · ESP32-WROVER-B ma'lumotlar jadvali (PDF) · ESP mahsulot tanlovi

ESP32-DevKitM-1

Ushbu foydalanuvchi qo'llanmasi ESP32-DevKitM-1 bilan ishlashni boshlashingizga yordam beradi va batafsilroq ma'lumot beradi.
ESP32-DevKitM-1 - Espressif tomonidan ishlab chiqarilgan ESP32-MINI-1(1U) asosidagi ishlab chiqish platasi. Kirish/chiqarish pinlarining aksariyati qulay interfeys uchun ikkala tomondagi pin sarlavhalariga uzilgan. Foydalanuvchilar tashqi qurilmalarni o'tish simlari bilan ulashlari yoki ESP32-DevKitM-1 ni non taxtasiga o'rnatishlari mumkin.

Espressif tizimlari

9 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

ESP32-DevKitM-1 - old

ESP32-DevKitM-1 - izometrik

Hujjat quyidagi asosiy bo'limlardan iborat: · Ishga kirishish: Tugatishni ta'minlaydiview boshlash uchun ESP32-DevKitM-1 va apparat/dasturiy ta'minotni sozlash bo'yicha ko'rsatmalar. · Uskuna ma'lumotnomasi: ESP32-DevKitM-1ns apparati haqida batafsil ma'lumot beradi. · Tegishli hujjatlar: Tegishli hujjatlarga havolalar beradi.

Ishga kirishish Ushbu bo'limda ESP32-DevKitM-1 bilan ishlashni qanday boshlash kerakligi tasvirlangan. U ESP32-DevKitM-1 haqida bir necha kirish bo'limlari bilan boshlanadi, so'ngra Ilovani ishlab chiqish bo'limida dastlabki apparatni sozlash va keyin ESP32-DevKitM-1 qurilmasiga proshivkani qanday yoqish bo'yicha ko'rsatmalar beriladi.

tugadiview Bu kichik va qulay rivojlanish kengashi bo'lib, unda quyidagilar mavjud:
· ESP32-MINI-1 yoki ESP32-MINI-1U moduli · USB-dan seriyali dasturlash interfeysi, shuningdek, plata uchun quvvat manbai · pin sarlavhalari · Mikrodasturni yuklab olish rejimini tiklash va faollashtirish uchun tugmalar · bir nechta boshqa komponentlar

Tarkibi va qadoqlash

Chakana buyurtmalar Agar siz bir necha s buyurtma qilsangizamples, har bir ESP32-DevKitM-1 antistatik sumkada yoki chakana sotuvchingizga qarab har qanday qadoqda individual paketda keladi.
Chakana buyurtmalar uchun https://www.espressif.com/en/contact-us/get-s saytiga o'ting.amples.

Ulgurji buyurtmalar Agar siz ommaviy buyurtma qilsangiz, taxtalar katta karton qutilarda keladi. Ulgurji buyurtmalar uchun https://www.espressif.com/en/contact-us/sales-questions saytiga o'ting.

Komponentlar tavsifi Quyidagi rasm va quyidagi jadvalda ESP32-DevKitM-1 platasining asosiy komponentlari, interfeyslari va boshqaruv elementlari tasvirlangan. Biz ESP32-MINI-1 modulli platani sobiq sifatida qabul qilamizample keyingi bo'limlarda.

Espressif tizimlari

10 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

6-rasm: ESP32-DevKitM-1 - old

Asosiy komponent Bort moduli
5 V dan 3.3 V gacha bo'lgan LDO yuklash tugmasi
Qayta tiklash tugmasi Micro-USB porti
USB-to-UART ko'prigi 3.3 V quvvatni yoqish LED
I/U ulagichi

Tavsif
ESP32-MINI-1 moduli yoki ESP32-MINI-1U moduli. ESP32-MINI-1 bortdagi PCB antennasi bilan birga keladi. ESP32-MINI-1U tashqi antenna ulagichi bilan birga keladi. Ikkala modulda ham chip to'plamida 4 MB flesh mavjud. Tafsilotlar uchun ESP32-MINI-1 va ESP32-MINI-1U maʼlumotlar jadvaliga qarang.
Quvvat regulyatori 5 V ni 3.3 V ga aylantiradi.
Yuklab olish tugmasi. Boot tugmasini bosib ushlab turing va keyin Reset tugmasini bosish proshivkani ketma-ket port orqali yuklab olish uchun mikrodasturni yuklab olish rejimini ishga tushiradi.
Qayta tiklash tugmasi
USB interfeysi. Kengash uchun quvvat manbai, shuningdek, kompyuter va ESP32 chipi o'rtasidagi aloqa interfeysi.
Yagona USB-UART ko'prik chipi 3 Mbit / s gacha uzatish tezligini ta'minlaydi.
USB plataga ulanganda yoqiladi. Tafsilotlar uchun Tegishli hujjatlardagi sxemalarga qarang. Barcha mavjud GPIO pinlari (flesh uchun SPI avtobusidan tashqari) platadagi pin sarlavhalariga ajratilgan. Foydalanuvchilar bir nechta funktsiyalarni yoqish uchun ESP32 chipini dasturlashlari mumkin.

Ilovalarni ishlab chiqishni boshlang ESP32-DevKitM-1-ni yoqishdan oldin, uning yaxshi holatda ekanligiga ishonch hosil qiling va hech qanday aniq shikastlanish belgilari yo'q.
Kerakli uskuna · ESP32-DevKitM-1 · USB 2.0 kabeli (Standart-A dan Micro-B gacha) · Windows, Linux yoki macOS operatsion tizimida ishlaydigan kompyuter
Dasturiy ta'minotni o'rnatish Iltimos, "Ishga tushirish" ga o'ting, bu erda bo'limni o'rnatish sizga tezda ishlab chiqish muhitini sozlashga yordam beradi va keyin ilovani o'chiring.ampESP32-DevKitM-1 ga kiring.

Espressif tizimlari

11 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
Diqqat: 2021-yil 2-dekabrgacha ishlab chiqarilgan ESP32-DevKitM-1 platalarida bitta yadro moduli oʻrnatilgan. Sizda qaysi modul mavjudligini tekshirish uchun PCN-2021-021 da modulni belgilash maʼlumotlarini tekshiring. Agar platangizda bitta yadro moduli oʻrnatilgan boʻlsa, ilovalarni oʻchirishdan oldin menyu konfiguratsiyasida bitta yadro rejimini (CONFIG_FREERTOS_UNICORE) yoqing.
Uskuna mos yozuvlar blok diagrammasi Quyidagi blok diagrammada ESP32-DevKitM-1 komponentlari va ularning o'zaro bog'liqliklari ko'rsatilgan.

7-rasm: ESP32-DevKitM-1
Quvvat manbasini tanlash Kengashni quvvat bilan ta'minlashning uchta o'zaro istisno usuli mavjud: · Micro USB port, standart quvvat manbai · 5V va GND sarlavha pinlari · 3V3 va GND sarlavha pinlari
Ogohlantirish: · Elektr ta'minoti yuqoridagi variantlardan faqat bittasi yordamida ta'minlanishi kerak, aks holda plata va/yoki quvvat manbai shikastlanishi mumkin. · Mikro USB port orqali quvvat manbai tavsiya etiladi.

Pin tavsiflari Quyidagi jadvalda taxtaning har ikki tomonidagi pinlarning nomi va funksiyasi keltirilgan. Periferik pin konfiguratsiyasi uchun ESP32 ma'lumotlar sahifasiga qarang.

Yo'q.

Ism

Turi

1

GND

P

2

3V3

P

Funktsiya Yer 3.3 V quvvat manbai

keyingi sahifada davom etadi

Espressif tizimlari

12 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

2-jadval oldingi sahifadagi davomi

Yo'q.

Ism

Turi

Funktsiya

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

Qayta o'rnatish; Yuqori: yoqish; Past: quvvat o'chiriladi

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32

I/U

GPIO32, XTAL_32K_P (32.768 kHz kristall osilator kirishi),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

I/U

GPIO33, XTAL_32K_N (32.768 kHz kristall osilator chiqishi),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25

I/U

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26

I/U

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27

I/U

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14

I/U

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

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

5 V quvvat manbai

17

IO12

I/U

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

HS2_DATA2, SD_DATA2, EMAC_TXD3

18

IO13

I/U

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

HS2_DATA3, SD_DATA3, EMAC_RX_ER

19

IO15

I/U

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

HS2_CMD, SD_CMD, EMAC_RXD3

20

IO2

I/U

GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,

HS2_DATA0, SD_DATA0

21

IO0

I/U

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,

EMAC_TX_CLK

22

IO4

I/U

GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,

HS2_DATA1, SD_DATA1, EMAC_TX_ER

23

IO9

I/U

GPIO9, HS1_DATA2, U1RXD, SD_DATA2

24

IO10

I/U

GPIO10, HS1_DATA3, U1TXD, SD_DATA3

25

IO5

I/U

GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK

26

IO18

I/U

GPIO18, HS1_DATA7, VSPICLK

27

IO23

I/U

GPIO23, HS1_STROBE, VSPID

28

IO19

I/U

GPIO19, VSPIQ, U0CTS, EMAC_TXD0

29

IO22

I/U

GPIO22, VSPIWP, U0RTS, EMAC_TXD1

30

IO21

I/U

GPIO21, VSPIHD, EMAC_TX_EN

31

TXD0

I/U

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

RXD0

I/U

GPIO3, U0RXD, CLK_OUT2

Uskunani qayta ko'rib chiqish tafsilotlari Oldingi versiyalar mavjud emas.
Tegishli hujjatlar
· ESP32-MINI-1 va ESP32-MINI-1U ma'lumotlar jadvali (PDF) · ESP32-DevKitM-1 sxemalari (PDF) · ESP32-DevKitM-1 PCB sxemasi (PDF) · ESP32-DevKitM-1 sxemasi (DXF) - mumkin view Bu Autodesk bilan Viewer onlayn · ESP32 Datasheet (PDF) · ESP Product Selector
Kengash uchun boshqa dizayn hujjatlari uchun sales@espressif.com manzili orqali biz bilan bog'laning.

Espressif tizimlari

13 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
1.2.2 dasturiy ta'minoti
ESP32 da ESP-IDF dan foydalanishni boshlash uchun quyidagi dasturiy ta’minotni o‘rnating: · ESP32 kodini kompilyatsiya qilish uchun asboblar zanjiri · Qurilish asboblari – ESP32 uchun to‘liq ilovani yaratish uchun CMake va Ninja · ESP32 uchun API (dasturiy ta’minot kutubxonalari va manba kodi) va Toolchain bilan ishlash uchun skriptlarni o‘z ichiga olgan ESP-IDF

1.3 O'rnatish
Barcha kerakli dasturlarni o'rnatish uchun biz ushbu vazifani osonlashtirishning turli usullarini taklif qilamiz. Mavjud variantlardan birini tanlang.
1.3.1 IDE

Eslatma: Sevimli IDE orqali ESP-IDF ni o'rnatishni tavsiya qilamiz.
· Eclipse plagini · VSCode kengaytmasi

1.3.2 Qo'lda o'rnatish
Qo'lda bajariladigan protsedura uchun operatsion tizimingizga qarab tanlang.

Espressif tizimlari

14 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
Windows uchun asboblar zanjirining standart o'rnatilishi
Kirish ESP-IDF qo'llab-quvvatlanadigan chiplar uchun proshivka yaratishingiz uchun ba'zi bir zarur vositalarni o'rnatishni talab qiladi. Majburiy vositalar qatoriga Python, Git, oʻzaro kompilyatorlar, CMake va Ninja qurish vositalari kiradi. Ishga kirishish uchun biz buyruq satridan foydalanamiz, lekin ESP-IDF o'rnatilgandan so'ng uning o'rniga Eclipse plaginini yoki CMake qo'llab-quvvatlanadigan boshqa grafik IDE dan foydalanishingiz mumkin. Eslatma: Cheklovlar: – ESP-IDF va ESP-IDF vositalarini oʻrnatish yoʻli 90 belgidan oshmasligi kerak. Juda uzun o'rnatish yo'llari muvaffaqiyatsiz tuzilishga olib kelishi mumkin. - Python yoki ESP-IDF o'rnatish yo'lida oq bo'shliqlar yoki qavslar bo'lmasligi kerak. – Operatsion tizim oUnicode UTF-8psupport bilan sozlanmagan bo'lsa, Python yoki ESP-IDF o'rnatish yo'lida maxsus belgilar (ASCII bo'lmagan) bo'lmasligi kerak. Tizim ma'muri qo'llab-quvvatlashni Boshqarish paneli orqali yoqishi mumkin - Sana, vaqt yoki raqam formatlarini o'zgartirish - Ma'muriy yorliq - Tizim tilini o'zgartirish - oBeta opsiyasini tekshiring: Butun dunyo bo'ylab tilni qo'llab-quvvatlash uchun Unicode UTF-8 dan foydalaningp - OK va kompyuterni qayta yoqing.
ESP-IDF Tools Installer ESP-IDFns talablarini oʻrnatishning eng oson yoʻli ESP-IDF Tools Installers dasturidan birini yuklab olishdir.

Windows o'rnatuvchi yuklab olish
Onlayn va oflayn o'rnatuvchining onlayn o'rnatuvchisi juda kichik va ESP-IDFning barcha mavjud versiyalarini o'rnatishga imkon beradi. O'rnatish jarayonida o'rnatuvchi faqat kerakli bog'liqliklarni, shu jumladan Git For Windows-ni yuklab oladi. O'rnatuvchi do'konlar yuklab olingan files kesh katalogida %userprofile%. espressif
Oflayn o'rnatuvchi hech qanday tarmoq ulanishini talab qilmaydi. O'rnatuvchi barcha kerakli bog'liqliklarni o'z ichiga oladi, shu jumladan Git For Windows .
O'rnatish komponentlari O'rnatuvchi quyidagi komponentlarni joylashtiradi:
· O'rnatilgan Python · O'zaro kompilyatorlar · OpenOCD · CMake va Ninja qurish vositalari · ESP-IDF
O'rnatuvchi ESP-IDF bilan mavjud katalogni qayta ishlatishga ham imkon beradi. Tavsiya etilgan katalog %userprofile%Desktopesp-idf bu yerda %userprofile% - bu sizning uy katalogingiz.

Espressif tizimlari

15 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
ESP-IDF muhitini ishga tushirish O'rnatish jarayonining oxirida siz ESP-IDF PowerShell muhitini ishga tushirish yoki ESP-IDF buyruq satrini ishga tushirish (cmd.exe) opsiyasini tekshirishingiz mumkin. O'rnatuvchi tanlangan so'rovda ESP-IDF muhitini ishga tushiradi. ESP-IDF PowerShell muhitini ishga tushiring:

8-rasm: ESP-IDF vositalarini sozlash ustasini ESP-IDF PowerShell muhitini ishga tushirish bilan yakunlash
ESP-IDF buyruq satrini ishga tushiring (cmd.exe):
Buyruqlar satridan foydalanish Ishga kirishishning qolgan bosqichlari uchun Windows buyruq satridan foydalanamiz. ESP-IDF Tools Installer dasturi, shuningdek, ESP-IDF buyruq satrini ishga tushirish uchun Boshlash menyusida yorliq yaratadi. Bu yorliq buyruq satrini (cmd.exe) ishga tushiradi va muhit o'zgaruvchilarini (PATH, IDF_PATH va boshqalar) sozlash uchun eksport.bat skriptini ishga tushiradi. Ushbu buyruq satrida barcha o'rnatilgan vositalar mavjud. E'tibor bering, bu yorliq ESP-IDF Tools Installer dasturida tanlangan ESP-IDF katalogiga xosdir. Agar kompyuteringizda bir nechta ESP-IDF kataloglari bo'lsa (masalanampESP-IDF ning turli versiyalari bilan ishlash uchun) sizda ulardan foydalanishning ikkita varianti mavjud:
1. ESP-IDF Tools Installer tomonidan yaratilgan yorliqning nusxasini yarating va yangi yorliqning ishchi katalogini siz foydalanmoqchi bo'lgan ESP-IDF katalogiga o'zgartiring.
2. Shu bilan bir qatorda cmd.exe faylini ishga tushiring, so'ngra foydalanmoqchi bo'lgan ESP-IDF katalogiga o'ting va export.bat faylini ishga tushiring. E'tibor bering, oldingi variantdan farqli o'laroq, bu usul Python va Git-ning PATH-da mavjud bo'lishini talab qiladi. Python yoki Git bilan bog'liq xatolar topilmasa, birinchi variantdan foydalaning.
ESP-IDF bo'yicha birinchi qadamlar Endi barcha talablar bajarilganligi sababli, keyingi mavzu sizni birinchi loyihangizni qanday boshlash bo'yicha yo'l-yo'riq beradi.

Espressif tizimlari

16 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash 9-rasm: ESP-IDF PowerShell

10-rasm: ESP-IDF vositalarini sozlash ustasini ESP-IDF buyruq satrini ishga tushirish (cmd.exe) bilan yakunlash

Espressif tizimlari

17 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

11-rasm: ESP-IDF buyruq satri

Espressif tizimlari

18 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
Ushbu qo'llanma sizga ESP-IDF-dan foydalanishning birinchi qadamlarida yordam beradi. ESP32 da yangi loyihani boshlash va qurilma chiqishini qurish, miltillash va kuzatish uchun ushbu qo‘llanmaga amal qiling. Eslatma: Agar siz hali ESP-IDF-ni o'rnatmagan bo'lsangiz, ushbu qo'llanmadan foydalanish uchun zarur bo'lgan barcha dasturiy ta'minotni olish uchun O'rnatish bo'limiga o'ting va ko'rsatmalarga amal qiling.

Loyihani boshlash Endi siz ESP32 uchun arizangizni tayyorlashga tayyorsiz. Oldindan getstarted/hello_world loyihasi bilan boshlashingiz mumkinampESP-IDF da les katalogi.
Muhim: ESP-IDF qurish tizimi ESP-IDF yoki loyihalarga boradigan yo'llardagi bo'shliqlarni qo'llab-quvvatlamaydi.
Loyiha get-started/hello_world faylini ~/esp katalogiga nusxalash: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world salom_dunyo
Eslatma: bir qator sobiq mavjudample loyihalar sobiqampESP-IDF da les katalogi. Siz har qanday loyihani yuqorida ko'rsatilgandek nusxalashingiz va uni ishga tushirishingiz mumkin. Bundan tashqari, sobiq qurish mumkinamples in-place ularni avval nusxa ko‘chirmasdan.

Qurilmangizni ulang Endi ESP32 platangizni kompyuterga ulang va plata qaysi ketma-ket portda ko'rinishini tekshiring. Seriyali port nomlari Windowsda COM bilan boshlanadi. Agar seriyali port nomini qanday tekshirishni bilmasangiz, to'liq ma'lumot olish uchun ESP32 bilan ketma-ket ulanishni o'rnatish bo'limiga qarang.
Eslatma: Port nomini qo'lingizda saqlang, chunki keyingi bosqichlarda sizga kerak bo'ladi.

Loyihangizni sozlang Hello_world katalogingizga o'ting, maqsad sifatida ESP32 ni o'rnating va menuconfig loyiha konfiguratsiya yordam dasturini ishga tushiring.
Windows CD %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Yangi loyihani ochganingizdan so'ng, avval idf.py set-target esp32 bilan maqsadni belgilashingiz kerak. E'tibor bering, loyihadagi mavjud tuzilmalar va konfiguratsiyalar, agar mavjud bo'lsa, bu jarayonda tozalanadi va ishga tushiriladi. Ushbu bosqichni umuman o'tkazib yuborish uchun maqsad muhit o'zgaruvchisida saqlanishi mumkin. Qo'shimcha ma'lumot uchun Nishon chipini tanlang: maqsadni belgilang. Agar oldingi amallar toʻgʻri bajarilgan boʻlsa, quyidagi menyu paydo boʻladi: Siz ushbu menyudan loyihaga oid oʻzgaruvchilarni sozlash uchun foydalanyapsiz, masalan, Wi-Fi tarmogʻi nomi va paroli, protsessor tezligi va h.k. Loyihani menuconfig yordamida oʻrnatish ohello_wordp uchun oʻtkazib yuborilishi mumkin, chunki bu sobiqample standart konfiguratsiya bilan ishlaydi.
Diqqat: Agar siz ESP32-DevKitC platasini ESP32-SOLO-1 moduli yoki ESP32-DevKitM-1 platasini ESP32-MIN1-1(1U) moduli bilan ishlatsangiz, miltillashdan oldin menyu konfiguratsiyasida bitta yadro rejimini (CONFIG_FREERTOS_UNICORE) yoqing.amples.

Espressif tizimlari

19 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

12-rasm: Loyiha konfiguratsiyasi – Bosh sahifa oynasi
Eslatma: Sizning terminalingizda menyu ranglari boshqacha bo'lishi mumkin. Siz ko'rinishni -style opsiyasi bilan o'zgartirishingiz mumkin. Qo'shimcha ma'lumot uchun idf.py menuconfig –help dasturini ishga tushiring.
Agar siz qo'llab-quvvatlanadigan ishlab chiqish kengashlaridan foydalanayotgan bo'lsangiz, Kengash qo'llab-quvvatlash paketidan foydalanib rivojlanishingizni tezlashtirishingiz mumkin. Qo'shimcha ma'lumot uchun Qo'shimcha maslahatlarga qarang.
Loyihani yarating Loyihani ishga tushirish orqali yarating:
idf.py qurish
Ushbu buyruq dasturni va barcha ESP-IDF komponentlarini kompilyatsiya qiladi, so'ngra bootloader, bo'limlar jadvali va dastur ikkiliklarini yaratadi.
$ idf.py build /path/to/hello_world/build katalogida cmake ishga tushirilmoqda “cmake -G Ninja –warn-uninitialized /path/to/hello_world” bajarilmoqda… Boshlanmagan qiymatlar haqida ogohlantiring. — Git topildi: /usr/bin/git (“2.17.0” versiyasi topildi) — Konfiguratsiya tufayli boʻsh aws_iot komponentini qurish — Komponent nomlari: … — Komponent yoʻllari: …
… (qurilish tizimi chiqishining ko'proq qatorlari)
[527/527] hello_world.bin esptool.py v2.3.1 yaratilmoqda
Loyihani qurish tugallandi. Miltillash uchun quyidagi buyruqni bajaring: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_wld. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin yoki "idf.py -p PORT flash" ni ishga tushiring
Hech qanday xatolik bo'lmasa, qurish ikkilik .bin mikrodasturini yaratish bilan yakunlanadi files.

Espressif tizimlari

20 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
Qurilmada oʻzingiz yaratgan ikkilik fayllarni (bootloader.bin, partition-table.bin va hello_world.bin) ESP32 platangizga idf.py -p PORT [-b BAUD] fleshini ishga tushirish orqali yondiring.
PORTni ESP32 platalari seriyali port nomi bilan almashtiring. BAUD ni kerakli uzatish tezligi bilan almashtirish orqali miltillovchi uzatish tezligini ham o'zgartirishingiz mumkin. Standart uzatish tezligi 460800. Idf.py argumentlari haqida qoʻshimcha maʼlumot olish uchun idf.py-ga qarang.
Eslatma: Flash opsiyasi avtomatik ravishda loyihani yaratadi va yondiradi, shuning uchun idf.py Build dasturini ishga tushirish shart emas.

Miltillash paytida muammolarga duch keldingizmi? Agar siz berilgan buyruqni bajarsangiz va ulanish muvaffaqiyatsizligi kabi xatolarni ko'rsangiz, buning bir necha sabablari bo'lishi mumkin. Buning sabablaridan biri chipni qayta o'rnatish, ROM yuklash moslamasi bilan ishlash va flesh-proshivka bilan ishlash uchun qurilish tizimi tomonidan chaqiriladigan esptool.py yordam dasturi bilan bog'liq muammolar bo'lishi mumkin. Sinab ko'rish uchun oddiy echimlardan biri quyida tavsiflangan qo'lda tiklashdir va agar bu yordam bermasa, muammoni bartaraf etish bo'limida yuzaga kelishi mumkin bo'lgan muammolar haqida batafsil ma'lumot olishingiz mumkin.
esptool.py USB dan ketma-ket o'zgartiruvchi chipning DTR va RTS boshqaruv liniyalarini, ya'ni FTDI yoki CP210x ni tasdiqlash orqali ESP32 ni avtomatik ravishda tiklaydi (qo'shimcha ma'lumot uchun ESP32 bilan ketma-ket ulanishni o'rnatishga qarang). DTR va RTS boshqaruv liniyalari o'z navbatida ESP32 ning GPIO0 va CHIP_PU (EN) pinlariga ulanadi, shuning uchun ovoz balandligi o'zgaradi.tagDTR va RTS darajalari ESP32 ni proshivkani yuklab olish rejimiga yuklaydi. Sobiq sifatidaample, ESP32 DevKitC ishlab chiqish platasining sxemasini tekshiring.
Umuman olganda, rasmiy esp-idf ishlab chiqish kengashlari bilan hech qanday muammo bo'lmasligi kerak. Biroq, esptool.py quyidagi hollarda uskunangizni avtomatik ravishda qayta tiklay olmaydi:
· Sizning uskunangizda GPIO0 va CHIP_PU ga ulangan DTR va RTS liniyalari mavjud emas · DTR va RTS liniyalari boshqacha sozlangan · Bunday ketma-ket boshqaruv liniyalari umuman yo‘q.
Sizda mavjud bo'lgan uskuna turiga qarab, ESP32 platangizni proshivkani yuklab olish rejimiga (qayta tiklash) qo'lda qo'yish ham mumkin.
· Espressif tomonidan ishlab chiqarilgan ishlab chiqish platalari uchun bu ma'lumotni tegishli ishga tushirish qo'llanmalarida yoki foydalanuvchi qo'llanmalarida topish mumkin. Misol uchunample, ESP-IDF ishlab chiqish platasini qo'lda tiklash uchun Yuklash tugmasini (GPIO0) bosib turing va EN tugmasini (CHIP_PU) bosing.
· Boshqa turdagi apparatlar uchun GPIO0 ni pastga tortib ko'ring.

Oddiy ishlash Miltillaganda siz quyidagiga o'xshash chiqish jurnalini ko'rasiz:
… 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 0x8000bin1000-bo‘lim jadvali. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Seriya porti /dev/ttyUSB0 Ulanmoqda…….._ Chip ESP32D0WDQ6 (revizion 0) Xususiyatlar: WiFi, BT, Dual Core, CAC4 kodlash sxemasi yo'q: MAC40 24:0a:c0:05:b9:14 stub yuklanmoqda… stub ishlanmoqda… stub ishlanmoqda… uzatish tezligi 460800 ga o‘zgartirilmoqda O‘zgartirildi.
(davomi keyingi sahifada)

Espressif tizimlari

21 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
(oldingi sahifadan davomi) Flesh hajmi sozlanmoqda… Siqilgan 3072 baytdan 103 gacha… 0x00008000… (100 %) da yozish. 0x00008000 da 3072 bayt (103 siqilgan) 0.0 soniyada yozildi (effektiv ma’lumotlar Ha2.86 bit…86 bit) 26096 bayt 15408 ga siqildi… 0x00001000… (100 %) da yozish 0.4 soniyada 0x00001000 da 26096 bayt (15408 siqilgan) yozildi (effektiv 546.7 kbit/s ma’lumotlar)…. 147104 bayt 77364 gacha siqildi… 0x00010000… (20 %) da yozilmoqda 0x00014000… (40 %) da yozilmoqda… 0x00018000… (60 %) da yozilmoqda… 0x00020000… (100 %) 1.9 soniyada 0x00010000 da 147104 bayt (77364 siqilgan) yozdi (effektiv 615, 5 kbit/s)… Maʼlumotlar xeshi tasdiqlandi.
Chiqib ketmoqda… RTS pin orqali qattiq tiklash… Bajarildi
Agar flesh jarayonining oxirigacha hech qanday muammo bo'lmasa, plata qayta ishga tushadi va theohello_worldpapplication dasturini ishga tushiradi. Agar siz idf.py o'rniga Eclipse yoki VS Code IDE-dan foydalanmoqchi bo'lsangiz, Eclipse plaginini, VSCode kengaytmasini tekshiring.
Chiqishni kuzating Ohello_worldpis haqiqatan ham ishlayotganligini tekshirish uchun idf.py -p PORT monitorini yozing (PORTni ketma-ket port nomi bilan almashtirishni unutmang).
Bu buyruq IDF Monitor ilovasini ishga tushiradi:
$ idf.py -p monitor Katalogda idf_monitor ishga tushmoqda […]/esp/hello_world/build “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”…i-da bajarilmoqda…i 115200 —– Chiqish: Ctrl+] | Menyu: Ctrl+T | Yordam: Ctrl+T va keyin Ctrl+H –ets 8-iyun 2016 00:22:57
birinchi: 0x1 (POWERON_RESET), yuklash: 0x13 (SPI_FAST_FLASH_BOOT) va 2016 yil 8-iyun 00:22:57 ...
Ishga tushirish va diagnostika jurnallari yuqoriga aylantirilgandan so'ng, ilova tomonidan chop etilgan oHello world!
… Salom dunyo! 10 soniyada qayta ishga tushiriladi… Bu 2 protsessor yadro(lari), WiFi/BT/BLE, kremniy reviziyasi 1, 2MB tashqi fleshli esp32 chipi Minimal bepul yig‘ish hajmi: 298968 bayt 9 soniyada qayta ishga tushiriladi… 8 soniyada qayta ishga tushiriladi… 7 soniyada qayta ishga tushiriladi…
IDF monitoridan chiqish uchun Ctrl+] yorliqlaridan foydalaning.

Espressif tizimlari

22 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
Agar IDF monitori yuklangandan keyin qisqa vaqt o'tmay ishlamay qolsa yoki yuqoridagi xabarlar o'rniga quyida keltirilganga o'xshash tasodifiy axlatni ko'rsangiz, platangiz 26 MGts kristalidan foydalanayotgan bo'lishi mumkin. Ko'pgina ishlab chiqish platalari dizaynlari 40 MGts dan foydalanadi, shuning uchun ESP-IDF bu chastotani standart qiymat sifatida ishlatadi.

Agar shunday muammoga duch kelsangiz, quyidagilarni bajaring: 1. Monitordan chiqing. 2. Menyu konfiguratsiyasiga qayting. 3. Komponent konfiguratsiyasi > Uskuna sozlamalari > Asosiy XTAL konfiguratsiyasi > Asosiy XTAL chastotasiga o‘ting, so‘ng CONFIG_XTAL_FREQ_SEL ni 26 MGts ga o‘zgartiring. 4. Shundan so'ng, dasturni qayta quring va o'chiring.
ESP-IDF ning joriy versiyasida ESP32 tomonidan qo'llab-quvvatlanadigan asosiy XTAL chastotalari quyidagicha:
· 26 MGts · 40 MGts
Eslatma: idf.py -p PORT flesh monitorini ishga tushirish orqali qurish, miltillash va monitoringni bir bosqichda birlashtira olasiz.
Shuningdek qarang: · IDF monitoridan foydalanish boʻyicha qulay yorliqlar va batafsil maʼlumot uchun IDF Monitor. · idf.py buyruqlari va opsiyalari haqida to'liq ma'lumot olish uchun idf.py.
ESP32 bilan boshlash uchun kerak bo'lgan hamma narsa shu! Endi siz boshqa sobiqni sinab ko'rishga tayyorsizamples, yoki to'g'ridan-to'g'ri o'z ilovalaringizni ishlab chiqishga o'ting.
Muhim: ba'zilari sobiqamples ESP32-ni qo'llab-quvvatlamaydi, chunki kerakli uskuna ESP32-ga kiritilmagan, shuning uchun uni qo'llab-quvvatlab bo'lmaydi. Agar sobiq qurayotgan bo'lsangizample, iltimos, README ni tekshiring file Qo'llab-quvvatlanadigan maqsadlar jadvali uchun. Agar bu mavjud bo'lsa, shu jumladan ESP32 maqsadi yoki jadval umuman mavjud bo'lmasa, sobiqample ESP32 da ishlaydi.
Qo'shimcha maslahatlar
Ruxsat muammolari /dev/ttyUSB0 Ba'zi Linux distributivlarida ESP32 yonib-o'chganda, siz /dev/ttyUSB0 portini ochib bo'lmadi xato xabarini olishingiz mumkin. Buni joriy foydalanuvchini dialog guruhiga qo'shish orqali hal qilish mumkin.
Python mosligi ESP-IDF Python 3.7 yoki undan keyingi versiyalarni qo'llab-quvvatlaydi. Operatsion tizimingizni ushbu talabni qondiradigan so'nggi versiyaga yangilash tavsiya etiladi. Boshqa variantlar orasida Python-ni manbalardan o'rnatish yoki pyenv kabi Python versiyasini boshqarish tizimidan foydalanish kiradi.
Ba'zi ishlab chiqish platalarida prototip yaratishni tezlashtirish uchun siz kengashni qo'llab-quvvatlash paketidan (BSP) foydalanishingiz mumkin, bu esa ma'lum bir platani ishga tushirishni bir necha funktsiya chaqiruvi kabi osonlashtiradi.

Espressif tizimlari

23 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

BSP odatda ishlab chiqish platasida taqdim etilgan barcha apparat komponentlarini qo'llab-quvvatlaydi. Pinoutni aniqlash va ishga tushirish funksiyalaridan tashqari, BSP sensorlar, displeylar, audio kodeklar kabi tashqi komponentlar uchun drayverlarga ega. BSPlar IDF Component Manager orqali tarqatiladi, shuning uchun ularni IDF Component Registry da topish mumkin. Herens sobiqampESP-WROVER-KIT BSP-ni loyihangizga qanday qo'shish haqida: idf.py add-dependency esp_wrover_kit
Ko'proq sobiqampBSP-dan foydalanish qoidalarini BSP-da topish mumkinamples papkasi.
Tegishli hujjatlar O'rnatish jarayonini moslashtirmoqchi bo'lgan ilg'or foydalanuvchilar uchun: · Windowsda ESP-IDF vositalarini yangilash · ESP32 bilan ketma-ket ulanishni o'rnatish · Eclipse plagini · VSCode kengaytmasi · IDF monitori
Windows-da ESP-IDF vositalarini yangilash
Skript yordamida ESP-IDF vositalarini o'rnating Windows buyruq satridan ESPIDF o'rnatilgan katalogga o'ting. Keyin ishga tushiring:
install.bat
Powershell uchun ESP-IDF o'rnatilgan katalogga o'ting. Keyin ishga tushiring:
install.ps1
Bu ESP-IDF-dan foydalanish uchun zarur vositalarni yuklab oladi va o'rnatadi. Agar asbobning o'ziga xos versiyasi allaqachon o'rnatilgan bo'lsa, hech qanday chora ko'rilmaydi. Asboblar yuklab olinadi va ESP-IDF Tools Installer jarayonida ko'rsatilgan katalogga o'rnatiladi. Odatiy bo'lib, bu C:Usersusername.espressif.
Eksport skripti yordamida ESP-IDF vositalarini PATHga qo'shing ESP-IDF vositalarini o'rnatuvchisi oESP-IDF buyruq satri uchun Boshlash menyusi yorlig'ini yaratadi. Ushbu yorliq barcha vositalar allaqachon mavjud bo'lgan buyruq satri oynasini ochadi
mavjud. Ba'zi hollarda siz ESP-IDF bilan ushbu yorliqdan foydalanilmagan buyruq satri oynasida ishlashni xohlashingiz mumkin. Agar shunday bo'lsa, PATH-ga ESP-IDF vositalarini qo'shish uchun quyidagi ko'rsatmalarga amal qiling. ESP-IDF-dan foydalanishingiz kerak bo'lgan buyruq satrida ESP-IDF o'rnatilgan katalogga o'ting va eksport.bat-ni ishga tushiring:
cd %userprofile%espesp-idf eksport.bat
Shu bilan bir qatorda, ESP-IDF-dan foydalanishingiz kerak bo'lgan Powershell-da, ESP-IDF o'rnatilgan katalogga o'ting, so'ngra eksport.ps1-ni bajaring:
cd ~/esp/esp-idf eksport.ps1
Bu bajarilganda, asboblar ushbu buyruq satrida mavjud bo'ladi.
ESP32 bilan ketma-ket ulanishni o'rnatish Ushbu bo'lim ESP32 va kompyuter o'rtasida ketma-ket ulanishni o'rnatish bo'yicha ko'rsatmalar beradi.

Espressif tizimlari

24 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
ESP32 ni kompyuterga ulang USB kabelidan foydalanib ESP32 platasini kompyuterga ulang. Agar qurilma drayveri avtomatik ravishda o'rnatilmasa, ESP32 platangizda (yoki tashqi konvertor dongle) USB-ni ketma-ket konvertor chipini aniqlang, Internetda drayverlarni qidiring va ularni o'rnating. Quyida Espressif tomonidan ishlab chiqarilgan ko'pgina ESP32 platalarida o'rnatilgan USB dan ketma-ket o'zgartiruvchi chiplar ro'yxati va drayverlarga havolalar keltirilgan:
· CP210x: CP210x USB to UART Bridge VCP drayverlari · FTDI: FTDI Virtual COM port drayverlari. Iltimos, plata foydalanuvchi qo'llanmasida USB-dan ketma-ket o'zgartirgich chipini tekshiring. Yuqoridagi drayverlar asosan ma'lumot uchun. Oddiy sharoitlarda drayverlar operatsion tizim bilan birlashtirilgan bo'lishi va platani shaxsiy kompyuterga ulashda avtomatik ravishda o'rnatilishi kerak.
Windows-dagi portni tekshirish Windows Device Manager-da aniqlangan MAQOMOTI portlar ro'yxatini tekshiring. Qaysi port roʻyxatdan yoʻqolib, keyin yana koʻrsatilishini tekshirish uchun ESP32-ni uzing va uni qayta ulang. Quyidagi rasmlarda ESP32 DevKitC va ESP32 WROVER KIT uchun ketma-ket port ko'rsatilgan

13-rasm: Windows Device Manager-da ESP32-DevKitC-ning USB-UART ko'prigi

Linux va macOS’da portni tekshiring. ESP32 platangiz (yoki tashqi konvertor dongle) seriyali portining qurilma nomini tekshirish uchun ushbu buyruqni avval plata/dongle o‘chirilgan, so‘ngra ulangan holda ikki marta bajaring. Ikkinchi marta paydo bo‘ladigan port sizga kerak bo‘lgan port: Linux
ls /dev/tty*
macOS

Espressif tizimlari

25 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

14-rasm: Windows Device Manager-da ESP-WROVER-KIT ning ikkita USB seriyali porti

Espressif tizimlari

26 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

ls /dev/cu.* Eslatma: macOS foydalanuvchilari: agar siz ketma-ket portni ko'rmasangiz, USB/seriyali drayverlar o'rnatilganligini tekshiring. Drayvlarga havolalar uchun ESP32 ni kompyuterga ulash bo'limiga qarang. MacOS High Sierra (10.13) uchun siz drayverlarni yuklashga aniq ruxsat berishingiz kerak bo'lishi mumkin. Tizim sozlamalari -> Xavfsizlik va maxfiylik -> Umumiy yorlig'ini oching va bu yerda ishlab chiqaruvchidan oSystem dasturiy ta'minoti haqida xabar bor yoki yo'qligini tekshiring, bu erda dasturchi nomi Silicon Labs yoki FTDI.

Linuxda dialogga foydalanuvchi qo'shish Hozirda tizimga kirgan foydalanuvchi USB orqali ketma-ket portga o'qish va yozish huquqiga ega bo'lishi kerak. Ko'pgina Linux distributivlarida bu foydalanuvchini quyidagi buyruq bilan suhbat guruhiga qo'shish orqali amalga oshiriladi:
sudo usermod -a -G dialout $USER
Arch Linuxda bu foydalanuvchini uucp guruhiga quyidagi buyruq bilan qo'shish orqali amalga oshiriladi:
sudo usermod -a -G uucp $USER
Seriya port uchun o'qish va yozish ruxsatlarini yoqish uchun qayta kirganingizga ishonch hosil qiling.
Seriyali ulanishni tekshiring Endi ketma-ket ulanish ishlayotganligini tekshiring. Buni ketma-ket terminal dasturidan foydalanib, ESP32-ni qayta o'rnatganingizdan so'ng terminalda biron bir chiqish borligini tekshirish orqali amalga oshirishingiz mumkin. ESP32 da standart konsol uzatish tezligi 115200.
Bunda Windows va LinuxampBiz Windows va Linux uchun mavjud bo'lgan PuTTY SSH Client-dan foydalanamiz. Siz boshqa ketma-ket dasturlardan foydalanishingiz va quyidagi kabi aloqa parametrlarini o'rnatishingiz mumkin. Terminalni ishga tushiring va aniqlangan ketma-ket portni o'rnating. Bod tezligi = 115200 (agar kerak bo'lsa, uni ishlatilayotgan chipning standart uzatish tezligiga o'zgartiring), ma'lumotlar bitlari = 8, to'xtash bitlari = 1 va parite = N. Quyida misollar keltirilgan.ample Windows va Linuxda port va shunga o'xshash uzatish parametrlarini (qisqacha 115200-8-1-N deb ta'riflangan) sozlashning skrinshotlari. Yuqoridagi bosqichlarda aniqlagan ketma-ket portni tanlashni unutmang. Keyin terminalda ketma-ket portni oching va ESP32 tomonidan chop etilgan jurnalni ko'rsangiz, tekshiring. Jurnal mazmuni ESP32 ga yuklangan ilovaga bog'liq bo'ladi, masalan, qarangample Chiqish.
Eslatma: Aloqa ishlayotganligini tekshirgandan so'ng ketma-ket terminalni yoping. Agar siz terminal seansini ochiq tutsangiz, keyinchalik mikrodasturni yuklash uchun ketma-ket portga kirish imkoni bo'lmaydi.

macOS Sizni ketma-ket terminal dasturini o'rnatish muammosidan xalos bo'lish uchun macOS ekran buyrug'ini taklif qiladi. · Linux va macOS’dagi Check portida muhokama qilinganidek, quyidagini bajaring:

ls /dev/cu.* · Shu kabi chiqishni ko'rishingiz kerak:

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

/dev/cu.SLAB_

· Chiqish sizning shaxsiy kompyuteringizga ulangan platalar turiga va soniga qarab o'zgaradi. Keyin platangizning qurilma nomini tanlang va ishga tushiring (agar kerak bo'lsa, o115200p ni ishlatilayotgan chipning standart uzatish tezligiga o'zgartiring):

screen /dev/cu.device_name 115200 Qurilma_nomini ls /dev/cu.* ishlayotgan topilgan nom bilan almashtiring.

Espressif tizimlari

27 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

15-rasm: Windows-da PuTTY-da ketma-ket aloqani sozlash

Espressif tizimlari

28 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

16-rasm: Linuxda PuTTY da ketma-ket aloqani sozlash

Espressif tizimlari

29 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
· Siz qidirayotgan narsa ekranda ko'rsatiladigan ba'zi jurnaldir. Jurnal mazmuni ESP32 ga yuklangan ilovaga bog'liq bo'ladi, masalan, qarangample Chiqish. Ekran seansidan chiqish uchun Ctrl-A + ni kiriting.
Eslatma: Aloqa ishlayotganligini tekshirgandan so'ng, ekran seansidan chiqishni unutmang. Agar siz buni qila olmasangiz va terminal oynasini yopsangiz, keyinchalik mikrodasturni yuklash uchun ketma-ket portga kirish imkoni bo'lmaydi.
Example Output An example log quyida ko'rsatilgan. Hech narsa ko'rmasangiz, taxtani qayta o'rnating. ets 8 iyun 2016 yil 00:22:57
birinchi: 0x5 (DEEPSLEEP_RESET), yuklash: 0x13 (SPI_FAST_FLASH_BOOT) va 2016 yil 8-iyun 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) yuklash: kompilyatsiya vaqti 18:48:10

Agar siz o'qilishi mumkin bo'lgan jurnal chiqishini ko'rsangiz, bu ketma-ket ulanish ishlayotganligini va siz o'rnatishni davom ettirishga va nihoyat dasturni ESP32 ga yuklashga tayyor ekanligingizni bildiradi.
Eslatma: Ba'zi ketma-ket port o'tkazgich konfiguratsiyasi uchun ESP32 yuklashdan va ketma-ket chiqishni ishlab chiqarishdan oldin, ketma-ket RTS va DTR pinlarini terminal dasturida o'chirib qo'yish kerak. Bu apparatning o'ziga bog'liq, aksariyat ishlab chiqish kengashlarida (shu jumladan barcha Espressif platalarida) bunday muammo yo'q. Agar RTS va DTR to'g'ridan-to'g'ri EN va GPIO0 pinlariga ulangan bo'lsa, muammo yuzaga keladi. Batafsil ma'lumot uchun esptool hujjatlariga qarang.
Agar siz 5-bosqichdan kelgan bo'lsangiz. ESP32-ni ishlab chiqish uchun s/w-ni o'rnatishda ESP-IDF bo'yicha birinchi qadamlar, keyin siz 5-qadam bilan davom etishingiz mumkin. ESP-IDF bo'yicha birinchi qadamlar.
IDF Monitor IDF Monitor asosan ketma-ket ma'lumotlarni maqsadli qurilmalarning ketma-ket portiga va undan uzatuvchi ketma-ket terminal dasturidir. Shuningdek, u IDFga xos xususiyatlarni ham taqdim etadi. IDF Monitorni IDF loyihasidan idf.py monitorini ishga tushirish orqali ishga tushirish mumkin.
Klaviatura yorliqlari IDF Monitor bilan oson ishlash uchun jadvalda keltirilgan klaviatura yorliqlaridan foydalaning.

Espressif tizimlari

30 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

Klaviatura yorlig'i Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (yoki A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (yoki I)
· Ctrl+H (yoki H)
· Ctrl+X (yoki X)
Ctrl+C

Harakat

Tavsif

Dasturdan chiqish Menyudan chiqish tugmasi Menyu belgisini o'zini masofadan boshqarish pultiga yuboring
Chiqish belgisini o'zini masofadan boshqarish pultiga yuboring
RTS liniyasi orqali ilovani to'xtatib turish uchun maqsadni yuklash moslamasiga qaytaring
RTS orqali maqsadli taxtani qayta o'rnating
Loyihani yarating va yarating

Faqatgina ilovani yarating va flesh qiling

Ekranda jurnalni chop etishni to'xtatish/davom etish

Toʻxtatish/davom etish jurnalining chiqishi saqlangan file

To'xtatish/davom etish vaqtiamps

chop etish

Barcha klaviatura yorliqlarini ko'rsatish

Quyida berilgan tugmalardan birini bosing va unga amal qiling.
Maqsadni RTS liniyasi orqali yuklash qurilmasiga (agar ulangan bo'lsa) qayta o'rnatadi, shunda plata hech narsa ishlamaydi. Boshqa qurilma ishga tushishini kutish kerak bo'lganda foydalidir. Maqsadli taxtani qayta o'rnatadi va dasturni RTS liniyasi orqali qayta ishga tushiradi (agar ulangan bo'lsa).
Loyiha flesh-maqsadini ishga tushirish uchun idf_monitor-ni pauza qiladi, keyin esa idf_monitor-ni davom ettiradi. Har qanday o'zgartirilgan manba files qayta kompilyatsiya qilinadi va keyin yana miltillaydi. Agar idf_monitor -E argumenti bilan boshlangan bo'lsa, maqsadli shifrlangan-flesh ishga tushadi. Ilova flesh maqsadini ishga tushirish uchun idf_monitor-ni pauza qiladi, keyin esa idf_monitor-ni davom ettiradi. Fleshli nishonga o'xshash, lekin faqat asosiy dastur qurilgan va qayta o'chiriladi. Agar idf_monitor -E argumenti bilan boshlangan bo'lsa, maqsadli shifrlangan-ilova-flesh ishga tushadi. Faollashtirilganda barcha kiruvchi ketma-ket ma'lumotlarni o'chiradi. Monitordan chiqmasdan jurnal chiqishini tezda pauza qilish va tekshirish imkonini beradi. yaratadi a file loyiha katalogida va natija unga yoziladi file Bu bir xil klaviatura yorlig'i bilan o'chirilmaguncha (yoki IDF Monitori chiqmaguncha). IDF Monitor vaqtni chop etishi mumkinamp har bir qatorning boshida. Eng vaqtamp formatini -timest orqali o'zgartirish mumkinamp-buyruqlar qatori argumentini formatlash.

Dasturdan chiqing

Ishlayotgan ilovani to'xtatish

IDF monitorini pauza qiladi va dasturni ish vaqtida disk raskadrovka qilish uchun GDB loyihasi tuzatuvchisini ishga tushiradi. Buning uchun :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME opsiyasi yoqilishi kerak.

Ctrl-] va Ctrl-Tdan tashqari bosilgan har qanday tugmalar ketma-ket port orqali yuboriladi.

IDFga xos xususiyatlar

Manzilni avtomatik dekodlash ESP-IDF 0x4_______ shaklidagi o'n oltilik kodli manzilni chiqarganda, IDF Monitor manba kodidagi manzilni qidirish va funksiya nomini topish uchun addr2line_ dan foydalanadi.
Agar ESP-IDF ilovasi ishlamay qolsa va vahima qo'ysa, quyidagi kabi registrlarni tashlab yuborish va orqaga qaytish hosil bo'ladi:

Espressif tizimlari

31 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

Guru meditatsiyasi 0 yadrosida StoreProhibited turidagi xatolik yuz berdi. Istisno edi

ishlov berilmagan.

Chiqindilarni ro'yxatdan o'tkazish:

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

0x0000001d

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

0x00000000

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

IDF Monitor axlatxonaga qo'shimcha ma'lumotlarni qo'shadi:

Guru meditatsiyasi 0 yadrosida StoreProhibited turidagi xatolik yuz berdi. Istisno edi

ishlov berilmagan.

Chiqindilarni ro'yxatdan o'tkazish:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: /home/gus/esp/32/idf/ex manzilida halokatga_biror narsa qilishamples/boshlash/

hello_world/main/./hello_world_main.c:57

(chizilgan) inner_dont_crash manzilida /home/gus/esp/32/idf/examples/get-started/salom_

dunyo/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 IZNING:

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 (chiziqlangan) inner_dont_crash saytida /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash saytida /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main manzili /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: asosiy_vazifa /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

Har bir manzilni dekodlash uchun IDF Monitor fonda quyidagi buyruqni bajaradi: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

Eslatma: ESP_MONITOR_DECODE muhit o'zgaruvchisini 0 ga o'rnating yoki maxsus buyruq qatori bilan idf_monitor.py ga qo'ng'iroq qiling

Espressif tizimlari

32 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
variant: idf_monitor.py – manzil dekodlashni o‘chirish uchun manzilni dekodlashni o‘chirib qo‘yish.
Ulanishda maqsadni tiklash Odatiy bo'lib, IDF Monitor unga ulanishda nishonni qayta o'rnatadi. Maqsadli chipni qayta tiklash DTR va RTS seriyali liniyalari yordamida amalga oshiriladi. IDF Monitor ulanishda maqsadni avtomatik ravishda qayta tiklashiga yo'l qo'ymaslik uchun IDF Monitorni -no-reset opsiyasi bilan chaqiring (masalan, idf_monitor.py -no-reset).
Eslatma: No-reset opsiyasi IDF Monitorni ma'lum bir portga ulashda ham xuddi shunday harakatni qo'llaydi (masalan, idf.py monitor –no-reset -p [PORT]).
GDB-ni GDBStub bilan ishga tushirish GDBStub - bu maqsadda ishlaydigan va disk raskadrovka buyruqlarini qabul qilish uchun ketma-ket port orqali xostga ulanadigan foydali ish vaqti disk raskadrovka xususiyati. GDBStub xotira va oʻzgaruvchilarni oʻqish, qoʻngʻiroqlar toʻplami ramkalarini tekshirish va h.k. kabi buyruqlarni qoʻllab-quvvatlaydi. Garchi GDBStub J ga qaraganda kamroq koʻp qirrali.TAG disk raskadrovka, u hech qanday maxsus uskunani talab qilmaydi (masalan, JTAG USB ko'prigiga), chunki aloqa butunlay ketma-ket port orqali amalga oshiriladi. CONFIG_ESP_SYSTEM_PANIC-ni ish vaqtida GDBStub-ga o'rnatish orqali maqsadni GDBStub-ni fonda ishga tushirish uchun sozlash mumkin. GDBStub ketma-ket port orqali Ctrl+C xabari yuborilgunga qadar fonda ishlaydi va GDBStub dasturni buzishiga (ya'ni, bajarilishini to'xtatib turishiga) sabab bo'ladi va shu bilan GDBStubga nosozliklarni tuzatish buyruqlarini bajarishga imkon beradi. Bundan tashqari, vahima bilan shug'ullanuvchi CONFIG_ESP_SYSTEM_PANIC-ni vahima holatida GDBStub-ga o'rnatish orqali GDBStub-ni ishlamay qolganda ishga tushirish uchun sozlash mumkin. Buzilish sodir bo'lganda, GDBStub uning ishlayotganligini ko'rsatish uchun ketma-ket port orqali maxsus simli naqsh chiqaradi. Ikkala holatda ham (ya'ni, Ctrl+C xabarini yuborish yoki maxsus string naqshini olish) IDF Monitor foydalanuvchiga nosozliklarni tuzatish buyruqlarini yuborishga ruxsat berish uchun avtomatik ravishda GDB ni ishga tushiradi. GDB chiqqandan so'ng, maqsad RTS seriyali liniyasi orqali qayta o'rnatiladi. Agar bu liniya ulanmagan bo'lsa, foydalanuvchilar o'z maqsadlarini qayta o'rnatishlari mumkin (bortlarni Reset tugmasini bosish orqali).
Eslatma: Fonda IDF Monitor GDBni ishga tushirish uchun quyidagi buyruqni bajaradi:
xtensa-esp32-elf-gdb -ex “seriyali uzatish BAUD” -ex “masofaviy masofaviy PORT” -ex interrupt build/PROJECT.elf :idf_target:`Salom NAME chip`

Chiqish filtrlash IDF monitorini idf.py monitor –print-filter=”xyz” sifatida chaqirish mumkin, bunda –print-filter chiqish filtrlash parametridir. Standart qiymat bo'sh satrdir, ya'ni hamma narsa chop etilgan.
Chop etish bo'yicha cheklovlar qator sifatida ko'rsatilishi mumkintag>: buyumlar qaerdatag> bu tag string va {N, E, W, I, D, V, *} to'plamidagi belgi jurnalga yozish uchun darajaga ishora qiladi.
Misol uchunample, PRINT_FILTER=”tag1:W” faqat ESP_LOGW bilan yozilgan natijalarga mos keladi va chop etadi(“tag1”, …) yoki pastroq batafsillik darajasida, ya’ni ESP_LOGE(“tag1″, …). Ko'rsatilmagan a yoki birlamchi darajaga * standartidan foydalanish.
Eslatma: Jurnal kutubxonasi orqali kerak bo'lmagan natijalarni kompilyatsiya qilishda o'chirish uchun asosiy jurnaldan foydalaning. IDF monitori bilan chiqish filtrlash ilovani qayta kompilyatsiya qilmasdan filtrlash opsiyalarini sozlash uchun foydali bo'lishi mumkin bo'lgan ikkinchi darajali yechimdir.
Sizning ilovangiz tags bo'shliqlar, yulduzcha * yoki ikki nuqta bo'lmasligi kerak: chiqish filtrlash xususiyatiga mos keladi.
Agar ilovangizdagi chiqishning oxirgi qatoridan keyin vagon qaytishi boʻlmasa, chiqish filtrlash chalkash boʻlishi mumkin, yaʼni monitor satrni chop qila boshlaydi va keyinchalik chiziq yozilmasligi kerakligini aniqlaydi. Bu ma'lum muammo bo'lib, uni har doim vagonni qaytarishni qo'shish orqali oldini olish mumkin (ayniqsa, darhol keyin hech qanday chiqish bo'lmasa).

Espressif tizimlari

33 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
ExampFiltrlash qoidalari:
· * har qanday mos kelishi uchun ishlatilishi mumkin tags. Biroq, PRINT_FILTER=”*:I qatori tag1:E” ga nisbatan tag1 faqat xatolarni chop etadi, chunki qoida uchun tag1 qoidasi * uchun ustunlikka ega.
· Standart (bo'sh) qoida *:V ga teng, chunki har biriga mos keladi tag Verbose darajasida yoki pastda hamma narsaga mos kelishini anglatadi.
· “*:N” nafaqat jurnalga yozish funksiyalari natijalarini, balki printf va hokazolar tomonidan qilingan nashrlarni ham bosadi. Bunga yo'l qo'ymaslik uchun *:E yoki undan yuqori aniqlik darajasidan foydalaning.
· Qoidalar "tag1:V”, “tag1:v”, “tag1:”, “tag1:*”, va “tag1" ekvivalent. · "Qoida"tag1: V tag1:E” “ga teng”tag1:E” chunki bir xilning har qanday oqibati yuzaga keladi tag
nom oldingisining ustiga yoziladi. · Qoida "tag1: I tag2:W” faqat chop etadi tagAxborotning batafsil darajasida 1 yoki undan pastroq va tagOgohlantirishda 2
aniqlik darajasi yoki undan pastroq. · Qoida "tag1: I tag2: V tag3:N” mohiyatan avvalgisiga teng, chunki tag3:N belgilaydi
bu tag3 chop etilmasligi kerak. · tag3:N qoidasida "tag1: I tag2: V tag3:N *:V” mazmunliroq, chunki ularsiz tag3: N the
tag3 ta xabar chop etilishi mumkin edi; uchun xatolar tag1 va tag2 belgilangan (yoki pastroq) aniqlik darajasida chop etiladi va qolgan hamma narsa sukut bo'yicha chop etiladi.
Murakkab filtrlash misoliample Quyidagi jurnal parchasi hech qanday filtrlash imkoniyatlarisiz olingan:
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: 0x30000 oʻlchamdagi rasmda sehrli bayt yaroqsiz Vt (31) esp_image: 0x30000 oʻlchamdagi rasm yaroqsiz SPI rejimiga ega (E3 ilovasi 255 bootti) (568) cpu_start: Pro protsessor yuqoriga. I (569) heap_init: ishga tushirilmoqda. Dinamik ajratish uchun mavjud RAM: I (603) cpu_start: Pro cpu start foydalanuvchi kodi D (309) light_driver: [light_init, 74]:status: 1, rejim: 2 D (318) vfs: esp_vfs_register_fd_diapazoni <54 diapazoni uchun muvaffaqiyatli; 64) va VFS ID 1 I (328) wifi: wifi drayveri vazifasi: 39ffdbf84, prio: 23, stek: 4096, yadro = 0
PRINT_FILTER=”wifi esp_image:E light_driver:I” filtrlash opsiyalari uchun olingan natijalar quyida keltirilgan:
E (31) esp_image: 0x30000 o‘lchamdagi rasmda yaroqsiz sehrli bayt bor I (328) wifi: Wi-Fi drayveri vazifasi: 3ffdbf84, prio:23, stek:4096, yadro=0
“PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” parametrlari quyidagi natijani ko‘rsatadi:
yuk: 0x40078000, len: 13564 kirish 0x40078d4c I (569) heap_init: Boshlanmoqda. Dinamik ajratish uchun mavjud RAM: D (309) light_driver: [light_init, 74]: status: 1, rejim: 2
IDF Monitor bilan bog'liq ma'lum muammolar
Windowsda kuzatilgan muammolar
· O'q tugmachalari va boshqa ba'zi tugmachalar Windows Console cheklovlari tufayli GDBda ishlamaydi. · Ba'zan, oidf.pypexit qachon, IDF Monitor qayta ishga tushgunga qadar u 30 soniyagacha to'xtab qolishi mumkin. · Ogdbpis ishga tushganda, u GDBStub bilan aloqani boshlashdan oldin qisqa vaqt to'xtab qolishi mumkin.

Espressif tizimlari

34 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishga kirishish Linux va macOS uchun standart asboblar zanjirini sozlash

Bosqichma-bosqich o'rnatish Bu o'rnatish jarayonida sizga yordam beradigan batafsil yo'l xaritasi.
Rivojlanish muhitini o'rnatish ESP32 uchun ESP-IDF ni o'rnatish uchun bu qadamlardir. · 1-qadam. Old shartlarni o'rnatish · 2-qadam. ESP-IDF-ni oling · 3-qadam. Asboblarni o'rnatish · 4-qadam. Atrof muhit o'zgaruvchilarini sozlash · 5-qadam. ESP-IDF bo'yicha birinchi qadamlar
1-qadam. O'rnatish shartlari ESP32 bilan ESP-IDF dan foydalanish uchun siz operatsion tizimingizga asoslangan ba'zi dasturiy paketlarni o'rnatishingiz kerak. Ushbu sozlash bo'yicha qo'llanma sizga Linux va macOS asosidagi tizimlarda o'rnatilgan barcha narsalarni olishda yordam beradi.
Linux foydalanuvchilari uchun ESP-IDF yordamida kompilyatsiya qilish uchun siz quyidagi paketlarni olishingiz kerak bo'ladi. Ishga tushirish buyrug'i siz foydalanayotgan Linux distributiviga bog'liq:
· Ubuntu va 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 va 8: sudo yum -y update && sudo yum o'rnatish git wget flex bizon gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 hali ham qo'llab-quvvatlanadi, ammo foydalanuvchi tajribasini yaxshilash uchun CentOS 8 versiyasi tavsiya etiladi. · Arch: sudo pacman -S –kerakli gcc git make flex bizon gperf python cmake ninja ccache dfu-util libusb
Eslatma: · ESP-IDF bilan foydalanish uchun CMake 3.16 yoki undan yangiroq versiyasi talab qilinadi. Agar operatsion tizimingiz versiyalarida bunday bo'lmasa, mos versiyani o'rnatish uchun otools/idf_tools.py install cmakep-ni ishga tushiring. · Agar yuqoridagi ro'yxatda Linux distributivingizni ko'rmasangiz, paketni o'rnatish uchun qaysi buyruqdan foydalanishni bilish uchun uning hujjatlarini tekshiring.
MacOS foydalanuvchilari uchun ESP-IDF macOS tizimida sukut boʻyicha oʻrnatilgan Python versiyasidan foydalanadi. · CMake & Ninja build-ni o'rnating: Agar sizda HomeBrew bo'lsa, siz quyidagilarni ishga tushirishingiz mumkin: brew install cmake ninja dfu-util Agar sizda MacPorts bo'lsa, quyidagilarni bajarishingiz mumkin: sudo port install cmake ninja dfu-util Aks holda, macOS o'rnatish yuklab olish uchun CMake va Ninja bosh sahifalariga murojaat qiling.

Espressif tizimlari

35 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
· Tezroq qurish uchun ccache-ni ham o'rnatish tavsiya etiladi. Agar sizda HomeBrew bo'lsa, buni MacPorts-da brew install ccache yoki sudo port install ccache orqali amalga oshirish mumkin.
Eslatma: Agar biron-bir bosqichda shunga o'xshash xato ko'rsatilsa: xcrun: xato: noto'g'ri faol ishlab chiquvchi yo'li (/Library/Developer/CommandLineTools), quyidagi manzilda xcrun yo'q: /Library/Developer/CommandLineTools/usr/bin/xcrun
Keyin davom etish uchun XCode buyruq qatori vositalarini o'rnatishingiz kerak bo'ladi. Siz ularni xcode-select –install-ni ishga tushirish orqali o'rnatishingiz mumkin.
Apple M1 foydalanuvchilari Agar siz Apple M1 platformasidan foydalansangiz va shunday xatolikni ko'rsangiz: OGOHLANTIRISH: xtensa-esp32-elf versiyasi esp-2021r2-patch3-8.4.0 uchun katalog mavjud, ammo asbob topilmadi. XATO: xtensa-esp32-elf asbobida o'rnatilgan versiyalar yo'q. Uni o'rnatish uchun "install.sh" ni ishga tushiring.
yoki: zsh: bajariladigan faylda noto'g'ri CPU turi: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Keyin Apple Rosetta 2-ni /usr/sbin/softwareupdate –install-rosetta –agree-to-license ishga tushirish orqali o'rnatishingiz kerak bo'ladi.
Python 3 ni o'rnatish macOS Catalina 10.15 reliz eslatmalariga asoslanib, Python 2.7 dan foydalanish tavsiya etilmaydi va Python 2.7 macOS ning kelajakdagi versiyalarida sukut bo'yicha kiritilmaydi. Sizda qaysi Python borligini tekshiring: python -versiya
Agar chiqish Python 2.7.17 kabi bo'lsa, sizning standart tarjimoningiz Python 2.7. Agar shunday bo'lsa, Python 3 kompyuteringizda o'rnatilmaganligini ham tekshiring: python3 -versiya
Agar yuqoridagi buyruq xatoni qaytarsa, bu Python 3 o'rnatilmaganligini anglatadi. Quyida tugatilganview Python 3 ni o'rnatish bosqichlari.
· HomeBrew bilan o'rnatish quyidagicha amalga oshirilishi mumkin: brew install python3
· Agar sizda MacPorts bo'lsa, ishga tushirishingiz mumkin: sudo port install python38
2-qadam. ESP-IDFni oling ESP32 uchun ilovalar yaratish uchun sizga ESP-IDF omborida Espressif tomonidan taqdim etilgan dasturiy ta'minot kutubxonalari kerak bo'ladi. ESP-IDF-ni olish uchun o'rnatish katalogingizga o'ting va operatsion tizimingizga xos bo'lgan quyidagi ko'rsatmalarga amal qilib, omborni git clone bilan klonlang. Terminalni oching va quyidagi buyruqlarni bajaring:

Espressif tizimlari

36 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekursiv https://github.com/espressif/esp-idf.git
ESP-IDF ~/esp/esp-idf-ga yuklab olinadi. Muayyan vaziyatda qaysi ESP-IDF versiyasidan foydalanish haqida ma'lumot olish uchun ESP-IDF versiyalariga murojaat qiling.
3-qadam. Asboblarni o'rnatish ESP-IDFdan tashqari, ESP32-ni qo'llab-quvvatlovchi loyihalar uchun kompilyator, tuzatuvchi, Python paketlari va boshqalar kabi ESP-IDF tomonidan ishlatiladigan asboblarni ham o'rnatishingiz kerak. cd ~/esp/esp-idf ./install.sh esp32
yoki Fish shell cd ~/esp/esp-idf ./install.fish esp32 bilan
Yuqoridagi buyruqlar faqat ESP32 uchun asboblarni o'rnatadi. Agar siz ko'proq chip maqsadlari uchun loyihalarni ishlab chiqmoqchi bo'lsangiz, ularning barchasini sanab o'tishingiz va sobiq uchun ishlatishingiz kerakample: cd ~/esp/esp-idf ./install.sh esp32, esp32s2
yoki Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2 bilan
Barcha qo'llab-quvvatlanadigan maqsadlar uchun asboblarni o'rnatish uchun quyidagi buyruqni bajaring: cd ~/esp/esp-idf ./install.sh all
yoki Fish shell cd ~/esp/esp-idf ./install.fish all bilan
Eslatma: MacOS foydalanuvchilari uchun, agar har qanday bosqichda shunday xatolik ko'rsatilsa:urlochiq xato [SSL: CERTIFICATE_VERIFY_FAILED] sertifikati tasdiqlanmadi: mahalliy emitent sertifikatini ololmadi (_ssl.c:xxx)
Sertifikatlarni oʻrnatish uchun kompyuteringizning Python jildida “Install Certificates.command” buyrugʻini ishga tushirishingiz mumkin. Tafsilotlar uchun ESP-IDF vositalarini oʻrnatishda Yuklab olish xatosi boʻlimiga qarang.

Muqobil File Yuklashlar Asboblarni o'rnatuvchi bir qator yuklaydi files GitHub relizlariga biriktirilgan. Agar GitHub-ga kirish sekin bo'lsa, GitHub aktivlarini yuklab olish uchun Espressifns yuklab olish serverini afzal ko'rish uchun muhit o'zgaruvchisini o'rnatish mumkin.

Eslatma: Bu sozlama faqat GitHub relizlaridan yuklab olingan individual vositalarni boshqaradi, u o'zgartirmaydi URLs har qanday Git omboriga kirish uchun ishlatiladi.

Asboblarni o'rnatishda Espressif yuklab olish serverini afzal ko'rish uchun install.sh dasturini ishga tushirishda quyidagi buyruqlar ketma-ketligini ishlating:

Espressif tizimlari

37 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

cd ~/esp/esp-idf eksporti IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Asboblarni o'rnatish yo'lini moslashtirish Ushbu bosqichda taqdim etilgan skriptlar ESP-IDF tomonidan talab qilinadigan kompilyatsiya vositalarini foydalanuvchi uy katalogiga o'rnatadi: Linuxda $HOME/.espressif. Agar siz asboblarni boshqa katalogga oʻrnatmoqchi boʻlsangiz, oʻrnatish skriptlarini ishga tushirishdan oldin IDF_TOOLS_PATH muhit oʻzgaruvchisini oʻrnating. Sizning foydalanuvchi hisobingiz ushbu yo'lni o'qish va yozish uchun etarli ruxsatlarga ega ekanligiga ishonch hosil qiling. Agar IDF_TOOLS_PATH o'zgartirilsa, har safar O'rnatish skripti (install. bat, install.ps1 yoki install.sh) va Eksport skripti (export.bat, export.ps1 yoki export.sh) bajarilganda bir xil qiymatga o'rnatilganligiga ishonch hosil qiling.
4-qadam. Atrof-muhit o'zgaruvchilarini o'rnating O'rnatilgan asboblar hali PATH muhit o'zgaruvchisiga qo'shilmagan. Asboblarni buyruq satridan foydalanishga yaroqli qilish uchun ba'zi muhit o'zgaruvchilari o'rnatilishi kerak. ESP-IDF buni amalga oshiradigan boshqa skriptni taqdim etadi. ESP-IDF dan foydalanmoqchi bo'lgan terminalda quyidagilarni bajaring:
. $HOME/esp/esp-idf/export.sh
yoki baliq uchun (faqat baliq 3.0.0 versiyasidan beri qo'llab-quvvatlanadi):
. $HOME/esp/esp-idf/export.fish
Etakchi nuqta va yo'l orasidagi bo'shliqqa e'tibor bering! Agar siz esp-idf-dan tez-tez foydalanishni rejalashtirmoqchi bo'lsangiz, eksport.sh faylini bajarish uchun taxallus yaratishingiz mumkin:
1. Quyidagi buyruqni shellns pro-ga nusxalang va joylashtiringfile (.profile, .bashrc, .zprofileva boshqalar)
taxallus get_idf='. $HOME/esp/esp-idf/export.sh' 2. Terminal seansini qayta ishga tushirish yoki manba [pro-ga yo'lni ishga tushirish orqali konfiguratsiyani yangilang.file],
masalanample, manba ~/.bashrc. Endi har qanday terminal seansida esp-idf muhitini sozlash yoki yangilash uchun get_idf dasturini ishga tushirishingiz mumkin. Texnik jihatdan eksport.sh ni shellns pro-ga qo'shishingiz mumkinfile to'g'ridan-to'g'ri; ammo, tavsiya etilmaydi. Bu IDF virtual muhitini har bir terminal sessiyasida faollashtiradi (jumladan, IDF kerak bo'lmaganda), virtual muhitning maqsadini yo'qotadi va ehtimol boshqa dasturlarga ta'sir qiladi.
5-qadam. ESP-IDF bo'yicha birinchi qadamlar Endi barcha talablar bajarilganligi sababli, keyingi mavzu sizni birinchi loyihangizni qanday boshlash bo'yicha yo'l-yo'riq beradi. Ushbu qo'llanma sizga ESP-IDF-dan foydalanishning birinchi qadamlarida yordam beradi. ESP32 da yangi loyihani boshlash va qurilma chiqishini qurish, miltillash va kuzatish uchun ushbu qo‘llanmaga amal qiling.
Eslatma: Agar siz hali ESP-IDF-ni o'rnatmagan bo'lsangiz, ushbu qo'llanmadan foydalanish uchun zarur bo'lgan barcha dasturiy ta'minotni olish uchun O'rnatish bo'limiga o'ting va ko'rsatmalarga amal qiling.

Loyihani boshlash Endi siz ESP32 uchun arizangizni tayyorlashga tayyorsiz. Oldindan getstarted/hello_world loyihasi bilan boshlashingiz mumkinampESP-IDF da les katalogi.

Muhim: ESP-IDF qurish tizimi ESP-IDF yoki loyihalarga boradigan yo'llardagi bo'shliqlarni qo'llab-quvvatlamaydi.

Loyiha get-started/hello_world faylini ~/esp katalogiga nusxalash:

Espressif tizimlari

38 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Eslatma: bir qator sobiq mavjudample loyihalar sobiqampESP-IDF da les katalogi. Siz har qanday loyihani yuqorida ko'rsatilgandek nusxalashingiz va uni ishga tushirishingiz mumkin. Bundan tashqari, sobiq qurish mumkinamples in-place ularni avval nusxa ko‘chirmasdan.
Qurilmangizni ulang Endi ESP32 platangizni kompyuterga ulang va plata qaysi ketma-ket portda ko'rinishini tekshiring. Seriyali portlar quyidagi nomlash namunalariga ega:
· Linux: /dev/tty bilan boshlanadi · macOS: /dev/cu bilan boshlanadi. Agar seriyali port nomini qanday tekshirishni bilmasangiz, to'liq ma'lumot olish uchun ESP32 bilan ketma-ket ulanishni o'rnatish bo'limiga qarang.
Eslatma: Port nomini qo'lingizda saqlang, chunki keyingi bosqichlarda sizga kerak bo'ladi.
Loyihangizni sozlang Hello_world katalogingizga o'ting, maqsad sifatida ESP32 ni o'rnating va menuconfig loyiha konfiguratsiya yordam dasturini ishga tushiring. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Yangi loyihani ochganingizdan so'ng, avval idf.py set-target esp32 bilan maqsadni belgilashingiz kerak. E'tibor bering, loyihadagi mavjud tuzilmalar va konfiguratsiyalar, agar mavjud bo'lsa, bu jarayonda tozalanadi va ishga tushiriladi. Ushbu bosqichni umuman o'tkazib yuborish uchun maqsad muhit o'zgaruvchisida saqlanishi mumkin. Qo'shimcha ma'lumot uchun Nishon chipini tanlang: maqsadni belgilang. Agar oldingi amallar to'g'ri bajarilgan bo'lsa, quyidagi menyu paydo bo'ladi:

17-rasm: Loyiha konfiguratsiyasi – Bosh sahifa oynasi Siz ushbu menyudan loyihaga oid oʻzgaruvchilarni sozlash uchun foydalanasiz, masalan, Wi-Fi tarmogʻi nomi va paroli, protsessor tezligi va h.k. Loyihani menuconfig yordamida oʻrnatish forohello_worldp uchun oʻtkazib yuborilishi mumkin, chunki bu sobiqampbilan yuguradi

Espressif tizimlari

39 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
standart konfiguratsiya.
Diqqat: Agar siz ESP32-DevKitC platasini ESP32-SOLO-1 moduli yoki ESP32-DevKitM-1 platasini ESP32-MIN1-1(1U) moduli bilan ishlatsangiz, miltillashdan oldin menyu konfiguratsiyasida bitta yadro rejimini (CONFIG_FREERTOS_UNICORE) yoqing.amples.
Eslatma: Sizning terminalingizda menyu ranglari boshqacha bo'lishi mumkin. Siz ko'rinishni -style opsiyasi bilan o'zgartirishingiz mumkin. Qo'shimcha ma'lumot uchun idf.py menuconfig –help dasturini ishga tushiring.
Agar siz qo'llab-quvvatlanadigan ishlab chiqish kengashlaridan foydalanayotgan bo'lsangiz, Kengash qo'llab-quvvatlash paketidan foydalanib rivojlanishingizni tezlashtirishingiz mumkin. Qo'shimcha ma'lumot uchun Qo'shimcha maslahatlarga qarang.
Loyihani yarating Loyihani ishga tushirish orqali yarating:
idf.py qurish
Ushbu buyruq dasturni va barcha ESP-IDF komponentlarini kompilyatsiya qiladi, so'ngra bootloader, bo'limlar jadvali va dastur ikkiliklarini yaratadi.
$ idf.py build /path/to/hello_world/build katalogida cmake ishga tushirilmoqda “cmake -G Ninja –warn-uninitialized /path/to/hello_world” bajarilmoqda… Boshlanmagan qiymatlar haqida ogohlantiring. — Git topildi: /usr/bin/git (“2.17.0” versiyasi topildi) — Konfiguratsiya tufayli boʻsh aws_iot komponentini qurish — Komponent nomlari: … — Komponent yoʻllari: …
… (qurilish tizimi chiqishining ko'proq qatorlari)
[527/527] hello_world.bin esptool.py v2.3.1 yaratilmoqda
Loyihani qurish tugallandi. Miltillash uchun quyidagi buyruqni bajaring: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_wld. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin yoki "idf.py -p PORT flash" ni ishga tushiring
Hech qanday xatolik bo'lmasa, qurish ikkilik .bin mikrodasturini yaratish bilan yakunlanadi files.
Qurilmada oʻzingiz yaratgan ikkilik fayllarni (bootloader.bin, partition-table.bin va hello_world.bin) ESP32 platangizga ishga tushirish orqali yondiring:
idf.py -p PORT [-b BAUD] miltillovchi
PORTni ESP32 platalari seriyali port nomi bilan almashtiring. BAUD ni kerakli uzatish tezligi bilan almashtirish orqali miltillovchi uzatish tezligini ham o'zgartirishingiz mumkin. Standart uzatish tezligi 460800. Idf.py argumentlari haqida qoʻshimcha maʼlumot olish uchun idf.py-ga qarang.
Eslatma: Flash opsiyasi avtomatik ravishda loyihani yaratadi va yondiradi, shuning uchun idf.py Build dasturini ishga tushirish shart emas.

Espressif tizimlari

40 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash

Miltillash paytida muammolarga duch keldingizmi? Agar siz berilgan buyruqni bajarsangiz va ulanish muvaffaqiyatsizligi kabi xatolarni ko'rsangiz, buning bir necha sabablari bo'lishi mumkin. Buning sabablaridan biri chipni qayta o'rnatish, ROM yuklash moslamasi bilan ishlash va flesh-proshivka bilan ishlash uchun qurilish tizimi tomonidan chaqiriladigan esptool.py yordam dasturi bilan bog'liq muammolar bo'lishi mumkin. Sinab ko'rish uchun oddiy echimlardan biri quyida tavsiflangan qo'lda tiklashdir va agar bu yordam bermasa, muammoni bartaraf etish bo'limida yuzaga kelishi mumkin bo'lgan muammolar haqida batafsil ma'lumot olishingiz mumkin.
esptool.py USB dan ketma-ket o'zgartiruvchi chipning DTR va RTS boshqaruv liniyalarini, ya'ni FTDI yoki CP210x ni tasdiqlash orqali ESP32 ni avtomatik ravishda tiklaydi (qo'shimcha ma'lumot uchun ESP32 bilan ketma-ket ulanishni o'rnatishga qarang). DTR va RTS boshqaruv liniyalari o'z navbatida ESP32 ning GPIO0 va CHIP_PU (EN) pinlariga ulanadi, shuning uchun ovoz balandligi o'zgaradi.tagDTR va RTS darajalari ESP32 ni proshivkani yuklab olish rejimiga yuklaydi. Sobiq sifatidaample, ESP32 DevKitC ishlab chiqish platasining sxemasini tekshiring.
Umuman olganda, rasmiy esp-idf ishlab chiqish kengashlari bilan hech qanday muammo bo'lmasligi kerak. Biroq, esptool.py quyidagi hollarda uskunangizni avtomatik ravishda qayta tiklay olmaydi:
· Sizning uskunangizda GPIO0 va CHIP_PU ga ulangan DTR va RTS liniyalari mavjud emas · DTR va RTS liniyalari boshqacha sozlangan · Bunday ketma-ket boshqaruv liniyalari umuman yo‘q.
Sizda mavjud bo'lgan uskuna turiga qarab, ESP32 platangizni proshivkani yuklab olish rejimiga (qayta tiklash) qo'lda qo'yish ham mumkin.
· Espressif tomonidan ishlab chiqarilgan ishlab chiqish platalari uchun bu ma'lumotni tegishli ishga tushirish qo'llanmalarida yoki foydalanuvchi qo'llanmalarida topish mumkin. Misol uchunample, ESP-IDF ishlab chiqish platasini qo'lda tiklash uchun Yuklash tugmasini (GPIO0) bosib turing va EN tugmasini (CHIP_PU) bosing.
· Boshqa turdagi apparatlar uchun GPIO0 ni pastga tortib ko'ring.

Oddiy ishlash Miltillaganda siz quyidagiga o'xshash chiqish jurnalini ko'rasiz:
… 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 0x8000bin0.0-bo‘lim jadvali. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Seriya porti /dev/ttyUSB0 Ulanmoqda…….._ Chip ESP32D0WDQ6 (revizion 0) Xususiyatlar: WiFi, BT, Dual Core, CAC4 kodlash sxemasi yo'q: MAC4 24:0a:c4:05:b9:14 stub yuklanmoqda… stub ishlanmoqda… stub ishlanmoqda… uzatish tezligi 460800 ga o‘zgartirilmoqda O‘zgartirildi. Fleshli hajmi sozlanmoqda… 3072 baytdan 103 gacha siqildi… 0x00008000… (100 %) da yozish 0,0 soniyada 0x00008000 da 3072 bayt (103 siqilgan) yozdi (effektiv 5962.8 kbit/s ma’lumotlar)…. 26096 bayt 15408 ga siqildi… 0x00001000… (100 %) da yozish 0.4 soniyada 0x00001000 da 26096 bayt (15408 siqilgan) yozildi (effektiv 546.7 kbit/s ma’lumotlar)…. 147104 bayt 77364 gacha siqildi… 0x00010000… (20 %) da yozilmoqda 0x00014000… (40 %) da yozilmoqda… 0x00018000… (60 %) da yozilmoqda…
(davomi keyingi sahifada)

Espressif tizimlari

41 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
(oldingi sahifadan davomi) 0x00020000… da (100 %) yozish 1.9 soniyada 0x00010000 da 147104 bayt (77364 siqilgan) yozdi (effektiv 615. 5 kbit/s)… Maʼlumotlar xeshi tasdiqlandi.
Chiqib ketmoqda… RTS pin orqali qattiq tiklash… Bajarildi
Agar flesh jarayonining oxirigacha hech qanday muammo bo'lmasa, plata qayta ishga tushadi va theohello_worldpapplication dasturini ishga tushiradi. Agar siz idf.py o'rniga Eclipse yoki VS Code IDE-dan foydalanmoqchi bo'lsangiz, Eclipse plaginini, VSCode kengaytmasini tekshiring.
Chiqishni kuzating Ohello_worldpis haqiqatan ham ishlayotganligini tekshirish uchun idf.py -p PORT monitorini yozing (PORTni ketma-ket port nomi bilan almashtirishni unutmang). Bu buyruq IDF Monitor ilovasini ishga tushiradi:
$ idf.py -p monitor Katalogda idf_monitor ishga tushmoqda […]/esp/hello_world/build “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”…i-da bajarilmoqda…i 115200 —– Chiqish: Ctrl+] | Menyu: Ctrl+T | Yordam: Ctrl+T va keyin Ctrl+H –ets 8-iyun 2016 00:22:57
birinchi: 0x1 (POWERON_RESET), yuklash: 0x13 (SPI_FAST_FLASH_BOOT) va 2016 yil 8-iyun 00:22:57 ...
Ishga tushirish va diagnostika jurnallari yuqoriga aylantirilgandan so'ng, ilova tomonidan chop etilgan oHello world!
… Salom dunyo! 10 soniyada qayta ishga tushiriladi… Bu 2 protsessor yadro(lari), WiFi/BT/BLE, kremniy reviziyasi 1, 2MB tashqi fleshli esp32 chipi Minimal bepul yig‘ish hajmi: 298968 bayt 9 soniyada qayta ishga tushiriladi… 8 soniyada qayta ishga tushiriladi… 7 soniyada qayta ishga tushiriladi…
IDF monitoridan chiqish uchun Ctrl+] yorliqlaridan foydalaning. Agar IDF monitori yuklangandan keyin qisqa vaqt o'tmay ishlamay qolsa yoki yuqoridagi xabarlar o'rniga quyida keltirilganga o'xshash tasodifiy axlatni ko'rsangiz, platangiz 26 MGts kristalidan foydalanayotgan bo'lishi mumkin. Ko'pgina ishlab chiqish platalari dizaynlari 40 MGts dan foydalanadi, shuning uchun ESP-IDF bu chastotani standart qiymat sifatida ishlatadi.

Agar sizda bunday muammo bo'lsa, quyidagilarni bajaring:
1. Monitordan chiqing. 2. Menyu konfiguratsiyasiga qayting. 3. Komponent konfiguratsiyasi > Uskuna sozlamalari > Asosiy XTAL konfiguratsiyasi > Asosiy XTAL-ga o‘ting.
chastota, keyin CONFIG_XTAL_FREQ_SEL ni 26 MGts ga o'zgartiring. 4. Shundan so'ng, dasturni qayta quring va o'chiring.

Espressif tizimlari

42 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
ESP-IDF ning joriy versiyasida ESP32 tomonidan qo'llab-quvvatlanadigan asosiy XTAL chastotalari quyidagicha:
· 26 MGts · 40 MGts
Eslatma: idf.py -p PORT flesh monitorini ishga tushirish orqali qurish, miltillash va monitoringni bir bosqichda birlashtira olasiz.
Shuningdek qarang: · IDF monitoridan foydalanish boʻyicha qulay yorliqlar va batafsil maʼlumot uchun IDF Monitor. · idf.py buyruqlari va opsiyalari haqida to'liq ma'lumot olish uchun idf.py.
ESP32 bilan boshlash uchun kerak bo'lgan hamma narsa shu! Endi siz boshqa sobiqni sinab ko'rishga tayyorsizamples, yoki to'g'ridan-to'g'ri o'z ilovalaringizni ishlab chiqishga o'ting.
Muhim: ba'zilari sobiqamples ESP32-ni qo'llab-quvvatlamaydi, chunki kerakli uskuna ESP32-ga kiritilmagan, shuning uchun uni qo'llab-quvvatlab bo'lmaydi. Agar sobiq qurayotgan bo'lsangizample, iltimos, README ni tekshiring file Qo'llab-quvvatlanadigan maqsadlar jadvali uchun. Agar bu mavjud bo'lsa, shu jumladan ESP32 maqsadi yoki jadval umuman mavjud bo'lmasa, sobiqample ESP32 da ishlaydi.
Qo'shimcha maslahatlar
Ruxsat muammolari /dev/ttyUSB0 Ba'zi Linux distributivlarida ESP32 yonib-o'chganda, siz /dev/ttyUSB0 portini ochib bo'lmadi xato xabarini olishingiz mumkin. Buni joriy foydalanuvchini dialog guruhiga qo'shish orqali hal qilish mumkin.
Python mosligi ESP-IDF Python 3.7 yoki undan keyingi versiyalarni qo'llab-quvvatlaydi. Operatsion tizimingizni ushbu talabni qondiradigan so'nggi versiyaga yangilash tavsiya etiladi. Boshqa variantlar orasida Python-ni manbalardan o'rnatish yoki pyenv kabi Python versiyasini boshqarish tizimidan foydalanish kiradi.
Ba'zi ishlab chiqish platalarida prototip yaratishni tezlashtirish uchun siz kengashni qo'llab-quvvatlash paketidan (BSP) foydalanishingiz mumkin, bu esa ma'lum bir platani ishga tushirishni bir necha funktsiya chaqiruvi kabi osonlashtiradi. BSP odatda ishlab chiqish platasida taqdim etilgan barcha apparat komponentlarini qo'llab-quvvatlaydi. Pinoutni aniqlash va ishga tushirish funksiyalaridan tashqari, BSP sensorlar, displeylar, audio kodeklar kabi tashqi komponentlar uchun drayverlarga ega. BSPlar IDF Component Manager orqali tarqatiladi, shuning uchun ularni IDF Component Registry da topish mumkin. Herens sobiqampESP-WROVER-KIT BSP-ni loyihangizga qanday qo'shish haqida: idf.py add-dependency esp_wrover_kit
Ko'proq sobiqampBSP-dan foydalanish qoidalarini BSP-da topish mumkinamples papkasi.
Maslahat: ESP-IDF-ni yangilash ESP-IDF-ni vaqti-vaqti bilan yangilab turish tavsiya etiladi, chunki yangi versiyalar xatolarni tuzatadi va/yoki yangi xususiyatlarni taqdim etadi. Esda tutingki, har bir ESP-IDF asosiy va kichik versiyalari tegishli qoʻllab-quvvatlash davriga ega va bitta reliz boʻlimi muddati tugashiga (EOL) yaqinlashganda, barcha foydalanuvchilarga oʻz loyihalarini eng soʻnggi ESP-IDF relizlariga yangilash tavsiya etiladi, qoʻllab-quvvatlash muddatlari haqida koʻproq maʼlumot olish uchun ESP-IDF versiyalariga qarang.

Espressif tizimlari

43 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

1-bob. Ishni boshlash
Yangilashni amalga oshirishning eng oddiy usuli mavjud esp-idf jildini o'chirish va uni 2-bosqichda tasvirlangan dastlabki o'rnatishni amalga oshirayotgandek qayta klonlashdir. ESP-IDF-ni oling. Yana bir yechim faqat o'zgargan narsalarni yangilashdir. Yangilash jarayoni siz foydalanayotgan ESP-IDF versiyasiga bog'liq. ESP-IDF-ni yangilagandan so'ng, agar yangi ESP-IDF versiyasi turli xil vositalarni talab qilsa, O'rnatish skriptini qayta bajaring. 3-bosqichdagi koʻrsatmalarga qarang. Asboblarni oʻrnating. Yangi vositalar o'rnatilgandan so'ng, Eksport skripti yordamida muhitni yangilang. 4-bosqichdagi ko'rsatmalarga qarang. Atrof-muhit o'zgaruvchilarini o'rnating.
Tegishli hujjatlar · ESP32 bilan ketma-ket ulanishni o'rnatish · Eclipse plagini · VSCode kengaytmasi · IDF monitori
1.4 Birinchi loyihangizni yarating
Agar sizda allaqachon ESP-IDF o'rnatilgan bo'lsa va IDE dan foydalanmasangiz, Windows-da loyihani boshlash yoki Linux va macOS-da loyihani ishga tushirish bo'limidan so'ng birinchi loyihangizni buyruq qatoridan yaratishingiz mumkin.
1.5 ESP-IDFni o'chirib tashlang
Agar siz ESP-IDF-ni o'chirmoqchi bo'lsangiz, ESP-IDF-ni o'chirish-ga amal qiling.

Espressif tizimlari

44 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

2-bob
API havolasi
2.1 API konventsiyalari
Ushbu hujjat ESP-IDF amaliy dasturlash interfeyslari (API) uchun umumiy bo'lgan konventsiyalar va taxminlarni tavsiflaydi. ESP-IDF bir nechta dasturlash interfeyslarini taqdim etadi:
· Umumiy sarlavhada e'lon qilingan C funktsiyalari, tuzilmalari, raqamlari, tur ta'riflari va protsessor makroslari fileESPIDF komponentlari. Dasturlash qo'llanmasining API ma'lumotnomasi bo'limidagi turli sahifalarda ushbu funktsiyalar, tuzilmalar va turlarning tavsiflari mavjud.
· Tizim funktsiyalari, oldindan belgilangan o'zgaruvchilar va variantlarni yaratish. Ular tizimni yaratish bo'yicha qo'llanmada hujjatlashtirilgan. · Kconfig opsiyalari kodda va qurish tizimida ishlatilishi mumkin (CMakeLists.txt) files. · Xost asboblari va ularning buyruq qatori parametrlari ham ESP-IDF interfeysining bir qismidir. ESP-IDF ESP-IDF va uchinchi tomon kutubxonalari uchun maxsus yozilgan komponentlardan iborat. Ba'zi hollarda, ESP-IDF-ga xos bo'lgan o'ram uchinchi tomon kutubxonasiga qo'shiladi, bu ESP-IDF-ning qolgan qurilmalari bilan soddaroq yoki yaxshiroq integratsiyalangan interfeysni ta'minlaydi. Boshqa hollarda, dastur ishlab chiquvchilarga uchinchi tomon kutubxonasining asl API-si taqdim etiladi. Quyidagi bo'limlar ESP-IDF API-larining ba'zi jihatlari va ulardan foydalanishni tushuntiradi.
2.1.1 Xato bilan ishlash
Ko'pgina ESP-IDF API'lari esp_err_t turi bilan belgilangan xato kodlarini qaytaradi. Xatolarni hal qilish usullari haqida ko'proq ma'lumot olish uchun Xatolarni qayta ishlash bo'limiga qarang. Xato kodi ma'lumotnomasida ESP-IDF komponentlari tomonidan qaytarilgan xato kodlari ro'yxati mavjud.
2.1.2 Konfiguratsiya tuzilmalari
Muhim: Konfiguratsiya tuzilmalarini to'g'ri ishga tushirish dasturni ESP-IDF ning kelajakdagi versiyalari bilan moslashtirishning muhim qismidir.
ESP-IDF-dagi ko'pchilik ishga tushirish yoki konfiguratsiya funktsiyalari argument sifatida konfiguratsiya tuzilishiga ko'rsatgichni oladi. Misol uchunampga:
45

2-bob. API havolasi

const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = "mening_taymerim"
}; esp_timer_handle_t my_taymer; esp_err_t err = esp_timer_create(&my_timer_args, &my_taymer);
Initsializatsiya funktsiyalari hech qachon ko'rsatgichni konfiguratsiya tuzilishiga saqlamaydi, shuning uchun strukturani stekga joylashtirish xavfsizdir.
Ilova strukturaning barcha maydonlarini ishga tushirishi kerak. Quyidagilar noto'g'ri:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Noto'g'ri! .arg va .name maydonlari ishga tushirilmagan */ esp_timer_create(&my_timer_args, &my_timer);
Ko'pchilik ESP-IDF sobiqamples tuzilmani ishga tushirish uchun C99 tomonidan belgilangan initsializatorlardan foydalanadi, chunki ular maydonlar kichik to'plamini o'rnatish va qolgan maydonlarni nolga tenglashtirishning qisqacha usulini ta'minlaydi:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* To‘g‘ri, .arg va .name maydonlari noldan ishga tushirilgan */
};
C++ tili C++20 gacha belgilangan initsializatorlar sintaksisini qo'llab-quvvatlamaydi, ammo GCC kompilyatori uni qisman kengaytma sifatida qo'llab-quvvatlaydi. C++ kodida ESP-IDF API-dan foydalanilganda, siz quyidagi naqshdan foydalanishni ko'rib chiqishingiz mumkin:
esp_timer_create_args_t my_timer_args = {}; /* Barcha maydonlar nol bilan ishga tushirilgan */ my_timer_args.callback = &my_timer_callback;

Standart ishga tushiruvchilar
Ba'zi konfiguratsiya tuzilmalari uchun ESP-IDF maydonlarning standart qiymatlarini o'rnatish uchun makroslarni taqdim etadi:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG belgilangan ishga tushirgichga kengaytiriladi.
Endi barcha maydonlar standart qiymatlarga o'rnatiladi. Har qanday maydon hali ham o'zgartirilishi mumkin: */ config.server_port = 8081; httpd_handle_t serveri; esp_err_t err = httpd_start(&server, &config);
Har doim ma'lum bir konfiguratsiya tuzilmasi uchun taqdim etilganda standart ishga tushirgich makroslaridan foydalanish tavsiya etiladi.

2.1.3 Shaxsiy API
Muayyan sarlavha fileESP-IDF-dagi s ilovalar tomonidan emas, balki faqat ESP-IDF manba kodida foydalanish uchun mo'ljallangan API-larni o'z ichiga oladi. Bunday sarlavha files odatda o'z nomi yoki yo'lida private yoki esp_private ni o'z ichiga oladi. Ba'zi komponentlar, masalan, hal faqat shaxsiy API'larni o'z ichiga oladi. Shaxsiy API’lar kichik yoki yamoq relizlar o‘rtasida mos kelmaydigan tarzda olib tashlanishi yoki o‘zgartirilishi mumkin.

2.1.4 Masalan, komponentlaramployihalar
ESP-IDF masalanamples ESP-IDF API'laridan foydalanishni ko'rsatadigan turli loyihalarni o'z ichiga oladi. Sobiq kodning takrorlanishini kamaytirish uchunamples, bir necha umumiy yordamchilar bir necha ex tomonidan ishlatiladigan komponentlar ichida belgilanganamples.

Espressif tizimlari

46 Hujjat yuzasidan fikr-mulohaza yuborish

5.0.9 versiyasini chiqaring

2-bob. API havolasi
Bu joylashgan komponentlarni o'z ichiga oladi

Hujjatlar / manbalar

Espressif Systems ESP32 Dev Kitc ishlab chiqish kengashi [pdf] Foydalanuvchi uchun qoʻllanma
ESP32 Dev Kitc Development Board, ESP32, Dev Kitc Development Board, Kitc Development Board, Development Board, Board

Ma'lumotnomalar

Fikr qoldiring

Sizning elektron pochta manzilingiz nashr etilmaydi. Majburiy maydonlar belgilangan *