ESP32 Dev Kitc өнүктүрүү кеңеши

Продукт маалыматы

Техникалык шарттар

  • Продукт: ESP32
  • Программалоо колдонмосу: ESP-IDF
  • Чыгуу версиясы: v5.0.9
  • Өндүрүүчү: Espressif Systems
  • Чыккан датасы: 16-жылдын 2025-майы

Продукт колдонуу нускамалары

1. Баштоо

ESP32 менен баштоодон мурун, менен таанышыңыз
төмөнкү:

1.1 Киришүү

Негизги функциялары жана мүмкүнчүлүктөрү жөнүндө билип алыңыз
ESP32.

1.2 Сизге эмне керек

Сизде керектүү аппараттык жана программалык камсыздоо бар экенине ынаныңыз:

  • Аппараттык камсыздоо: Керектүү жабдыктардын тизмесин текшериңиз
    компоненттер.
  • Программалык камсыздоо: Керектүү программаны орнотуу
    компоненттер.

1.3 Орнотуу

IDE орнотуу жана орнотуу үчүн бул кадамдарды аткарыңыз
айлана-чөйрө:

  • IDE: үчүн сунушталган IDE орнотуу
    ESP32 программалоо.
  • Кол менен орнотуу: Кол менен орнотуңуз
    керек болсо чөйрө.

1.4 Биринчи долбооруңузду түзүңүз

ESP32 аркылуу баштапкы долбооруңузду түзүңүз жана куруңуз.

1.5 ESP-IDF орнотуудан чыгаруу

Керек болсо, ESP-IDFти кантип жок кылууну үйрөнүңүз
системасы.

2. API шилтемеси

жөнүндө толук маалымат алуу үчүн API документтерин караңыз
колдонмо протоколдору, каталарды иштетүү жана конфигурация
структуралар.

Көп берилүүчү суроолор (FAQ)

С: ESP32 менен жалпы көйгөйлөрдү кантип чечсе болот?

A: Программалоо колдонмосундагы көйгөйлөрдү чечүү бөлүмүн караңыз
же өндүрүүчүгө барыңыз webколдоо булактары үчүн сайт.

С: Мен ESP-IDFти башка микроконтроллерлер менен колдоно аламбы?

A: ESP-IDF атайын ESP32 үчүн иштелип чыккан, бирок сиз таба аласыз
башка Espressif микроконтроллерлер менен шайкештик.

ESP32
ESP-IDF программалоо колдонмосу
Release v5.0.9 Espressif Systems 16-май, 2025-ж

Мазмуну

Мазмуну

i

1 Башта

3

1.1 Киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Сизге эмне керек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Аппараттык камсыздоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Программалык камсыздоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 Орнотуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

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

1.3.2 Кол менен орнотуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Биринчи Долбооруңузду Куруңуз. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 ESP-IDF орнотуудан чыгаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 API маалымдамасы

45

2.1 API Конвенциялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Ката менен иштөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.2 Конфигурация структуралары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.3 Жеке API'лер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.4 Компоненттер эксample долбоорлор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.5 API туруктуулугу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2 Колдонмо протоколдору. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.1 ASIO порту. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

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

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

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

2.2.5 ESP HTTP Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 ESP Local Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

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

2.2.8 ESP x509 Сертификат топтому. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 HTTP сервери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 HTTPS сервери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2.2.11 ICMP Echo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

2.2.12 mDNS кызматы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.2.13 Мб TLS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.2.14 IP тармак катмары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

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

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

2.3.2 Bluetooth® Төмөн энергия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

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

2.3.4 Контроллер жана HCI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

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

2.3.6 NimBLE негизиндеги хост API'лери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767

2.4 Ката коддору шилтемеси. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769

2.5 Networking API'лери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

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

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

2.5.3 Жип. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936

i

2.5.4 ESP-NETIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP тармак катмары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Колдонмо катмары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Перифериялык API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Аналогдуктан санариптик конвертерге (ADC) Oneshot режиминин драйвери. . . . . . . . . . . . . . . . . 977 2.6.2 Аналогдук-санариптик конвертер (ADC) үзгүлтүксүз режим драйвери. . . . . . . . . . . . . . . 986 2.6.3 Аналогдук-санариптик конвертер (ADC) калибрлөө драйвери. . . . . . . . . . . . . . . . . . . 993 2.6.4 Саат дарагы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Санариптен аналогго конвертер (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO & RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Жалпы максаттуу таймер (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Интер-интегралдык схема (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Inter-IC Sound (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED Control (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Мотор башкаруу импульстун кеңдиги модулятору (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Импульсту эсептегич (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Remote Control Transceiver (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD Тартуу талаптары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC хост драйвери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI Хост драйвери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO Card Slave Driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Сигма-Дельта модуляциясы (SDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI Master Driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI Slave Driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Коопсуз элемент) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Сенсордук сенсор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Эки сымдуу унаа интерфейси (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Универсалдуу асинхрондук кабылдагыч/өткөргүч (UART) . . . . . . . . . . . . . . . . . . 1317 2.7 Долбоордун конфигурациясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Долбоордун конфигурациясынын менюсу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 sdkconfig.defaults колдонуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig форматтоо эрежелери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kconfig параметрлеринин артка шайкештиги. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Конфигурация параметрлери маалымдамасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Provisioning API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Протоколдук байланыш. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Бирдиктүү камсыздоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Wi-Fi камсыздоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Storage API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fileсистеманы колдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Өндүрүштүк коммуналдык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Учуучу эмес сактагыч китепканасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS Partition Generator Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC драйвери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Fileсистемасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Виртуалдык fileсистема компоненти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Wear Leveling API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Системалык API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Колдонмо сүрөт форматы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Колдонмо деңгээлин көзөмөлдөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Тышкы стек менен чакыруу функциясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Чипти кайра карап чыгуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Консол. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse менеджери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Ката коддору жана жардамчы функциялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii

2.10.8 ESP HTTPS OTA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Окуялардын цикл китепканасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Ашыкчаview). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Кошумча мүмкүнчүлүктөр). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Үймө эстутумду бөлүштүрүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Үймө эстутум мүчүлүштүктөрдү оңдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Жогорку чечим таймери (ESP таймери). . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Ички жана туруксуз API'лер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Процессорлор аралык чалуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Үзгүлтүктүү бөлүштүрүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Каттоо китепканасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Ар кандай система API'лери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Абадагы жаңыртуулар (OTA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Performance Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Энергияны башкаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX Threads колдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Кокус сандарды түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Уйку режимдери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC мүмкүнчүлүктөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Система убакыты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 himem бөлүштүрүү API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP Сопроцессордук программалоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Күзөтчүлөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161

3 Аппараттык камсыздоо маалымдамасы

2167

3.1 Чип серияларын салыштыруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 Тиешелүү документтер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

4 API гиддери

2171

4.1 Колдонмо деңгээлин көзөмөлдөө китепканасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Иштөө режимдери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Конфигурация параметрлери жана көз карандылыктар. . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Бул китепкананы кантип колдонуу керек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Колдонмону баштоо агымы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 Биринчи сtage bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 секунда сtage bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Тиркемени ишке киргизүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

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

4.3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® Төмөн энергия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Баштоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

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

4.5 Жүктөөчү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Жүктөгүчтүн шайкештиги. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Журнал деңгээли. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Заводдук абалга кайтаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Сыноочу микропрограммадан жүктөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Артка кайтаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

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

4.5.7 Жүктөөчүнүн өлчөмү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Deep Sleep'тен тез жүктөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Ыңгайлаштырылган жүктөгүч. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Системаны түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Build системасын колдонуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 Чыгample Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 CMakeLists долбоору File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 CMakeLists компоненти Fileс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Компоненттин конфигурациясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Препроцессордун аныктамалары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Компоненттерге талаптар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Долбоордун бөлүктөрүн жокко чыгаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Конфигурация үчүн гана компоненттер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 CMake мүчүлүштүктөрүн оңдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Example Component CMakeLists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Ыңгайлаштырылган sdkconfig демейки параметрлери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Flash аргументтери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Жүктөгүчтү куруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Таза CMake компоненттерин жазуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Үчүнчү тараптын CMake долбоорлорун компоненттери менен колдонуу. . . . . . . . . . . . . . . . . . . 2306 4.6.18 Алдын ала курулган китепканаларды компоненттери менен колдонуу. . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Custom CMake долбоорлорунда ESP-IDF колдонуу. . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globbing & Incremental Builds. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Системанын метадайындарын түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Системанын ички түзүлүштөрүн түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 ESP-IDF GNU Make системасынан көчүрүү. . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Core Dump. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Ашыкчаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Конфигурациялар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Негизги дампты флешке сактоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Басып чыгаруу өзөгүн UARTга таштоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 Backtracesтеги ROM функциялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Талап боюнча демпингдик өзгөрмөлөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 espcoredump.py иштетүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Deep Sleep Wake Stubs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Wake Stubs эрежелери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Стабилди ишке ашыруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Кодду RTC эс тутумуна жүктөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Маалыматтарды RTC эс тутумуна жүктөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC Wake Stubs үчүн текшерүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Мисample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Ката менен иштөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Ашыкчаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Ката коддору. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Ката коддорун ката кабарларына айландыруу. . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK макро. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_WITHOUT_ABORT макро. . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR макро. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR макро. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE макро. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE макро. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 МАКРОСТОРДУ ТЕКШЕРҮҮ Мисamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Үлгүлөрдү иштетүү катасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ Exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Ашыкчаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 ESP-WIFI-MESH түшүнүктөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Тармакты куруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Тармакты башкаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Маалыматтарды берүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Каналды алмаштыруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv

4.10.8 Аткаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Кошумча эскертүүлөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Окуяларды иштетүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet жана IP окуялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Тор окуялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth окуялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Күтүлбөгөн каталар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Ашыкчаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Panic Handler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Каттоо Dump жана Backtrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog Timeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Гуру медитациясынын каталары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Башка олуттуу каталар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Flash шифрлөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Тиешелүү eFuses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Flash шифрлөө процесси. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Flash шифрлөө конфигурациясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Мүмкүн болгон каталар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 Flash шифрлөө абалы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Шифрленген Flashте берилиштерди окуу жана жазуу. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Шифрленген Flashти жаңылоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Flash шифрлөөнү өчүрүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Flash шифрлөө жөнүндө негизги пункттар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Flash шифрлөөнүн чектөөлөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Flash шифрлөө жана коопсуз жүктөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Өркүндөтүлгөн мүмкүнчүлүктөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Техникалык маалыматтар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Аппараттык абстракция. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Архитектура. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (төмөнкү деңгээл) катмары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Аппараттык абстракция катмары) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Жогорку денгээлдеги узгултуктер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Үзгүлтүктүн деңгээли. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Эскертүүлөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Мүчүлүштүктөрдү оңдоо . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Бул кантип иштейт? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 ДжTAG Адаптер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 OpenOCD орнотуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ESP32 Максатын конфигурациялоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Мүчүлүштүктөрдү оңдоочуну ишке киргизүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Мүчүлүштүктөрдү оңдоо Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Булактан OpenOCD куруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Кеңештер жана кызыкчылыктар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Тиешелүү документтер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Linker Script Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Ашыкчаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Ыкчам баштоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Linker Script Generation Internals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Колдоого алынган API'лер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS тапшырмасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 колдоосу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip ыңгайлаштырылган өзгөртүүлөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Ишти оптималдаштыруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Эс тутумдун түрлөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (Data RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Instruction RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (жарктан аткарылган код) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (флеште сакталган маалыматтар) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Жай эстутум. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC FAST эстутум. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA жөндөмдүү талаптары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 Стектеги DMA буфери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 OpenThread стекинин режимдери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 OpenThread тиркемесин кантип жазуу керек. . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThread чек ара роутери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Бөлүү таблицалары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Ашыкчаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Камтылган бөлүштүрүү таблицалары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Ыңгайлаштырылган таблицаларды түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Бинардык бөлүү таблицасын түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Бөлүмдүн өлчөмүн текшерүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Бөлүү таблицасын жаркыруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Бөлүм куралы (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Кантип аткарууну оптималдаштыруу керек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Гиддер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF калибрлөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Жарым-жартылай калибрлөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Толук калибрлөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Калибрлөө жок. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY инициализация маалыматтары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API шилтемеси. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Secure Boot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Фон. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Коопсуз жүктөө процесси бүттүview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Ачкычтар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Жүктөгүчтүн өлчөмү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Кооптуу жүктөөнү кантип иштетүү керек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Re-Flashable Software Bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Коопсуз Жүктөө Кол коюу ачкычын түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Сүрөттөргө алыстан кол коюу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Secure Boot мыкты тажрыйбалары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Техникалык маалыматтар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Secure Boot & Flash Encryption. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Колдонмонун текшерүүсү аппараттык камсыздоосуз коопсуз жүктөө. . . . . . . . . . . . . . . . . . 2478 4.24.13 Өркүндөтүлгөн мүмкүнчүлүктөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Secure Boot V2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Фон. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Secure Boot V2 Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Кол коюу блогунун форматы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Кооптуу толтуруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Кол коюу блогун текшерүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Сүрөттү текшерүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Жүктөөчүнүн өлчөмү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 eFuse колдонуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Secure Boot V2 кантип иштетүү керек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Коопсуз жүктөө иштетилгенден кийинки чектөөлөр. . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Коопсуз жүктөөчү кол коюу ачкычын түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi

4.25.13 Сүрөттөргө алыстан кол коюу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Secure Boot мыкты тажрыйбалары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Техникалык маалыматтар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Secure Boot & Flash Encryption. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Колдонмонун текшерүүсү аппараттык камсыздоосуз коопсуз жүктөө. . . . . . . . . . . . . . . . . . 2484 4.25.18 Өркүндөтүлгөн мүмкүнчүлүктөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Тышкы RAM үчүн колдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Аппараттык камсыздоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Тышкы RAM конфигурациялоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Чектөөлөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Башталбай калуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Chip Revisions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Thread Local Storage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Ашыкview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Native API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Стандарт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Куралдар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker Image. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows орнотуучусу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF компоненттеринин менеджери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Жүктөлүүчү куралдар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 ESP32де бирдикти сыноо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Кадимки сыноо учурлары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Көп түзмөктү сыноо учурлары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Multi-stage Test Cases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Ар кандай максаттар үчүн тесттер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Building Unit Test App. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Иштөө бирдиги сыноолору. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Кэш компенсацияланган таймер менен убакыт коду. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Мазак. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Linux боюнча бирдикти сыноо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Камтылган программалык камсыздоо сыноолору. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Linux хостунда IDF бирдигинин сыноолору. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi драйвери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 Wi-Fi Функциялар тизмеси. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Wi-Fi тиркемесин кантип жазуу керек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi API ката коду. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi API параметрин инициализациялоо. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wi-Fi программалоо модели. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 Wi-Fi окуясынын сүрөттөмөсү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi станциясынын жалпы сценарийи. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP Жалпы сценарийи. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi сканери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi станциясынын туташуу сценарийи. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi станциясы бир нече AP табылганда туташуу. . . . . . . . . . . . . 2543 4.31.12 Wi-Fi кайра туташуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi маякынын күтүү мөөнөтү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 Wi-Fi конфигурациясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Зымсыз тармакты башкаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Радиоресурсту өлчөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Fast BSS өтүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi энергияны үнөмдөө режими. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wi-Fi өткөрүү мүмкүнчүлүгү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Wi-Fi 80211 Пакет жөнөтүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi Sniffer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi бир нече антенналары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Wi-Fi каналынын абалы тууралуу маалымат. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Wi-Fi каналынын абалы маалыматын конфигурациялоо. . . . . . . . . . . . . . . . . . . . . . . . . 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 фрагменти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS Enrollee. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Wi-Fi буферин колдонуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Wi-Fi иштешин кантип жакшыртуу керек . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi Menuconfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Көйгөйлөрдү оңдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Wi-Fi коопсуздугу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 Wi-Fi коопсуздук өзгөчөлүктөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Корголгон башкаруу алкактары (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Жеке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF биргелешип жашоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 ESP32 үчүн колдоого алынган биргелешип жашоо сценарийи. . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Бирге жашоо механизми жана саясаты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Бирге жашоо мүмкүнчүлүгүн кантип колдонуу керек. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Репродуктивдүү түзүлүштөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Репродуктивдүү эмес түзүлүштөрдүн себептери. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 ESP-IDF ичинде кайталануучу түзүлүштөрдү иштетүү. . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Кайталануучу түзүлүштөр кантип жетишилет. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Кайталануучу түзүлүштөр жана мүчүлүштүктөрдү оңдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Репродуктивдүү түзүлүшкө дагы эле таасир этүүчү факторлор. . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Төмөн кубат режими Колдонуучунун колдонмосу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578

5 Миграция гид

2579

5.1 ESP-IDF 5.x Миграция колдонмосу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 Миграция 4.4төн 5.0го чейин. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 Китепканалар жана алкактар

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 алкактары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

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

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

6.2.3 Espressif DSP китепканасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.4 ESP-WIFI-MESH өнүктүрүү алкактары. . . . . . . . . . . . . . . . . . . . . . . . 2613

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

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

6.2.7 ESP-IoT-чечим. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.8 ESP-протоколдору. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

viii

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

7 Салымдар боюнча колдонмо

2615

7.1 Кантип салым кошуу керек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.2 Салым кошуудан мурун. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.3 Сурамдарды тартуу процесси. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.4 Юридикалык бөлүк. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5 Тиешелүү документтер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.1 Espressif IoT өнүктүрүү алкактык стилинин колдонмосу. . . . . . . . . . . . . . . . . . . . 2616

7.5.2 ESP-IDF Долбоорунун алдын ала кабыл алынган Hook орнотуу. . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Документтөө кодекси. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Түзүү Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 API документациясынын шаблону. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Контрибьютор келишими. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 Copyright Header Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 Pytest Guide менен ESP-IDF тесттери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635

8 ESP-IDF версиялары

2645

8.1 Чыгаруулар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.2 Кайсы версиядан башташым керек? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.3 Версиялоо схемасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.4 Колдоо мөөнөттөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 Учурдагы версияны текшерүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

8.6 Git Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7 ESP-IDF жаңыртуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 Туруктуу релизге жаңыртуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.2 Чыгууга чейинки версияга жаңыртуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 Башкы филиалга жаңыртуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 Релиздик бөлүмгө жаңыртуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 Ресурстар

2651

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

9.1.1 PlatformIO деген эмне? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 Орнотуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Конфигурация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Окуу куралдары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Долбоор Мисamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Кийинки кадамдар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Пайдалуу шилтемелер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

10 Автордук укуктар жана лицензиялар

2653

10.1 Программанын автордук укуктары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.1 Микропрограмманын компоненттери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 Документтер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 ROM Source Code Автордук укуктар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.3 Xtensa libhal MIT лицензиясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.4 TinyBasic Plus MIT лицензиясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.5 TJpgDec лицензиясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

11 Жөнүндө

2657

12 Тилдердин ортосунда которулуу

2659

Индекс

2661

Индекс

2661

ix

x

Мазмуну
Бул Espressif IoT Development Framework (esp-idf) үчүн документация. ESP-IDF - бул ESP32, ESP32-S жана ESP32-C Series SoCs үчүн расмий иштеп чыгуу негизи. Бул документ ESP-IDFти ESP32 SoC менен колдонууну сүрөттөйт.

Баштоо

API шилтемеси

API гиддери

Espressif системалары

1 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

Мазмуну

Espressif системалары

2 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм
Баштоо
Бул документ Espressif тарабынан ESP32 чипине негизделген аппараттык камсыздоо үчүн программалык камсыздоону иштеп чыгуу чөйрөсүн түзүүгө жардам берүү үчүн арналган. Андан кийин, жөнөкөй эксampМен сизге ESP-IDF (Espressif IoT Development Framework) меню конфигурациялоо үчүн, андан кийин микропрограмманы ESP32 тактасына куруу жана жаркылдоо үчүн кантип колдонууну көрсөтөт.
Эскертүү: Бул ESP-IDF туруктуу версиясы v5.0.9 үчүн документация. Башка ESP-IDF версиялары да бар.
1.1 Киришүү
ESP32 бул төмөнкү функцияларды бириктирген чиптеги система: · Wi-Fi (2.4 ГГц диапазону) · Bluetooth · Кош жогорку натыйжалуу Xtensa® 32-бит LX6 CPU өзөктөрү · Ультра төмөн кубаттуулуктагы ко-процессор · Бир нече перифериялык түзүлүштөр
40 нм технологиясы менен иштетилген ESP32 кубаттуу, жогорку интеграцияланган платформаны камсыз кылат, ал энергияны натыйжалуу пайдалануу, компакт дизайн, коопсуздук, жогорку өндүрүмдүүлүк жана ишенимдүүлүк боюнча үзгүлтүксүз талаптарды канааттандырууга жардам берет. Espressif тиркемелерди иштеп чыгуучуларга ESP32 сериясындагы жабдыктарды колдонуу менен өз идеяларын ишке ашырууга жардам берүү үчүн негизги аппараттык жана программалык камсыздоо ресурстарын камсыз кылат. Espressif тарабынан программалык камсыздоону иштеп чыгуу негизи Wi-Fi, Bluetooth, энергияны башкаруу жана башка бир нече система функциялары менен Internetof-Things (IoT) тиркемелерин иштеп чыгуу үчүн арналган.
1.2 Сизге эмне керек
1.2.1 Аппараттык камсыздоо
· ESP32 тактасы. · USB кабели – USB A / micro USB B. · Windows, Linux же macOS менен иштеген компьютер.
Эскертүү: Учурда кээ бир иштеп чыгуу такталары USB Type C туташтыргычтарын колдонуп жатышат. Тактаны туташтыруу үчүн туура кабель бар экенине ынаныңыз!
Эгер сизде төмөндө көрсөтүлгөн ESP32 расмий иштеп чыгуу такталарынын бири болсо, аппараттык камсыздоо жөнүндө көбүрөөк билүү үчүн шилтемени чыкылдатсаңыз болот.
3

1-бөлүм. Баштоо
ESP32-DevKitS(-R)
Бул колдонуучу колдонмо ESP32-DevKitS(-R), Espressif тарабынан чыгарылган ESP32 негизиндеги жаркыраган такта жөнүндө маалымат берет. ESP32-DevKitS(-R) эки такта аталышынын айкалышы: ESP32-DevKitS жана ESP32-DevKitS-R. S булактарды, ал эми R WROVER дегенди билдирет.

ESP32-DevKitS

ESP32-DevKitS-R

Документ төмөнкү негизги бөлүмдөрдөн турат: · Ишке киришүү: Бүтүрүү менен камсыз кылатview баштоо үчүн ESP32-DevKitS(-R) жана аппараттык/программалык камсыздоону орнотуу нускамалары. · Аппараттык маалымдама: ESP32-DevKitS(-R)ns жабдыктары жөнүндө кеңири маалымат берет. · Тиешелүү документтер: Тиешелүү документтерге шилтеме берет.

Баштоо Бул бөлүм ESP32-DevKitS(-R) менен кантип баштоону сүрөттөйт. Ал ESP32-DevKitS(-R) жөнүндө бир нече киришүү бөлүмдөрүнөн башталат, андан кийин "Тактаны кантип жаркылдатуу" бөлүмүндө ESP32-DevKitS(-R) программасына модулду кантип орнотуу, аны даярдоо жана ага микропрограмманы жаркыроо боюнча көрсөтмөлөр берилет.

Бүттүview ESP32-DevKitS(-R) ESP32 үчүн атайын иштелип чыккан Espressifns жаркыраган тактасы. Аны ESP32 модулун жаркыратуу үчүн, модулду кубат менен камсыздоо жана сигнал линияларына ширетпестен колдонсо болот. Модул орнотулган менен, ESP32-DevKitS(-R) ESP32-DevKitC сыяктуу мини өнүктүрүү тактасы катары да колдонулушу мүмкүн.
ESP32-DevKitS жана ESP32-DevKitS-R такталары төмөнкү ESP32 модулдарына туура келүү үчүн жазгы төөнөгүчтөрдүн жайгашуусу боюнча гана айырмаланат.
· 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 & IPEX) ESP32-WROVER-B (PCB & IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Жогорудагы модулдар тууралуу маалымат алуу үчүн ESP32 сериясынын модулдарына кайрылыңыз.

Компоненттердин сүрөттөлүшү

Espressif системалары

4 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

1-сүрөт: ESP32-DevKitS – алдыңкы

Espressif системалары

2-сүрөт: ESP32-DevKitS-R – алдыңкы 5
Документ боюнча пикир тапшыруу

v5.0.9 чыгаруу

1-бөлүм. Баштоо

Негизги компоненттин жазгы төөнөгүчтөрү 2.54 мм аялдын баштары
USB-to-UART көпүрөсү LDO микро-USB туташтыргычы/микро USB порту EN баскычы Жүктөө баскычы
LED күйгүзүү

Сыпаттамасы Модулду чыкылдатыңыз. Төөндөр модулдардын кастелляцияланган тешиктерине туура келет. Бул аял баштары ушул тактага орнотулган модулдун төөнөгүчтөрүнө туташтырылган. Аялдын аталыштарынын сүрөттөлүшү үчүн, Сураныч, Header Blocks караңыз. UART көпүрөсүнө бир чиптүү USB 3 Мбит / с чейин которуу ылдамдыгын камсыз кылат.
5V-3.3V төмөн-тамчы т.бtagэлектрондук жөнгө салуучу (LDO).
USB интерфейси. Такта үчүн электр энергиясы, ошондой эле компьютер менен тактанын ортосундагы байланыш интерфейси.
Калыбына келтирүү баскычы.
Жүктөө баскычы. Жүктөө баскычын басып туруп, андан кийин EN басуу сериялык порт аркылуу микропрограмманы жүктөө үчүн Firmware Download режимин баштайт.
USB же кубат булагы тактага туташтырылганда күйөт.

Тактаны кантип жаркыратуу керек ESP32-DevKitS(-R) түзмөгүңүздү күйгүзүүдөн мурун, анын жакшы абалда экенин, эч кандай зыяндын белгилери жок экенин текшериңиз.
Керектүү жабдык · Сиз тандаган ESP32 модулу · USB 2.0 кабели (Стандарт-Адан Micro-Bге чейин) · Windows, Linux же macOS менен иштеген компьютер
Аппараттык камсыздоону орнотуу Төмөнкү кадамдарга ылайык ESP32-DevKitS(-R)иңизге өзүңүз каалаган модулду орнотуңуз:
· Модулуңузду акырын ESP32-DevKitS(-R) тактасына коюңуз. Модулуңуздагы тешикчелер тактадагы жазгы төөнөгүчтөр менен дал келгенин текшериңиз.
· Модулуңузду тактанын ичине чыккыча басыңыз. · Баардык пружина төөнөгүчтөрү тешикчелерге киргизилгенин текшериңиз. Кээ бир туура эмес жазык төөнөгүчтөр бар болсо,
аларды кычкач менен тешиктерге салыңыз.
Программалык камсыздоону орнотуу
Артыкчылыктуу ыкма ESP-IDF иштеп чыгуу алкагы ESP32-DevKitS(-R) боюнча экилик файлдарды жаркыроонун артыкчылыктуу жолун камсыз кылат. Сураныч, Баштоо бөлүмүнө өтүңүз, мында Бөлүм Орнотуу тез арада иштеп чыгуу чөйрөсүн орнотууга жардам берет, андан кийин мурунку тиркемени жаркырататampESP32-DevKitS(-R) түзмөгүңүзгө.
Альтернативдик ыкма Альтернатива катары, Windows колдонуучулары Flash Download Tool аркылуу экилик файлдарды жаркырата алышат. Жөн гана жүктөп алып, аны ачып, документ папкасынын ичиндеги нускамаларды аткарыңыз.
Эскертүү: 1. Бинардык форматты жаркыруу үчүн files, ESP32 Firmware Жүктөө режимине коюлушу керек. Бул автоматтык түрдө флэш куралы аркылуу же Жүктөө баскычын басып, EN баскычын басуу менен жасалышы мүмкүн. 2. Бинардык жаркырагандан кийин files, Flash Жүктөө куралы ESP32 модулуңузду өчүрүп күйгүзөт жана демейки боюнча жаркыраган тиркемени жүктөйт.

Башкарманын өлчөмдөрү Мазмуну жана таңгагы

Espressif системалары

6 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо 3-сүрөт: ESP32-DevKitS тактасынын өлчөмдөрү – артка

Espressif системалары

4-сүрөт: ESP32-DevKitS-R тактасынын өлчөмдөрү – арткы 7
Документ боюнча пикир тапшыруу

v5.0.9 чыгаруу

1-бөлүм. Баштоо
Чекене заказдар Эгер сиз бир нече сamples, ар бир ESP32-DevKitS(-R) жеке пакетте антистатикалык баштыкта ​​же сатуучуга жараша ар кандай таңгакта келет. Чекене заказдар үчүн https://www.espressif.com/en/contact-us/get-s дарегине өтүңүзamples.
Дүңүнөн буйрутмалар Эгер сиз дүңүнөн заказ кылсаңыз, такталар чоң картон кутучаларда келет. Дүң заказдар үчүн https://www.espressif.com/en/contact-us/sales-questions дарегине өтүңүз.
Аппараттык маалымдама
Блок диаграммасы Төмөндөгү блок диаграмма ESP32-DevKitS(-R) компоненттерин жана алардын өз ара байланыштарын көрсөтөт.

5-сүрөт: ESP32-DevKitS(-R) (чоңойтуу үчүн чыкылдатыңыз)
Кубат менен камсыздоо параметрлери Тактага кубат берүүнүн үч бири-бирин эксклюзивдүү жолу бар: · Micro USB порту, демейки электр булагы · 5V жана GND баш төөнөгүчтөрү · 3V3 жана GND баш төөнөгүчтөрү
Биринчи параметрди колдонуу сунушталат: микро USB порту.

Espressif системалары

.

Белги сигналы

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

кийинки бетте уланат

8 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

1-таблица мурунку беттин уландысы

.

Белги сигналы

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

Тышкы 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

Башкы блоктордун сүрөтү үчүн Компоненттердин сүрөттөлүшүнө кайрылыңыз.

Тиешелүү документтер
· ESP32-DevKitS(-R) схемалары (PDF) · ESP32 маалымат жадыбалы (PDF) · ESP32-WROOM-32 маалымат жадыбалы (PDF) · ESP32-WROOM-32D & ESP32-WROOM-32U маалымат жадыбалы (PDF) · ESP32-SOLODFRO-1W Datasheet (PDF) · ESP32-WROVER-B маалымат жадыбалы (PDF) · ESP продукт тандоосу

ESP32-DevKitM-1

Бул колдонуучу колдонмо ESP32-DevKitM-1 менен баштоого жардам берет жана дагы тереңирээк маалымат берет.
ESP32-DevKitM-1 бул Espressif тарабынан чыгарылган ESP32-MINI-1(1U) негизиндеги өнүктүрүү тактасы. Кирүү/чыгаруу төөнөгүчтөрүнүн көбү оңой интерфейс үчүн эки тараптын пин баштарына чейин сынган. Колдонуучулар перифериялык түзүлүштөрдү секирүү зымдары менен туташтыра алышат же ESP32-DevKitM-1ди нан тактасына орното алышат.

Espressif системалары

9 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

ESP32-DevKitM-1 – алдыңкы

ESP32-DevKitM-1 – изометрдик

Документ төмөнкү негизги бөлүмдөрдөн турат: · Ишке киришүү: Бүтүрүү менен камсыз кылатview баштоо үчүн ESP32-DevKitM-1 жана аппараттык/программалык камсыздоону орнотуу нускамалары. · Аппараттык маалымдама: ESP32-DevKitM-1ns жабдыгы жөнүндө кеңири маалымат берет. · Тиешелүү документтер: Тиешелүү документке шилтемелерди берет.

Баштоо Бул бөлүм ESP32-DevKitM-1 менен кантип баштоону сүрөттөйт. Ал ESP32-DevKitM-1 жөнүндө бир нече киришүү бөлүмдөрүнөн башталат, андан кийин Колдонмону иштеп чыгууну баштоо бөлүмү аппараттык камсыздоонун баштапкы орнотуусун жана андан кийин ESP32-DevKitM-1ге микропрограмманы кантип жаркылдатуу боюнча көрсөтмөлөрдү берет.

Бүттүview Бул кичинекей жана ыңгайлуу иштеп чыгуу тактасы, анын ичинде:
· ESP32-MINI-1, же ESP32-MINI-1U модулу · USB-сериялык программалоо интерфейси, ал ошондой эле такта үчүн энергия менен камсыз кылат · пин аталыштары · микропрограмманы жүктөө режимин баштапкы абалга келтирүү жана активдештирүү үчүн баскычтар · бир нече башка компоненттер

Мазмуну жана таңгактоо

Чекене заказдар Эгер сиз бир нече сamples, ар бир ESP32-DevKitM-1 жеке пакетте антистатикалык баштыкта ​​же сатуучуңузга жараша ар кандай таңгак менен келет.
Чекене заказдар үчүн https://www.espressif.com/en/contact-us/get-s дарегине өтүңүзamples.

Дүңүнөн буйрутмалар Эгер сиз дүңүнөн заказ кылсаңыз, такталар чоң картон кутучаларда келет. Дүң заказдар үчүн https://www.espressif.com/en/contact-us/sales-questions дарегине өтүңүз.

Компоненттердин сүрөттөлүшү Төмөнкү сүрөт жана төмөнкү таблица ESP32-DevKitM-1 тактасынын негизги компоненттерин, интерфейстерин жана башкаруу элементтерин сүрөттөйт. Биз тактайды ESP32-MINI-1 модулу менен экс катары алабызampкийинки бөлүмдөрдө.

Espressif системалары

10 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

6-сүрөт: ESP32-DevKitM-1 – алдыңкы

Негизги компонент Борттогу модул
5 V 3.3 V LDO жүктөө баскычы
Калыбына келтирүү баскычы Микро-USB порту
USB-UART көпүрөсү 3.3 V Power күйгүзүлгөн LED
I/O Connector

Description
ESP32-MINI-1 модулу же ESP32-MINI-1U модулу. ESP32-MINI-1 борттогу PCB антеннасы менен келет. ESP32-MINI-1U тышкы антенна туташтыргычы менен келет. Эки модулда тең чип пакетинде 4 МБ флеш бар. Чоо-жайы үчүн ESP32-MINI-1 & ESP32-MINI-1U маалымат жадыбалын караңыз.
Кубаттуу жөнгө салгыч 5 В 3.3 Вга айлантат.
Жүктөө баскычы. Жүктөө баскычын басып туруп, андан кийин Калыбына келтирүү баскычын басуу сериялык порт аркылуу микропрограмманы жүктөө үчүн микропрограмманы жүктөө режимин баштайт.
Калыбына келтирүү баскычы
USB интерфейси. Такта үчүн электр энергиясы, ошондой эле компьютер менен ESP32 чипинин ортосундагы байланыш интерфейси.
Бир USB-UART көпүрө чип 3 Мбит / с чейин которуу ылдамдыгын камсыз кылат.
USB тактага туташтырылганда күйөт. Көбүрөөк маалымат алуу үчүн, тиешелүү документтердеги схемаларды караңыз. Бардык жеткиликтүү GPIO пиндери (жарк үчүн SPI автобусунан башкасы) тактадагы пин баштарына бөлүнгөн. Колдонуучулар бир нече функцияларды иштетүү үчүн ESP32 чипти программалай алышат.

Тиркемени иштеп чыгууну баштаңыз ESP32-DevKitM-1иңизди кубаттандыруудан мурун, анын жакшы абалда экенин, эч кандай зыяндын белгилери жок экенин текшериңиз.
Керектүү жабдык · ESP32-DevKitM-1 · USB 2.0 кабели (Стандарт-Адан Micro-Bга чейин) · Windows, Linux же macOS менен иштеген компьютер
Программалык камсыздоону орнотуу Сураныч, Баштоо бөлүмүнө өтүңүз, мында Бөлүмдү орнотуу тез арада иштеп чыгуу чөйрөсүн орнотууга жардам берет, андан кийин мурунку тиркемени жаркыратыңызampESP32-DevKitM-1ге.

Espressif системалары

11 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
Көңүл буруңуз: 2021-жылдын 2-декабрына чейин чыгарылган ESP32-DevKitM-1 такталарында бир өзөктүү модул орнотулган. Сизде кандай модул бар экенин текшерүү үчүн PCN-2021-021деги модулду белгилөө маалыматын текшериңиз. Эгер тактаңызда бир өзөктүү модул орнотулган болсо, колдонмолоруңузду жаркылдатуудан мурун меню конфигурациясында бир өзөктүү режимди (CONFIG_FREERTOS_UNICORE) иштетиңиз.
Аппараттык камсыздоонун маалымдамасынын блок диаграммасы Төмөндөгү блок диаграмма ESP32-DevKitM-1 компоненттерин жана алардын өз ара байланыштарын көрсөтөт.

7-сүрөт: ESP32-DevKitM-1
Кубат булагын тандоо Тактаны кубат менен камсыз кылуунун үч бири-бирин эксклюзивдүү жолу бар: · Micro USB порту, демейки электр камсыздоосу · 5V жана GND баш төөнөгүчтөрү · 3V3 жана GND баш төөнөгүчтөрү
Эскертүү: · Электр энергиясы менен камсыздоо жогорудагы варианттардын бирин гана колдонуу менен камсыз кылынышы керек, антпесе такта жана/же кубат булагы бузулушу мүмкүн. · Микро USB порт аркылуу кубат менен камсыздоо сунушталат.

Pin Сүрөттөмөлөрү Төмөнкү таблица тактанын эки тарабындагы төөнөгүчтөрдүн аталышын жана функциясын берет. Перифериялык пин конфигурациялары үчүн ESP32 маалымат жадыбалына кайрылыңыз.

Жок.

аты

Type

1

GND

P

2

3V3

P

Function Ground 3.3 V электр менен камсыз кылуу

кийинки бетте уланат

Espressif системалары

12 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

2-таблица мурунку беттин уландысы

Жок.

аты

Type

Функция

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

баштапкы абалга келтирүү; Жогорку: иштетүү; Төмөн: өчүк

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32

I/O

GPIO32, XTAL_32K_P (32.768 кГц кристаллдык осцилляторду киргизүү),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

I/O

GPIO33, XTAL_32K_N (32.768 кГц кристаллдык осциллятордун чыгышы),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25

I/O

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26

I/O

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27

I/O

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14

I/O

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

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

5 В электр энергиясы

17

IO12

I/O

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

HS2_DATA2, SD_DATA2, EMAC_TXD3

18

IO13

I/O

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

HS2_DATA3, SD_DATA3, EMAC_RX_ER

19

IO15

I/O

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

HS2_CMD, SD_CMD, EMAC_RXD3

20

IO2

I/O

GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,

HS2_DATA0, SD_DATA0

21

IO0

I/O

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,

EMAC_TX_CLK

22

IO4

I/O

GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,

HS2_DATA1, SD_DATA1, EMAC_TX_ER

23

IO9

I/O

GPIO9, HS1_DATA2, U1RXD, SD_DATA2

24

IO10

I/O

GPIO10, HS1_DATA3, U1TXD, SD_DATA3

25

IO5

I/O

GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK

26

IO18

I/O

GPIO18, HS1_DATA7, VSPICLK

27

IO23

I/O

GPIO23, HS1_STROBE, VSPID

28

IO19

I/O

GPIO19, VSPIQ, U0CTS, EMAC_TXD0

29

IO22

I/O

GPIO22, VSPIWP, U0RTS, EMAC_TXD1

30

IO21

I/O

GPIO21, VSPIHD, EMAC_TX_EN

31

TXD0

I/O

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

RXD0

I/O

GPIO3, U0RXD, CLK_OUT2

Аппараттык камсыздоону кайра кароонун чоо-жайы Мурунку версиялары жок.
Тиешелүү документтер
· ESP32-MINI-1 & ESP32-MINI-1U маалымат жадыбалы (PDF) · ESP32-DevKitM-1 схемасы (PDF) · ESP32-DevKitM-1 PCB макети (PDF) · ESP32-DevKitM-1 макети (DXF) – Сиз жасай аласыз view аны Autodesk менен Viewer online · ESP32 Datasheet (PDF) · ESP Product Selector
Башкармалыктын башка долбоорлоо документтери үчүн sales@espressif.com дареги боюнча биз менен байланышыңыз.

Espressif системалары

13 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
1.2.2 программалык камсыздоо
ESP32де ESP-IDF колдонууну баштоо үчүн төмөнкү программаны орнотуңуз: · ESP32 үчүн кодду компиляциялоо үчүн инструменттердин тизмеги · Курал куралдары – ESP32 үчүн толук тиркемени түзүү үчүн CMake жана Ninja · ESP32 үчүн API (программалык китепканалар жана баштапкы код) жана Toolchainди иштетүү үчүн скрипттерди камтыган ESP-IDF

1.3 Орнотуу
Бардык талап кылынган программалык камсыздоону орнотуу үчүн, биз бул милдетти жеңилдетүү үчүн ар кандай жолдорду сунуштайбыз. Жеткиликтүү варианттардын бирин тандаңыз.
1.3.1 IDE

Эскертүү: Сүйүктүү IDE аркылуу ESP-IDF орнотууну сунуштайбыз.
· Eclipse Plugin · VSCode кеңейтүүсү

1.3.2 Кол менен орнотуу
Кол менен жол-жобосу үчүн операциялык системаңызга ылайык тандаңыз.

Espressif системалары

14 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
Windows үчүн Toolchain стандарттык орнотуу
Киришүү ESP-IDF колдоого алынган микросхемалар үчүн микропрограмманы түзө алуу үчүн орнотулган кээ бир зарыл шаймандарды талап кылат. Зарыл куралдарга Python, Git, кайчылаш компиляторлор, CMake жана Ninja куруу куралдары кирет. Бул Баштоо үчүн Command Prompt колдоно турган болдук, бирок ESP-IDF орнотулгандан кийин анын ордуна Eclipse Plugin же CMake колдоосу менен башка графикалык IDE колдоно аласыз. Эскертүү: Чектөөлөр: – ESP-IDF жана ESP-IDF куралдарынын орнотуу жолу 90 белгиден узун болбошу керек. Өтө узун орнотуу жолдору ийгиликсиз курууга алып келиши мүмкүн. – Python же ESP-IDF орнотуу жолу ак боштуктарды же кашааларды камтыбашы керек. – Python же ESP-IDF орнотуу жолу, эгерде операциялык тутум oUnicode UTF-8psupport менен конфигурацияланбаса, атайын белгилерди (ASCII эмес) камтыбашы керек. Системанын администратору колдоону Башкаруу панели аркылуу иштете алат – Күн, убакыт же сан форматтарын өзгөртүү – Административдик өтмөк – Системанын тилин өзгөртүү – oBeta опциясын текшериңиз: Бүткүл дүйнөлүк тилди колдоо үчүн Юникод UTF-8ди колдонуңузp – Макул жана компьютерди өчүрүп күйгүзүңүз.
ESP-IDF куралдарын орноткучу ESP-IDFns шартын орнотуунун эң оңой жолу - ESP-IDF куралдарын орнотуучулардын бирин жүктөп алуу.

Windows Installer Жүктөө
Онлайн жана Оффлайн Орнотуучу Online Орнотуучу үчүн кандай колдонуу керектиги өтө кичинекей жана ESP-IDFтин бардык жеткиликтүү релиздерин орнотууга мүмкүндүк берет. Орнотуучу орнотуу процессинде керектүү көз карандылыктарды, анын ичинде Git For Windowsту гана жүктөп алат. Орнотуучу дүкөндөр жүктөлүп алынган file%userpro кэш каталогундаfile%. espressif
Offline Installer эч кандай тармак туташуусун талап кылбайт. Орнотуучу бардык керектүү көз карандылыктарды камтыйт, анын ичинде Git For Windows .
Орнотуу компоненттери Орнотуучу төмөнкү компоненттерди жайгаштырат:
· Камтылган Python · Кайчылаш компиляторлор · OpenOCD · CMake жана Ninja куруу куралдары · ESP-IDF
Орноткуч ESP-IDF менен болгон каталогду кайра колдонууга мүмкүнчүлүк берет. Сунушталган каталог бул %userprofile%Desktopesp-idf мында %userprofile% бул сиздин үй каталогуңуз.

Espressif системалары

15 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
ESP-IDF чөйрөсүн ишке киргизүү Орнотуу процессинин аягында сиз Run ESP-IDF PowerShell Environment же Run ESP-IDF Command Prompt (cmd.exe) опциясын текшере аласыз. Орнотуучу тандалган чакырууда ESP-IDF чөйрөсүн ишке киргизет. ESP-IDF PowerShell чөйрөсүн иштетүү:

8-сүрөт: ESP-IDF PowerShell чөйрөсүн иштетүү менен ESP-IDF куралдарын орнотуу устасын бүтүрүү
ESP-IDF буйрук сабын иштетүү (cmd.exe):
Буйрук сапты колдонуу Калган Баштоо кадамдары үчүн Windows Command Prompt колдонууга барасыз. ESP-IDF куралдарын орнотуучу ESP-IDF Command Promptти ишке киргизүү үчүн Баштоо менюсунда жарлыкты түзөт. Бул жарлык Command Prompt (cmd.exe) ишке киргизет жана чөйрө өзгөрмөлөрүн (PATH, IDF_PATH жана башкалар) орнотуу үчүн export.bat скриптин иштетет. Бул буйрук тилкесинде бардык орнотулган куралдар бар. Бул жарлык ESP-IDF куралдарын орнотуучуда тандалган ESP-IDF каталогуна мүнөздүү экенин эске алыңыз. Компьютерде бир нече ESP-IDF каталогу болсо (мисалыample, ESP-IDFтин ар кандай версиялары менен иштөө үчүн) сизде аларды колдонуунун эки варианты бар:
1. ESP-IDF куралдарын орнотуучу тарабынан түзүлгөн жарлыктын көчүрмөсүн түзүңүз жана жаңы жарлыктын жумушчу каталогун колдонгуңуз келген ESP-IDF каталогуна өзгөртүңүз.
2. Же болбосо, cmd.exe файлын иштетип, андан кийин колдонгуңуз келген ESP-IDF каталогуна өзгөртүп, export.bat файлын иштетиңиз. Эскерте кетсек, мурунку варианттан айырмаланып, бул жол Python жана Gitтин PATHде болушун талап кылат. Эгер сиз Python же Git менен байланышкан каталарды тапсаңыз, биринчи параметрди колдонуңуз.
ESP-IDF боюнча биринчи кадамдар Эми бардык талаптар аткарылгандыктан, кийинки тема сизге биринчи долбооруңузду кантип баштоону үйрөтөт.

Espressif системалары

16 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо 9-сүрөт: ESP-IDF PowerShell

10-сүрөт: ESP-IDF куралдарын орнотуу устасын Run ESP-IDF буйрук сабын (cmd.exe) бүтүрүү

Espressif системалары

17 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

11-сүрөт: ESP-IDF буйрук сабы

Espressif системалары

18 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
Бул колдонмо сизге ESP-IDF аркылуу биринчи кадамдарды жасоодо жардам берет. ESP32де жаңы долбоорду баштоо жана түзмөктүн чыгышын куруу, жарк кылуу жана көзөмөлдөө үчүн бул колдонмону аткарыңыз. Эскертүү: Эгер сиз ESP-IDF орното элек болсоңуз, бул колдонмону колдонуу үчүн керектүү программалык камсыздоону алуу үчүн Орнотуу бөлүмүнө өтүп, нускаманы аткарыңыз.

Долбоорду баштоо Эми сиз ESP32 үчүн арызыңызды даярдоого даярсыз. Сиз мурункудан getstarted/hello_world долбоору менен баштасаңыз болотamples каталогу ESP-IDF.
Маанилүү иш: ESP-IDF куруу системасы ESP-IDFге же долбоорлорго баруучу жолдордогу боштуктарды колдобойт.
Долбоорду баштоо/hello_world ~/esp каталогуна көчүрүңүз: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world салам_дүйнө
Эскертүү: мурунку бир катар барample долбоорлор эксamples каталогу ESP-IDF. Каалаган долбоорду жогоруда көрсөтүлгөндөй көчүрүп алып, иштете аласыз. Ошондой эле экс курууга болотamples in-place аларды биринчи көчүрбөй туруп.

Түзмөгүңүздү туташтырыңыз Эми ESP32 тактаңызды компьютерге туташтырыңыз жана такта кайсы сериялык порттун астында көрүнүп турганын текшериңиз. Сериялык порт аттары Windowsта COM менен башталат. Сериялык порттун атын кантип текшерүүнү билбесеңиз, толук чоо-жайын билүү үчүн ESP32 менен Сериялык туташууну орнотуу бөлүмүнө кайрылыңыз.
Эскертүү: Порттун аталышын колдо болуңуз, анткени ал кийинки кадамдарда керек болот.

Долбооруңузду конфигурациялаңыз hello_world каталогуңузга чабыттап, ESP32ди максат катары коюңуз жана долбоордун конфигурациялоочу утилитасын менюконфигурациясын иштетиңиз.
Windows CD %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Жаңы долбоорду ачкандан кийин, алгач idf.py set-target esp32 менен максатты коюшуңуз керек. Долбоордогу бар түзүүлөр жана конфигурациялар, эгерде бар болсо, бул процессте тазаланып, инициализацияланарын эске алыңыз. Бул кадамды таптакыр өткөрүп жиберүү үчүн максат чөйрө өзгөрмөсүндө сакталышы мүмкүн. Кошумча маалымат үчүн Максаттуу чипти тандоо: максаттуу белгини караңыз. Эгерде мурунку кадамдар туура аткарылса, төмөнкү меню пайда болот: Сиз бул менюну долбоордун өзгөчө өзгөрмөлөрүн орнотуу үчүн колдонуп жатасыз, мисалы, Wi-Fi тармагынын аты жана сырсөзү, процессордун ылдамдыгы ж.б. Менюконфигурациясы менен долбоорду орнотуу ohello_wordp үчүн өткөрүп жиберилиши мүмкүн, анткени бул мурункуample демейки конфигурация менен иштейт.
Көңүл буруңуз: Эгер сиз ESP32-DevKitC тактасын ESP32-SOLO-1 модулу менен же ESP32-DevKitM-1 тактасын ESP32-MIN1-1(1U) модулу менен колдонсоңуз, мурунку жаркыраганга чейин менюконфигурациясында бир өзөктүү режимди (CONFIG_FREERTOS_UNICORE) иштетиңизamples.

Espressif системалары

19 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

12-сүрөт: Долбоордун конфигурациясы – Башкы терезе
Эскертүү: Менюнун түстөрү терминалыңызда ар кандай болушу мүмкүн. Сиз -стиль опциясы менен көрүнүшүн өзгөртө аласыз. Сураныч, кошумча маалымат үчүн idf.py menuconfig –help программасын иштетиңиз.
Эгер сиз колдоого алынган өнүктүрүү такталарынын бирин колдонуп жатсаңыз, Board Support Package аркылуу өнүгүүңүздү тездете аласыз. Көбүрөөк маалымат үчүн Кошумча кеңештерди караңыз.
Долбоорду куруу Долбоорду иштетүү менен куруңуз:
idf.py куруу
Бул буйрук тиркемени жана бардык ESP-IDF компоненттерин компиляциялайт, андан кийин жүктөгүчтү, бөлүм таблицасын жана тиркеме бинарларын жаратат.
$ idf.py build /path/to/hello_world/build каталогунда cmake иштетилүүдө “cmake -G Ninja –warn-uninitialized /path/to/hello_world”... Башталбаган маанилер жөнүндө эскертиңиз. — Табылды Git: /usr/bin/git («2.17.0» версиясы табылган) — Конфигурациядан улам бош aws_iot компонентин куруу — Компоненттин аттары: … — Компоненттин жолдору: …
… (куруу тутумунун чыгышынын көбүрөөк саптары)
[527/527] hello_world.bin esptool.py v2.3.1 түзүлүүдө
Долбоордун курулушу аяктады. Жаркылдоо үчүн бул буйрукту аткарыңыз: ../../../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 же "idf.py -p PORT flash" иштетиңиз
Эгерде эч кандай каталар жок болсо, куруу микропрограмманын бинардык .bin түзүү менен аяктайт files.

Espressif системалары

20 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
Түзмөккө жарк этиңиз Сиз жаңы эле курган бинардык файлдарды (bootloader.bin, partition-table.bin жана hello_world.bin) ESP32 тактаңызга иштетүү аркылуу жарк этиңиз: idf.py -p PORT [-b BAUD] жарк.
PORTту ESP32 тактасынын сериялык портунун аталышы менен алмаштырыңыз. Сиз ошондой эле BAUDди сизге керектүү берүү ылдамдыгы менен алмаштыруу менен жаркыраткычтын ылдамдыгын өзгөртө аласыз. Демейки берүү ылдамдыгы 460800. idf.py аргументтери боюнча көбүрөөк маалымат алуу үчүн idf.py дарегин караңыз.
Эскертүү: Flash опциясы долбоорду автоматтык түрдө куруп, жаркыратат, андыктан idf.py түзүүнү иштетүү зарыл эмес.

Жаркылдап жатканда көйгөйлөргө туш болдуңузбу? Эгер сиз берилген буйрукту иштетсеңиз жана туташуу мүмкүн эмесп сыяктуу каталарды көрсөңүз, мунун бир нече себеби болушу мүмкүн. Себептердин бири чипти баштапкы абалга келтирүү, ROM жүктөгүч менен иштешүү жана флеш микропрограммасы үчүн куруу тутуму тарабынан чакырылган esptool.py, пайда болгон маселелер болушу мүмкүн. Төмөндө сүрөттөлгөн кол менен баштапкы абалга келтирүү аракети үчүн жөнөкөй чечим болуп саналат жана ал жардам бербесе, Мүчүлүштүктөрдү аныктоо бөлүмүнөн мүмкүн болгон маселелер тууралуу кененирээк маалымат таба аласыз.
esptool.py ESP32ди автоматтык түрдө баштапкы абалга келтирет жана USB-ди сериялык конвертер микросхемасынын DTR жана RTS башкаруу линияларын, б.а., FTDI же CP210x (көбүрөөк маалымат үчүн, ESP32 менен Сериялык туташуу орнотууну караңыз). DTR жана RTS башкаруу линиялары өз кезегинде ESP32 GPIO0 жана CHIP_PU (EN) пиндерине туташтырылган, ошентип көлөмдөгү өзгөрүүлөрtagDTR жана RTS деңгээли ESP32ди Firmware Download режимине жүктөйт. Экс катарыample, ESP32 DevKitC өнүктүрүү тактасынын схемасын текшериңиз.
Жалпысынан алганда, сизде расмий esp-idf өнүктүрүү такталары менен эч кандай көйгөйлөр болбойт. Бирок, esptool.py төмөнкү учурларда сиздин жабдыкты автоматтык түрдө баштапкы абалга келтире албайт:
· Сиздин аппараттык камсыздооңузда GPIO0 жана CHIP_PU менен туташкан DTR жана RTS линиялары жок · DTR жана RTS линиялары башкача конфигурацияланган · Мындай сериялык башкаруу линиялары такыр жок.
Сизде бар жабдыктын түрүнө жараша, ESP32 тактаңызды микропрограмманы жүктөө режимине (кайра коюу) кол менен коюу да мүмкүн болушу мүмкүн.
· Espressif тарабынан чыгарылган иштеп чыгуу такталары үчүн бул маалыматты тиешелүү баштоо колдонмолорунан же колдонуучу колдонмолорунан тапса болот. Мисалы үчүнample, ESP-IDF иштеп чыгуу тактасын кол менен баштапкы абалга келтирүү үчүн Жүктөө баскычын (GPIO0) басып кармап, EN баскычын (CHIP_PU) басыңыз.
· Аппараттык камсыздоонун башка түрлөрү үчүн GPIO0 ылдый тартып көрүңүз.

Кадимки иштөө Жарк эткенде, сиз төмөнкүгө окшош чыгуу журналын көрөсүз:
… 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 0x8000000 partition table_table/partition. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Сериялык порт /dev/ttyUSB0 Туташуу…….._ Чип – ESP32D0WDQ6 (ревизия 0) Өзгөчөлүктөрү: WiFi, BT, Dual Core, C0MHz коддоо схемасы жок: MAC4 24:0a:c4:05:b9:14 Жүктөө stub… Иштеп жаткан stub… Stub иштеп жатат… Берүү ылдамдыгы 460800 болуп өзгөртүлдү.
(уландысы кийинки бетте)

Espressif системалары

21 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
(мурунку беттин уландысы) Флэш өлчөмү конфигурацияланууда… 3072 байттан 103кө чейин кысылган... 0x00008000… (100 %) боюнча жазуу 0x00008000дө 3072 байт (103 кысылган) 0.0 секундада жазды (эффективдүү Ha22 байт…86 бит/59 бит). 26096 байттан 15408ге чейин кысылган… 0x00001000… (100 %) жазууда 0.4 секундада 26096 байт (15408 кысылган) 0,4 секундада жазды (эффективдүү 546.7 кбит/сек маалымат)…. Кысылган 147104 байт 77364… 0x00010000… (20 %) 0x00014000… (40 %) менен жазуу 0x00018000… (60 %) боюнча жазуу 0x00020000… (100 %) 1.9 секундада 0x00010000 147104 байт (77364 кысылган) жазды (эффективдүү 615. 5 кбит/с)… Маалымат хэштери текшерилди.
Чыгууда… RTS пин аркылуу катуу баштапкы абалга келтирүү… Бүттү
Флэш процессинин аягына чейин эч кандай маселе болбосо, такта кайра жүктөлөт жана theohello_worldpapplication иштей баштайт. Эгер сиз idf.py иштетүүнүн ордуна Eclipse же VS Code IDE колдонгуңуз келсе, Eclipse Plugin, VSCode кеңейтүүсүн текшериңиз.
Чыгууга мониторинг жүргүзүү ohello_worldpis чындап эле иштеп жатканын текшерүү үчүн idf.py -p PORT monitor деп териңиз (портту сериялык порт аты менен алмаштырууну унутпаңыз).
Бул буйрук IDF Monitor тиркемесин ишке киргизет:
$ idf.py -б монитор Каталогдо idf_monitor иштетилүүдө […]/esp/hello_world/build “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”…mon” ишке ашырылууда. 115200 —– Чыгыңыз: Ctrl+] | Меню: Ctrl+T | Жардам: Ctrl+T жана андан кийин Ctrl+H –ets Jun 8 2016 00:22:57
биринчи: 0x1 (POWERON_RESET), жүктөө: 0x13 (SPI_FAST_FLASH_BOOT) жана 8-июнь 2016 00:22:57 …
Ишке киргизүү жана диагностикалык журналдар өйдө жылдыргандан кийин, тиркеме басып чыгарган oHello world!
… Салам дүйнө! 10 секунддан кийин өчүрүлүп күйгүзүлөт… Бул 2 CPU ядросу(лары), WiFi/BT/BLE, кремний версиясы 1, 2МБ тышкы жаркыраган esp32 чип. Минималдуу бош үймөктүн көлөмү: 298968 байт 9 секундда өчүрүлөт… 8 секундда өчүрүлөт… 7 секундда өчүрүлөт…
IDF мониторунан чыгуу үчүн Ctrl+] жарлыгын колдонуңуз.

Espressif системалары

22 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
Эгерде IDF монитору жүктөлгөндөн көп өтпөй иштебей калса, же жогорудагы билдирүүлөрдүн ордуна төмөндө келтирилгенге окшош туш келди таштандыны көрсөңүз, анда сиздин тактаңыз 26 МГц кристалл колдонуп жаткандыр. Көпчүлүк иштеп чыгуу тактасынын конструкциялары 40 МГц колдонушат, ошондуктан ESP-IDF бул жыштыкты демейки маани катары колдонот.

Эгер сизде ушундай көйгөй болсо, төмөндөгүлөрдү аткарыңыз: 1. Монитордон чыкыңыз. 2. Меню конфигурациясына кайтуу. 3. Компонент конфигурациясы > Аппараттык жабдык орнотуулары > Негизги XTAL конфигурациясы > Негизги XTAL жыштыгына өтүп, CONFIG_XTAL_FREQ_SELди 26 МГцге өзгөртүңүз. 4. Андан кийин, тиркемени кайра куруп, жарк этиңиз.
ESP-IDF учурдагы версиясында, ESP32 тарабынан колдоого алынган негизги XTAL жыштыктары төмөнкүдөй:
· 26 МГц · 40 МГц
Эскертүү: Сиз куруу, жаркыруу жана мониторинг жүргүзүүнү бир кадамга айкалыштыра аласыз: idf.py -p PORT флеш монитору
Ошондой эле караңыз: · Ыңгайлуу жарлыктарды жана IDF мониторду колдонуу боюнча көбүрөөк маалымат алуу үчүн IDF Monitor. · idf.py idf.py буйруктарынын жана варианттарынын толук маалыматы үчүн.
Бул ESP32 менен баштоо үчүн зарыл болгон нерселердин баары! Эми сиз башка экс-ди сынап көрүүгө даярсызamples, же түз эле өз тиркемелериңизди иштеп чыгууга өтүңүз.
Маанилүү: кээ бир мурункуamples ESP32ди колдобойт, анткени талап кылынган жабдык ESP32ге кирбегендиктен, аны колдоого болбойт. Эгерде мурунку курууample, сураныч, README текшериңиз file Колдоого алынган максаттар таблицасы үчүн. Эгер бул ESP32 максаттуу, анын ичинде бар болсо, же таблица такыр жок болсо, мурункуample ESP32де иштейт.
Кошумча кеңештер
Уруксат көйгөйлөрү /dev/ttyUSB0 Кээ бир Linux дистрибьюторлору менен ESP32ди жаркылдатканда, сиз /dev/ttyUSB0 портун ачууда ката тууралуу кабарды алышыңыз мүмкүн. Бул учурдагы колдонуучуну сүйлөшүү тобуна кошуу менен чечилет.
Python шайкештиги ESP-IDF Python 3.7 же андан жаңысын колдойт. Бул талапты канааттандырган акыркы версияга операциялык системаңызды жаңыртуу сунушталат. Башка варианттарга булактардан Python орнотуу же pyenv сыяктуу Python версиясын башкаруу тутумун колдонуу кирет.
Башкарманын колдоо топтомунан баштаңыз Кээ бир иштеп чыгуу такталарында прототип түзүүнү тездетүү үчүн, сиз тактаны колдоо пакеттерин (BSPs) колдонсоңуз болот, бул белгилүү бир тактаны инициализациялоону бир нече функцияга чалуу сыяктуу жеңил кылат.

Espressif системалары

23 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

BSP адатта иштеп чыгуу тактасында берилген бардык жабдык компоненттерин колдойт. Pinout аныктоо жана инициализация функцияларынан тышкары, BSP сенсорлор, дисплейлер, аудио кодектер ж.б. сыяктуу тышкы компоненттер үчүн драйверлер менен жөнөтүлөт. BSP'лер IDF Component Manager аркылуу таратылат, ошондуктан аларды IDF Component Registry'ден тапса болот. Херенс мурдагыampСиздин долбоорго ESP-WROVER-KIT BSP кантип кошуу керек: idf.py add-dependency esp_wrover_kit
More exampBSP колдонуу les BSP экс тапса болотamples папкасы.
Тиешелүү документтер Орнотуу процессин ыңгайлаштырууну каалаган алдыңкы колдонуучулар үчүн: · Windows'та ESP-IDF куралдарын жаңыртуу · ESP32 менен сериялык туташууну түзүү · Eclipse Plugin · VSCode кеңейтүүсү · IDF Monitor
Windows'до ESP-IDF куралдарын жаңыртуу
Скрипт аркылуу ESP-IDF куралдарын орнотуңуз Windows Command Prompt'тен ESPIDF орнотулган каталогго өтүңүз. Андан кийин чуркап:
install.bat
Powershell үчүн ESP-IDF орнотулган каталогго өтүңүз. Андан кийин чуркап:
install.ps1
Бул ESP-IDF колдонуу үчүн керектүү куралдарды жүктөп алып, орнотот. Эгер куралдын белгилүү версиясы орнотулган болсо, эч кандай чара көрүлбөйт. Куралдар жүктөлүп алынып, ESP-IDF куралдарын орнотуу процессинде көрсөтүлгөн каталогго орнотулат. Демейки боюнча, бул C:Usersusername.espressif.
Экспорттук скрипттин жардамы менен ESP-IDF куралдарын PATHге кошуңуз ESP-IDF куралдарын орнотуучу oESP-IDF Command Promptp үчүн Баштоо менюсунун жарлыгын түзөт. Бул жарлык Command Prompt терезесин ачат, анда бардык куралдар мурунтан эле бар
жеткиликтүү. Кээ бир учурларда, сиз ESP-IDF менен ошол жарлыкты колдоно баштабаган Command Prompt терезесинде иштегиңиз келиши мүмкүн. Эгер андай болсо, ESP-IDF куралдарын PATHге кошуу үчүн төмөнкү нускамаларды аткарыңыз. ESP-IDF колдонушуңуз керек болгон буйрук сабында ESP-IDF орнотулган каталогду өзгөртүңүз, андан кийин export.bat файлын аткарыңыз:
cd %userprofile%espesp-idf export.bat
Же болбосо, ESP-IDF колдонушуңуз керек болгон Powershellде, ESP-IDF орнотулган каталогго өтүп, экспорт.ps1ди аткарыңыз:
cd ~/esp/esp-idf экспорттоо.ps1
Бул аткарылгандан кийин, куралдар бул буйрук сабында жеткиликтүү болот.
ESP32 менен сериялык туташууну орнотуу Бул бөлүм ESP32 менен PC ортосунда сериялык байланышты орнотуу боюнча көрсөтмөлөрдү берет.

Espressif системалары

24 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
ESP32ди компьютерге туташтырыңыз USB кабелин колдонуп ESP32 тактасын компьютерге туташтырыңыз. Түзмөктүн драйвери автоматтык түрдө орнотулбаса, ESP32 тактасында (же тышкы конвертер донгле) USB-сериал конвертер чипти аныктаңыз, интернеттен драйверлерди издеп, аларды орнотуңуз. Төмөндө Espressif тарабынан өндүрүлгөн ESP32 такталарынын көпчүлүгүнө орнотулган USB-сериялык конвертер микросхемаларынын тизмеси жана драйверлерге шилтемелер келтирилген:
· CP210x: CP210x USB - UART көпүрөсүнүн VCP драйверлери · FTDI: FTDI Virtual COM портунун драйверлери Колдонулган USB-сериал конвертер чипинин конкреттүүлүгүн тактанын колдонуучу нускамасынан текшериңиз. Жогорудагы айдоочулар, биринчи кезекте, маалымдама үчүн. Кадимки шарттарда драйверлер иштөө тутуму менен бириктирилип, тактаны компьютерге туташтырганда автоматтык түрдө орнотулушу керек.
Windows'догу портту текшерүү Windows түзмөк башкаргычында аныкталган COM портторунун тизмесин текшериңиз. Кайсы порт тизмеден жок болуп, кайра көрсөтүлөрүн текшерүү үчүн ESP32ди ажыратып, кайра туташтырыңыз. Төмөндөгү сүрөттөр ESP32 DevKitC жана ESP32 WROVER KIT үчүн сериялык портту көрсөтөт

13-сүрөт: Windows Device Manager ичиндеги ESP32-DevKitCтин USB-UART көпүрөсү

Linux жана macOS'до портту текшерүү ESP32 тактаңыздын (же тышкы конвертер жабдык) сериялык портунун түзмөк атын текшерүү үчүн бул буйрукту адегенде тактаны/кесме жабдыкты ажыратып, анан сайылып турганда эки жолу иштетиңиз. Экинчи жолу пайда болгон порт сизге керек болгон порт болуп саналат: Linux
ls /dev/tty*
macOS

Espressif системалары

25 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

14-сүрөт: Windows Device Manager ичиндеги ESP-WROVER-KITтин эки USB сериялык порту

Espressif системалары

26 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

ls /dev/cu.* Эскертүү: macOS колдонуучулары: эгер сиз сериялык портту көрбөсөңүз, анда USB/сериялык драйверлер орнотулганын текшериңиз. Драйверлерге шилтемелер үчүн ESP32ди компьютерге туташтыруу бөлүмүн караңыз. macOS High Sierra (10.13) үчүн драйверлердин жүктөлүшүнө ачык уруксат беришиңиз керек болушу мүмкүн. Системанын артыкчылыктарын ачыңыз -> Коопсуздук жана Купуялык -> Жалпы жана бул жерде иштеп чыгуучунун аты Silicon Labs же FTDI болгон oSystem Программасы жөнүндө бул жерде көрсөтүлгөн билдирүү бар экендигин текшериңиз.

Колдонуучуну Linux'та диалогго кошуу Учурда кирген колдонуучу USB аркылуу сериялык портту окуу жана жазуу мүмкүнчүлүгүнө ээ болушу керек. Көпчүлүк Linux дистрибьютерлеринде бул колдонуучуну төмөнкү буйрук менен диалог тобуна кошуу менен ишке ашырылат:
sudo usermod -a -G dialout $USER
Arch Linux боюнча бул колдонуучуну uucp тобуна төмөнкү буйрук менен кошуу аркылуу ишке ашырылат:
sudo usermod -a -G uucp $USER
Сериялык порт үчүн окуу жана жазуу уруксаттарын иштетүү үчүн кайра киргениңизди текшериңиз.
Сериялык туташууну текшериңиз Эми сериялык туташуунун иштеп жатканын текшериңиз. Муну ESP32ди баштапкы абалга келтиргенден кийин терминалда кандайдыр бир жыйынтык чыгара турганыңызды текшерип, сериялык терминал программасын колдонуу менен жасай аласыз. ESP32деги консолдун демейки ылдамдыгы 115200.
Бул жерде Windows жана Linuxample биз Windows жана Linux үчүн жеткиликтүү болгон PuTTY SSH Client колдонобуз. Сиз башка сериялык программаларды колдонуп, төмөндөгүдөй байланыш параметрлерин орното аласыз. Терминалды иштетиңиз жана аныкталган сериялык портту орнотуңуз. Берүү ылдамдыгы = 115200 (зарыл болсо, аны колдонулуп жаткан чиптин демейки берүү ылдамдыгына өзгөртүңүз), маалымат биттери = 8, токтотуу биттери = 1 жана паритет = N. Төмөндө мурункуample портту орнотуунун скриншоттору жана ушул сыяктуу өткөрүү параметрлери (кыскасы 115200-8-1-N деп сүрөттөлөт) Windows жана Linux. Жогорудагы кадамдарда сиз аныктаган сериялык портту тандоону унутпаңыз. Андан кийин терминалда сериялык портту ачып, ESP32 тарабынан басып чыгарылган журналдарды көрүп жатканыңызды текшериңиз. Журналдын мазмуну ESP32ге жүктөлгөн тиркемеден көз каранды болот, Example Output.
Эскертүү: Байланыш иштеп жатканын текшергенден кийин сериялык терминалды жабыңыз. Терминал сеансын ачык кармасаңыз, кийинчерээк микропрограмманы жүктөө үчүн сериялык порт жеткиликсиз болуп калат.

macOS Сериялык терминал программасын орнотуу кыйынчылыгынан кутулуу үчүн, macOS экран буйругун сунуштайт. · Linux жана macOS'тун Текшерүү портунда талкуулангандай, төмөнкүнү иштетиңиз:

ls /dev/cu.* · Окшош натыйжаны көрүшүңүз керек:

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

/dev/cu.SLAB_

· Чыгуу сиздин компьютериңизге туташтырылган такталардын түрүнө жана санына жараша өзгөрөт. Андан кийин тактаңыздын аппаратынын атын тандап, иштетиңиз (зарыл болсо, o115200p колдонулуп жаткан чиптин демейки берүү ылдамдыгына өзгөртүңүз):

screen /dev/cu.device_name 115200 түзмөк_атын ls /dev/cu.* иштеп жаткан табылган ат менен алмаштырыңыз.

Espressif системалары

27 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

15-сүрөт: Windows'тун PuTTY ичинде сериялык байланышты орнотуу

Espressif системалары

28 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

16-сүрөт: Linux боюнча PuTTYде Сериялык байланышты орнотуу

Espressif системалары

29 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
· Сиз издеп жаткан нерсе - экранда көрсөтүлгөн журнал. Журналдын мазмуну ESP32ге жүктөлгөн тиркемеден көз каранды болот, Example Output. Экран сеансынан чыгуу үчүн териңиз Ctrl-A +.
Эскертүү: Байланыш иштеп жатканын текшергенден кийин экран сессиясынан чыгууну унутпаңыз. Эгер сиз аны аткара албасаңыз жана жөн гана терминалдын терезесин жапсаңыз, кийинчерээк микропрограмманы жүктөө үчүн сериялык порт жеткиликсиз болуп калат.
Example Output An example log төмөндө көрсөтүлгөн. Эч нерсе көрбөсөңүз, тактаны баштапкы абалга келтириңиз. ets 8 июн 2016 00:22:57
биринчи: 0x5 (DEEPSLEEP_RESET), жүктөө: 0x13 (SPI_FAST_FLASH_BOOT) жана 8-июнь 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stage bootloader I (45) жүктөө: компиляция убактысы 18:48:10

Эгер сиз окула турган журналдын чыгышын көрө алсаңыз, бул сериялык туташуу иштеп жатканын билдирет жана сиз орнотууну улантууга жана акырында ESP32ге тиркемени жүктөөгө даярсыз.
Эскертүү: Кээ бир сериялык порт зымдары конфигурациялары үчүн ESP32 жүктөлүп, сериялык чыгарууну чыгара электе, терминалдык программада сериялык RTS & DTR пиндерин өчүрүү керек. Бул аппараттык камсыздоонун өзүнөн көз каранды, көпчүлүк иштеп чыгуу такталарында (анын ичинде бардык Espressif такталарында) бул маселе жок. Эгер RTS жана DTR түз EN & GPIO0 пиндерине туташтырылган болсо, маселе бар. Көбүрөөк маалымат алуу үчүн esptool документтерин караңыз.
Эгер сиз бул жерге 5-кадамдан келген болсоңуз. ESP32ди иштеп чыгуу үчүн s/w орнотууда ESP-IDF боюнча биринчи кадамдар, анда 5-кадам менен уланта аласыз. ESP-IDF боюнча биринчи кадамдар.
IDF Monitor IDF Monitor - бул негизинен сериялык маалыматтарды максаттуу түзмөктөрдүн сериялык портуна жана андан реле берүүчү сериялык терминалдык программа. Ал ошондой эле кээ бир IDF өзгөчө өзгөчөлүктөрүн камсыз кылат. IDF Monitor IDF долбоорунан idf.py мониторду иштетүү аркылуу ишке киргизилиши мүмкүн.
Баскычтоп жарлыктары IDF Monitor менен оңой өз ара аракеттенүү үчүн таблицада берилген баскычтопту колдонуңуз.

Espressif системалары

30 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

Баскычтоптун жарлыгы Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (же A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (же I)
· Ctrl+H (же H)
· Ctrl+X (же X)
Ctrl+C

Акция

Description

Программадан чыгуу Менюдан чыгуу баскычы Меню символунун өзүн пультка жөнөтөт
Чыгуу символунун өзүн пультка жөнөтүңүз
RTS линиясы аркылуу колдонмону тындыруу үчүн жүктөөчүгө максатты баштапкы абалга келтириңиз
RTS аркылуу максаттуу тактаны баштапкы абалга келтириңиз
Долбоорду куруп, жарк этиңиз

Колдонмону түзүңүз жана жарк этиңиз

Экранда журнал чыгарууну токтотуу/ улантуу

Токтоо/ улантуу журналынын чыгышы сакталды file

Токтотуу/ улантуу убактысыamps

басып чыгаруу

Бардык баскычтопторду көрсөтүү

Аны басып, төмөндө берилген баскычтардын бири менен ээрчиңиз.
Максатты RTS линиясы аркылуу жүктөгүчкө баштапкы абалга келтирет (эгер туташкан болсо), такта эч нерсе иштебейт. Башка түзмөктүн ишке киришин күтүшүңүз керек болгондо пайдалуу. Максаттуу тактаны баштапкы абалга келтирет жана RTS линиясы аркылуу тиркемени кайра баштайт (эгер туташкан болсо).
Долбоордун жаркыраган максатын иштетүү үчүн idf_monitorду тындырат, андан кийин idf_monitor ишин улантат. Кандайдыр бир өзгөргөн булак fileлар кайра компиляцияланат, анан кайра жарк этет. Эгерде idf_monitor -E аргументи менен башталса, максаттуу шифрленген флеш иштейт. Колдонмо жаркыраган максатты иштетүү үчүн idf_monitorду тындырат, андан кийин idf_monitorду улантат. Жаркыраган максатка окшош, бирок негизги колдонмо гана курулуп, кайра жарк этет. Эгерде idf_monitor -E аргументи менен башталса, максаттуу шифрленген колдонмо-флеш иштейт. Иштелип жатканда бардык келген сериялык маалыматтарды жокко чыгарат. Монитордон чыкпай туруп, журналдын чыгышын тез тындырууга жана текшерүүгө мүмкүндүк берет. түзөт а file долбоордун каталогунда жана чыгаруу ошол үчүн жазылган file Бул ошол эле клавиатура жарлыктары менен өчүрүлгөнгө чейин (же IDF Монитордон чыкмайынча). IDF Monitor убакытты басып чыгара алатamp ар бир саптын башында. Эң убакытamp формат –timest менен өзгөртүлүшү мүмкүнamp-формат буйрук сабынын аргументи.

Программадан чыгуу

Иштеп жаткан колдонмону үзгүлтүккө учурат

IDF Мониторду тындырат жана GDB долбоорунун мүчүлүштүктөрүн оңдоочу тиркемени иштетүү убагында иштетет. Бул үчүн :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME параметрин иштетүү керек.

Ctrl-] жана Ctrl-T'ден башка басылган ар кандай баскычтар сериялык порт аркылуу жөнөтүлөт.

IDF өзгөчө өзгөчөлүктөрү

Автоматтык даректи чечмелөө ESP-IDF 0x4_______ формасындагы он алтылык код дарегин чыгарган сайын, IDF Monitor баштапкы коддон жайгашкан жерди издөө жана функциянын атын табуу үчүн addr2line_ колдонот.
Эгерде ESP-IDF колдонмосу бузулуп, дүрбөлөңгө түшсө, регистрдин таштандысы жана артка кайтуу түзүлөт, мисалы:

Espressif системалары

31 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

Guru Meditation Ката түрүндөгү StoreProhibited 0 ядросунда пайда болду

иштетилбеген.

Каттоо таштандысы:

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 СЕБЕП:

0x0000001d

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

0x00000000

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

IDF Monitor таштандыга көбүрөөк маалымат кошот:

Guru Meditation Ката түрүндөгү StoreProhibited 0 ядросунда пайда болду

иштетилбеген.

Каттоо таштандысы:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: /home/gus/esp/32/idf/ex дарегинде crash_to_something_do_something_to_crashamples/get-started/

hello_world/main/./hello_world_main.c:57

(киргизилген) inner_dont_crash дарегинде /home/gus/esp/32/idf/examples/get-started/hello_

world/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 СЕБЕП:

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 (киргизилген) inner_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

Ар бир даректи чечмелөө үчүн, IDF Monitor фондо төмөнкү буйрукту иштетет: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

Эскертүү: ESP_MONITOR_DECODE чөйрө өзгөрмөсүн 0 кылып коюңуз же белгилүү бир буйрук сабы менен idf_monitor.py чакырыңыз

Espressif системалары

32 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
параметр: idf_monitor.py – disable-address-decoding даректи чечмелөөнү өчүрүү.
Туташуу боюнча максатты калыбына келтирүү демейки боюнча, IDF Monitor ага туташуу учурунда максатты баштапкы абалга келтирет. Максаттуу чипти баштапкы абалга келтирүү DTR жана RTS сериялык линияларын колдонуу менен жүзөгө ашырылат. IDF Monitor туташуудагы максатты автоматтык түрдө баштапкы абалга келтирүүгө жол бербөө үчүн, IDF Monitorга –no-reset опциясы менен чалыңыз (мисалы, idf_monitor.py –no-reset).
Эскертүү: –no-reset опциясы IDF Monitorди белгилүү бир портко туташтырганда да ошол эле аракетти колдонот (мисалы, idf.py monitor –no-reset -p [PORT]).
GDB'ди GDBStub GDBStub менен ишке киргизүү - бул максаттуу иштеген жана мүчүлүштүктөрдү оңдоо буйруктарын алуу үчүн сериялык порт аркылуу хостко туташкан пайдалуу иштөө убакытындагы мүчүлүштүктөрдү оңдоо өзгөчөлүгү. GDBStub эстутумду жана өзгөрмөлөрдү окуу, чалуу стекти алкактарын изилдөө ж.б. сыяктуу буйруктарды колдойт. GDBStub Jге караганда азыраак көп тараптууTAG мүчүлүштүктөрдү оңдоо, ал эч кандай атайын жабдыктарды талап кылбайт (мисалы, JTAG USB көпүрөсүнө), анткени байланыш толугу менен сериялык порт аркылуу жүргүзүлөт. Максатты CONFIG_ESP_SYSTEM_PANICти GDBStub үчүн аткаруу убагында коюу менен фондо GDBStub иштетүү үчүн конфигурациялоого болот. GDBStub сериялык порт аркылуу Ctrl+C билдирүүсү жөнөтүлмөйүнчө, фондо иштейт жана GDBStub программаны бузуп (б.а. аткарууну токтотуп) алып келет, ошентип GDBStub мүчүлүштүктөрдү оңдоо буйруктарын аткарууга мүмкүндүк берет. Андан тышкары, паника башкаруучуну CONFIG_ESP_SYSTEM_PANICти паникага GDBStub кылып коюу менен GDBStub кыйроодо иштетүү үчүн конфигурацияланса болот. Кырсык болгондо, GDBstub анын иштеп жатканын көрсөтүү үчүн сериялык порттун үстүнөн атайын сап үлгүсүн чыгарат. Эки учурда тең (б.а., Ctrl+C билдирүүсүн жөнөтүү же атайын сап үлгүсүн алуу) IDF Monitor колдонуучуга мүчүлүштүктөрдү оңдоо буйруктарын жөнөтүүгө уруксат берүү үчүн GDBди автоматтык түрдө ишке киргизет. GDB чыккандан кийин, максат RTS сериялык линиясы аркылуу баштапкы абалга келтирилет. Бул линия туташкан эмес болсо, колдонуучулар максатты калыбына келтире алышат (такталарды Reset баскычын басуу менен).
Эскертүү: Фондо IDF Monitor GDBди ишке киргизүү үчүн төмөнкү буйрукту аткарат:
xtensa-esp32-elf-gdb -ex "сериялык берүү BAUD коюу" -экс "максаттык алыскы PORT" -ex үзгүлтүккө салуу build/PROJECT.elf :idf_target:`Салам NAME чип`

Чыгуу чыпкалоо IDF мониторун idf.py monitor –print-filter=”xyz” катары чакырса болот, мында –print-filter – чыгаруу чыпкалоо үчүн параметр. Демейки маани бош сап болуп саналат, бул бардыгы басылганын билдирет.
басып чыгаруу үчүн чектөөлөр сериясы катары көрсөтүлүшү мүмкүнtag>: буюмдар кайдаtag> болуп саналат tag сап жана {N, E, W, I, D, V, *} топтомунун символу болуп саналат, ал журналга жазуу деңгээлине тиешелүү.
Мисалы үчүнample, PRINT_FILTER=”tag1:W" ESP_LOGW менен жазылган жыйынтыктарга гана дал келет жана басып чыгарат("tag1”, …) же төмөнкү кененирээк деңгээлде, б.а. ESP_LOGE(“tag1″, …). А же демейки * демейки деңгээлинде колдонуу.
Эскертүү: Каттоо китепканасы аркылуу сизге кереги жок жыйынтыктарды компиляциялоодо өчүрүү үчүн негизги журналды колдонуңуз. IDF монитору менен чыгууну чыпкалоо - бул тиркемени кайра компиляция кылбастан чыпкалоо параметрлерин тууралоо үчүн пайдалуу боло турган кошумча чечим.
Сиздин колдонмоңуз tags боштуктарды, жылдызчаларды * же кош чекиттерди камтыбашы керек: чыгаруу чыпкалоо өзгөчөлүгү менен шайкеш болушу үчүн.
Колдонмоңуздагы чыгаруунун акыркы сабынан кийин каретанын кайтарылышы болбосо, чыгаруу чыпкалоо чаташып кетиши мүмкүн, башкача айтканда, монитор сапты басып чыгара баштайт жана кийинчерээк сап жазылбашы керек экенин аныктайт. Бул белгилүү маселе жана ар дайым вагон кайтаруусун кошуу менен (айрыкча, андан кийин эч кандай жыйынтык чыкпаса) алдын алууга болот.

Espressif системалары

33 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
Exampчыпкалоо эрежелери:
· * каалаган дал келүү үчүн колдонулушу мүмкүн tags. Бирок, сап PRINT_FILTER=”*:I tag1:E” карата tag1 каталарды гана басып чыгарат, анткени эреже tag1 эрежесине караганда жогорураак артыкчылыкка ээ *.
· Демейки (бош) эреже *:V менен барабар, анткени ар бири дал келет tag Verbose деңгээлинде же төмөнкү бардык нерсеге дал келүүнү билдирет.
· “*:N” журналга жазуу функцияларынын натыйжаларын гана эмес, ошондой эле printf ж.б. аркылуу жасалган басып чыгарууларды да басат. Буга жол бербөө үчүн *:E же жогорураак маалымат деңгээлин колдонуңуз.
· Эрежелерtag1:V”, “tag1:v", "tag1:", "tag1:*”, жана “tag1" эквиваленттүү. · Эреже "tag1: В tag1:E" "ге барабарtag1:E", анткени ошол эле нерсенин ар кандай пайда болушу tag
аты мурункунун үстүнөн жазат. · Эреже "tag1:I tag2:W” гана басып чыгарат tag1 Маалыматтын кеңири деңгээлинде же андан төмөн жана tag2 эскертүү боюнча
көп сөздүк деңгээли же төмөн. · Эреже "tag1:I tag2: В tag3:N” мурункуга дээрлик барабар, анткени tag3:N белгилейт
ошол tag3 басып чыгарууга болбойт. · tag3:N эрежесинде "tag1:I tag2: В tag3:N *:V” мааниси көбүрөөк, анткени жок tag3:N the
tag3 билдирүү басып чыгарылышы мүмкүн; үчүн каталар tag1 жана tag2 көрсөтүлгөн (же төмөнкү) тактык деңгээлинде басылып чыгат жана калганынын баары демейки боюнча басылып чыгат.
Бир кыйла татаал чыпкалоо Example Төмөнкү журнал үзүндүсү эч кандай чыпкалоо опцияларысыз алынды:
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: 0x30000 өлчөмүндөгү сүрөт жараксыз сыйкырдуу байтка ээ W (31) esp_image: 0x30000 сүрөтүндө жараксыз SPI режими бар (E3 тиркемесинин 255 жүктөлүшү мүмкүн эмес) (568) cpu_start: Pro cpu. I (569) heap_init: Баштоо. Динамикалык бөлүштүрүүгө жеткиликтүү RAM: I (603) cpu_start: Pro cpu баштоо колдонуучу коду D (309) light_driver: [light_init, 74]:статус: 1, режим: 2 D (318) vfs: esp_vfs_register_fd_аралыгы <54 диапазон үчүн ийгиликтүү; 64) жана VFS ID 1 I (328) wifi: wifi драйверинин тапшырмасы: 39ffdbf84, prio: 23, стек: 4096, ядро ​​= 0
PRINT_FILTER=”wifi esp_image:E light_driver:I” чыпкалоо параметрлери үчүн алынган жыйынтык төмөндө келтирилген:
E (31) esp_image: 0x30000 өлчөмүндөгү сүрөттө жараксыз сыйкырдуу байт бар I (328) wifi: wifi драйверинин тапшырмасы: 3ffdbf84, prio: 23, стек: 4096, өзөк=0
“PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” параметрлери төмөнкү натыйжаны көрсөтөт:
жүктөө: 0x40078000, лен: 13564 кириш 0x40078d4c I (569) heap_init: Башталууда. RAM динамикалык бөлүштүрүү үчүн жеткиликтүү: D (309) light_driver: [light_init, 74]: статус: 1, режим: 2
IDF Monitor менен белгилүү маселелер
Windowsта байкалган маселелер
· Жебе баскычтары, ошондой эле кээ бир башка баскычтар Windows Консолунун чектөөлөрүнөн улам GDBде иштебейт. · Кээде, oidf.pypexit болгондо, IDF Monitor кайра башталганга чейин 30 секундага чейин токтоп калышы мүмкүн. · Ogdbpis иштегенде, ал GDBStub менен байланыша электе кыска убакытка токтоп калышы мүмкүн.

Espressif системалары

34 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо Linux жана macOS үчүн Стандарттык Toolchain Орнотуу

Кадам-кадам орнотуу Бул орнотуу процесси аркылуу жүрүш үчүн деталдуу жол картасы.
Өнүктүрүү чөйрөсүн орнотуу Булар ESP32 үчүн ESP-IDF орнотуу кадамдары. · 1-кадам. Алдын ала шарттарды орнотуңуз · 2-кадам. ESP-IDF алыңыз · 3-кадам. Куралдарды орнотуңуз · 4-кадам. Айлана-чөйрөнүн өзгөрмөлөрүн орнотуңуз · 5-кадам. ESP-IDF боюнча биринчи кадамдар
1-кадам. Орнотуу Алдын ала шарттар ESP-IDFти ESP32 менен колдонуу үчүн сиз Операция системаңызга негизделген кээ бир программалык пакеттерди орнотушуңуз керек. Бул орнотуу колдонмосу сизге Linux жана macOS негизиндеги тутумдарга орнотулган нерселердин баарын алууга жардам берет.
Linux колдонуучулары үчүн ESP-IDF аркылуу компиляциялоо үчүн төмөнкү пакеттерди алышыңыз керек болот. Иштөө буйругу сиз колдонуп жаткан Linux дистрибуциясына жараша болот:
· Ubuntu жана Debian: sudo apt-get орнотуу 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 & 8: sudo yum -y жаңыртуу && sudo yum орнотуу git wget flex bizon gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 дагы эле колдоого алынат, бирок жакшыраак колдонуучу тажрыйбасы үчүн CentOS 8 версиясы сунушталат. · Arch: sudo pacman -S –needed gcc git make flex bizon gperf python cmake ninja ccache dfu-util libusb
Эскертүү: · ESP-IDF менен колдонуу үчүн CMake 3.16 же андан жаңы версиясы талап кылынат. Эгерде сиздин OS версияларыңызда версия жок болсо, ылайыктуу версияны орнотуу үчүн otools/idf_tools.py орнотуу cmakepти иштетиңиз. · Эгерде сиз Linux дистрибутивиңизди жогорудагы тизмеден көрбөсөңүз, пакетти орнотуу үчүн кайсы буйрукту колдонуу керектигин билүү үчүн анын документтерин текшериңиз.
macOS колдонуучулары үчүн ESP-IDF macOSто демейки боюнча орнотулган Python версиясын колдонот. · CMake & Ninja курулушун орнотуңуз: Эгер сизде HomeBrew болсо, анда сиз: brew install cmake ninja dfu-util Эгер сизде MacPorts бар болсо, анда сиз иштете аласыз: sudo port install cmake ninja dfu-util Болбосо, MacOS орнотууларын жүктөө үчүн CMake жана Ninja үй баракчаларынан кеңеш алыңыз.

Espressif системалары

35 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
· Тезирээк куруу үчүн ccache орнотуу сунушталат. Эгер сизде HomeBrew болсо, муну MacPorts'то brew install ccache же sudo port install ccache аркылуу жасоого болот.
Эскертүү: Эгер кандайдыр бир кадамда ушул сыяктуу ката көрсөтүлсө: xcrun: ката: жараксыз активдүү иштеп чыгуучу жолу (/Library/Developer/CommandLineTools), даректе xcrun жок: /Library/Developer/CommandLineTools/usr/bin/xcrun
Андан кийин улантуу үчүн XCode буйрук сабынын куралдарын орнотушуңуз керек болот. Аларды xcode-select –install иштетүү аркылуу орното аласыз.
Apple M1 колдонуучулары Эгер сиз Apple M1 платформасын колдонсоңуз жана төмөнкүдөй катаны көрсөңүз: ЭСКЕРТҮҮ: куралдын каталогу xtensa-esp32-elf версия esp-2021r2-patch3-8.4.0 бар, бирок курал табылган жок КАТА: xtensa-esp32-elf куралында орнотулган версиялар жок. Аны орнотуу үчүн 'install.sh'ти иштетиңиз.
же: zsh: аткарылуучу процессордун начар түрү: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Андан кийин /usr/sbin/softwareupdate –install-rosetta –agree-to-license иштетүү аркылуу Apple Rosetta 2ди орнотушуңуз керек болот.
Python 3 орнотуу macOS Catalina 10.15 релиз эскертүүлөрүнүн негизинде, Python 2.7 колдонуу сунушталбайт жана Python 2.7 демейки боюнча macOSтун келечектеги версияларында камтылбайт. Учурда сизде кандай Python бар экенин текшериңиз: python -version
Эгерде чыгаруу Python 2.7.17 сыяктуу болсо, сиздин демейки котормочуңуз Python 2.7. Эгер ошондой болсо, Python 3 сиздин компьютериңизде орнотулган эмес экенин да текшериңиз: python3 -версия
Эгерде жогорудагы буйрук катаны кайтарса, бул Python 3 орнотулган эмес дегенди билдирет. Төмөндө бүттүview Python 3 орнотуу үчүн кадамдар.
· HomeBrew менен орнотуу төмөнкүдөй аткарылышы мүмкүн: brew install python3
· Эгер сизде MacPorts болсо, анда сиз иштете аласыз: sudo port install python38
2-кадам. ESP-IDF алыңыз ESP32 үчүн тиркемелерди түзүү үчүн сизге ESP-IDF репозиторийинде Espressif тарабынан берилген программалык китепканалар керек. ESP-IDF алуу үчүн, орнотуу каталогуңузга өтүңүз жана операциялык тутумуңузга тиешелүү төмөнкү нускамаларды аткарып, репозиторийди git clone менен клондоңуз. Терминалды ачып, төмөнкү буйруктарды аткарыңыз:

Espressif системалары

36 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –рекурсивдүү https://github.com/espressif/esp-idf.git
ESP-IDF ~/esp/esp-idfге жүктөлөт. Берилген кырдаалда кайсы ESP-IDF версиясын колдонуу керектиги жөнүндө маалымат алуу үчүн ESP-IDF версияларына кайрылыңыз.
3-кадам. Куралдарды орнотуу ESP-IDFден тышкары, ESP32ди колдогон долбоорлор үчүн компилятор, мүчүлүштүктөрдү оңдоочу, Python топтомдору ж.б. сыяктуу ESP-IDF колдонгон куралдарды орнотуу керек. cd ~/esp/esp-idf ./install.sh esp32
же Fish shell cd ~/esp/esp-idf ./install.fish esp32 менен
Жогорудагы буйруктар ESP32 үчүн гана куралдарды орнотот. Эгер сиз көбүрөөк чип максаттары үчүн долбоорлорду иштеп чыгууну кааласаңыз, анда алардын бардыгын тизмектеп, мурункуга чуркашыңыз керекample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
же Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2 менен
Бардык колдоого алынган максаттар үчүн куралдарды орнотуу үчүн төмөнкү буйрукту аткарыңыз: cd ~/esp/esp-idf ./install.sh all
же Балык кабыгы менен cd ~/esp/esp-idf ./install.fish all
Эскертүү: MacOS колдонуучулары үчүн, эгер кандайдыр бир кадамда ушул сыяктуу ката көрсөтүлсө:urlачык ката [SSL: CERTIFICATE_VERIFY_FAILED] тастыктамасы текшерилбей калды: жергиликтүү эмитенттин сертификатын алуу мүмкүн эмес (_ssl.c:xxx)
Сертификаттарды орнотуу үчүн компьютериңиздин Python папкасында Install Certificates.command иштетсеңиз болот. Чоо-жайы үчүн ESP-IDF куралдарын орнотуу учурундагы Жүктөп алуу катасын караңыз.

Альтернатива File Жүктөлүп алынгандар Куралдарды орнотуучу бир катар жүктөйт files GitHub Releases тиркелет. Эгер GitHub'ка кирүү жай болсо, анда GitHub активдерин жүктөө үчүн Espressifns жүктөө серверине артыкчылык берүү үчүн чөйрө өзгөрмөсүн коюуга болот.

Эскертүү: Бул жөндөө GitHub релиздеринен жүктөлүп алынган жеке инструменттерди гана көзөмөлдөйт, ал өзгөртпөйт URLар кандай Git репозиторийлерине кирүү үчүн колдонулат.

Аспаптарды орнотууда Espressif жүктөө серверине артыкчылык берүү үчүн install.sh иштетип жатканда төмөнкү буйруктардын ырааттуулугун колдонуңуз:

Espressif системалары

37 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

cd ~/esp/esp-idf экспорту IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Куралдарды орнотуу жолун ыңгайлаштыруу Бул кадамда киргизилген скрипттер ESP-IDF тарабынан талап кылынган компиляция куралдарын колдонуучунун үй каталогуна орнотот: Linux боюнча $HOME/.espressif. Куралдарды башка каталогго орноткуңуз келсе, орнотуу скрипттерин иштетүүдөн мурун IDF_TOOLS_PATH чөйрө өзгөрмөсүн коюңуз. Колдонуучу каттоо эсебиңизде бул жолду окуу жана жазуу үчүн жетиштүү уруксаттар бар экенин текшериңиз. IDF_TOOLS_PATH өзгөртүлсө, Орнотуу скрипти (install. bat, install.ps1 же install.sh) жана Экспорттук скрипт (export.bat, export.ps1 же export.sh) аткарылган сайын анын бирдей мааниге коюлганын текшериңиз.
4-кадам. Айлана-чөйрө өзгөрмөлөрүн орнотуу Орнотулган куралдар PATH чөйрө өзгөрмөсүнө али кошула элек. Куралдарды буйрук сабынан колдонууга жарактуу кылуу үчүн кээ бир чөйрө өзгөрмөлөрү коюлушу керек. ESP-IDF муну жасай турган башка скрипт менен камсыз кылат. ESP-IDF колдоно турган терминалда:
. $HOME/esp/esp-idf/export.sh
же балык үчүн (балык 3.0.0 версиясынан бери гана колдоого алынат):
. $HOME/esp/esp-idf/export.fish
Алдыңкы чекит менен жолдун ортосундагы боштукка көңүл буруңуз! Эгер сиз esp-idfти тез-тез колдонууну пландаштырсаңыз, анда export.sh файлын аткаруу үчүн лакап ат түзө аласыз:
1. Төмөнкү буйрукту shellns proңузга көчүрүп, чаптаңызfile (.profile, .bashrc, .zprofile, жана башкалар.)
лакап ат get_idf='. $HOME/esp/esp-idf/export.sh' 2. Конфигурацияны терминалдык сеансты кайра иштетүү же булакты иштетүү менен жаңыртыңыз [pro.file],
мисалы үчүнample, булак ~/.bashrc. Эми сиз каалаган терминалдык сессияда esp-idf чөйрөсүн орнотуу же жаңыртуу үчүн get_idf иштете аласыз. Техникалык жактан алганда, сиз shellns proңузга export.sh кошо аласызfile түздөн-түз; бирок, бул сунуш кылынбайт. Мындай кылуу IDF виртуалдык чөйрөсүн ар бир терминалдык сессияда активдештирет (анын ичинде IDF кереги жок жерлерде), виртуалдык чөйрөнүн максатын бузуп, башка программалык камсыздоого таасир этиши мүмкүн.
5-кадам. ESP-IDF боюнча алгачкы кадамдар Эми бардык талаптар аткарылгандыктан, кийинки тема сизге биринчи долбооруңузду кантип баштоону үйрөтөт. Бул колдонмо сизге ESP-IDF аркылуу биринчи кадамдарды жасоодо жардам берет. ESP32де жаңы долбоорду баштоо жана түзмөктүн чыгышын куруу, жарк кылуу жана көзөмөлдөө үчүн бул колдонмону аткарыңыз.
Эскертүү: Эгер сиз ESP-IDF орното элек болсоңуз, бул колдонмону колдонуу үчүн керектүү программалык камсыздоону алуу үчүн Орнотуу бөлүмүнө өтүп, нускаманы аткарыңыз.

Долбоорду баштоо Эми сиз ESP32 үчүн арызыңызды даярдоого даярсыз. Сиз мурункудан getstarted/hello_world долбоору менен баштасаңыз болотamples каталогу ESP-IDF.

Маанилүү иш: ESP-IDF куруу системасы ESP-IDFге же долбоорлорго баруучу жолдордогу боштуктарды колдобойт.

Долбоорду баштоо/hello_world ~/esp каталогуна көчүрүңүз:

Espressif системалары

38 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Эскертүү: мурунку бир катар барample долбоорлор эксamples каталогу ESP-IDF. Каалаган долбоорду жогоруда көрсөтүлгөндөй көчүрүп алып, иштете аласыз. Ошондой эле экс курууга болотamples in-place аларды биринчи көчүрбөй туруп.
Түзмөгүңүздү туташтырыңыз Эми ESP32 тактаңызды компьютерге туташтырыңыз жана такта кайсы сериялык порттун астында көрүнүп турганын текшериңиз. Сериялык порттордо төмөнкү аталыштар бар:
· Linux: /dev/tty менен башталат · macOS: /dev/cu менен башталат. Сериялык порттун атын кантип текшерүүнү билбесеңиз, толук чоо-жайын билүү үчүн ESP32 менен Сериялык туташууну орнотуу бөлүмүнө кайрылыңыз.
Эскертүү: Порттун аталышын колдо болуңуз, анткени ал кийинки кадамдарда керек болот.
Долбооруңузду конфигурациялаңыз hello_world каталогуңузга чабыттап, ESP32ди максат катары коюңуз жана долбоордун конфигурациялоочу утилитасын менюконфигурациясын иштетиңиз. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Жаңы долбоорду ачкандан кийин, алгач idf.py set-target esp32 менен максатты коюшуңуз керек. Долбоордогу бар түзүүлөр жана конфигурациялар, эгерде бар болсо, бул процессте тазаланып, инициализацияланарын эске алыңыз. Бул кадамды таптакыр өткөрүп жиберүү үчүн максат чөйрө өзгөрмөсүндө сакталышы мүмкүн. Кошумча маалымат үчүн Максаттуу чипти тандоо: максаттуу белгини караңыз. Эгер мурунку кадамдар туура аткарылса, төмөнкү меню пайда болот:

17-сүрөт: Долбоордун конфигурациясы – Башкы терезе Сиз бул менюну долбоордун конкреттүү өзгөрмөлөрүн орнотуу үчүн колдонуп жатасыз, мисалы, Wi-Fi тармагынын аталышы жана сырсөзү, процессордун ылдамдыгы ж.б. Менюконфигурациялоо менен долбоорду орнотууну forohello_worldp өткөрүп жиберүүгө болот, анткени бул мурункуampменен чуркайт

Espressif системалары

39 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
демейки конфигурация.
Көңүл буруңуз: Эгер сиз ESP32-DevKitC тактасын ESP32-SOLO-1 модулу менен же ESP32-DevKitM-1 тактасын ESP32-MIN1-1(1U) модулу менен колдонсоңуз, мурунку жаркыраганга чейин менюконфигурациясында бир өзөктүү режимди (CONFIG_FREERTOS_UNICORE) иштетиңизamples.
Эскертүү: Менюнун түстөрү терминалыңызда ар кандай болушу мүмкүн. Сиз -стиль опциясы менен көрүнүшүн өзгөртө аласыз. Сураныч, кошумча маалымат үчүн idf.py menuconfig –help программасын иштетиңиз.
Эгер сиз колдоого алынган өнүктүрүү такталарынын бирин колдонуп жатсаңыз, Board Support Package аркылуу өнүгүүңүздү тездете аласыз. Көбүрөөк маалымат үчүн Кошумча кеңештерди караңыз.
Долбоорду куруу Долбоорду иштетүү менен куруңуз:
idf.py куруу
Бул буйрук тиркемени жана бардык ESP-IDF компоненттерин компиляциялайт, андан кийин жүктөгүчтү, бөлүм таблицасын жана тиркеме бинарларын жаратат.
$ idf.py build /path/to/hello_world/build каталогунда cmake иштетилүүдө “cmake -G Ninja –warn-uninitialized /path/to/hello_world”... Башталбаган маанилер жөнүндө эскертиңиз. — Табылды Git: /usr/bin/git («2.17.0» версиясы табылган) — Конфигурациядан улам бош aws_iot компонентин куруу — Компоненттин аттары: … — Компоненттин жолдору: …
… (куруу тутумунун чыгышынын көбүрөөк саптары)
[527/527] hello_world.bin esptool.py v2.3.1 түзүлүүдө
Долбоордун курулушу аяктады. Жаркылдоо үчүн бул буйрукту аткарыңыз: ../../../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 же "idf.py -p PORT flash" иштетиңиз
Эгерде эч кандай каталар жок болсо, куруу микропрограмманын бинардык .bin түзүү менен аяктайт files.
Түзмөктө жаркылдап, сиз жаңы эле курган бинардык файлдарды (bootloader.bin, partition-table.bin жана hello_world.bin) ESP32 тактаңызга иштетүү аркылуу жарк этиңиз:
idf.py -p PORT [-b BAUD] жарк
PORTту ESP32 тактасынын сериялык портунун аталышы менен алмаштырыңыз. Сиз ошондой эле BAUDди сизге керектүү берүү ылдамдыгы менен алмаштыруу менен жаркыраткычтын ылдамдыгын өзгөртө аласыз. Демейки берүү ылдамдыгы 460800. idf.py аргументтери боюнча көбүрөөк маалымат алуу үчүн idf.py дарегин караңыз.
Эскертүү: Flash опциясы долбоорду автоматтык түрдө куруп, жаркыратат, андыктан idf.py түзүүнү иштетүү зарыл эмес.

Espressif системалары

40 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо

Жаркылдап жатканда көйгөйлөргө туш болдуңузбу? Эгер сиз берилген буйрукту иштетсеңиз жана туташуу мүмкүн эмесп сыяктуу каталарды көрсөңүз, мунун бир нече себеби болушу мүмкүн. Себептердин бири чипти баштапкы абалга келтирүү, ROM жүктөгүч менен иштешүү жана флеш микропрограммасы үчүн куруу тутуму тарабынан чакырылган esptool.py, пайда болгон маселелер болушу мүмкүн. Төмөндө сүрөттөлгөн кол менен баштапкы абалга келтирүү аракети үчүн жөнөкөй чечим болуп саналат жана ал жардам бербесе, Мүчүлүштүктөрдү аныктоо бөлүмүнөн мүмкүн болгон маселелер тууралуу кененирээк маалымат таба аласыз.
esptool.py ESP32ди автоматтык түрдө баштапкы абалга келтирет жана USB-ди сериялык конвертер микросхемасынын DTR жана RTS башкаруу линияларын, б.а., FTDI же CP210x (көбүрөөк маалымат үчүн, ESP32 менен Сериялык туташуу орнотууну караңыз). DTR жана RTS башкаруу линиялары өз кезегинде ESP32 GPIO0 жана CHIP_PU (EN) пиндерине туташтырылган, ошентип көлөмдөгү өзгөрүүлөрtagDTR жана RTS деңгээли ESP32ди Firmware Download режимине жүктөйт. Экс катарыample, ESP32 DevKitC өнүктүрүү тактасынын схемасын текшериңиз.
Жалпысынан алганда, сизде расмий esp-idf өнүктүрүү такталары менен эч кандай көйгөйлөр болбойт. Бирок, esptool.py төмөнкү учурларда сиздин жабдыкты автоматтык түрдө баштапкы абалга келтире албайт:
· Сиздин аппараттык камсыздооңузда GPIO0 жана CHIP_PU менен туташкан DTR жана RTS линиялары жок · DTR жана RTS линиялары башкача конфигурацияланган · Мындай сериялык башкаруу линиялары такыр жок.
Сизде бар жабдыктын түрүнө жараша, ESP32 тактаңызды микропрограмманы жүктөө режимине (кайра коюу) кол менен коюу да мүмкүн болушу мүмкүн.
· Espressif тарабынан чыгарылган иштеп чыгуу такталары үчүн бул маалыматты тиешелүү баштоо колдонмолорунан же колдонуучу колдонмолорунан тапса болот. Мисалы үчүнample, ESP-IDF иштеп чыгуу тактасын кол менен баштапкы абалга келтирүү үчүн Жүктөө баскычын (GPIO0) басып кармап, EN баскычын (CHIP_PU) басыңыз.
· Аппараттык камсыздоонун башка түрлөрү үчүн GPIO0 ылдый тартып көрүңүз.

Кадимки иштөө Жарк эткенде, сиз төмөнкүгө окшош чыгуу журналын көрөсүз:
… 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 0x8000000 partition table_table/partition. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Сериялык порт /dev/ttyUSB0 Туташуу…….._ Чип – ESP32D0WDQ6 (ревизия 0) Өзгөчөлүктөрү: WiFi, BT, Dual Core, C0MHz коддоо схемасы жок: MAC4 24:0a:c4:05:b9:14 Жүктөө stub… Иштеп жаткан stub… Stub иштеп жатат… Берүү ылдамдыгы 460800 болуп өзгөртүлдү. Флэш өлчөмү конфигурацияланууда… 3072 байттан 103кө чейин кысылган… 0x00008000… (100 %) менен жазуу 0.0 секундада 3072 байт (103 кысылган) 0,0 секундада жазды (эффективдүү 5962.8 кбит/сек маалымат)…. 26096 байттан 15408ге чейин кысылган… 0x00001000… (100 %) жазууда 0.4 секундада 26096 байт (15408 кысылган) 0,4 секундада жазды (эффективдүү 546.7 кбит/сек маалымат)…. Кысылган 147104 байт 77364… 0x00010000… (20 %) 0x00014000… (40 %) менен жазылууда… 0x00018000… (60 %) менен жазылууда…
(уландысы кийинки бетте)

Espressif системалары

41 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
(мурунку беттин уландысы) 0x00020000… (100 %) жазуу 1.9 секундада 0x00010000 147104 байт (77364 кысылган) жазды (эффективдүү 615. 5 кбит/с)… Маалымат хэштери текшерилди.
Чыгууда… RTS пин аркылуу катуу баштапкы абалга келтирүү… Бүттү
Флэш процессинин аягына чейин эч кандай маселе болбосо, такта кайра жүктөлөт жана theohello_worldpapplication иштей баштайт. Эгер сиз idf.py иштетүүнүн ордуна Eclipse же VS Code IDE колдонгуңуз келсе, Eclipse Plugin, VSCode кеңейтүүсүн текшериңиз.
Чыгууга мониторинг жүргүзүү ohello_worldpis чындап эле иштеп жатканын текшерүү үчүн idf.py -p PORT monitor деп териңиз (портту сериялык порт аты менен алмаштырууну унутпаңыз). Бул буйрук IDF Monitor тиркемесин ишке киргизет:
$ idf.py -б монитор Каталогдо idf_monitor иштетилүүдө […]/esp/hello_world/build “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”…mon” ишке ашырылууда. 115200 —– Чыгыңыз: Ctrl+] | Меню: Ctrl+T | Жардам: Ctrl+T жана андан кийин Ctrl+H –ets Jun 8 2016 00:22:57
биринчи: 0x1 (POWERON_RESET), жүктөө: 0x13 (SPI_FAST_FLASH_BOOT) жана 8-июнь 2016 00:22:57 …
Ишке киргизүү жана диагностикалык журналдар өйдө жылдыргандан кийин, тиркеме басып чыгарган oHello world!
… Салам дүйнө! 10 секунддан кийин өчүрүлүп күйгүзүлөт… Бул 2 CPU ядросу(лары), WiFi/BT/BLE, кремний версиясы 1, 2МБ тышкы жаркыраган esp32 чип. Минималдуу бош үймөктүн көлөмү: 298968 байт 9 секундда өчүрүлөт… 8 секундда өчүрүлөт… 7 секундда өчүрүлөт…
IDF мониторунан чыгуу үчүн Ctrl+] жарлыгын колдонуңуз. Эгерде IDF монитору жүктөлгөндөн көп өтпөй иштебей калса, же жогорудагы билдирүүлөрдүн ордуна төмөндө келтирилгенге окшош туш келди таштандыны көрсөңүз, анда сиздин тактаңыз 26 МГц кристалл колдонуп жаткандыр. Көпчүлүк иштеп чыгуу тактасынын конструкциялары 40 МГц колдонушат, ошондуктан ESP-IDF бул жыштыкты демейки маани катары колдонот.

Эгер сизде ушундай көйгөй болсо, төмөнкүнү аткарыңыз:
1. Монитордон чыгыңыз. 2. Меню конфигурациясына кайтуу. 3. Компоненттин конфигурациясы > Аппараттык камсыздоонун жөндөөлөрү > Негизги XTAL конфигурациясы > Негизги XTAL дегенге өтүңүз
жыштык, андан кийин CONFIG_XTAL_FREQ_SELди 26 МГц кылып өзгөртүңүз. 4. Андан кийин, тиркемени кайра куруп, жарк этиңиз.

Espressif системалары

42 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
ESP-IDF учурдагы версиясында, ESP32 тарабынан колдоого алынган негизги XTAL жыштыктары төмөнкүдөй:
· 26 МГц · 40 МГц
Эскертүү: Сиз куруу, жаркыруу жана мониторинг жүргүзүүнү бир кадамга айкалыштыра аласыз: idf.py -p PORT флеш монитору
Ошондой эле караңыз: · Ыңгайлуу жарлыктарды жана IDF мониторду колдонуу боюнча көбүрөөк маалымат алуу үчүн IDF Monitor. · idf.py idf.py буйруктарынын жана варианттарынын толук маалыматы үчүн.
Бул ESP32 менен баштоо үчүн зарыл болгон нерселердин баары! Эми сиз башка экс-ди сынап көрүүгө даярсызamples, же түз эле өз тиркемелериңизди иштеп чыгууга өтүңүз.
Маанилүү: кээ бир мурункуamples ESP32ди колдобойт, анткени талап кылынган жабдык ESP32ге кирбегендиктен, аны колдоого болбойт. Эгерде мурунку курууample, сураныч, README текшериңиз file Колдоого алынган максаттар таблицасы үчүн. Эгер бул ESP32 максаттуу, анын ичинде бар болсо, же таблица такыр жок болсо, мурункуample ESP32де иштейт.
Кошумча кеңештер
Уруксат көйгөйлөрү /dev/ttyUSB0 Кээ бир Linux дистрибьюторлору менен ESP32ди жаркылдатканда, сиз /dev/ttyUSB0 портун ачууда ката тууралуу кабарды алышыңыз мүмкүн. Бул учурдагы колдонуучуну сүйлөшүү тобуна кошуу менен чечилет.
Python шайкештиги ESP-IDF Python 3.7 же андан жаңысын колдойт. Бул талапты канааттандырган акыркы версияга операциялык системаңызды жаңыртуу сунушталат. Башка варианттарга булактардан Python орнотуу же pyenv сыяктуу Python версиясын башкаруу тутумун колдонуу кирет.
Башкарманын колдоо топтомунан баштаңыз Кээ бир иштеп чыгуу такталарында прототип түзүүнү тездетүү үчүн, сиз тактаны колдоо пакеттерин (BSPs) колдонсоңуз болот, бул белгилүү бир тактаны инициализациялоону бир нече функцияга чалуу сыяктуу жеңил кылат. BSP адатта иштеп чыгуу тактасында берилген бардык жабдык компоненттерин колдойт. Pinout аныктоо жана инициализация функцияларынан тышкары, BSP сенсорлор, дисплейлер, аудио кодектер ж.б. сыяктуу тышкы компоненттер үчүн драйверлер менен жөнөтүлөт. BSP'лер IDF Component Manager аркылуу таратылат, ошондуктан аларды IDF Component Registry'ден тапса болот. Херенс мурдагыampСиздин долбоорго ESP-WROVER-KIT BSP кантип кошуу керек: idf.py add-dependency esp_wrover_kit
More exampBSP колдонуу les BSP экс тапса болотamples папкасы.
Кеңеш: ESP-IDF жаңыртуу ESP-IDF мезгил-мезгили менен жаңыртып туруу сунушталат, анткени жаңыраак версиялар мүчүлүштүктөрдү оңдойт жана/же жаңы функцияларды берет. Эсиңизде болсун, ар бир ESP-IDF негизги жана кичи релиз версиясында тиешелүү колдоо мезгили бар жана бир релиз бутагы өмүрүнүн акырына (EOL) жакындап калганда, бардык колдонуучулар долбоорлорун акыркы ESP-IDF релизине жаңыртуу, колдоо мөөнөттөрү жөнүндө көбүрөөк билүү үчүн ESP-IDF версияларын караңыз.

Espressif системалары

43 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

1-бөлүм. Баштоо
Жаңыртуунун эң жөнөкөй жолу - 2-кадамда сүрөттөлгөн баштапкы орнотууну аткарып жаткандай, учурдагы esp-idf папкасын жок кылуу жана аны кайра клондоо. ESP-IDF алыңыз. Дагы бир чечим - өзгөргөн нерсени гана жаңыртуу. Жаңыртуу процедурасы сиз колдонуп жаткан ESP-IDF версиясына жараша болот. ESP-IDF жаңыртылгандан кийин, жаңы ESP-IDF версиясы куралдардын ар кандай версияларын талап кылса, Орнотуу скриптин кайра аткарыңыз. 3-кадамдагы нускамаларды караңыз. Куралдарды орнотуңуз. Жаңы инструменттер орнотулгандан кийин, Экспорттук скриптти колдонуп чөйрөнү жаңыртыңыз. 4-кадамдагы нускамаларды караңыз. Айлана-чөйрө өзгөрмөлөрүн орнотуңуз.
Тиешелүү документтер · ESP32 менен сериялык туташууну түзүү · Eclipse Plugin · VSCode кеңейтүүсү · IDF Monitor
1.4 Биринчи долбооруңузду түзүңүз
Эгер сизде мурунтан эле ESP-IDF орнотулган болсо жана IDE колдонбосо, Windows'до Долбоорду баштоо же Linux жана macOSто Долбоорду баштоодон кийинки буйрук сабынан биринчи долбооруңузду кура аласыз.
1.5 ESP-IDF орнотуудан чыгаруу
Эгер сиз ESP-IDF-ди алып салгыңыз келсе, ESP-IDF-ны жок кылууну аткарыңыз.

Espressif системалары

44 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

2-бөлүм
API шилтемеси
2.1 API Конвенциялары
Бул документ ESP-IDF Колдонмо программалоо интерфейстерине (API) жалпы конвенцияларды жана божомолдорду сүрөттөйт. ESP-IDF программалоо интерфейстеринин бир нече түрүн камсыз кылат:
· C функциялары, структуралары, тизмелери, типтин аныктамалары жана жалпы темада жарыяланган препроцессордук макростар fileESPIDF компоненттеринин с. Программалоо боюнча колдонмонун API Reference бөлүмүндөгү ар кандай баракчалар бул функциялардын, структуралардын жана типтердин сүрөттөмөлөрүн камтыйт.
· Системалык функцияларды, алдын ала аныкталган өзгөрмөлөрдү жана опцияларды түзүңүз. Булар куруу тутумунун колдонмосунда документтештирилген. · Kconfig параметрлерин коддо жана куруу системасында колдонсо болот (CMakeLists.txt) fileс. · Хост куралдары жана алардын буйрук сабынын параметрлери да ESP-IDF интерфейсинин бир бөлүгү болуп саналат. ESP-IDF атайын ESP-IDF үчүн жазылган компоненттерден, ошондой эле үчүнчү тараптын китепканаларынан турат. Кээ бир учурларда, үчүнчү тараптын китепканасына ESP-IDF спецификалык орогуч кошулат, ал ESP-IDF объекттеринин калгандары менен жөнөкөй же жакшыраак интеграцияланган интерфейсти камсыз кылат. Башка учурларда, үчүнчү тараптын китепканасынын түпнуска API'си тиркемени иштеп чыгуучуларга берилет. Кийинки бөлүмдөр ESP-IDF API'леринин айрым аспектилерин жана аларды колдонууну түшүндүрөт.
2.1.1 Ката иштөө
Көпчүлүк ESP-IDF API'лери esp_err_t түрү менен аныкталган ката коддорун кайтарат. Ката менен иштөө ыкмалары жөнүндө көбүрөөк маалымат алуу үчүн Ката менен иштөө бөлүмүн караңыз. Ката кодунун маалымдамасы ESP-IDF компоненттери тарабынан кайтарылган ката коддорунун тизмесин камтыйт.
2.1.2 Конфигурация структуралары
Маанилүү: Конфигурация түзүмдөрүн туура инициализациялоо ESP-IDFтин келечектеги версиялары менен тиркемени шайкеш келтирүүнүн маанилүү бөлүгү болуп саналат.
ESP-IDFдеги көпчүлүк инициализация же конфигурация функциялары конфигурация структурасына көрсөткүчтү аргумент катары кабыл алат. Мисалы үчүнampле:
45

2-бөлүм. API шилтемеси

const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = "менин_таймерим"
}; esp_timer_handle_t my_timer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
Инициализация функциялары эч качан көрсөткүчтү конфигурация түзүмүнө сактабайт, андыктан структураны стекке бөлүштүрүү коопсуз.
Колдонмо түзүмдүн бардык талааларын инициализациялоого тийиш. Төмөнкүлөр туура эмес:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Туура эмес! .arg жана .name талаалары инициализацияланган эмес */ esp_timer_create(&my_timer_args, &my_timer);
Көпчүлүк ESP-IDF мурункуamples структурасын инициализациялоо үчүн C99 тарабынан дайындалган инициализаторлорду колдонушат, анткени алар талаалардын чакан топтомун орнотуунун жана калган талааларды нөлгө инициалдаштыруунун кыска жолун камсыз кылат:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Туура, .arg жана .name талаалары нөлгө инициализацияланган */
};
C++ тили C++20 чейин белгиленген инициализаторлордун синтаксисин колдобойт, бирок GCC компилятору аны кеңейтүү катары жарым-жартылай колдойт. C++ кодунда ESP-IDF API'лерин колдонууда, сиз төмөнкү үлгүнү колдонууну ойлонушуңуз мүмкүн:
esp_timer_create_args_t my_timer_args = {}; /* Бардык талаалар нөлгө инициализацияланган */ my_timer_args.callback = &my_timer_callback;

Демейки инициализаторлор
Кээ бир конфигурация структуралары үчүн ESP-IDF талаалардын демейки маанилерин орнотуу үчүн макросторду камсыз кылат:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG дайындалган инициализаторго кеңейет.
Эми бардык талаалар демейки маанилерге коюлду. Каалаган талааны дагы эле өзгөртүүгө болот: */ config.server_port = 8081; httpd_handle_t сервери; esp_err_t err = httpd_start(&сервер, &конфигурация);
Демейки инициализатор макростору белгилүү бир конфигурация түзүмү үчүн берилгенде колдонуу сунушталат.

2.1.3 Жеке API'лер
Белгилүү баш сөз fileESP-IDF ичиндеги s колдонмолор тарабынан эмес, ESP-IDF булак кодунда гана колдонууга арналган API'лерди камтыйт. Мындай баш files көбүнчө атында же жолунда купуя же esp_private камтыйт. Hal сыяктуу айрым компоненттер жеке API'лерди гана камтыйт. Жеке API'лер майда же патч чыгаруулардын ортосунда шайкеш келбеген жол менен алынып салынышы же өзгөртүлүшү мүмкүн.

2.1.4 Компоненттер эксample долбоорлор
ESP-IDF мурункуamples ESP-IDF API'лерин колдонууну көрсөткөн ар кандай долбоорлорду камтыйт. Коддун кайталанышын азайтуу үчүн эксamples, бир нече жалпы жардамчы бир нече экс тарабынан колдонулган компоненттердин ичинде аныкталганamples.

Espressif системалары

46 Документ боюнча пикир жөнөтүү

v5.0.9 чыгаруу

2-бөлүм. API шилтемеси
Бул жайгашкан компоненттерди камтыйт

Документтер / Ресурстар

Espressif Systems ESP32 Dev Kitc өнүктүрүү кеңеши [pdf] Колдонуучунун колдонмосу
ESP32 Dev Kitc өнүктүрүү кеңеши, ESP32, Dev Kitc өнүктүрүү кеңеши, Kitc өнүктүрүү кеңеши, өнүктүрүү кеңеши, башкармалык

Шилтемелер

Комментарий калтырыңыз

Сиздин электрондук почта дарегиңиз жарыяланбайт. Талап кылынган талаалар белгиленген *