ESP32 Dev Kitc Хөгжлийн Зөвлөл

Бүтээгдэхүүний мэдээлэл

Үзүүлэлтүүд

  • Бүтээгдэхүүн: ESP32
  • Програмчлалын гарын авлага: ESP-IDF
  • Хувилбарын хувилбар: v5.0.9
  • Үйлдвэрлэгч: Espressif Systems
  • Гарсан огноо: 16 оны 2025-р сарын XNUMX

Бүтээгдэхүүнийг ашиглах заавар

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-тэй холбоотой нийтлэг асуудлуудыг хэрхэн шийдвэрлэх вэ?

Х: Програмчлалын гарын авлагын алдааг олж засварлах хэсгийг үзнэ үү
эсвэл үйлдвэрлэгчид зочилно уу webтуслах нөөцийн сайт.

Асуулт: Би ESP-IDF-г бусад микроконтроллеруудтай хамт ашиглаж болох уу?

Х: ESP-IDF тусгайлан ESP32-д зориулагдсан боловч та олж мэднэ
бусад Espressif микроконтроллеруудтай нийцтэй байх.

ESP32
ESP-IDF програмчлалын гарын авлага
Espressif Systems v5.0.9 хувилбар 2025 оны 5-р сарын 16

Агуулгын хүснэгт

Агуулгын хүснэгт

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 Хувийн APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.2.14 IP сүлжээний давхарга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

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

2.3.1 Bluetooth® нийтлэг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Сүлжээний APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

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

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

2.5.3 Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Inter-integrated Circuit (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Inter-IC Sound (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED удирдлага (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Моторын удирдлагын импульсийн өргөн модулятор (MCPWM) . . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Импульсийн тоолуур (PNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Алсын удирдлагатай дамжуулагч (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 Хадгалах 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 Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Timer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Over The Air Updates (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Гүйцэтгэлийн хяналт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 allocation 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 гаруйview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Ашиглалтын горимууд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Тохиргооны сонголтууд ба хамаарал . . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Энэхүү номын санг хэрхэн ашиглах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Програмыг эхлүүлэх урсгал . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 Эхний сtage ачаалагч. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 секундtage ачаалагч. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Програмыг эхлүүлэх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

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

4.3.1 гаруйview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® бага эрчим хүч . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 гаруйview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Харуул нохой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.7 Ачаалагчийн хэмжээ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Deep Sleep-ээс хурдан ачаалах. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Захиалгат ачаалагч . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Системийг бий болгох. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 гаруйview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Бүтээлийн системийг ашиглах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 Жишээ ньample Төсөл. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Төслийн CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Бүрэлдэхүүн хэсэг CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Жишээ ньample 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 System-с шилжих . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Гол овоолгын . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Сэрүүлэлтийн бүдүүвчний дүрэм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Stub-ийг хэрэгжүүлэх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Кодыг RTC санах ойд ачаалах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 RTC санах ойд өгөгдөл ачаалах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC-ийн Сэрүүлгийн бүдүүвчийг шалгах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 WITHOT_BORT макро . . . . . . . . . . . . . . . . . . . . . 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++ Үл хамаарах зүйлүүд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Mesh Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth үйл явдлууд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Аюултай алдаа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Илүүview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Үймээн самуунтай тэмцэх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Бүртгэл Дамп ба Буцах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Шифрлэгдсэн флаш дахь өгөгдлийг унших, бичих . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Шифрлэгдсэн флашыг шинэчлэх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Холбогч скрипт үүсгэх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Илүүview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Түргэн эхлүүлэх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Холбогч скрипт үүсгэх дотоод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 (өгөгдлийн RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Зааварчилгааны RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (флэшээс гүйцэтгэсэн код) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (flash-д хадгалагдсан өгөгдөл) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Гүйцэтгэлийн . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Secure Boot-г хэрхэн идэвхжүүлэх вэ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Дахин анивчдаг програм хангамжийн ачаалагч . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Процесс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Гарын үсгийн блок формат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Secure Pading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Secure Boot идэвхжсэний дараах хязгаарлалтууд . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Чипийн засвар . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 С11 Стандарт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Багаж хэрэгсэл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Туршилтын тохиолдол. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Төрөл бүрийн зорилтот туршилтууд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Барилгын нэгжийн туршилтын програм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Ажиллаж буй нэгжийн туршилтууд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Кэшийн нөхөн таймер бүхий цагийн код . . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Шог . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Линукс дээрх нэгжийн туршилт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Embedded програм хангамжийн туршилтууд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Хурдан 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 QS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Wi-Fi фрагмент . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS элсэгч . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Wi-Fi буферийн хэрэглээ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Wi-Fi-ийн ажиллагааг хэрхэн сайжруулах . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi цэсийн тохиргоо . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Илүүview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Frameworks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 төслийн урьдчилсан дэгээг суулгана. . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Баримтжуулах код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Үүсгэх Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 API баримт бичгийн загвар . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Оролцогчийн гэрээ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 Зохиогчийн эрхийн толгойн гарын авлага . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 Pytest гарын авлагатай 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 ажлын урсгал. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Төсөл Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Дараагийн алхамууд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Ашигтай холбоосууд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

10 Зохиогчийн эрх ба лиценз

2653

10.1 Програм хангамжийн зохиогчийн эрх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.1 Програм хангамжийн бүрэлдэхүүн хэсгүүд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 Баримт бичиг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 ROM-ийн эх код Зохиогчийн эрх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 цуврал SoC-уудын албан ёсны хөгжүүлэлтийн хүрээ юм. Энэ баримт бичиг нь ESP-IDF-ийг ESP32 SoC-тай ашиглах талаар тайлбарласан.

Эхлэх

API лавлагаа

API гарын авлага

Espressif системүүд

1 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Агуулгын хүснэгт

Espressif системүүд

2 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

1-р бүлэг
Эхлэх
Энэхүү баримт бичиг нь Espressif-ийн ESP32 чип дээр суурилсан техник хангамжийн програм хангамж хөгжүүлэх орчныг тохируулахад туслах зорилготой юм. Үүний дараа энгийн эксample нь цэсийн тохиргоонд ESP-IDF (Espressif IoT Development Framework)-ийг хэрхэн ашиглах, дараа нь ESP32 самбар дээр программ хангамжийг бүтээх, анивчуулахыг харуулах болно.
Тайлбар: Энэ нь ESP-IDF-ийн v5.0.9 тогтвортой хувилбарын баримт бичиг юм. Бусад ESP-IDF хувилбарууд бас байдаг.
1.1 Танилцуулга
ESP32 нь дараах функцуудыг нэгтгэсэн чип дээрх систем юм: · Wi-Fi (2.4 GHz зурвас) · 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)
Энэхүү хэрэглэгчийн гарын авлага нь Espressif-ийн үйлдвэрлэсэн ESP32-д суурилсан анивчдаг самбар болох ESP32-DevKitS(-R)-ийн талаарх мэдээллийг агуулдаг. 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 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Зураг 1: ESP32-DevKitS - урд

Espressif системүүд

Зураг 2: ESP32-DevKitS-R – урд 5
Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Гол бүрэлдэхүүн хэсгийн пүрш зүү 2.54 мм-ийн эмэгтэй толгой
USB-to-UART гүүр LDO бичил USB холбогч/микро USB порт EN товчлуурын ачаалах товчлуур
Асаалттай LED

Тодорхойлолт модуль дээр товшино уу. зүү modulens castellated нүх багтах болно. Эдгээр эмэгтэй толгойнууд нь энэ самбар дээр суурилуулсан модулийн тээглүүртэй холбогдсон байна. Эмэгтэй толгойнуудын тайлбарыг Толгойн блокуудаас үзнэ үү. Нэг чиптэй USB ба UART гүүр нь 3 Mbps хүртэл дамжуулах хурдыг хангадаг.
5V-3.3V бага уналттай ботьtage зохицуулагч (LDO).
USB интерфейс. ТУЗ-ийн цахилгаан хангамж, түүнчлэн компьютер болон самбар хоорондын холбооны интерфейс.
Дахин тохируулах товч.
Татаж авах товч. Ачаалах товчийг удаан дарж, дараа нь EN дарахад програм хангамжийг цуваа портоор татаж авах програм хангамжийг татаж авах горимыг эхлүүлнэ.
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 татаж авах хэрэгслийг ашиглан хоёртын файлуудыг флаш хийх боломжтой. Зүгээр л татаж аваад задлаад, doc хавтас доторх зааврыг дагана уу.
Жич: 1. Хоёртын файлыг анивчуулах files, ESP32 програм хангамжийг татаж авах горимд тохируулсан байх ёстой. Үүнийг флаш хэрэглүүр автоматаар эсвэл Ачаалах товчийг дараад EN товчийг дарснаар хийж болно. 2. Хоёртын анивчсаны дараа files, Flash татаж авах хэрэгсэл нь таны ESP32 модулийг дахин эхлүүлж, анхдагчаар флэш програмыг ачаална.

Самбарын хэмжээ Агуулга ба сав баглаа боодол

Espressif системүүд

6 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх Зураг 3: ESP32-DevKitS хавтангийн хэмжээс – буцах

Espressif системүүд

Зураг 4: ESP32-DevKitS-R хавтангийн хэмжээс – арын 7
Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
Жижиглэнгийн захиалга Хэрэв та хэд хэдэн сampESP32-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 дэд SENSOR_VP

L4 VN SENSOR_VN

L5 34

GPIO34

L6 35

GPIO35

L7 32

GPIO32

L8 33

GPIO33

дараагийн хуудсанд үргэлжилнэ

8 Баримт бичгийн санал хүсэлтийг илгээх

5.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-SOLO-ийн мэдээллийн хуудас (PDF) (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 Баримт бичгийн санал хүсэлтийг илгээх

5.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-цуваа програмчлалын интерфэйс нь мөн самбарт тэжээл өгдөг · зүү толгой · Програм хангамжийг татаж авах горимыг дахин тохируулах, идэвхжүүлэх товчлуурууд · бусад хэд хэдэн бүрэлдэхүүн хэсэг

Агуулга ба савлагаа

Жижиглэнгийн захиалга Хэрэв та хэд хэдэн сampESP32-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 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Зураг 6: ESP32-DevKitM-1 - урд

Түлхүүр бүрэлдэхүүн хэсэг ТУЗ-ийн модуль
5 В-оос 3.3 В хүртэл LDO ачаалах товчлуур
Дахин тохируулах товч Micro-USB порт
USB-to-UART гүүр 3.3 V асаах LED
I/O холбогч

Тодорхойлолт
ESP32-MINI-1 модуль эсвэл ESP32-MINI-1U модуль. ESP32-MINI-1 нь самбар дээрх ПХБ антенны хамт ирдэг. ESP32-MINI-1U нь гадаад антен холбогчтой ирдэг. Хоёр модуль хоёулаа чип доторх 4 MB флаштай. Дэлгэрэнгүй мэдээллийг ESP32-MINI-1 & ESP32-MINI-1U мэдээллийн хуудаснаас үзнэ үү.
Эрчим хүчний зохицуулагч нь 5 В-ыг 3.3 В болгон хувиргадаг.
Татаж авах товч. "Ачаалах" товчийг дарж, дараа нь "Дахин тохируулах" товчийг дарснаар програм хангамжийг цуваа портоор дамжуулан татаж авах горимыг эхлүүлнэ.
Дахин тохируулах товч
USB интерфейс. ТУЗ-ийн тэжээлийн хангамж, түүнчлэн компьютер болон ESP32 чип хоорондын холбооны интерфейс.
Нэг USB-UART гүүр чип нь 3 Mbps хүртэл дамжуулах хурдыг хангадаг.
USB самбарт холбогдсон үед асна. Дэлгэрэнгүй мэдээллийг Холбогдох баримт бичгийн схемээс үзнэ үү. Бүх боломжтой GPIO тээглүүрүүд (флэшэд зориулсан SPI автобуснаас бусад) самбар дээрх зүү толгойн хэсэгт хуваагдсан. Хэрэглэгчид олон функцийг идэвхжүүлэхийн тулд ESP32 чипийг програмчилж болно.

Хэрэглээний хөгжүүлэлтийг эхлүүлэх ESP32-DevKitM-1-ээ асаахаасаа өмнө эвдрэлийн шинж тэмдэг илрээгүй сайн нөхцөлд байгаа эсэхийг шалгана уу.
Шаардлагатай техник хангамж · ESP32-DevKitM-1 · USB 2.0 кабель (Стандарт-А-аас Micro-B хүртэл) · Windows, Linux эсвэл macOS үйлдлийн системтэй компьютер
Програм хангамжийн тохиргоо "Эхлэх" хэсэгт үргэлжлүүлнэ үү. Хэсгийн суулгац нь хөгжүүлэлтийн орчныг хурдан тохируулахад туслах бөгөөд дараа нь өмнөх програмыг анивчуулна.ampESP32-DevKitM-1 рүү оруулна уу.

Espressif системүүд

11 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
Анхаар: 2021 оны 12-р сарын 2-ноос өмнө үйлдвэрлэсэн ESP32-DevKitM-1 хавтангуудад нэг цөмт модуль суурилуулсан байна. Танд ямар модуль байгаа эсэхийг шалгахын тулд PCN-2021-021 дэх модулийн тэмдэглэгээний мэдээллийг шалгана уу. Хэрэв таны самбарт нэг цөмт модуль суулгасан бол програмуудаа анивчуулахын өмнө цэсийн тохиргоонд нэг цөмт горимыг (CONFIG_FREERTOS_UNICORE) идэвхжүүлнэ үү.
Техник хангамжийн лавлагааны блок диаграмм Доорх блок диаграмм нь ESP32-DevKitM-1-ийн бүрэлдэхүүн хэсгүүд болон тэдгээрийн харилцан холболтыг харуулж байна.

Зураг 7: ESP32-DevKitM-1
Эрчим хүчний эх үүсвэр сонгох Самбарыг эрчим хүчээр хангах гурван өөр арга байдаг: · Micro USB порт, анхдагч тэжээлийн хангамж · 5V ба GND толгойн зүү · 3V3 ба GND толгойн зүү
Анхааруулга: · Цахилгаан хангамжийг дээрх сонголтуудын аль нэгийг ашиглан хангах ёстой, эс тэгвээс самбар болон/эсвэл тэжээлийн эх үүсвэр гэмтэж болзошгүй. · Микро USB портоор тэжээгдэхийг зөвлөж байна.

Зүүний тайлбар Доорх хүснэгтэд самбарын хоёр талд байрлах тээглүүрүүдийн нэр, функцийг харуулав. Захын зүү тохиргоог ESP32 мэдээллийн хуудаснаас үзнэ үү.

Үгүй

Нэр

Төрөл

1

GND

P

2

3V3

P

Чиг үүрэг Газардуулга 3.3 В цахилгаан хангамж

дараагийн хуудсанд үргэлжилнэ

Espressif системүүд

12 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Хүснэгт 2 өмнөх хуудасны үргэлжлэл

Үгүй

Нэр

Төрөл

Чиг үүрэг

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 ПХБ зохион байгуулалт (PDF) · ESP32-DevKitM-1 зохион байгуулалт (DXF) – Та боломжтой view Энэ нь Autodesk-тэй Viewer online · ESP32 Datasheet (PDF) · ESP Product Selector
Самбарын дизайны бусад баримт бичгийг авахыг хүсвэл sales@espressif.com хаягаар бидэнтэй холбоо барина уу.

Espressif системүүд

13 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
1.2.2 Програм хангамж
ESP32 дээр ESP-IDF ашиглаж эхлэхийн тулд дараах программ хангамжийг суулгана уу: · ESP32-д зориулсан кодыг эмхэтгэх хэрэгслийн хэлхээ · ESP32-д зориулсан иж бүрэн хэрэглүүрийг бүтээх хэрэгсэл – CMake болон Ninja · ESP32-д зориулсан API (програм хангамжийн сангууд болон эх код) болон Toolchain-ийг ажиллуулах скриптүүдийг агуулсан ESP-IDF.

1.3 Суурилуулалт
Шаардлагатай бүх програм хангамжийг суулгахын тулд бид энэ ажлыг хөнгөвчлөх хэд хэдэн аргыг санал болгож байна. Боломжтой сонголтуудаас аль нэгийг нь сонгоно уу.
1.3.1 IDE

Тайлбар: Бид ESP-IDF-ийг дуртай IDE-ээр дамжуулан суулгахыг зөвлөж байна.
· Eclipse Plugin · VSCode өргөтгөл

1.3.2 Гараар суурилуулах
Гарын авлагын процедурын хувьд үйлдлийн системийнхээ дагуу сонгоно уу.

Espressif системүүд

14 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
Windows-д зориулсан Toolchain-ийн стандарт тохиргоо
Танилцуулга ESP-IDF-д шаардлагатай зарим хэрэгслийг суулгасан байх шаардлагатай бөгөөд ингэснээр та дэмжигдсэн чипүүдэд зориулсан програм хангамжийг бүтээх боломжтой болно. Шаардлагатай хэрэгслүүдэд Python, Git, cross-compiler, CMake, Ninja build хэрэгслүүд орно. Үүнийг эхлүүлэхийн тулд командын мөрийг ашиглах болно, гэхдээ ESP-IDF суулгасны дараа та оронд нь Eclipse Plugin эсвэл CMake дэмжлэгтэй өөр график IDE ашиглаж болно. Тайлбар: Хязгаарлалт: – ESP-IDF болон ESP-IDF хэрэгслүүдийн суулгах зам нь 90 тэмдэгтээс урт байж болохгүй. Хэт урт суулгах зам нь бүтэлгүйтлийг үүсгэж болзошгүй. – Python эсвэл ESP-IDF-ийн суулгалтын замд хоосон зай эсвэл хаалт агуулаагүй байх ёстой. – Үйлдлийн системийг oUnicode UTF-8psupport-оор тохируулаагүй л бол Python эсвэл ESP-IDF-ийн суулгах замд тусгай тэмдэгт (ASCII бус) агуулагдах ёсгүй. Системийн администратор нь хяналтын самбараар дамжуулан дэмжлэгийг идэвхжүүлж болно – Огноо, цаг, дугаарын форматыг өөрчлөх – Захиргааны таб – Системийн локал тохиргоог өөрчлөх – oBeta сонголтыг шалгана уу: Дэлхий даяарх хэлний дэмжлэгт Unicode UTF-8 ашиглахp – За, компьютерээ дахин ачаална уу.
ESP-IDF Tools Installer ESP-IDFns-ийн урьдчилсан нөхцөлийг суулгах хамгийн хялбар арга бол ESP-IDF Tools Installers-ийн аль нэгийг татаж авах явдал юм.

Windows суулгагчийг татаж авах
Онлайн болон Оффлайн суулгагч Онлайн суулгагч нь маш жижиг бөгөөд ESP-IDF-ийн бүх хувилбаруудыг суулгах боломжийг олгодог. Суулгагч нь суулгах явцад зөвхөн Git For Windows зэрэг шаардлагатай хамаарлыг татаж авах болно. Суулгагчийг татаж авсан хадгалдаг files кэш лавлах %userprofile%. эспрессиф
Офлайн суулгагч нь сүлжээний холболт шаарддаггүй. Суулгагч нь Git For Windows гэх мэт шаардлагатай бүх хамаарлыг агуулдаг.
Суулгацын бүрэлдэхүүн хэсгүүд Суулгагч нь дараах бүрэлдэхүүн хэсгүүдийг байрлуулна.
· Embedded Python · Cross-compiler · OpenOCD · CMake болон Ninja бүтээх хэрэгслүүд · ESP-IDF
Суулгагч нь одоо байгаа лавлахыг ESP-IDF-ээр дахин ашиглах боломжийг олгодог. Санал болгож буй лавлах нь %userpro юмfile%Desktopesp-idf энд %userprofile% нь таны гэрийн лавлах юм.

Espressif системүүд

15 Баримт бичгийн санал хүсэлтийг илгээх

5.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 командын мөрийг ашиглах болно. ESP-IDF Tools Installer нь Start цэсэнд ESP-IDF командын мөрийг ажиллуулах товчлол үүсгэдэг. Энэ товчлол нь Командын мөрийг (cmd.exe) ажиллуулж, орчны хувьсагчдыг (PATH, IDF_PATH болон бусад) тохируулахын тулд export.bat скриптийг ажиллуулдаг. Энэ командын мөрөнд суулгасан бүх хэрэгслүүд бэлэн байна. Энэ товчлол нь ESP-IDF Tools Installer дээр сонгосон ESP-IDF лавлахад зориулагдсан гэдгийг анхаарна уу. Хэрэв таны компьютер дээр олон ESP-IDF лавлах байгаа бол (жишээ ньample, ESP-IDF-ийн өөр хувилбаруудтай ажиллахын тулд тэдгээрийг ашиглах хоёр сонголт байна:
1. ESP-IDF Tools Installer-ийн үүсгэсэн товчлолын хуулбарыг үүсгэж, шинэ товчлолын ажлын лавлахыг ашиглахыг хүсэж буй ESP-IDF лавлах руу өөрчил.
2. Эсвэл cmd.exe-г ажиллуулаад, ашиглахыг хүссэн ESP-IDF лавлах руугаа сольж, export.bat-ыг ажиллуул. Өмнөх сонголтоос ялгаатай нь энэ арга нь PATH-д Python болон Git-г оруулах шаардлагатайг анхаарна уу. Хэрэв та Python эсвэл Git-тэй холбоотой алдаа олдохгүй байвал эхний сонголтыг ашиглана уу.
ESP-IDF-ийн эхний алхмууд Одоо бүх шаардлагыг хангасан тул дараагийн сэдэв нь анхны төслөө хэрхэн эхлүүлэх талаар танд чиглүүлэх болно.

Espressif системүүд

16 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх Зураг 9: ESP-IDF PowerShell

Зураг 10: ESP-IDF командын мөрийг ажиллуулж (cmd.exe) ESP-IDF хэрэгслийн тохиргооны шидтэнг бөглөж байна.

Espressif системүүд

17 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Зураг 11: ESP-IDF командын мөр

Espressif системүүд

18 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
Энэхүү гарын авлага нь ESP-IDF-г ашиглах эхний алхамуудыг хийхэд тань туслах болно. Энэ гарын авлагыг дагаж ESP32 дээр шинэ төсөл эхлүүлж, төхөөрөмжийн гаралтыг бүтээх, анивчуулах, хянах боломжтой. Тайлбар: Хэрэв та ESP-IDF-г суулгаагүй байгаа бол уг гарын авлагыг ашиглахад шаардлагатай бүх программ хангамжийг авахын тулд Суулгац руу орж зааврыг дагана уу.

Төсөл эхлүүлэх Одоо та ESP32-д зориулсан өргөдлөө бэлтгэхэд бэлэн боллоо. Та өмнөхөөсөө getstarted/hello_world төслөөс эхэлж болноampESP-IDF дахь les лавлах.
Анхаарах зүйл: ESP-IDF бүтээх систем нь ESP-IDF эсвэл төслүүд рүү хүрэх зам дахь зайг дэмждэггүй.
Төслийн get-started/hello_world-г ~/esp лавлах руу хуулна уу: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world Сайн_ертөнц
Жич: Өмнөх хэд хэдэн төрөл байдагample төслүүд хуучинampESP-IDF дахь les лавлах. Та ямар ч төслийг дээр дурдсантай ижил аргаар хуулж, ажиллуулж болно. Мөн экс барих боломжтойamples in-place тэдгээрийг эхлээд хуулбарлахгүйгээр.

Төхөөрөмжөө холбоно уу. Одоо ESP32 самбараа компьютерт холбож, самбар аль цуваа порт дээр харагдаж байгааг шалгана уу. Цуваа портын нэр нь Windows дээр COM-оор эхэлдэг. Хэрэв та цуваа портын нэрийг хэрхэн шалгахаа мэдэхгүй байгаа бол дэлгэрэнгүй мэдээллийг ESP32-ээр Цуваа холболт үүсгэх хэсгээс үзнэ үү.
Анхаар: Портын нэрийг гартаа байлга, учир нь энэ нь дараагийн алхамуудад хэрэг болно.

Төслөө тохируулна уу Өөрийн hello_world лавлах руу очиж, ESP32-г зорилтот болгож, төслийн тохиргооны цэсийн тохиргоог ажиллуулна уу.
Windows CD % userprofile%esphello_world idf.py set-target esp32 idf.py цэсний тохиргоо
Шинэ төсөл нээсний дараа та эхлээд idf.py set-target esp32-ээр зорилтоо тавих хэрэгтэй. Төсөл дэх одоо байгаа бүтээц, тохиргоонууд, хэрэв байгаа бол энэ процесст устгагдах бөгөөд эхлүүлэх болно гэдгийг анхаарна уу. Энэ алхмыг алгасахын тулд зорилтот үзүүлэлтийг орчны хувьсагчд хадгалж болно. Нэмэлт мэдээлэл авахыг хүсвэл Зорилтот чип сонгох: зорилтот зорилтыг үзнэ үү. Хэрэв өмнөх алхмуудыг зөв хийсэн бол дараах цэс гарч ирнэ: Та энэ цэсийг төслийн тодорхой хувьсагчдыг тохируулахын тулд ашиглаж байна, жишээлбэл, Wi-Fi сүлжээний нэр, нууц үг, процессорын хурд гэх мэт. Төслийг menuconfig-ээр тохируулахыг ohello_wordp-д алгасаж болно, учир нь энэ өмнөхample анхдагч тохиргоотой ажилладаг.
Анхаар: Хэрэв та ESP32-SOLO-1 модультай ESP32-DevKitC самбар эсвэл ESP32-MIN1-1(1U) модультай ESP32-DevKitM-1 хавтанг ашигладаг бол хуучин анивчахаас өмнө цэсийн тохиргооны нэг цөмт горимыг (CONFIG_FREERTOS_UNICORE) идэвхжүүлнэ үү.amples.

Espressif системүүд

19 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Зураг 12: Төслийн тохиргоо – Нүүр хуудас цонх
Тайлбар: Цэсийн өнгө таны терминал дээр өөр байж болно. Та гадаад төрхийг загварын сонголтоор өөрчилж болно. Нэмэлт мэдээлэл авахын тулд idf.py menuconfig –help програмыг ажиллуулна уу.
Хэрэв та дэмжигдсэн хөгжүүлэлтийн самбаруудын аль нэгийг ашиглаж байгаа бол Зөвлөлийн дэмжлэгийн багцыг ашиглан хөгжлийг хурдасгах боломжтой. Нэмэлт мэдээлэл авахыг хүсвэл Нэмэлт зөвлөмжийг үзнэ үү.
Төслийг бий болгох Төслийг бүтээнэ үү:
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_ld. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin эсвэл 'idf.py -p PORT flash'-г ажиллуулна уу.
Хэрэв алдаа байхгүй бол програмын хоёртын .bin файлыг үүсгэснээр бүтээц дуусна files.

Espressif системүүд

20 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

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

Анивчих үед асуудал гарсан уу? Хэрэв та өгөгдсөн командыг ажиллуулж, холболт амжилтгүй болсон гэх мэт алдааг олж харвал энэ нь хэд хэдэн шалтгаан байж болно. Үүний нэг шалтгаан нь чипийг дахин тохируулах, ROM ачаалагчтай ажиллах, флэш программ хангамжийг суулгахын тулд бүтээх системээс дуудагддаг esptool.py-д тулгарч буй асуудлууд байж болох юм. Турших энгийн нэг шийдэл бол доор тайлбарласан гараар дахин тохируулах бөгөөд хэрэв энэ нь тус болохгүй бол алдааг олж засварлах хэсэгт гарч болзошгүй асуудлуудын талаар дэлгэрэнгүй мэдээлэл авах боломжтой.
esptool.py нь USB-ээс цуваа хөрвүүлэгч чипийн DTR болон RTS хяналтын шугамуудыг, өөрөөр хэлбэл, FTDI эсвэл CP210x-ийг баталгаажуулснаар ESP32-г автоматаар дахин тохируулдаг (дэлгэрэнгүй мэдээллийг ESP32-ээр Цуваа холболт үүсгэх хэсгийг үзнэ үү). DTR болон RTS хяналтын шугамууд нь ESP32-ийн GPIO0 ба CHIP_PU (EN) зүүнүүдтэй ээлжлэн холбогдсон тул дууны хэмжээ өөрчлөгдөнө.tagDTR болон RTS-ийн e түвшин нь ESP32-г Firmware Татаж авах горимд ачаалах болно. Хуучин хүний ​​хувьдample, ESP32 DevKitC хөгжүүлэх самбарын схемийг шалгана уу.
Ерөнхийдөө, та албан ёсны esp-idf хөгжүүлэлтийн самбартай холбоотой асуудал гарах ёсгүй. Гэсэн хэдий ч esptool.py нь дараах тохиолдолд таны техник хангамжийг автоматаар дахин тохируулах боломжгүй.
· Таны техник хангамжид GPIO0 болон CHIP_PU-д холбогдсон DTR болон RTS шугам байхгүй · DTR болон RTS шугамууд өөр өөр тохируулагдсан · Ийм цуваа хяналтын шугамууд огт байхгүй.
Танд байгаа техник хангамжийн төрлөөс хамааран ESP32 хавтанг гараар програм хангамжийг татаж авах горимд оруулах (дахин тохируулах) боломжтой.
· Espressif-ийн үйлдвэрлэсэн хөгжүүлэлтийн самбаруудын хувьд энэ мэдээллийг холбогдох эхлэлийн гарын авлага эсвэл хэрэглэгчийн гарын авлагаас олж болно. Жишээ ньampESP-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 0x800000x partition table_table/partition. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Цуваа порт /dev/ttyUSB0 Холбогдож байна…….._ Чип нь ESP32D0WDQ6 (хувилбар 0) Онцлогууд: WiFi, BT, Хос цөмт, CAC4 кодчилол байхгүй: MAC4 24:0a:c4:05:b9:14 stub байршуулж байна... stub ажиллаж байна... Stub ажиллаж байна... Дамжуулах хурдыг 460800 болгож өөрчилж байна Өөрчлөгдсөн.
(дараагийн хуудсанд үргэлжилнэ)

Espressif системүүд

21 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

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

Espressif системүүд

22 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
Хэрэв IDF монитор байршуулсны дараа удалгүй ажиллахаа больсон эсвэл дээрх мессежийн оронд доор өгөгдсөнтэй төстэй санамсаргүй хог хаягдлыг олж харвал таны самбар 26 МГц болор ашиглаж байгаа байх. Ихэнх хөгжүүлэлтийн самбарын загварууд 40 МГц ашигладаг тул ESP-IDF энэ давтамжийг анхдагч утга болгон ашигладаг.

Хэрэв танд ийм асуудал тулгарвал дараах зүйлийг хийнэ үү: 1. Монитороос гарна уу. 2. Menuconfig руу буцна уу. 3. Component config > Hardware Settings > Main XTAL Config > Main XTAL давтамж руу очоод CONFIG_XTAL_FREQ_SEL-г 26 MHz болгон өөрчил. 4. Үүний дараа програмаа дахин бүтээж, флэш болгоно.
ESP-IDF-ийн одоогийн хувилбарт ESP32 дэмждэг үндсэн XTAL давтамжууд дараах байдалтай байна.
· 26 МГц · 40 МГц
Тэмдэглэл: Та idf.py -p PORT флаш дэлгэцийг ажиллуулснаар бүтээх, анивчих, хяналтыг нэг алхам болгон нэгтгэж болно.
Мөн үзнэ үү: · IDF мониторыг ашиглахад хялбар товчлол болон IDF мониторыг ашиглах талаар дэлгэрэнгүй мэдээлэл авах. · idf.py командууд болон сонголтуудын бүрэн лавлагааг idf.py.
Энэ бол ESP32-г эхлүүлэхэд хэрэгтэй бүх зүйл! Одоо та өөр эксийг туршиж үзэхэд бэлэн байнаamples, эсвэл шууд өөрийн хэрэглээний программуудыг хөгжүүлэх.
Чухал: Зарим нь хуучинamples нь ESP32-г дэмждэггүй, учир нь шаардлагатай техник хангамж ESP32-д ороогүй тул үүнийг дэмжих боломжгүй. Хэрэв хуучин байшин барьж байгаа болample, README-г шалгана уу file Дэмжигдсэн зорилтуудын хүснэгтийн хувьд. Хэрэв энэ нь ESP32 зорилтыг оруулаад байгаа эсвэл хүснэгт огт байхгүй бол хуучинampESP32 дээр ажиллах болно.
Нэмэлт зөвлөмжүүд
Зөвшөөрлийн асуудал /dev/ttyUSB0 Зарим Линуксийн түгээлтийн хувьд ESP32-г анивчуулах үед та /dev/ttyUSB0 портыг нээж чадсангүй алдааны мессежийг авч болно. Үүнийг одоогийн хэрэглэгчийг харилцах бүлэгт нэмэх замаар шийдэж болно.
Python нийцтэй ESP-IDF Python 3.7 буюу түүнээс дээш хувилбарыг дэмждэг. Үйлдлийн системээ энэ шаардлагыг хангасан сүүлийн хувилбар руу шинэчлэхийг зөвлөж байна. Бусад сонголтууд нь эх сурвалжаас Python суулгах эсвэл pyenv гэх мэт Python хувилбарын удирдлагын системийг ашиглах явдал юм.
Удирдах зөвлөлийн дэмжлэгийн багцаас эхлээрэй. Зарим хөгжүүлэлтийн самбар дээр загварчлалыг хурдасгахын тулд та самбарын дэмжлэгийн багцуудыг (BSPs) ашиглаж болох бөгөөд энэ нь тодорхой самбарыг эхлүүлэхэд цөөн тооны функцийг дуудах шиг хялбар болгодог.

Espressif системүүд

23 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

BSP нь ихэвчлэн хөгжүүлэлтийн самбар дээр өгөгдсөн бүх техник хангамжийн бүрэлдэхүүн хэсгүүдийг дэмждэг. BSP нь мэдрэгч, дэлгэц, аудио кодлогч гэх мэт гадаад бүрэлдэхүүн хэсгүүдийн драйверуудтай хамт ирдэг. BSP нь IDF Component Manager-ээр түгээгддэг тул тэдгээрийг IDF Component Registry-ээс олж болно. Хэренс эксampESP-WROVER-KIT BSP-ийг төсөлдөө хэрхэн нэмэх талаар: idf.py add-dependency esp_wrover_kit
Илүү хуучинampBSP ашиглалтын талаархи мэдээллийг BSP ex-ээс олж болноamples хавтас.
Холбогдох баримтууд Суулгах процессыг өөрчлөхийг хүссэн ахисан түвшний хэрэглэгчдэд: · Windows дээрх ESP-IDF хэрэгслийг шинэчлэх · ESP32-р цуврал холболт үүсгэх · Eclipse Plugin · VSCode өргөтгөл · IDF Monitor.
Windows дээр ESP-IDF хэрэгслийг шинэчилж байна
Скрипт ашиглан ESP-IDF хэрэгслийг суулгана уу Windows командын мөрөөс ESPIDF суулгасан лавлах руу шилжинэ үү. Дараа нь ажиллуулна уу:
install.bat
Powershell-ийн хувьд ESP-IDF суулгасан лавлах руу шилжинэ үү. Дараа нь ажиллуулна уу:
install.ps1
Энэ нь ESP-IDF-г ашиглахад шаардлагатай хэрэгслүүдийг татаж аваад суулгана. Хэрэв уг хэрэгслийн тодорхой хувилбарыг суулгасан бол ямар ч арга хэмжээ авахгүй. Хэрэгслүүд нь ESP-IDF Tools Installer процессын явцад заасан лавлах руу татагдаж суулгагддаг. Анхдагчаар энэ нь C:Usersusername.espressif юм.
Экспортын скрипт ашиглан ESP-IDF хэрэгслүүдийг PATH-д нэмснээр ESP-IDF хэрэгслүүд суулгагч нь oESP-IDF командын мөрийг эхлүүлэх цэсний товчлолыг үүсгэдэг. Энэ товчлол нь бүх хэрэгслүүд аль хэдийн бэлэн болсон командын цонхыг нээнэ
боломжтой. Зарим тохиолдолд та энэ товчлолыг ашиглаж эхлээгүй байгаа командын цонхонд ESP-IDF-тэй ажиллахыг хүсч болно. Хэрэв ийм зүйл тохиолдвол PATH-д ESP-IDF хэрэгслийг нэмэхийн тулд доорх зааврыг дагана уу. ESP-IDF-г ашиглах шаардлагатай командын мөрөнд ESP-IDF суулгасан лавлах руу шилжиж, export.bat-г ажиллуулна уу:
cd %хэрэглэгчfile%espesp-idf export.bat
Эсвэл ESP-IDF-г ашиглах шаардлагатай Powershell-д ESP-IDF суулгасан лавлах руу шилжиж, export.ps1-г ажиллуулна уу:
cd ~/esp/esp-idf экспорт.ps1
Үүнийг хийсний дараа хэрэгслүүд энэ командын мөрөнд бэлэн болно.
ESP32-ээр цуваа холболт үүсгэх Энэ хэсэг нь ESP32 болон PC-ийн хооронд хэрхэн цуваа холболт үүсгэх зааварчилгааг өгдөг.

Espressif системүүд

24 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
ESP32-г компьютерт холбоно уу USB кабель ашиглан ESP32 хавтанг компьютерт холбоно уу. Хэрэв төхөөрөмжийн драйвер автоматаар суулгаагүй бол ESP32 самбар дээр (эсвэл гадаад хөрвүүлэгчийн түгжээ) USB-ээс цуваа хөрвүүлэгч чипийг тодорхойлж, интернетээс драйверуудыг хайж олоод суулгана уу. Espressif-ийн үйлдвэрлэсэн ихэнх ESP32 хавтан дээр суурилуулсан USB-аас цуваа хөрвүүлэгч чипүүдийн жагсаалтыг доороос харж болно.
· CP210x: CP210x USB to UART Bridge VCP драйверууд · FTDI: FTDI Виртуал COM портын драйверууд USB-аас цуваа хөрвүүлэгч чип ашиглаж байгаа эсэхийг самбарын хэрэглэгчийн гарын авлагаас шалгана уу. Дээрх драйверууд нь үндсэндээ лавлагаа юм. Хэвийн нөхцөлд драйверуудыг үйлдлийн системтэй багцалж, самбарыг компьютерт холбоход автоматаар суулгасан байх ёстой.
Windows дээрх портыг шалгана уу. Windows төхөөрөмжийн менежерээс тодорхойлсон COM портуудын жагсаалтыг шалгана уу. ESP32-г салгаад буцааж холбоно уу, аль порт жагсаалтаас алга болж, дахин гарч ирэхийг шалгана уу. Доорх зурагт ESP32 DevKitC болон ESP32 WROVER KIT-ийн цуваа портыг харуулав

Зураг 13: Windows төхөөрөмжийн менежер дэх ESP32-DevKitC-ийн USB-аас UART гүүр

Линукс болон macOS дээрх портыг шалгана уу. Өөрийн ESP32 хавтангийн цуваа портын төхөөрөмжийн нэрийг шалгахын тулд (эсвэл гадаад хөрвүүлэгчийн dongle) энэ командыг эхлээд самбар/унглаа салгаад, дараа нь залгаад хоёр удаа ажиллуулна уу. Хоёр дахь удаагаа гарч ирэх порт нь танд хэрэгтэй: Linux
ls /dev/tty*
macOS

Espressif системүүд

25 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Зураг 14: Windows төхөөрөмжийн менежер дэх ESP-WROVER-KIT-ийн хоёр USB цуваа порт

Espressif системүүд

26 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

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

Линукс дээр харилцах руу хэрэглэгч нэмэх нь Одоогоор нэвтэрсэн хэрэглэгч USB-ээр дамжуулан цуваа порт руу унших, бичих эрхтэй байх ёстой. Ихэнх Линуксийн түгээлтүүд дээр дараах тушаалаар хэрэглэгчийг харилцах бүлэгт нэмэх замаар үүнийг хийдэг.
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. Доорх нь жишээ юм.ampWindows болон Линукс дээр порт болон дамжуулах параметрүүдийг (товчлон тайлбарлавал 115200-8-1-N) тохируулах дэлгэцийн агшинг. Дээрх алхамуудад тодорхойлсон цуваа портоо сонгохоо бүү мартаарай. Дараа нь терминал дахь цуваа портыг нээж, ESP32-ээр хэвлэсэн бүртгэлийг харж байгаа эсэхийг шалгана уу. Бүртгэлийн агуулга нь ESP32-д ачаалагдсан програмаас хамаарна, жишээг үзнэ үүample Гаралт.
Тайлбар: Харилцаа холбоо ажиллаж байгаа эсэхийг шалгасны дараа цуваа терминалыг хаа. Хэрэв та терминалын сессийг нээлттэй байлгавал дараа нь програм хангамжийг байршуулахад цуваа порт руу нэвтрэх боломжгүй болно.

macOS Цуваа терминалын програм суулгахад бэрхшээл учруулахгүйн тулд macOS дэлгэцийн командыг санал болгож байна. · Linux болон macOS дээрх Check port-д дурдсанчлан дараахыг ажиллуулна уу:

ls /dev/cu.* · Та ижил төстэй гаралтыг харах ёстой:

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

/dev/cu.SLAB_

· Гаралт нь таны компьютерт холбогдсон хавтангийн төрөл, тооноос хамаарч өөр өөр байх болно. Дараа нь самбарынхаа төхөөрөмжийн нэрийг сонгоод ажиллуулна уу (хэрэв шаардлагатай бол o115200p-г ашиглаж байгаа чипийн өгөгдмөл дамжуулах хурд болгон өөрчилнө үү):

дэлгэц /dev/cu.device_name 115200 Төхөөрөмжийн_нэрийг ls /dev/cu.* ажиллаж байгаа нэрээр солино уу.

Espressif системүүд

27 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Зураг 15: Windows дээрх PuTTY-д цуврал холболтыг тохируулах

Espressif системүүд

28 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Зураг 16: Линукс дээрх PuTTY-д цуврал харилцаа холбоог тохируулах

Espressif системүүд

29 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
· Таны хайж байгаа зүйл бол дэлгэцэн дээр гарч ирэх лог юм. Бүртгэлийн агуулга нь ESP32-д ачаалагдсан програмаас хамаарна, жишээг үзнэ үүample Гаралт. Дэлгэцийн сессээс гарахын тулд Ctrl-A + гэж бичнэ үү.
Тайлбар: Харилцаа холбоо ажиллаж байгаа эсэхийг шалгасны дараа дэлгэцийн сессээс гарахаа бүү мартаарай. Хэрэв та үүнийг хийж чадаагүй бөгөөд зүгээр л терминалын цонхыг хаавал дараа нь програм хангамжийг байршуулах цуваа порт руу нэвтрэх боломжгүй болно.
Example Output An example логийг доор харуулав. Хэрэв та юу ч харахгүй бол самбарыг дахин тохируулна уу. ets 6-р сарын 8 2016 00:22:57
эхний: 0x5 (DEEPSLEEP_RESET), ачаалах: 0x13 (SPI_FAST_FLASH_BOOT) ets 2016 оны 6-р сарын 8 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.py дэлгэцийг ажиллуулснаар IDF төслөөс эхлүүлж болно.
Гарын товчлолууд IDF Monitor-тай хялбар ажиллахын тулд хүснэгтэд өгөгдсөн гарын товчлолыг ашиглана уу.

Espressif системүүд

30 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Гарын товчлол Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (эсвэл A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (эсвэл би)
· Ctrl+H (эсвэл H)
· Ctrl+X (эсвэл X)
Ctrl+C

Үйлдэл

Тодорхойлолт

Програмаас гарах Цэсээс гарах товчлуур Цэсийн тэмдэгтийг өөрөө алсын удирдлага руу илгээнэ
Гарах тэмдэгтийг өөрөө удирдлага руу илгээнэ үү
RTS шугамаар програмыг түр зогсоохын тулд ачаалагч руу зорилтот тохиргоог дахин тохируулна уу
RTS-ээр дамжуулан зорилтот самбарыг дахин тохируулна уу
Төслийг бүтээж, гялс хий

Зөвхөн програмыг бүтээж, флаш хийнэ үү

Дэлгэц дээр бүртгэлийн гаралтын хэвлэлтийг зогсоох/үргэлжлүүлэх

Хадгалсан бүртгэлийн гаралтыг зогсоох/үргэлжлүүлэх file

Зогсоох/үргэлжлүүлэх хугацааamps

хэвлэх

Бүх гарын товчлолыг харуулах

Доор өгөгдсөн товчлууруудын аль нэгийг нь дарж, дагана уу.
RTS шугамаар (холбогдсон бол) ачаалагч руу зорилтот тохиргоог дахин тохируулснаар самбар юу ч ажиллахгүй. Та өөр төхөөрөмж эхлэхийг хүлээх шаардлагатай үед хэрэг болно. Зорилтот самбарыг дахин тохируулж, RTS шугамаар (холбогдсон бол) програмыг дахин эхлүүлнэ.
Төслийн флаш зорилтыг ажиллуулахын тулд idf_monitor-г түр зогсоож, дараа нь idf_monitor-г үргэлжлүүлнэ. Аливаа өөрчлөгдсөн эх сурвалж files-г дахин эмхэтгээд дараа нь дахин анивчуулна. Хэрэв idf_monitor-г -E аргументаар эхлүүлсэн бол зорилтот шифрлэгдсэн-флаш ажиллана. Апп-флэш зорилтыг ажиллуулахын тулд idf_monitor-г түр зогсоож, дараа нь idf_monitor-г үргэлжлүүлнэ. Флэш зорилтоттой төстэй боловч зөвхөн үндсэн програмыг бүтээж, дахин анивчдаг. Хэрэв idf_monitor-г -E аргументаар эхлүүлсэн бол зорилтот encrypted-app-flash-г ажиллуулна. Идэвхжүүлсэн үед ирж буй бүх цуваа өгөгдлийг устгана. Монитороос гаралгүйгээр бүртгэлийн гаралтыг хурдан түр зогсоох, шалгах боломжийг олгоно. үүсгэдэг a file төслийн санд байгаа бөгөөд гаралт нь түүн рүү бичигдсэн байдаг file Үүнийг ижил гарын товчлолоор идэвхгүй болгох хүртэл (эсвэл IDF Monitor гарах). IDF Monitor нь цагийг хэвлэх боломжтойamp мөр бүрийн эхэнд. Хамгийн их цагamp форматыг -timest-аар өөрчилж болноamp-командын мөрийн аргументыг форматлах.

Програмаас гарах

Ажиллаж байгаа програмыг тасалдуулах

IDF Monitor-ыг түр зогсоож, GDB төслийн дибаглагчийг ажиллуулж, програмыг ажиллуулах үед дибаг хийнэ. Үүнд :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME сонголтыг идэвхжүүлэх шаардлагатай.

Ctrl-] болон Ctrl-T-ээс бусад дарагдсан бүх товчлуурууд цуваа портоор дамжих болно.

IDF-ийн онцлог шинж чанарууд

Автомат хаягийн код тайлах ESP-IDF нь 0x4_______ хэлбэрийн арван арван код хаягийг гаргах бүрт IDF Monitor нь эх кодын байршлыг хайж, функцийн нэрийг олохын тулд addr2line_-г ашигладаг.
Хэрэв ESP-IDF програм гацаж, сандрах юм бол регистрийн хаягдал болон буцаалт үүсдэг, тухайлбал:

Espressif системүүд

31 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Guru бясалгалын StoreProhibited төрлийн алдаа 0 үндсэн дээр гарсан. Үл хамаарах зүйл байсан

зохицуулагдаагүй.

Хогийн цэгийг бүртгэх:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

A2

: 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0х00000000

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 ЗЭЭЛ: 0x4000c477 LCOUNT :

0х00000000

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

IDF Monitor нь хогийн цэг дээр илүү дэлгэрэнгүй мэдээллийг нэмдэг:

Guru бясалгалын StoreProhibited төрлийн алдаа 0 үндсэн дээр гарсан. Үл хамаарах зүйл байсан

зохицуулагдаагүй.

Хогийн цэгийг бүртгэх:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: /home/gus/esp/32/idf/ex дээр эвдрэхийн тулд ямар нэг зүйл хийamples/эхлэл/

сайн уу_ертөнц/main/./hello_world_main.c:57

/home/gus/esp/32/idf/ex дээр (дотоод оруулсан) inner_dont_crashamples/get-started/hello_

ертөнц/гол/./hello_world_main.c:52

A2

: 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0х00000000

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 ЗЭЭЛ: 0x4000c477 LCOUNT :

0х00000000

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: одоо ч /home/gus/esp/32/idf/ex дээр осолдохгүйamples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: /home/gus/esp/32/idf/ex-д гэмтэх хэрэггүйamples/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: үндсэн_даалгавар /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 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
сонголт: idf_monitor.py –хаяг тайлахыг идэвхгүй болгохын тулд хаягийн код тайлахыг идэвхгүй болгох.
Холболт дээрх зорилтыг дахин тохируулах нь анхдагчаар IDF Monitor-д холбогдох үед зорилтыг дахин тохируулна. Зорилтот чипийг дахин тохируулах нь DTR ба RTS цуваа шугамыг ашиглан хийгддэг. IDF Monitor холболтын үед зорилтот тохиргоог автоматаар дахин тохируулахаас урьдчилан сэргийлэхийн тулд IDF Monitor-ыг –no-reset сонголтоор залгана уу (жишээ нь, idf_monitor.py –no-reset).
Анхаарна уу: IDF Monitor-ыг тодорхой порт руу холбосон ч гэсэн –но-reset сонголт нь ижил үйлдлийг гүйцэтгэдэг (жишээ нь, idf.py monitor –no-reset -p [PORT]).
GDB-г GDBStub-тай ажиллуулах нь GDBStub нь зорилтот дээр ажилладаг бөгөөд дибаг хийх командуудыг хүлээн авахын тулд цуваа портоор хосттой холбогддог ашигтай ажиллах үеийн дибаг хийх функц юм. GDBStub нь санах ой болон хувьсагчийг унших, дуудлагын стекийн хүрээг шалгах гэх мэт командуудыг дэмждэг. Хэдийгээр GDBStub нь J-ээс бага уян хатан байдаг.TAG дибаг хийхдээ энэ нь ямар нэгэн тусгай тоног төхөөрөмж шаарддаггүй (JTAG USB гүүр рүү) холболтыг бүхэлд нь цуваа портоор гүйцэтгэдэг. Ажиллах үед CONFIG_ESP_SYSTEM_PANIC-г GDBStub болгон тохируулснаар зорилтот GDBStub-г далд ажиллуулахаар тохируулж болно. Цуваа портоор Ctrl+C мессеж илгээгдэх хүртэл GDBStub нь ард ажиллах бөгөөд GDBStub програмыг эвдэх (өөрөөр хэлбэл, гүйцэтгэлийг зогсоох) шалтгаан болж, GDBStub нь дибаг хийх командуудыг удирдах боломжийг олгоно. Цаашилбал, түгшүүртэй үед CONFIG_ESP_SYSTEM_PANIC-г GDBStub болгон тохируулснаар үймээн хянагчийг GDBStub-ийг гацсан үед ажиллуулахаар тохируулж болно. Гэмтлийн үед GDBStub нь цуваа порт дээр тусгай мөрийн загвар гаргаж, ажиллаж байгааг илтгэнэ. Аль ч тохиолдолд (өөрөөр хэлбэл, Ctrl+C мессеж илгээх эсвэл тусгай мөрийн загварыг хүлээн авах) IDF Monitor нь хэрэглэгчдэд дибаг хийх командуудыг илгээх боломжийг олгохын тулд GDB-г автоматаар ажиллуулна. GDB гарсны дараа зорилтот RTS цуваа шугамаар дахин тохируулагдана. Хэрэв энэ шугам холбогдоогүй бол хэрэглэгчид зорилтоо дахин тохируулах боломжтой (самбарыг дахин тохируулах товчийг дарж).
Тайлбар: Цаана нь IDF Monitor нь GDB-г ажиллуулахын тулд дараах тушаалыг ажиллуулдаг:
xtensa-esp32-elf-gdb -ex “цуваа дамжуулах BAUD тохируулах” -ex “target remote PORT” -ex тасалдал үүсгэх/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″, …). Тодорхойлоогүй a эсвэл * өгөгдмөл тохиргоог дэлгэрэнгүй түвшинд ашиглах.
Тайлбар: Бүртгэлийн номын сангаас шаардлагагүй гаралтыг эмхэтгэхэд идэвхгүй болгохын тулд анхдагч бүртгэлийг ашиглана уу. IDF дэлгэц бүхий гаралтын шүүлтүүр нь програмыг дахин хөрвүүлэхгүйгээр шүүлтүүрийн сонголтыг тохируулахад тустай хоёрдогч шийдэл юм.
Таны апп tags хоосон зай, од *, эсвэл хоёр цэг агуулаагүй байх ёстой: гаралтын шүүлтүүр функцтэй нийцтэй байх.
Хэрэв таны програмын гаралтын сүүлийн мөрийн араас тэрэгний буцах тэмдэг байхгүй бол гаралтын шүүлтүүр нь төөрөгдөж болзошгүй, өөрөөр хэлбэл монитор мөрийг хэвлэж эхлэх бөгөөд дараа нь мөр бичигдээгүй болохыг олж мэдэх болно. Энэ нь мэдэгдэж байгаа асуудал бөгөөд үргэлж тэрэгний буцаалтыг нэмж оруулснаар зайлсхийх боломжтой (ялангуяа дараа нь гаралт гарахгүй үед).

Espressif системүүд

33 Баримт бичгийн санал хүсэлтийг илгээх

5.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” зөвхөн хэвлэнэ tagМэдээллийн дэлгэрэнгүй байдлын түвшинд 1 буюу түүнээс бага ба tagАнхааруулга дээр 2
дэлгэрэнгүй ярих түвшин буюу түүнээс бага. · Дүрэм "tag1: I tag2: В tag3:N” нь үндсэндээ өмнөхтэй дүйцэх учир нь tag3:N зааж өгнө
тэр tag3 хэвлэх ёсгүй. · tagДүрэм дэх 3: N "tag1: I tag2: В tag3:N *:V” нь байхгүй учраас илүү утга учиртай tag3: N the
tag3 мессеж хэвлэсэн байж болно; -д зориулсан алдаанууд tag1 ба tag2-ыг заасан (эсвэл түүнээс доош) дэлгэрэнгүй байдлаар хэвлэх ба бусад бүх зүйлийг анхдагчаар хэвлэнэ.
Илүү нарийн төвөгтэй шүүлтүүр жишээample Дараах бүртгэлийн хэсгийг ямар ч шүүлтүүрийн сонголтгүйгээр авсан:
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: 0x30000 дээрх зураг буруу шидэт байттай байна W (31) esp_image: 0x30000 дээрх зураг хүчингүй байна (SPI горимын Fa3 программ 255 ачаалах боломжгүй) (568) cpu_start: Pro cpu дээшлэх. I (569) heap_init: Эхэлж байна. Динамик хуваарилалтад ашиглах боломжтой RAM: I (603) cpu_start: Pro cpu start хэрэглэгчийн код D (309) light_driver: [light_init, 74]:status: 1, горим: 2 D (318) vfs: esp_vfs_register_fd_range <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, len: 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 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Линукс болон macOS-д зориулсан стандарт хэрэгслийн сүлжээний тохиргоог эхлүүлэх

Суулгацыг алхам алхмаар хийх Энэ бол суулгах явцад танд туслах дэлгэрэнгүй замын зураг юм.
Хөгжлийн орчныг тохируулах Эдгээр нь таны ESP32-д ESP-IDF-г тохируулах алхамууд юм. · Алхам 1. Урьдчилсан нөхцөлийг суулгах · Алхам 2. ESP-IDF авах · Алхам 3. Багаж хэрэгслийг тохируулах · Алхам 4. Орчны хувьсагчдыг тохируулах · Алхам 5. ESP-IDF дээрх эхний алхамууд
Алхам 1. Суулгах Урьдчилсан нөхцөл ESP-IDF-ийг ESP32-тэй ашиглахын тулд та үйлдлийн систем дээрээ тулгуурлан зарим програм хангамжийн багцуудыг суулгах хэрэгтэй. Энэхүү тохиргооны гарын авлага нь Linux болон macOS дээр суурилсан бүх зүйлийг суулгахад тань туслах болно.
Линукс хэрэглэгчдийн хувьд ESP-IDF ашиглан эмхэтгэхийн тулд та дараах багцуудыг авах шаардлагатай. Ажиллуулах тушаал нь таны ашиглаж буй Линуксийн аль түгээлтээс хамаарна:
· Ubuntu болон Debian: sudo apt-get суулгах git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 & 8: sudo yum -y update && sudo yum суулгах git wget flex bizon gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7-г дэмжсэн хэвээр байгаа ч хэрэглэгчийг илүү сайн ашиглахын тулд CentOS хувилбар 8-ыг санал болгож байна. · Arch: sudo pacman -S – шаардлагатай gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Тайлбар: · ESP-IDF-тэй ашиглахад CMake 3.16 буюу түүнээс дээш хувилбар шаардлагатай. Хэрэв таны үйлдлийн системийн хувилбарууд байхгүй бол тохирох хувилбарыг суулгахын тулд otools/idf_tools.py install cmakep-ийг ажиллуулна уу. · Хэрэв та дээрх жагсаалтаас өөрийн Линукс түгээлтийг олж харахгүй байгаа бол багц суулгахдаа ямар командыг ашиглахыг мэдэхийн тулд түүний бичиг баримтыг шалгана уу.
MacOS хэрэглэгчдийн хувьд ESP-IDF нь macOS дээр анхдагчаар суулгасан Python хувилбарыг ашиглах болно. · CMake & Ninja build-г суулгана уу: Хэрэв танд HomeBrew байгаа бол дараахыг ажиллуулж болно: brew install cmake ninja dfu-util Хэрэв танд MacPorts байгаа бол дараахыг ажиллуулж болно: sudo port install cmake ninja dfu-util Үгүй бол CMake болон Ninja нүүр хуудаснаас macOS суулгацыг татаж авах боломжтой.

Espressif системүүд

35 Баримт бичгийн санал хүсэлтийг илгээх

5.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: гүйцэтгэх боломжтой CPU-ийн төрөл муу: ~/.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 – хувилбар
Хэрэв гаралт нь 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 Баримт бичгийн санал хүсэлтийг илгээх

5.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
эсвэл Fish shell 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 хувилбаруудаас татаж авсан бие даасан хэрэгслүүдийг хянадаг бөгөөд энэ нь өөрчлөхгүй URLs нь Git репозиторууд руу нэвтрэхэд ашиглагддаг.

Хэрэгслийг суулгахдаа Espressif татаж авах серверийг илүүд үзэхийн тулд install.sh-г ажиллуулахдаа дараах дарааллыг ашиглана уу:

Espressif системүүд

37 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

cd ~/esp/esp-idf экспорт IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Хэрэгслийн суулгалтын замыг өөрчлөх Энэ алхамд танилцуулсан скриптүүд нь ESP-IDF-д шаардлагатай эмхэтгэлийн хэрэгслүүдийг Линукс дээрх хэрэглэгчийн гэрийн лавлах: $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гэх мэт)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Терминал сессийг дахин эхлүүлэх эсвэл эх сурвалжийг [pro-д хүрэх зам руу шилжүүлэх замаар тохиргоог сэргээнэ үү.file],
жишээ ньample, эх сурвалж ~/.bashrc. Одоо та get_idf-г ажиллуулж дурын терминалын сесс дээр esp-idf орчныг тохируулах эсвэл шинэчлэх боломжтой. Техникийн хувьд та өөрийн shellns pro дээрээ export.sh-г нэмж болноfile шууд; гэхдээ үүнийг зөвлөдөггүй. Ингэснээр терминалын сесс бүрт IDF виртуал орчныг идэвхжүүлж (IDF шаардлагагүй газруудыг оруулаад) виртуал орчны зорилгыг алдагдуулж, бусад програм хангамжид нөлөөлөх магадлалтай.
Алхам 5. ESP-IDF-ийн эхний алхмууд Одоо бүх шаардлагыг хангасан тул дараагийн сэдэв нь анхны төслөө хэрхэн эхлүүлэх талаар танд чиглүүлэх болно. Энэхүү гарын авлага нь ESP-IDF-г ашиглах эхний алхамуудыг хийхэд тань туслах болно. Энэ гарын авлагыг дагаж ESP32 дээр шинэ төсөл эхлүүлж, төхөөрөмжийн гаралтыг бүтээх, анивчуулах, хянах боломжтой.
Тайлбар: Хэрэв та ESP-IDF-г суулгаагүй байгаа бол уг гарын авлагыг ашиглахад шаардлагатай бүх программ хангамжийг авахын тулд Суулгац руу орж зааврыг дагана уу.

Төсөл эхлүүлэх Одоо та ESP32-д зориулсан өргөдлөө бэлтгэхэд бэлэн боллоо. Та өмнөхөөсөө getstarted/hello_world төслөөс эхэлж болноampESP-IDF дахь les лавлах.

Анхаарах зүйл: ESP-IDF бүтээх систем нь ESP-IDF эсвэл төслүүд рүү хүрэх зам дахь зайг дэмждэггүй.

Төслийн get-started/hello_world-г ~/esp лавлах руу хуулна уу:

Espressif системүүд

38 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Жич: Өмнөх хэд хэдэн төрөл байдагample төслүүд хуучинampESP-IDF дахь les лавлах. Та ямар ч төслийг дээр дурдсантай ижил аргаар хуулж, ажиллуулж болно. Мөн экс барих боломжтойamples in-place тэдгээрийг эхлээд хуулбарлахгүйгээр.
Төхөөрөмжөө холбоно уу. Одоо ESP32 самбараа компьютерт холбож, самбар аль цуваа порт дээр харагдаж байгааг шалгана уу. Цуваа портууд дараах нэршлийн загвартай:
· Линукс: /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 сүлжээний нэр, нууц үг, процессорын хурд гэх мэт төслийн тодорхой хувьсагчдыг тохируулахын тулд энэ цэсийг ашиглаж байна. Төслийг menuconfig ашиглан тохируулахыг forohello_worldp алгасаж болно, учир нь энэ өмнөхample гүйдэг

Espressif системүүд

39 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
анхдагч тохиргоо.
Анхаар: Хэрэв та ESP32-SOLO-1 модультай ESP32-DevKitC самбар эсвэл ESP32-MIN1-1(1U) модультай ESP32-DevKitM-1 хавтанг ашигладаг бол хуучин анивчахаас өмнө цэсийн тохиргооны нэг цөмт горимыг (CONFIG_FREERTOS_UNICORE) идэвхжүүлнэ үү.amples.
Тайлбар: Цэсийн өнгө таны терминал дээр өөр байж болно. Та гадаад төрхийг загварын сонголтоор өөрчилж болно. Нэмэлт мэдээлэл авахын тулд idf.py menuconfig –help програмыг ажиллуулна уу.
Хэрэв та дэмжигдсэн хөгжүүлэлтийн самбаруудын аль нэгийг ашиглаж байгаа бол Зөвлөлийн дэмжлэгийн багцыг ашиглан хөгжлийг хурдасгах боломжтой. Нэмэлт мэдээлэл авахыг хүсвэл Нэмэлт зөвлөмжийг үзнэ үү.
Төслийг бий болгох Төслийг бүтээнэ үү:
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_ld. 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 build-г ажиллуулах шаардлагагүй.

Espressif системүүд

40 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх

Анивчих үед асуудал гарсан уу? Хэрэв та өгөгдсөн командыг ажиллуулж, холболт амжилтгүй болсон гэх мэт алдааг олж харвал энэ нь хэд хэдэн шалтгаан байж болно. Үүний нэг шалтгаан нь чипийг дахин тохируулах, ROM ачаалагчтай ажиллах, флэш программ хангамжийг суулгахын тулд бүтээх системээс дуудагддаг esptool.py-д тулгарч буй асуудлууд байж болох юм. Турших энгийн нэг шийдэл бол доор тайлбарласан гараар дахин тохируулах бөгөөд хэрэв энэ нь тус болохгүй бол алдааг олж засварлах хэсэгт гарч болзошгүй асуудлуудын талаар дэлгэрэнгүй мэдээлэл авах боломжтой.
esptool.py нь USB-ээс цуваа хөрвүүлэгч чипийн DTR болон RTS хяналтын шугамуудыг, өөрөөр хэлбэл, FTDI эсвэл CP210x-ийг баталгаажуулснаар ESP32-г автоматаар дахин тохируулдаг (дэлгэрэнгүй мэдээллийг ESP32-ээр Цуваа холболт үүсгэх хэсгийг үзнэ үү). DTR болон RTS хяналтын шугамууд нь ESP32-ийн GPIO0 ба CHIP_PU (EN) зүүнүүдтэй ээлжлэн холбогдсон тул дууны хэмжээ өөрчлөгдөнө.tagDTR болон RTS-ийн e түвшин нь ESP32-г Firmware Татаж авах горимд ачаалах болно. Хуучин хүний ​​хувьдample, ESP32 DevKitC хөгжүүлэх самбарын схемийг шалгана уу.
Ерөнхийдөө, та албан ёсны esp-idf хөгжүүлэлтийн самбартай холбоотой асуудал гарах ёсгүй. Гэсэн хэдий ч esptool.py нь дараах тохиолдолд таны техник хангамжийг автоматаар дахин тохируулах боломжгүй.
· Таны техник хангамжид GPIO0 болон CHIP_PU-д холбогдсон DTR болон RTS шугам байхгүй · DTR болон RTS шугамууд өөр өөр тохируулагдсан · Ийм цуваа хяналтын шугамууд огт байхгүй.
Танд байгаа техник хангамжийн төрлөөс хамааран ESP32 хавтанг гараар програм хангамжийг татаж авах горимд оруулах (дахин тохируулах) боломжтой.
· Espressif-ийн үйлдвэрлэсэн хөгжүүлэлтийн самбаруудын хувьд энэ мэдээллийг холбогдох эхлэлийн гарын авлага эсвэл хэрэглэгчийн гарын авлагаас олж болно. Жишээ ньampESP-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 0x800000x partition table_table/partition. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Цуваа порт /dev/ttyUSB0 Холбогдож байна…….._ Чип нь ESP32D0WDQ6 (хувилбар 0) Онцлогууд: WiFi, BT, Хос цөмт, CAC4 кодчилол байхгүй: MAC4 24:0a:c4:05:b9:14 stub байршуулж байна... stub ажиллаж байна... Stub ажиллаж байна... Дамжуулах хурдыг 460800 болгож өөрчилж байна Өөрчлөгдсөн. Флэш хэмжээг тохируулж байна... 3072 байтыг 103 болгож шахсан... 0x00008000… (100%) дээр бичиж байна 0.0 секундэд 3072 байт (103 шахсан) бичсэн (үр дүнтэй 5962.8 кбит/с өгөгдөл)... 26096 байтыг 15408 болгож шахсан... 0x00001000… (100%) дээр бичиж байна. 0x00001000-д 26096 байт (15408 шахсан) 0.4 секундэд бичсэн (үр дүнтэй 546.7 кбит/с өгөгдөл).... 147104 байтыг 77364 болгон шахав... 0x00010000… (20 %) дээр бичих
(дараагийн хуудсанд үргэлжилнэ)

Espressif системүүд

41 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

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

Хэрэв танд ийм асуудал байгаа бол дараахь зүйлийг хий.
1. Монитороос гарна уу. 2. Menuconfig руу буцна уу. 3. Component config > Hardware Settings > Main XTAL Config > Main XTAL руу очно уу.
давтамж, дараа нь CONFIG_XTAL_FREQ_SEL-ийг 26 МГц болгон өөрчил. 4. Үүний дараа програмаа дахин бүтээж, флэш болгоно.

Espressif системүүд

42 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
ESP-IDF-ийн одоогийн хувилбарт ESP32 дэмждэг үндсэн XTAL давтамжууд дараах байдалтай байна.
· 26 МГц · 40 МГц
Тэмдэглэл: Та idf.py -p PORT флаш дэлгэцийг ажиллуулснаар бүтээх, анивчих, хяналтыг нэг алхам болгон нэгтгэж болно.
Мөн үзнэ үү: · IDF мониторыг ашиглахад хялбар товчлол болон IDF мониторыг ашиглах талаар дэлгэрэнгүй мэдээлэл авах. · idf.py командууд болон сонголтуудын бүрэн лавлагааг idf.py.
Энэ бол ESP32-г эхлүүлэхэд хэрэгтэй бүх зүйл! Одоо та өөр эксийг туршиж үзэхэд бэлэн байнаamples, эсвэл шууд өөрийн хэрэглээний программуудыг хөгжүүлэх.
Чухал: Зарим нь хуучинamples нь ESP32-г дэмждэггүй, учир нь шаардлагатай техник хангамж ESP32-д ороогүй тул үүнийг дэмжих боломжгүй. Хэрэв хуучин байшин барьж байгаа болample, README-г шалгана уу file Дэмжигдсэн зорилтуудын хүснэгтийн хувьд. Хэрэв энэ нь ESP32 зорилтыг оруулаад байгаа эсвэл хүснэгт огт байхгүй бол хуучинampESP32 дээр ажиллах болно.
Нэмэлт зөвлөмжүүд
Зөвшөөрлийн асуудал /dev/ttyUSB0 Зарим Линуксийн түгээлтийн хувьд ESP32-г анивчуулах үед та /dev/ttyUSB0 портыг нээж чадсангүй алдааны мессежийг авч болно. Үүнийг одоогийн хэрэглэгчийг харилцах бүлэгт нэмэх замаар шийдэж болно.
Python нийцтэй ESP-IDF Python 3.7 буюу түүнээс дээш хувилбарыг дэмждэг. Үйлдлийн системээ энэ шаардлагыг хангасан сүүлийн хувилбар руу шинэчлэхийг зөвлөж байна. Бусад сонголтууд нь эх сурвалжаас Python суулгах эсвэл pyenv гэх мэт Python хувилбарын удирдлагын системийг ашиглах явдал юм.
Удирдах зөвлөлийн дэмжлэгийн багцаас эхлээрэй. Зарим хөгжүүлэлтийн самбар дээр загварчлалыг хурдасгахын тулд та самбарын дэмжлэгийн багцуудыг (BSPs) ашиглаж болох бөгөөд энэ нь тодорхой самбарыг эхлүүлэхэд цөөн тооны функцийг дуудах шиг хялбар болгодог. BSP нь ихэвчлэн хөгжүүлэлтийн самбар дээр өгөгдсөн бүх техник хангамжийн бүрэлдэхүүн хэсгүүдийг дэмждэг. BSP нь мэдрэгч, дэлгэц, аудио кодлогч гэх мэт гадаад бүрэлдэхүүн хэсгүүдийн драйверуудтай хамт ирдэг. BSP нь IDF Component Manager-ээр түгээгддэг тул тэдгээрийг IDF Component Registry-ээс олж болно. Хэренс эксampESP-WROVER-KIT BSP-ийг төсөлдөө хэрхэн нэмэх талаар: idf.py add-dependency esp_wrover_kit
Илүү хуучинampBSP ашиглалтын талаархи мэдээллийг BSP ex-ээс олж болноamples хавтас.
Зөвлөмж: ESP-IDF-г шинэчлэх Шинэ хувилбарууд нь алдаа засах ба/эсвэл шинэ боломжуудыг олгодог тул ESP-IDF-г үе үе шинэчлэхийг зөвлөж байна. ESP-IDF-ийн үндсэн болон бага хувилбар бүр нь холбогдох дэмжлэгийн хугацаатай байдаг бөгөөд нэг хувилбарын салбар ашиглалтын хугацаа дуусах дөхөхөд (EOL) бүх хэрэглэгчид төслөө илүү сүүлийн үеийн ESP-IDF хувилбарууд руу шинэчлэх, дэмжлэг үзүүлэх хугацааны талаар илүү ихийг мэдэхийг хүсвэл ESP-IDF хувилбаруудыг үзнэ үү.

Espressif системүүд

43 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 1. Эхлэх
Шинэчлэлт хийх хамгийн энгийн арга бол одоо байгаа esp-idf хавтсыг устгаад 2-р алхамд тайлбарласан анхны суулгацыг хийж байгаа мэт дахин хуулбарлах явдал юм. 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 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

2-р бүлэг
API лавлагаа
2.1 API конвенцууд
Энэхүү баримт бичиг нь ESP-IDF Хэрэглээний Програмчлалын Интерфэйс (API)-д нийтлэг байдаг конвенц, таамаглалуудыг тайлбарласан болно. ESP-IDF нь хэд хэдэн төрлийн програмчлалын интерфейсээр хангадаг:
· Нийтийн толгой хэсэгт зарласан C функц, бүтэц, тоолол, төрлийн тодорхойлолт, урьдчилсан процессорын макро fileESPIDF бүрэлдэхүүн хэсгүүдийн s. Програмчлалын гарын авлагын API лавлагааны хэсэг дэх янз бүрийн хуудсууд нь эдгээр функц, бүтэц, төрлүүдийн тайлбарыг агуулдаг.
· Системийн функц, урьдчилан тодорхойлсон хувьсагч, сонголтуудыг бүтээх. Эдгээрийг бүтээх системийн гарын авлагад баримтжуулсан болно. · 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 = "my_timemer"
}; esp_timer_handle_t my_timemer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timemer);
Эхлүүлэх функцууд нь заагчийг хэзээ ч тохиргооны бүтцэд хадгалахгүй тул бүтцийг стек дээр хуваарилах нь аюулгүй юм.
Програм нь бүтцийн бүх талбарыг эхлүүлэх ёстой. Дараахь зүйл буруу байна.
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 тохиргоо = 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 Баримт бичгийн санал хүсэлтийг илгээх

5.0.9 хувилбарыг гаргасан

Бүлэг 2. API лавлагаа
Үүнд байрлах бүрэлдэхүүн хэсгүүд орно

Баримт бичиг / нөөц

Espressif Systems ESP32 Dev Kitc Хөгжлийн Зөвлөл [pdf] Хэрэглэгчийн гарын авлага
ESP32 Dev Kitc Development Board, ESP32, Dev Kitc Development Board, Kitc Development Board, Development Board, Board

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *