Шӯрои рушди ESP32 Dev Kitc
Маълумот оид ба маҳсулот
Мушаххасоти
- Маҳсулот: ESP32
- Дастури барномасозӣ: ESP-IDF
- Версияи нашр: v5.0.9
- Истеҳсолкунанда: Espressif Systems
- Санаи нашр: 16 майи соли 2025
Дастурҳои истифодаи маҳсулот
1. Оғоз кунед
Пеш аз он ки бо ESP32 оғоз кунед, бо он шинос шавед
зерин:
1.1 Муқаддима
Дар бораи функсияҳо ва қобилиятҳои асосии он маълумот гиред
ESP32.
1.2 Он чизе ки ба шумо лозим аст
Боварӣ ҳосил кунед, ки шумо сахтафзор ва нармафзори зарурӣ доред:
- Таҷҳизоти: Рӯйхати сахтафзорҳои заруриро тафтиш кунед
ҷузъҳо. - Нармафзор: Нармафзори заруриро насб кунед
ҷузъҳо.
1.3 Насбкунӣ
Барои насб кардани IDE ва насб кардани он, ин қадамҳоро иҷро кунед
муҳити зист:
- IDE: IDE-и тавсияшударо барои
барномасозии ESP32. - Насби дастӣ: Ба таври дастӣ насб кунед
муҳити зист агар лозим бошад.
1.4 Лоиҳаи аввалини худро созед
Лоиҳаи ибтидоии худро бо истифода аз ESP32 созед ва созед.
1.5 ESP-IDF-ро нест кунед
Агар лозим бошад, омӯзед, ки чӣ тавр ESP-IDF-ро аз худ хориҷ кунед
система.
2. Маълумотномаи API
Барои маълумоти муфассал ба ҳуҷҷатҳои API муроҷиат кунед
протоколҳои барнома, коркарди хатогиҳо ва конфигуратсия
сохторҳо.
Саволҳои зуд-зуд пурсидашаванда (FAQ)
Савол: Чӣ тавр ман метавонам мушкилоти умумиро бо ESP32 ҳал кунам?
A: Ба бахши бартарафсозии мушкилот дар дастури барномасозӣ муроҷиат кунед
ё ба истеҳсолкунанда муроҷиат кунед webсайт барои захираҳои дастгирӣ.
Савол: Оё ман метавонам ESP-IDF-ро бо микроконтроллерҳои дигар истифода барам?
A: ESP-IDF махсусан барои ESP32 тарҳрезӣ шудааст, аммо шумо метавонед пайдо кунед
мутобиқат бо дигар микроконтроллерҳои Espressif.
ESP32
Дастури барномасозии ESP-IDF
Нашри v5.0.9 Systems Espressif 16 майи соли 2025
Мундариҷа
Мундариҷа
i
1 Оғози кор
3
1.1 Муқаддима. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Он чизе ки ба шумо лозим аст. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Сахтафзор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Нармафзор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Насбкунӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Насбкунии дастӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Лоиҳаи аввалини худро созед. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 ESP-IDF-ро нест кунед. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 истинод ба API
45
2.1 Конвенсияҳои API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Муносибати хатогиҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Сохторҳои конфигуратсия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 APIҳои хусусӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 Компонентҳо дар мисоли мисampлоиҳаҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 Назорати маҳаллии ESP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 Пайванди ғуломи Serial ESP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 Маҷмӯи шаҳодатномаҳои ESP x509. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 Сервери HTTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 Сервери HTTPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 Эхо ICMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 Хадамоти mDNS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Мб TLS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 Қабати шабакаи IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 API Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 API-ҳои мизбон дар асоси NimBLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Истинодҳои рамзҳои хатогӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 API-ҳои шабакавӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 Ethernet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 Ришта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 Қабати шабакаи IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Қабати барнома . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 API периферивӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Аналогӣ ба Табдилдиҳандаи рақамӣ (ADC) ронандаи режими Oneshot. . . . . . . . . . . . . . . . . 977 2.6.2 Ронандаи Ҳолати пайвастаи аналогӣ ба Табдилдиҳандаи рақамӣ (ADC). . . . . . . . . . . . . . . 986 2.6.3 Ронандаи калибрченкунии аналогӣ ба табдилдиҳандаи рақамӣ (ADC). . . . . . . . . . . . . . . . . . . 993 2.6.4 Дарахти соат. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Табдилдиҳандаи рақамӣ ба аналогӣ (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO & RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Вақтсанҷи таъиноти умумӣ (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Схемаи интегралӣ (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Садо байни IC (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 Назорати LED (LEDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Модулятори паҳнои набзи назорати мотор (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Ҳисобкунаки набзи (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 ғуломи ронанда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Модулияти Sigma-Delta (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 Ронандаи Master SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI Ронандаи ғулом. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Таъмини 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 Utility Generator Partition NVS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 Ронандаи SD/SDIO/MMC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 API Flash SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Fileсистема. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Виртуалӣ fileҷузъи система. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 API Leveling Wear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Системаи API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Формати тасвири барнома. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Пайгирии сатҳи барнома. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Функсияи занг бо стеки беруна. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Навсозии чип. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Консол. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 Менеҷери eFuse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Рамзҳои хатогиҳо ва функсияҳои ёрирасон. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Китобхонаи Доиравӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Зиёда азview). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Хусусиятҳои иловагӣ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Тақсими хотираи тӯда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Ислоҳоти хотираи теппа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Вақтсанҷи баландсифат (Таймери ESP). . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 API-ҳои дохилӣ ва ноустувор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Занг байни протсессори. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Тақсимоти танаффус. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Китобхонаи логистика. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 API-ҳои гуногуни система. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Навсозиҳои ҳавоӣ (OTA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Монитори иҷроиш. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Идоракунии барқ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Дастгирии риштаҳои POSIX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Насли рақами тасодуфӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Усулҳои хоб. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Имкониятҳои SoC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Вақти система. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 API тақсимоти himem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Аввалин сtagд пурборкунанда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 сонияtagд пурборкунанда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Watchdog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Лоиҳаи CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Компоненти CMakeLists Fileс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Танзимоти ҷузъҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Таърифҳои пешазпросессор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Талабот ба ҷузъҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Қисмҳои барҳамдиҳии лоиҳа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Танҳо ҷузъҳои конфигуратсия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Ислоҳоти CMake. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Мисample Component CMakeLists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Пешфарзҳои фармоишии sdkconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Далелҳои флешдор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Сохтани боркунак. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Навиштани ҷузъҳои холиси CMake. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Истифодаи лоиҳаҳои CMake аз тарафи сеюм бо ҷузъҳо . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Истифодаи китобхонаҳои қаблан сохташуда бо ҷузъҳо. . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Истифодаи ESP-IDF дар лоиҳаҳои фармоишии CMake . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Глобинг ва сохтмонҳои афзоянда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Функсияҳои ROM дар Backtraces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Тағйирёбандаҳои демпинг мувофиқи талабот. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Иҷроиши espcoredump.py. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Бедории амиқ хоб. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Қоидаҳо барои бедоршавӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Амалисозии ноустувор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Боркунии код ба хотираи RTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Боркунии маълумот ба хотираи RTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 Санҷиши CRC барои бедоршавӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Мисampле. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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_BITHOUT_ABORT. . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 Макроси ESP_RETURN_ON_ERROR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 Макроси ESP_GOTO_ON_ERROR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 Макроси ESP_RETURN_ON_FALSE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 Макроси ESP_GOTO_ON_FALSE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 МАКРОСРО САНЧИШ КУНЕДamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Хатогии коркарди намунаҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 Истисноҳои C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Барview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Муқаддима. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 Консепсияҳои ESP-WIFI-MESH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Сохтани шабака. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Идоракунии шабака. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Интиқоли маълумот. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Гузариши канал. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 Иҷрои . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Эзоҳҳои иловагӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Коркарди рӯйдодҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Ҳодисаҳои Wi-Fi, Ethernet ва IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Ҳодисаҳои фикрию. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Ҳодисаҳои Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Хатогиҳои марговар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Зиёда азview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Коркарди воҳима. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Реестри партов ва Backtrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog Вақтсанҷи. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Статуси рамзгузории Flash ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Оғози Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Ислоҳи хатогиҳо Мисamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 васлаки API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 API Netconn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 (Хотираи маълумот). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Дастур RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (рамзи аз флеш иҷрошуда) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (маълумот дар флеш нигоҳ дошта мешавад) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Хотираи суст. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 хотираи RTC FAST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 Талаботи қобилияти DMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 Буфери DMA дар стек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Усулҳои стеки OpenThread. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Чӣ тавр барномаи OpenThreadро нависед. . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 Роутери сарҳадии OpenThread. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Ҷадвалҳои тақсимкунӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Зиёда азview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Ҷадвалҳои дарунсохт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Эҷоди ҷадвалҳои фармоишӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Эҷоди Ҷадвали тақсимоти дуӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Санҷиши андозаи тақсимот. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Дурахш кардани ҷадвали тақсимот. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Асбоби тақсимкунӣ (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Ичрои . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Боркунии бехатар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Замина. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Раванди пурборкунии бехатарview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Калидҳо . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Андозаи пурборкунанда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Чӣ тавр фаъол кардани пурборкунии бехатар . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Боркунаки нармафзори дубора Flashable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Эҷоди калиди имзои пурборкунии бехатар. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Имзои дурдасти тасвирҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Беҳтарин таҷрибаҳои пурборкунии бехатар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Тафсилоти техникӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Боркунии бехатар ва рамзгузории Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Санҷиши барнома имзошуда бе пурборкунии сахтафзор бехатар. . . . . . . . . . . . . . . . . . 2478 4.24.13 Хусусиятҳои пешрафта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Боркунии бехатар V2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Замина. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Адванtages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Раванди пурборкунии V2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Формати блоки имзо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Пойгоҳи бехатар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Санҷиши блоки имзо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Тасдиқи тасвир. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Андозаи пурборкунанда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 Истифодаи eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Чӣ тавр фаъол кардани пурборкунии бехатар V2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Маҳдудиятҳо пас аз фаъол шудани пурборкунии бехатар. . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Тавлиди калиди имзои пурборкунии бехатар. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 Имзои дурдасти тасвирҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Беҳтарин таҷрибаҳои пурборкунии бехатар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Тафсилоти техникӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Боркунии бехатар ва рамзгузории Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Захираи маҳаллӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Зиёда азview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 API Native FreeRTOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 API Pthread. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 Стандарти C11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Асбобҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 Тасвири IDF Docker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows Installer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 Менеҷери ҷузъҳои IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang тозаву озода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Воситаҳои боркашӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Санҷиши воҳид дар ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Ҳолатҳои санҷишии муқаррарӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Ҳолатҳои санҷиши бисёрсоҳавӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Мулти-сtage Ҳолатҳои санҷишӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Санҷишҳо барои ҳадафҳои гуногун. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Барномаи санҷиши воҳиди бинои. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Санҷишҳои воҳиди иҷрошаванда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Рамзи вақт бо таймер ҷуброни кэш. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Тамасхур. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Санҷиши воҳидҳо дар Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Санҷишҳои нармафзори дарунсохт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Санҷишҳои воҳиди IDF дар Linux Host. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Scan ESP32 Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Истгоҳи Wi-Fi Сенарияи пайвастшавӣ. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 Истгоҳи Wi-Fi ESP32 Пайвастшавӣ ҳангоми пайдо шудани якчанд НМ . . . . . . . . . . . . . 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 осон пайваст TM (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Идоракунии шабакаи бесим. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Андозагирии захираҳои радио. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Гузариш Fast BSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi Ҳолати сарфаи барқ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Гузаронидани Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
4.31.21 Wi-Fi 80211 Ирсоли баста. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Ҳолати Sniffer Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi Антеннаҳои сершумор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Маълумоти давлатии канали Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Wi-Fi Channel State Information Configure. . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Фрагменти Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS номнависшуда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Хамзистии РФ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Чаҳорчӯбаҳои абрӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 AWS IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 Azure IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 Google IoT Core. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 Aliyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.6 Joylink IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 Tencent IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 Чаҳорчӯби Espressifns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Чаҳорчӯбаи рушди аудио Espressif. . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Китобхонаи Espressif DSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 Чаҳорчӯбаи таҳияи ESP-WIFI-MESH. . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-ТУТ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 ESP-IoT-Hal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Дастури услуби чаҳорчӯбаи рушди IoT Espressif. . . . . . . . . . . . . . . . . . . . 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 Санҷишҳои ESP-IDF бо дастури Pytest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Лоиҳа Мисamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Қадамҳои оянда. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Пайвандҳои муфид. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Ҳуқуқҳои муаллифӣ ва иҷозатномаҳо
2653
10.1 Ҳуқуқи муаллифии нармафзор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Ҷузъҳои нармафзори миёнаравӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Ҳуҷҷатгузорӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 Ҳуқуқи муаллифии Кодекси сарчашмаи ROM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Литсензияи Xtensa libhal MIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 Литсензияи TinyBasic Plus MIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 Иҷозатномаи TJpgDec. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 Дар бораи
2657
12 Гузариш байни забонҳо
2659
Индекс
2661
Индекс
2661
ix
x
Мундариҷа
Ин ҳуҷҷатгузорӣ барои Espressif IoT Development Framework (esp-idf) мебошад. ESP-IDF чаҳорчӯбаи расмии таҳия барои ESP32, ESP32-S ва ESP32-C Series SoCs мебошад. Ин ҳуҷҷат истифодаи ESP-IDF-ро бо ESP32 SoC тавсиф мекунад.
Оғоз кунед
Истинод API
Дастурҳои API
Системаҳои Espressif
1 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Мундариҷа
Системаҳои Espressif
2 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1
Оғоз кунед
Ин ҳуҷҷат барои кӯмак расонидан ба шумо дар ташкили муҳити таҳияи нармафзор барои сахтафзор дар асоси чипи ESP32 аз ҷониби Espressif пешбинӣ шудааст. Баъд аз ин, собиқ оддӣample ба шумо нишон медиҳад, ки чӣ тавр истифода бурдани ESP-IDF (Espressif IoT Development Framework) барои конфигуратсияи меню ва сипас барои сохтан ва дурахши нармафзор дар тахтаи ESP32.
Эзоҳ: Ин ҳуҷҷат барои версияи устувори v5.0.9-и ESP-IDF мебошад. Дигар версияҳои ESP-IDF низ дастрасанд.
1.1 Муқаддима
ESP32 як система дар чип мебошад, ки хусусиятҳои зеринро муттаҳид мекунад: · Wi-Fi (басти 2.4 ГГц) · Bluetooth · Дучанд самаранокии баланд ядроҳои CPU Xtensa® 32-бита LX6 · Копротсессори Ultra Low Power · Дастгоҳҳои сершумор
Бо технологияи 40 нм, ESP32 платформаи мустаҳкам ва хеле ҳамгирошударо таъмин мекунад, ки ба қонеъ кардани талаботи пайваста барои истифодаи самараноки нерӯи барқ, тарҳи паймон, амният, иҷрои баланд ва эътимод мусоидат мекунад. Espressif захираҳои асосии сахтафзор ва нармафзорро барои кӯмак ба таҳиягарони барномаҳо дар амалӣ кардани ғояҳои худ бо истифода аз сахтафзори силсилаи ESP32 таъмин мекунад. Чаҳорчӯби таҳияи нармафзор аз ҷониби Espressif барои таҳияи барномаҳои Internetof-Things (IoT) бо Wi-Fi, Bluetooth, идоракунии нерӯ ва як қатор хусусиятҳои дигари система пешбинӣ шудааст.
1.2 Он чизе ки ба шумо лозим аст
1.2.1 Таҷҳизот
· Шӯрои ESP32. · Сими USB – USB A / micro USB B. · Компютер бо Windows, Linux ё macOS.
Эзоҳ: Дар айни замон, баъзе аз тахтаҳои таҳиякунанда пайвасткунакҳои USB Type C-ро истифода мебаранд. Боварӣ ҳосил кунед, ки шумо барои пайваст кардани тахтаи худ сими дуруст доред!
Агар шумо яке аз тахтаҳои расмии таҳияи ESP32 дар зер номбаршуда дошта бошед, шумо метавонед ба истиноди зер клик кунед, то дар бораи сахтафзор маълумоти бештар гиред.
3
Боби 1. Оғози кор
ESP32-DevKitS(-R)
Ин дастури корбар маълумотро дар бораи ESP32-DevKitS(-R), як тахтаи дурахшанда дар асоси ESP32, ки аз ҷониби Espressif истеҳсол шудааст, медиҳад. 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) тахтаи дурахши Espressifns мебошад, ки махсус барои ESP32 тарҳрезӣ шудааст. Онро барои дурахши модули ESP32 бидуни кафшер кардани модул ба таъминоти барқ ва хатҳои сигнал истифода бурдан мумкин аст. Бо модули насбшуда, ESP32-DevKitS(-R) инчунин метавонад ҳамчун як тахтаи мини рушд ба монанди ESP32-DevKitC истифода шавад.
Тахтаҳои ESP32-DevKitS ва ESP32-DevKitS-R танҳо дар тарҳбандии пинҳои баҳорӣ фарқ мекунанд, то ба модулҳои зерини ESP32 мувофиқат кунанд.
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB & IPEX) ESP32-WROVER-B (PCB & IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Барои маълумот дар бораи модулҳои дар боло зикршуда, лутфан ба модулҳои силсилаи ESP32 муроҷиат кунед.
Тавсифи ҷузъҳо
Системаҳои Espressif
4 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Расми 1: ESP32-DevKitS - пеши
Системаҳои Espressif
Расми 2: ESP32-DevKitS-R – пеши 5
Пешниҳоди фикру мулоҳизаҳо
Нашри v5.0.9
Боби 1. Оғози кор
Қисмати асосии таїіизот баҳор 2.54 мм Сарлавҳаҳои занона
USB-to-UART Bridge LDO Micro-USB Connector/Micro USB Port EN Тугмаи боркунӣ
Даргиронидани LED
Тавсифи Модулро пахш кунед. Дар таїіизот ба modulens castellated сӯрохиҳои мувофиқ. Ин сарлавҳаҳои занона ба пинҳои модули дар ин тахта насбшуда пайваст карда шудаанд. Барои тавсифи сарлавҳаҳои зан, лутфан ба блокҳои сарлавҳа муроҷиат кунед. Як чипи USB ба пули UART суръати интиқолро то 3 Мбит / сония таъмин мекунад.
5V-то-3.3V паст-тарки волtagтанзимгари электронӣ (LDO).
Интерфейси USB. Таъмини барқ барои тахта ва инчунин интерфейси коммуникатсионӣ байни компютер ва тахта.
Тугмаи барқароркунӣ.
Тугмаи зеркашӣ. Нигоҳ доштани тугмаи Боркунӣ ва сипас пахш кардани EN ҳолати Боргирии нармафзорро барои зеркашии нармафзор тавассути порти силсилавӣ оғоз мекунад.
Вақте ки USB ё таъминоти барқ ба тахта пайваст мешавад, фурӯзон мешавад.
Пеш аз фаъол кардани ESP32-DevKitS(-R) тахтаро чӣ гуна бояд флешдор кард, лутфан боварӣ ҳосил кунед, ки он дар ҳолати хуб аст ва ҳеҷ гуна аломатҳои осебпазир нест.
Таҷҳизоти зарурӣ · Модули ESP32 бо интихоби шумо · Сими USB 2.0 (Стандарт-А то Micro-B) · Компютер бо Windows, Linux ё macOS
Танзими сахтафзор Лутфан, мувофиқи қадамҳои зерин модули интихобкардаи худро ба ESP32-DevKitS(-R) насб кунед:
· Модули худро хушхӯю ба тахтаи ESP32-DevKitS(-R) гузоред. Боварӣ ҳосил кунед, ки сӯрохиҳои дар модули шумо ҷойгиршуда бо пинҳои пружинӣ дар тахта мувофиқат мекунанд.
· Модули худро ба тахта то пахш кардани он пахш кунед. · Тафтиш кунед, ки оё ҳама пинҳои пружинӣ ба сӯрохиҳои қаҳваранг гузошта шудаанд. Агар баъзе пинҳои баҳорӣ нодуруст ҷойгир карда шаванд,
онҳоро ба сӯрохиҳои castellated бо пинцет ҷойгир кунед.
Насби нармафзор
Усули афзалиятнок Чаҳорчӯби таҳияи ESP-IDF роҳи беҳтарини дурахши бинарҳоро дар ESP32-DevKitS(-R) таъмин мекунад. Лутфан, ба Оғози кор идома диҳед, ки дар он ҷо Насбкунии Бахш ба шумо дар танзими муҳити таҳия ба зудӣ кӯмак мекунад ва сипас як барномаи қаблиро флешдор мекунадampба ESP32-DevKitS(-R)-и худ гузаред.
Усули алтернативӣ Ҳамчун алтернатива, корбарони Windows метавонанд бо истифода аз абзори Flash Download дуӣ флешдор кунанд. Танҳо онро зеркашӣ кунед, онро кушоед ва дастурҳои дохили папкаи doc -ро иҷро кунед.
Эзоҳ: 1. Барои дурахши дуӣ files, ESP32 бояд ба ҳолати Боргирии Firmware танзим карда шавад. Ин метавонад ё тавассути асбоби флешдор ба таври худкор ё бо пахш кардани тугмаи боркунӣ ва пахш кардани тугмаи EN анҷом дода шавад. 2. Пас аз дурахши дуӣ files, Tool Download Flash модули ESP32-и шуморо бозоғоз мекунад ва ба таври нобаёнӣ барномаи дурахшидашударо оғоз мекунад.
Андозаҳои Шӯрои Мундариҷа ва бастабандӣ
Системаҳои Espressif
6 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор Расми 3: Андозаҳои тахтаи ESP32-DevKitS – бозгашт
Системаҳои Espressif
Расми 4: Андозаҳои тахтаи ESP32-DevKitS-R – пушти 7
Пешниҳоди фикру мулоҳизаҳо
Нашри v5.0.9
Боби 1. Оғози кор
Фармоишҳои чакана Агар шумо якчанд сamples, ҳар як ESP32-DevKitS(-R) дар як бастаи инфиродӣ дар халтаи антистатикӣ ё ҳама гуна бастабандӣ вобаста ба фурӯшанда меояд. Барои фармоишҳои чакана, лутфан ба https://www.espressif.com/en/contact-us/get-s гузаредamples.
Фармоишҳои яклухт Агар шумо яклухт фармоиш диҳед, тахтаҳо дар қуттиҳои картони калон меоянд. Барои фармоишҳои яклухт, лутфан ба https://www.espressif.com/en/contact-us/sales-questions гузаред.
Маълумотномаи сахтафзор
Диаграммаи блок Диаграммаи блок дар зер ҷузъҳои ESP32-DevKitS(-R) ва пайвастагии онҳоро нишон медиҳад.
Расми 5: ESP32-DevKitS(-R) (барои калон кардан клик кунед)
Имконоти таъминоти барқ Се роҳи мутақобилан истисноии таъмини барқ ба тахта вуҷуд дорад: · Порти Micro USB, таъминоти барқии пешфарз · 5V ва пинҳои сарлавҳаи GND · пинҳои сарлавҳаи 3V3 ва GND
Тавсия дода мешавад, ки варианти аввалро истифода баред: порти micro USB.
Системаҳои Espressif
.
Сигнал
L1 3V3 VDD 3V3
L2 EN CHIP_PU
L3 VP SENSOR_VP
L4 VN SENSOR_VN
Л5 34
GPIO34
Л6 35
GPIO35
Л7 32
GPIO32
Л8 33
GPIO33
дар саҳифаи оянда идома медиҳад
8 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Ҷадвали 1 аз саҳифаи қаблӣ идома дорад
.
Сигнал
Л9 25
GPIO25
Л10 26
GPIO26
Л11 27
GPIO27
Л12 14
GPIO14
Л13 12
GPIO12
L14 GND GND
Л15 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-V (PDF) (PDF) · Варақаи маълумотии ESP32-WROVER-B (PDF) · Интихоби маҳсулоти ESP
ESP32-DevKitM-1
Ин дастури корбар ба шумо дар оғоз бо ESP32-DevKitM-1 кӯмак мекунад ва инчунин маълумоти амиқтар медиҳад.
ESP32-DevKitM-1 як тахтаи таҳияи ESP32-MINI-1(1U) аст, ки аз ҷониби Espressif истеҳсол шудааст. Аксари пинҳои I/O ба сарлавҳаҳои пин дар ҳарду ҷониб барои интерфейси осон канда шудаанд. Истифодабарандагон метавонанд ё дастгоҳҳои перифериро бо симҳои jumper пайваст кунанд ё ESP32-DevKitM-1-ро дар тахтаи нон насб кунанд.
Системаҳои Espressif
9 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
ESP32-DevKitM-1 - пеш
ESP32-DevKitM-1 - изометрӣ
Ҳуҷҷат аз қисмҳои асосии зерин иборат аст: · Оғози кор: Пешниҳод мекунадview аз ESP32-DevKitM-1 ва дастурҳои насби сахтафзор/нармафзор барои оғоз кардан. · Маълумоти сахтафзор: Маълумоти муфассалро дар бораи сахтафзори ESP32-DevKitM-1ns медиҳад. · Ҳуҷҷатҳои марбут: Истинодҳоро ба ҳуҷҷатҳои алоқаманд медиҳад.
Оғози кор Ин бахш тасвир мекунад, ки чӣ тавр бо ESP32-DevKitM-1 оғоз кардан мумкин аст. Он бо чанд бахшҳои муқаддимавӣ дар бораи ESP32-DevKitM-1 оғоз мешавад, пас Бахши Оғози таҳияи барнома дастурҳоро дар бораи чӣ гуна анҷом додани насби ибтидоии сахтафзор ва сипас чӣ гуна флешдор кардани нармафзор дар ESP32-DevKitM-1 медиҳад.
Барview Ин як тахтаи хурд ва қулайи рушд аст, ки дорои хусусиятҳои:
· Модули ESP32-MINI-1, ё ESP32-MINI-1U · Интерфейси барномасозии USB-ба-сериявӣ, ки инчунин таъмини қувваи барқро барои тахта таъмин мекунад · сарлавҳаҳои пин · тугмаҳо барои аз нав танзим кардан ва фаъолсозии ҳолати боргирии нармафзор · чанд ҷузъҳои дигар
Мундариҷа ва бастабандӣ
Фармоишҳои чакана Агар шумо якчанд сamples, ҳар як ESP32-DevKitM-1 дар як бастаи инфиродӣ дар халтаи антистатикӣ ё ҳама гуна бастабандӣ вобаста ба фурӯшандаи шумо меояд.
Барои фармоишҳои чакана, лутфан ба https://www.espressif.com/en/contact-us/get-s гузаредamples.
Фармоишҳои яклухт Агар шумо яклухт фармоиш диҳед, тахтаҳо дар қуттиҳои картони калон меоянд. Барои фармоишҳои яклухт, лутфан ба https://www.espressif.com/en/contact-us/sales-questions гузаред.
Тавсифи ҷузъҳо Дар расми зерин ва ҷадвали зер ҷузъҳои калидӣ, интерфейсҳо ва идоракунии панели ESP32-DevKitM-1 тавсиф карда шудаанд. Мо тахтаро бо модули ESP32-MINI-1 ҳамчун собиқ мегиремample дар бахшҳои зерин.
Системаҳои Espressif
10 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Расми 6: ESP32-DevKitM-1 - пеши
Компоненти асосӣ Модули борт
5 V то 3.3 V LDO Тугмаи пурборкунанда
Тугмаи аз нав танзимкунии порти Micro-USB
USB-to-UART Bridge 3.3 V Power On LED
Пайвасткунаки I/O
Тавсифи
Модули ESP32-MINI-1 ё модули ESP32-MINI-1U. ESP32-MINI-1 бо мавҷгири PCB дар борт меояд. ESP32-MINI-1U бо пайвасткунаки мавҷгири беруна меояд. Ҳарду модул дорои флеши 4 МБ дар бастаи чип мебошанд. Барои тафсилот, лутфан ба ҷадвали маълумотии ESP32-MINI-1 & ESP32-MINI-1U нигаред.
Танзимгари барқ 5 В ба 3.3 В табдил медиҳад.
Тугмаи зеркашӣ. Нигоҳ доштани тугмаи "Боркунӣ" ва сипас пахш кардани Reset режими Боргирии нармафзорро барои зеркашии нармафзор тавассути порти силсилавӣ оғоз мекунад.
Тугмаи Reset
Интерфейси USB. Таъмини барқ барои тахта ва инчунин интерфейси иртибот байни компютер ва чипи ESP32.
Чипи пули ягонаи USB-UART суръати интиқолро то 3 Мбит/с таъмин мекунад.
Вақте ки USB ба тахта пайваст мешавад, фаъол мешавад. Барои тафсилот, лутфан ба схемаҳо дар Ҳуҷҷатҳои марбут нигаред. Ҳама пинҳои дастраси GPIO (ба истиснои автобуси SPI барои флеш) ба сарлавҳаҳои пин дар тахта шикастаанд. Истифодабарандагон метавонанд чипи ESP32-ро барномарезӣ кунанд, то функсияҳои сершуморро фаъол созанд.
Таҳияи барномаро оғоз кунед Пеш аз фаъол кардани ESP32-DevKitM-1, лутфан боварӣ ҳосил кунед, ки он дар ҳолати хуб аст ва ҳеҷ гуна аломатҳои осебпазир нест.
Таҷҳизоти зарурӣ · ESP32-DevKitM-1 · Сими USB 2.0 (Стандарт-А то Micro-B) · Компютер бо Windows, Linux ё macOS
Танзими нармафзор Лутфан ба Оғози кор идома диҳед, ки дар он ҷо Насбкунии Бахш ба шумо зуд ба шумо дар танзим кардани муҳити таҳия кӯмак мекунад ва сипас як барномаи қаблиро флешдор мекунад.ampба ESP32-DevKitM-1 кунед.
Системаҳои Espressif
11 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Диққат: Тахтаҳои ESP32-DevKitM-1, ки то 2 декабри соли 2021 истеҳсол шудаанд, модули ягонаи аслӣ насб карда шудаанд. Барои санҷидани кадом модул шумо, лутфан маълумоти аломатгузории модулро дар PCN-2021-021 санҷед. Агар тахтаи шумо як модули аслӣ насб карда шуда бошад, пеш аз дурахши барномаҳои худ, лутфан ҳолати ягонаи ядроиро (CONFIG_FREERTOS_UNICORE) дар меню конфигуратсия фаъол созед.
Диаграммаи блоки истинод ба сахтафзор Диаграммаи блок дар зер ҷузъҳои ESP32-DevKitM-1 ва пайвастҳои байниҳамдигарии онҳоро нишон медиҳад.
Расми 7: ESP32-DevKitM-1
Интихоби манбаи барқ Се роҳи мутақобилан истисноии таъмини барқ ба тахта вуҷуд дорад: · Порти Micro USB, таъминоти пешфарзии барқ · 5V ва пинҳои сарлавҳаи GND · пинҳои сарлавҳаи 3V3 ва GND
Огоҳӣ: · Таъмини барқ бояд бо истифода аз як ва танҳо яке аз имконоти дар боло зикршуда таъмин карда шавад, вагарна тахта ва/ё манбаи таъминоти барқ метавонад осеб расонад. · Таъмини барқ тавассути порти micro USB тавсия дода мешавад.
Тавсифи Pin Дар ҷадвали зер ном ва функсияи пинҳо дар ҳар ду тарафи тахта оварда шудааст. Барои конфигуратсияҳои пинҳои периферӣ, лутфан ба ҷадвали додаҳои ESP32 муроҷиат кунед.
Не.
Ном
Навъи
1
GND
P
2
3V3
P
Функсияи Замин 3.3 В таъминоти барқ
дар саҳифаи оянда идома медиҳад
Системаҳои Espressif
12 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.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) · Тарҳбандии PCB ESP32-DevKitM-1 (PDF) · Тарҳбандии ESP32-DevKitM-1 (DXF) - Шумо метавонед view онро бо Autodesk Viewонлайн · ESP32 Datasheet (PDF) · ESP Selector Product
Барои дигар ҳуҷҷатҳои тарроҳии шӯро, лутфан бо мо дар тамос шавед sales@espressif.com.
Системаҳои Espressif
13 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Software 1.2.2
Барои оғози истифодаи ESP-IDF дар ESP32, нармафзори зеринро насб кунед: · Асбобҳо барои тартиб додани код барои ESP32 · Сохтани асбобҳо – CMake ва Ninja барои сохтани як Замимаи пурра барои ESP32 · ESP-IDF, ки аслан дорои API (китобхонаҳои нармафзор ва коди сарчашма) барои ESP32 ва скриптҳо барои идоракунии Toolchain мебошад.
1.3 Насбкунӣ
Барои насб кардани ҳама нармафзори зарурӣ, мо роҳҳои гуногуни осон кардани ин вазифаро пешниҳод менамоем. Аз яке аз имконоти дастрас интихоб кунед.
1.3.1 IDE
Эзоҳ: Мо тавсия медиҳем, ки ESP-IDF-ро тавассути IDE дӯстдоштаи худ насб кунед.
· Васлкунаки Eclipse · Васеъкунии VSCode
1.3.2 Насбкунии дастӣ
Барои расмиёти дастӣ, лутфан мувофиқи системаи оператсионии худ интихоб кунед.
Системаҳои Espressif
14 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Танзимоти стандартии Toolchain барои Windows
Муқаддима ESP-IDF насб кардани баъзе абзорҳои заруриро талаб мекунад, то шумо метавонед барои микросхемаҳои дастгирӣшаванда нармафзор созед. Воситаҳои ҳатмӣ аз асбобҳои сохтани Python, Git, кросс-компиляторҳо, CMake ва Ninja иборатанд. Барои ин Оғози кор шумо бояд дархости Фармонро истифода баред, аммо пас аз насб кардани ESP-IDF шумо метавонед ба ҷои он Eclipse Plugin ё дигар IDE графикиро бо дастгирии CMake истифода баред. Эзоҳ: Маҳдудиятҳо: – Роҳи насби асбобҳои ESP-IDF ва ESP-IDF набояд аз 90 аломат зиёд бошад. Роҳҳои аз ҳад зиёди насбкунӣ метавонад боиси нокомии сохтмон гардад. – Роҳи насби Python ё ESP-IDF набояд фосилаҳои сафед ё қавсҳоро дар бар гирад. – Роҳи насби Python ё ESP-IDF набояд аломатҳои махсусро (ғайриASCII) дар бар гирад, агар системаи амалиётӣ бо oUnicode UTF-8psupport танзим карда нашавад. Мудири система метавонад дастгирӣро тавассути Панели идоракунӣ - Тағйир додани сана, вақт ё рақамҳо - Ҷадвали маъмурӣ - Тағйир додани маҳалли система - имконоти oBeta -ро санҷед: Юникоди UTF-8-ро барои дастгирии забон дар саросари ҷаҳон истифода баредp - Хуб ва компютерро бозоғоз намоед.
Насбкунандаи асбобҳои ESP-IDF роҳи осонтарини насб кардани шартҳои ESP-IDFns ин зеркашии яке аз Насбкунандагони Tools ESP-IDF мебошад.
Зеркашии Windows Installer
Истифодаи Online ва Offline Installer Online Installer хеле хурд аст ва имкон медиҳад, ки ҳама версияҳои дастраси ESP-IDF насб карда шаванд. Дар ҷараёни насбкунӣ насбкунанда танҳо вобастагии заруриро, аз ҷумла Git For Windows-ро зеркашӣ мекунад. Мағозаҳои насбкунанда зеркашӣ карда шудаанд files дар директорияи кэш %userprofile%. эспрессиф
Offline Installer ягон пайвасти шабакавиро талаб намекунад. Насбкунанда ҳама вобастагии заруриро дар бар мегирад, аз ҷумла Git For Windows.
Унсурҳои насбкунӣ Насбкунанда ҷузъҳои зеринро ҷойгир мекунад:
· Python дарунсохта · Cross-compilers · OpenOCD · CMake ва Ninja асбобҳои сохтани · ESP-IDF
Насбкунанда инчунин имкон медиҳад, ки директорияи мавҷуда бо ESP-IDF дубора истифода шавад. Феҳристи тавсияшаванда %userpro мебошадfile%Desktopesp-idf дар куҷо %userprofile% феҳристи хонагии шумост.
Системаҳои Espressif
15 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Оғози ESP-IDF Environment Дар охири раванди насб шумо метавонед интихобро санҷед Run ESP-IDF PowerShell Environment ё Иҷроиши ESP-IDF Prompt (cmd.exe). Насбкунанда муҳити ESP-IDF-ро дар дархости интихобшуда оғоз мекунад. Муҳити ESP-IDF PowerShell-ро иҷро кунед:
Расми 8: Анҷоми устоди насби асбобҳои ESP-IDF бо иҷро кардани муҳити ESP-IDF PowerShell
Сатри фармони ESP-IDF-ро иҷро кунед (cmd.exe):
Бо истифода аз сатри фармон Барои қадамҳои боқимондаи Оғози кор, шумо бояд сатри фармони Windows-ро истифода баред. Насбкунандаи асбобҳои ESP-IDF инчунин дар менюи Оғоз барои оғоз кардани сатри фармони ESP-IDF миёнабур эҷод мекунад. Ин миёнабур сатри Фармонро (cmd.exe) оғоз мекунад ва скрипти export.bat-ро барои танзими тағирёбандаҳои муҳити зист (PATH, IDF_PATH ва дигарон) иҷро мекунад. Дар дохили ин сатри фармон, ҳама асбобҳои насбшуда дастрасанд. Дар хотир доред, ки ин миёнабур барои директорияи ESP-IDF, ки дар насбкунандаи Tools ESP-IDF интихоб шудааст, хос аст. Агар шумо дар компютер якчанд директорияҳои ESP-IDF дошта бошед (масаланampБарои кор бо версияҳои гуногуни ESP-IDF), шумо ду имкони истифодаи онҳоро доред:
1. Нусхаи миёнабуреро, ки аз ҷониби ESP-IDF Tools Installer сохта шудааст, эҷод кунед ва директорияи кории миёнабури навро ба феҳристи ESP-IDF, ки мехоҳед истифода баред, тағир диҳед.
2. Интихобан, cmd.exe -ро иҷро кунед, сипас ба директорияи ESP-IDF, ки мехоҳед истифода баред, иваз кунед ва export.bat -ро иҷро кунед. Дар хотир доред, ки бар хилофи варианти қаблӣ, ин роҳ талаб мекунад, ки Python ва Git дар PATH ҳузур дошта бошанд. Агар шумо хатогиҳои марбут ба Python ё Git пайдо нашавед, варианти аввалро истифода баред.
Қадамҳои аввал дар ESP-IDF Акнун азбаски ҳамаи талаботҳо иҷро мешаванд, мавзӯи навбатӣ ба шумо дар бораи чӣ гуна оғоз кардани лоиҳаи аввалинатон роҳнамоӣ мекунад.
Системаҳои Espressif
16 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор Расми 9: ESP-IDF PowerShell
Расми 10: Анҷом додани устоди насби асбобҳои ESP-IDF бо иҷро кардани сатри фармони ESP-IDF (cmd.exe)
Системаҳои Espressif
17 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Расми 11: Сатри фармони ESP-IDF
Системаҳои Espressif
18 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Ин дастур ба шумо дар қадамҳои аввалини истифодаи ESP-IDF кӯмак мекунад. Барои оғоз кардани лоиҳаи нав дар ESP32 ин дастурро иҷро кунед ва баромади дастгоҳро созед, флешдор кунед ва назорат кунед. Эзоҳ: Агар шумо то ҳол ESP-IDF-ро насб накарда бошед, лутфан ба "Насбкунӣ" гузаред ва дастурро иҷро кунед, то тамоми нармафзори лозимаро барои истифодаи ин дастур дастрас кунед.
Лоиҳаро оғоз кунед Акнун шумо омодаед, ки аризаи худро барои ESP32 омода созед. Шумо метавонед бо лоиҳаи getstarted/hello_world аз собиқ оғоз кунедampфеҳристи les дар ESP-IDF.
Муҳим: Системаи сохтани ESP-IDF ҷойҳоро дар роҳҳо ба ESP-IDF ё лоиҳаҳо дастгирӣ намекунад.
Лоиҳаи started/hello_world-ро ба феҳристи ~/esp нусхабардорӣ кунед: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
Эзоҳ: Як қатор собиқ вуҷуд дорадampлоиҳаҳо дар собиқampфеҳристи les дар ESP-IDF. Шумо метавонед ҳама гуна лоиҳаро ҳамон тавре ки дар боло оварда шудааст нусхабардорӣ кунед ва онро иҷро кунед. Сохтмони собик низ имконпазир астamples дар ҷои аввал бе нусхабардории онҳо.
Дастгоҳи худро пайваст кунед Акнун тахтаи ESP32-и худро ба компютер пайваст кунед ва санҷед, ки дар кадом порти силсилавӣ тахта намоён аст. Номҳои портҳои силсилавӣ аз COM дар Windows оғоз мешаванд. Агар шумо боварӣ надошта бошед, ки чӣ тавр номи порти силсилавии худро тафтиш кунед, лутфан ба Тафсилоти пурра муроҷиат кунед.
Эзоҳ: Номи портро дар дасти худ нигоҳ доред, зеро дар қадамҳои оянда ба шумо лозим меояд.
Лоиҳаи худро танзим кунед Ба феҳристи hello_world худ равед, ESP32-ро ҳамчун ҳадаф таъин кунед ва менюconfig утилитаи конфигуратсияи лоиҳаро иҷро кунед.
Windows CD %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Пас аз кушодани лоиҳаи нав, шумо бояд аввал ҳадафро бо idf.py set-target esp32 таъин кунед. Дар хотир доред, ки сохтмонҳо ва конфигуратсияҳои мавҷуда дар лоиҳа, агар вуҷуд дошта бошанд, дар ин раванд тоза ва оғоз карда мешаванд. Ҳадаф метавонад дар тағирёбандаи муҳити зист захира карда шавад, то ин қадамро тамоман гузаред. Барои маълумоти иловагӣ нигаред Чипи Ҳадафро интихоб кунед: set-target. Агар қадамҳои қаблӣ дуруст иҷро шуда бошанд, менюи зерин пайдо мешавад: Шумо ин менюро барои танзими тағирёбандаҳои мушаххаси лоиҳа истифода мебаред, масалан, номи шабакаи Wi-Fi ва парол, суръати протсессор ва ғайра. Насб кардани лоиҳа бо menuconfig метавонад барои ohello_wordp гузаронида шавад, зеро ин пеш.ample бо конфигуратсияи пешфарз кор мекунад.
Диққат: Агар шумо панели ESP32-DevKitC-ро бо модули ESP32-SOLO-1 ё тахтаи ESP32-DevKitM-1 бо модули ESP32-MIN1-1(1U) истифода баред, лутфан режими ягонаи ядроиро (CONFIG_FREERTOS_UNICORE) дар меню конфигуратсия пеш аз дурахшанда фаъол созед.amples.
Системаҳои Espressif
19 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Расми 12: Конфигуратсияи лоиҳа – Равзанаи хонагӣ
Эзоҳ: Рангҳои меню дар терминали шумо метавонанд гуногун бошанд. Шумо метавонед намуди зоҳириро бо варианти -style тағйир диҳед. Лутфан барои маълумоти иловагӣ idf.py menuconfig –help -ро иҷро кунед.
Агар шумо яке аз тахтаҳои таҳияи дастгирӣшавандаро истифода баред, шумо метавонед бо истифода аз бастаи дастгирии Шӯрои рушди худ суръат бахшед. Барои маълумоти бештар ба Маслиҳатҳои иловагӣ нигаред.
Сохтани лоиҳа Лоиҳаро тавассути иҷро кардани:
idf.py сохтан
Ин фармон барнома ва ҳама ҷузъҳои ESP-IDF-ро тартиб медиҳад, пас он боркунак, ҷадвали тақсимот ва бинарҳои барномаро тавлид мекунад.
$ idf.py build Иҷро кардани cmake дар феҳристи /path/to/hello_world/build Иҷрои “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Огоҳӣ дар бораи арзишҳои оғознашуда. — Гит ёфт: /usr/bin/git (версияи “2.17.0” пайдо шуд) — Сохтани ҷузъҳои холии aws_iot аз сабаби конфигуратсия — Номҳои ҷузъҳо: … — Роҳҳои компонентҳо: …
… (хати бештари баромади системаи сохтани)
[527/527] Эҷоди hello_world.bin esptool.py v2.3.1
Сохтмони лоиҳа анҷом ёфт. Барои флешдор, ин фармонро иҷро кунед: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio -flash_size detect -flash_freq 40m 0x10000 build/hello_wld. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin ё 'idf.py -p PORT flash' -ро иҷро кунед
Агар ягон хатогӣ вуҷуд надошта бошад, сохтмон тавассути тавлиди нармафзори бинарии .bin ба анҷом мерасад files.
Системаҳои Espressif
20 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Дар дастгоҳ дурахш кунед бинарҳои наверо, ки шумо нав сохтаед (bootloader.bin, partition-table.bin ва hello_world.bin) ба тахтаи ESP32-и худ тавассути иҷро: idf.py -p PORT [-b BAUD] флеш.
PORT-ро бо номи порти силсилавии boardns ESP32 иваз кунед. Шумо инчунин метавонед суръати интиқоли флешдорро бо иваз кардани BAUD бо суръати интиқоли лозима тағир диҳед. Меъёри интиқоли пешфарз 460800 аст. Барои маълумоти бештар дар бораи далелҳои idf.py, ба idf.py нигаред.
Эзоҳ: Опсияи флеш ба таври худкор лоиҳаро месозад ва медурахшад, аз ин рӯ иҷро кардани сохтани idf.py лозим нест.
Ҳангоми дурахшидан ба мушкилот дучор шудед? Агар шумо фармони додашударо иҷро кунед ва хатогиҳоеро бинед, ба монанди пайвастшавӣ ба хатогӣ, ин метавонад якчанд сабаб дошта бошад. Яке аз сабабҳо метавонад мушкилоте бошад, ки esptool.py, утилитае, ки аз ҷониби системаи сохта барои аз нав танзимкунии чип даъват карда мешавад, бо боркунаки ROM ва нармафзори флешдор. Як роҳи ҳалли оддии кӯшиш аз нав танзимкунии дастӣ дар зер тавсиф шудааст ва агар он ёрӣ надиҳад, шумо метавонед тафсилоти бештарро дар бораи мушкилоти эҳтимолӣ дар ҳалли мушкилот пайдо кунед.
esptool.py ESP32-ро ба таври худкор бо тасдиқи хатҳои идоракунии DTR ва RTS-и USB ба чипи табдилдиҳандаи пайдарпай, яъне FTDI ё CP210x аз нав барқарор мекунад (барои маълумоти бештар нигаред ба Таъсиси пайвасти силсилавӣ бо ESP32). Хатҳои идоракунии DTR ва RTS дар навбати худ ба пинҳои GPIO0 ва CHIP_PU (EN) -и ESP32 пайваст карда мешаванд, бинобар ин дар ҳаҷмиtagсатҳҳои e DTR ва RTS ESP32-ро ба ҳолати боргирии нармафзор бор мекунанд. Ҳамчун собиқample, схемаи тахтаи рушди ESP32 DevKitC -ро тафтиш кунед.
Умуман, шумо набояд бо тахтаҳои расмии таҳияи esp-idf мушкилот надошта бошед. Аммо, esptool.py қодир нест, ки сахтафзори шуморо дар ҳолатҳои зерин ба таври худкор аз нав танзим кунад:
· Таҷҳизоти шумо хатҳои DTR ва RTS, ки ба GPIO0 ва CHIP_PU пайваст нестанд · Хатҳои DTR ва RTS ба таври гуногун танзим карда шудаанд.
Вобаста аз намуди сахтафзоре, ки шумо доред, инчунин метавонад ба таври дастӣ тахтаи ESP32-и худро ба ҳолати боргирии нармафзор (аз нав танзим) гузоред.
· Барои лавҳаҳои таҳиякардаи Espressif, ин маълумотро дар дастурҳои мувофиқ оид ба оғозёбӣ ё дастурҳои корбар пайдо кардан мумкин аст. Барои мисолample, барои ба таври дастӣ аз нав танзим кардани як тахтаи таҳияи ESP-IDF, тугмаи пурборро нигоҳ доред (GPIO0) ва тугмаи EN (CHIP_PU) -ро пахш кунед.
· Барои дигар намудҳои сахтафзор, кӯшиш кунед, ки GPIO0-ро ба поён кашед.
Фаъолияти муқаррарӣ Ҳангоми дурахшидан, шумо гузориши баромадро ба монанди зерин мебинед:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB partition 0x8000000-tablet. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Порти силсилавии /dev/ttyUSB0 Пайвастшавӣ…….._ Чип ESP32D0WDQ6 аст (ревизияи 0) Хусусиятҳо: WiFi, BT, Дучанд асосии, Схемаи рамзгузории MAC4 нест: MAC4 24:0a:c4:05:b9:14 Боркунии ноустувор… Ноустувор иҷро мешавад… Ноустувор иҷро мешавад… Тағйир додани суръати интиқол ба 460800 Тағир дода шудааст.
(давом дар саҳифаи оянда)
Системаҳои Espressif
21 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
(Идома аз саҳифаи қаблӣ) Танзими андозаи флеш… Фишурдашуда 3072 байт ба 103… Навиштан дар 0x00008000… (100 %) 3072 байт (103 фишурда) дар 0x00008000 дар 0.0 сония навишт (маълумоти муассир 59 бит…86 бит) Фишурдашуда 26096 байт ба 15408… Навиштан дар 0x00001000… (100%) 26096 байт (15408 фишурда) дар 0x00001000 дар 0.4 сония навишт (эътиборнок 546.7 кбит/с маълумот)…. Фишурдашуда 147104 байт ба 77364… Навиштан дар 0x00010000… (20 %) Навиштан дар 0x00014000… (40 %) Навиштан дар 0x00018000… (60 %) Навиштан дар 0x0001c (W%)0 0x00020000… (100 %) 147104 байт (77364 фишурда) дар 0x00010000 дар 1.9 сония навишт (эътиборнок 615.5 кбит/с)… Хеши маълумот тасдиқ карда шуд.
Рафту… Аз нав танзимкунии сахт тавассути pin RTS… Иҷро шуд
Агар то охири раванди флеш ягон мушкилот надошта бошад, тахта аз нав фаъол мешавад ва theohello_worldpapplication-ро оғоз мекунад. Агар шумо хоҳед, ки ба ҷои кор кардани idf.py Eclipse ё VS Code IDE-ро истифода баред, Eclipse Plugin, Extension VSCode-ро санҷед.
Мониторинги Натиҷа Барои санҷидани он, ки оё ohello_worldpis воқеан кор мекунад, idf.py -p монитори PORT -ро нависед (Фаромӯш накунед, ки PORT-ро бо номи порти силсилавии худ иваз кунед).
Ин фармон барномаи IDF Monitor -ро оғоз мекунад:
$ idf.py -p монитор Иҷрои idf_monitor дар директория […]/esp/hello_world/build Иҷрои “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf_”…i 115200 —– Хуруҷ: Ctrl+] | Меню: Ctrl+T | Кӯмак: Ctrl+T пас аз Ctrl+H –ets 8 июн 2016 00:22:57
аввал: 0x1 (POWERON_RESET), боркунӣ: 0x13 (SPI_FAST_FLASH_BOOT) ва 8 июни 2016 00:22:57 …
Пас аз оғоз ва сабтҳои ташхис ба боло ҳаракат кунед, шумо бояд oHello world!-ро бинед, ки аз ҷониби барнома чоп шудааст.
… Салом Ҷаҳон! Бозоғозӣ дар 10 сония… Ин чипи esp32 бо 2 ядро(ҳо)-и CPU, WiFi/BT/BLE, ревизияи кремний 1, 2МБ флеши беруна аст.
Барои баромадан аз монитори IDF, миёнабурро истифода баред Ctrl+].
Системаҳои Espressif
22 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Агар монитори IDF чанде пас аз боргузорӣ кор накунад, ё агар ба ҷои паёмҳои дар боло овардашуда, шумо партовҳои тасодуфии шабеҳеро, ки дар зер оварда шудааст, бинед, тахтаи шумо эҳтимолан кристали 26 МГцро истифода мебарад. Аксарияти тарҳҳои тахтаи таҳия 40 МГс истифода мебаранд, аз ин рӯ ESP-IDF ин басомадро ҳамчун арзиши пешфарз истифода мебарад.
Агар шумо чунин мушкилот дошта бошед, амалҳои зеринро иҷро кунед: 1. Аз монитор хориҷ шавед. 2. Бозгашт ба танзимоти menu. 3. Ба конфигуратсияи ҷузъҳо > Танзимоти сахтафзор > Танзимоти асосии XTAL > Басомади XTAL гузаред, сипас CONFIG_XTAL_FREQ_SEL ба 26 МГс иваз кунед. 4. Пас аз он, барномаро боз созед ва флешдор кунед.
Дар версияи ҷории ESP-IDF, басомадҳои асосии XTAL, ки аз ҷониби ESP32 дастгирӣ мешаванд, инҳоянд:
· 26 МГс · 40 МГс
Эзоҳ: Шумо метавонед сохтан, дурахшидан ва мониторингро дар як қадам бо иҷро кардан якҷоя кунед: idf.py -p PORT монитор флеш
Ҳамчунин нигаред: · Monitor IDF барои миёнабурҳои муфид ва тафсилоти бештар дар бораи истифодаи монитори IDF. · idf.py барои маълумотномаи пурраи фармонҳо ва имконоти idf.py.
Ин ҳама чизест, ки ба шумо барои оғоз кардани ESP32 лозим аст! Акнун шумо омодаед, ки ягон собиқи дигарро санҷедamples, ё бевосита ба таҳияи барномаҳои шахсии худ равед.
Муҳим: Баъзе аз собиқamples ESP32-ро дастгирӣ намекунад, зеро сахтафзори зарурӣ ба ESP32 дохил карда нашудааст, бинобар ин онро дастгирӣ кардан мумкин нест. Агар бинои собиқample, лутфан README-ро тафтиш кунед file барои ҷадвали Ҳадафҳои дастгирӣшаванда. Агар ин мавҷуд бошад, аз ҷумла ҳадафи ESP32 ё ҷадвал умуман вуҷуд надошта бошад, собиқample дар ESP32 кор хоҳад кард.
Маслиҳатҳои иловагӣ
Масъалаҳои иҷозатдиҳӣ /dev/ttyUSB0 Бо баъзе дистрибюторҳои Linux, шумо метавонед ҳангоми дурахши ESP32 паёми хатогии порти /dev/ttyUSB0 -ро пайдо кунед. Инро тавассути илова кардани корбари ҷорӣ ба гурӯҳи гуфтугӯҳо ҳал кардан мумкин аст.
Мутобиқати Python ESP-IDF Python 3.7 ё навтарро дастгирӣ мекунад. Тавсия дода мешавад, ки системаи оператсионии худро ба версияи охирини қонеъкунандаи ин талабот навсозӣ кунед. Вариантҳои дигар насби Python аз манбаъҳо ё истифодаи системаи идоракунии версияи Python ба монанди pyenv мебошанд.
Бо бастаи дастгирии Шӯрои оғоз Барои суръат бахшидан ба прототипсозӣ дар баъзе тахтаҳои таҳия, шумо метавонед Бастаҳои Дастгирии Шӯрои (BSPs) -ро истифода баред, ки оғозкунии тахтаи мушаххасро ба мисли чанд занги функсионалӣ осон мекунад.
Системаҳои Espressif
23 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
BSP маъмулан ҳамаи ҷузъҳои сахтафзори дар тахтаи таҳия пешниҳодшударо дастгирӣ мекунад. Ба ғайр аз вазифаҳои таърифи pinout ва оғозёбӣ, BSP бо драйверҳо барои ҷузъҳои беруна ба монанди сенсорҳо, дисплейҳо, кодекҳои аудиоӣ ва ғайра интиқол дода мешавад. BSPҳо тавассути Менеҷери Компонентҳои IDF тақсим карда мешаванд, аз ин рӯ онҳоро дар Феҳристи Компонентҳои IDF пайдо кардан мумкин аст. Ҳеренс собиқample дар бораи чӣ гуна илова кардани ESP-WROVER-KIT BSP ба лоиҳаи худ: idf.py add-dependency esp_wrover_kit
Бештар собиқampМаълумоти истифодаи BSP-ро дар BSP собиқ пайдо кардан мумкин астampпапкаи les.
Ҳуҷҷатҳои марбут Барои корбарони пешрафта, ки мехоҳанд раванди насбкуниро танзим кунанд: · Навсозии абзорҳои ESP-IDF дар Windows · Пайвастшавии силсилавӣ бо ESP32 · Eclipse Plugin · Васеъ кардани VSCode · Monitor IDF
Навсозии асбобҳои ESP-IDF дар Windows
Воситаҳои 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 дар равзанаи фармони фармон кор кунед, ки бо истифода аз ин миёнабур оғоз нашудааст. Агар ин тавр бошад, дастурҳои зерро иҷро кунед, то асбобҳои ESP-IDF-ро ба PATH илова кунед. Дар сатри фармон, ки дар он шумо бояд ESP-IDF-ро истифода баред, ба феҳристи он ҷое, ки ESP-IDF насб шудааст, тағир диҳед, пас export.bat -ро иҷро кунед:
cd %userprofile%espesp-idf export.bat
Интихобан дар Powershell, ки дар он шумо бояд ESP-IDF-ро истифода баред, ба феҳристи он ҷое, ки ESP-IDF насб шудааст, иваз кунед ва сипас export.ps1 -ро иҷро кунед:
cd ~/esp/esp-idf export.ps1
Вақте ки ин кор анҷом меёбад, асбобҳо дар ин сатри фармон дастрас хоҳанд буд.
Пайвастшавии силсилавӣ бо ESP32 барқарор кунед Ин бахш роҳнамоеро барои барқарор кардани пайвасти пайдарпай байни ESP32 ва компютер медиҳад.
Системаҳои Espressif
24 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
ESP32-ро ба компютер пайваст кунед Бо истифода аз сими USB тахтаи ESP32-ро ба компютер пайваст кунед. Агар драйвери дастгоҳ ба таври худкор насб накунад, USB ба чипи табдилдиҳандаи силсилавии худро дар тахтаи ESP32 (ё монтажи табдилдиҳандаи беруна) муайян кунед, драйверҳоро дар интернет ҷустуҷӯ кунед ва онҳоро насб кунед. Дар зер рӯйхати микросхемаҳои конвертерҳои USB ба силсилавии дар аксари тахтаҳои ESP32 насбшуда, ки аз ҷониби Espressif истеҳсол шудааст, бо истинод ба драйверҳо оварда шудааст:
· CP210x: CP210x USB ба UART Bridge Драйверҳои VCP · FTDI: Ронандагони порти виртуалии COM FTDI Лутфан дастури корбарии тахтаи USB ба чипи табдилдиҳандаи силсилавии истифодашударо санҷед. Ронандагон дар боло пеш аз ҳама барои истинод мебошанд. Дар шароити муқаррарӣ, драйверҳо бояд бо системаи оператсионӣ ҷамъ карда шаванд ва ҳангоми пайваст кардани тахта ба компютер ба таври худкор насб карда шаванд.
Санҷиши порт дар Windows Рӯйхати портҳои муайяншудаи COM-ро дар менеҷери дастгоҳи Windows санҷед. ESP32-ро ҷудо кунед ва онро дубора пайваст кунед, то боварӣ ҳосил кунед, ки кадом порт аз рӯйхат нопадид мешавад ва боз нишон медиҳад. Рақамҳои зер порти силсилавии ESP32 DevKitC ва ESP32 WROVER KIT-ро нишон медиҳанд
Расми 13: USB ба пули UART аз ESP32-DevKitC дар менеҷери дастгоҳи Windows
Портро дар Linux ва macOS санҷед Барои санҷидани номи дастгоҳи бандари силсилавии тахтаи ESP32 (ё донглеи конвертери беруна) ин фармонро ду маротиба иҷро кунед, аввал бо панели/донгле ҷудошуда ва баъд васлшуда. Порте, ки бори дуюм пайдо мешавад, ҳамонест, ки ба шумо лозим аст: Linux
ls /dev/tty*
macOS
Системаҳои Espressif
25 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Расми 14: Ду порти силсилавии USB ESP-WROVER-KIT дар менеҷери дастгоҳи Windows
Системаҳои Espressif
26 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
ls /dev/cu.* Эзоҳ: корбарони macOS: агар шумо порти пайдарпайро набинед, санҷед, ки драйверҳои USB/сериалӣ насб карда шудаанд. Барои истинод ба драйверҳо ба қисмати пайваст кардани ESP32 ба компютер нигаред. Барои macOS High Sierra (10.13), шумо инчунин метавонед ба таври возеҳ иҷозат диҳед, ки драйверҳо бор кунанд. Параметрҳои системаро кушоед -> Амният ва махфият -> Умумӣ ва санҷед, ки оё дар ин ҷо дар бораи нармафзори oSystem аз таҳиягари lp, ки номи таҳиякунанда Silicon Labs ё FTDI аст, нишон дода шудааст ё на.
Илова кардани корбар ба гуфтугӯ дар Linux Корбари ҳозира ба қайд гирифташуда бояд ба порти силсилавӣ тавассути USB дастрасии хондан ва навиштан дошта бошад. Дар аксари тақсимоти Linux, ин тавассути илова кардани корбар ба гурӯҳи гуфтугӯ бо фармони зерин анҷом дода мешавад:
sudo usermod -a -G dialout $USER
дар Arch Linux ин бо илова кардани корбар ба гурӯҳи uucp бо фармони зерин анҷом дода мешавад:
sudo usermod -a -G uucp $USER
Боварӣ ҳосил кунед, ки шумо дубора ворид шавед, то иҷозати хондан ва навиштанро барои бандари силсилавӣ фаъол созед.
Пайвасти пайдарпайро тасдиқ кунед Акнун санҷед, ки пайвасти пайдарпай фаъол аст. Шумо метавонед ин корро бо истифода аз барномаи терминали пайдарпай тавассути тафтиш кунед, ки оё шумо пас аз аз нав танзимкунии ESP32 ягон баромад дар терминал ба даст меоред. Меъёри интиқоли пешфарзии консол дар ESP32 115200 аст.
Windows ва Linux Дар ин пешample мо муштарии PuTTY SSH-ро истифода хоҳем бурд, ки ҳам барои Windows ва ҳам Linux дастрас аст. Шумо метавонед дигар барномаҳои силсилавӣ истифода баред ва параметрҳои муоширатро ба монанди дар зер муқаррар кунед. Терминалро иҷро кунед ва бандари силсилавии муайяншударо насб кунед. Меъёри интиқол = 115200 (агар лозим бошад, онро ба суръати пешфарзии чипи истифодашаванда иваз кунед), битҳои маълумот = 8, битҳои қатъ = 1 ва паритет = N.ample скриншотҳои танзими порт ва чунин параметрҳои интиқол (ба таври кӯтоҳ ҳамчун 115200-8-1-N тавсиф карда шудаанд) дар Windows ва Linux. Дар хотир доред, ки маҳз ҳамон порти силсилавии шумо дар қадамҳои боло муайян кардаед, интихоб кунед. Пас порти силсилавии терминалро кушоед ва санҷед, ки оё шумо ягон гузориши аз ҷониби ESP32 чопшударо мебинед. Мундариҷаи гузориш аз замимаи ба ESP32 боршуда вобаста хоҳад буд, ба мисоли мисол нигаредample баромад.
Эзоҳ: Пас аз тасдиқи он, ки алоқа кор мекунад, терминали пайдарпайро пӯшед. Агар шумо сеанси терминалро кушода нигоҳ доред, порти силсилавӣ барои боргузории нармафзор дертар дастнорас хоҳад буд.
macOS Барои раҳоӣ аз мушкилоти насби барномаи терминали силсилавӣ, macOS фармони экранро пешниҳод мекунад. · Тавре ки дар Санҷиши порт дар Linux ва macOS баррасӣ шудааст, иҷро кунед:
ls /dev/cu.* · Шумо бояд баромади шабеҳро бинед:
/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Натиҷа вобаста ба намуд ва шумораи тахтаҳои ба компютери шумо пайвастшуда фарқ мекунад. Сипас номи дастгоҳи тахтаи худро интихоб кунед ва иҷро кунед (агар лозим бошад, o115200p-ро ба суръати пешфарзии чипи истифодашаванда иваз кунед):
screen /dev/cu.device_name 115200 Номи device_name бо номе, ки ls /dev/cu.* кор мекунад, иваз кунед.
Системаҳои Espressif
27 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Расми 15: Танзими иртиботи силсилавӣ дар PuTTY дар Windows
Системаҳои Espressif
28 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Расми 16: Танзими иртиботи силсилавӣ дар PuTTY дар Linux
Системаҳои Espressif
29 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
· Он чизе, ки шумо ҷустуҷӯ мекунед, ин як гузоришест, ки дар экран нишон дода мешавад. Мундариҷаи гузориш аз замимаи ба ESP32 боршуда вобаста хоҳад буд, ба мисоли мисол нигаредample баромад. Барои баромадан аз сеанси экран Ctrl-A + -ро нависед.
Эзоҳ: Фаромӯш накунед, ки пас аз тасдиқи он, ки алоқа кор мекунад, аз сеанси экран баромаданро фаромӯш накунед. Агар шумо ин корро карда натавонед ва танҳо равзанаи терминалро пӯшед, порти силсилавӣ барои боргузории нармафзор дертар дастнорас хоҳад буд.
Example Output An example log дар зер нишон дода шудааст. Агар шумо чизе набинед, тахтаро аз нав танзим кунед. ets 8 июн 2016 00:22:57
аввал: 0x5 (DEEPSLEEP_RESET), боркунӣ: 0x13 (SPI_FAST_FLASH_BOOT) ва 8 июни 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stagд bootloader ман (45) пурборшаванда: вақти тартиб 18:48:10
…
Агар шумо баромади гузориши хондашавандаро бубинед, ин маънои онро дорад, ки пайвасти пайдарпай кор мекунад ва шумо омодаед, ки насбро идома диҳед ва дар ниҳоят барномаро ба ESP32 бор кунед.
Эзоҳ: Барои баъзе конфигуратсияҳои ноқилҳои порти пайдарпай, пеш аз он ки ESP32 пурбор шавад ва баромади пайдарпайро тавлид кунад, пинҳои силсилавии RTS & DTR бояд дар барномаи терминал хомӯш карда шаванд. Ин аз худи сахтафзор вобаста аст, аксари тахтаҳои таҳиякунанда (аз ҷумла ҳама тахтаҳои Espressif) ин масъаларо надоранд. Агар RTS & DTR мустақиман ба пинҳои EN & GPIO0 пайваст карда шаванд, мушкилот вуҷуд дорад. Барои тафсилоти бештар ба ҳуҷҷатҳои esptool нигаред.
Агар шумо аз Қадами 5 омадаед. Қадамҳои аввал оид ба ESP-IDF ҳангоми насби s/w барои таҳияи ESP32, пас шумо метавонед бо Қадами 5 идома диҳед. Қадамҳои аввал дар ESP-IDF.
IDF Monitor IDF Monitor асосан як барномаи терминали пайдарпай мебошад, ки маълумоти пайдарпайро ба порти силсилавии дастгоҳҳои мавриди ҳадаф интиқол медиҳад. Он инчунин баъзе хусусиятҳои хоси IDF-ро таъмин мекунад. IDF Monitor-ро аз лоиҳаи IDF тавассути иҷро кардани монитор idf.py оғоз кардан мумкин аст.
Миёнабурҳои клавиатура Барои ҳамкории осон бо IDF Monitor, миёнабурҳои клавиатураи дар ҷадвал овардашударо истифода баред.
Системаҳои Espressif
30 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Миёнабури клавиатура Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (ё A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (ё I)
· Ctrl+H (ё H)
· Ctrl+X (ё X)
Ctrl+C
Амал
Тавсифи
Баромадан аз барнома Тугмаи фирор Меню Худи аломати менюро ба дурдаст фиристед
Худи аломати баромадро ба дурдаст фиристед
Ҳадафро ба пурборкунанда аз нав танзим кунед, то барномаро тавассути хати RTS таваққуф кунед
Тавассути RTS тахтаи ҳадафро аз нав танзим кунед
Лоиҳаро созед ва флешдор кунед
Танҳо барномаро созед ва флешдор кунед
Қатъ/ идома додани чопи баромади гузориш дар экран
Қатъ/баромади гузориши сабтшуда дар file
Вақти қатъ/давомamps
чоп кардан
Намоиши ҳама миёнабурҳои клавиатура
Пахш кунед ва онро бо яке аз калидҳои дар зер овардашуда пайравӣ кунед.
Ҳадафро ба пурборкунанда тавассути хати RTS (агар пайваст шуда бошад) аз нав барқарор мекунад, то тахта ҳеҷ коре накунад. Вақте ки ба шумо лозим аст, ки интизор шудани дастгоҳи дигарро оғоз кунед, муфид аст. Тахтаи ҳадафро аз нав танзим мекунад ва барномаро тавассути хати RTS аз нав оғоз мекунад (агар пайваст бошад).
idf_monitor-ро барои иҷро кардани ҳадафи флеши лоиҳа таваққуф мекунад ва сипас idf_monitor-ро аз сар мегирад. Ҳар як манбаи тағирёфта fileс аз нав тартиб дода мешаванд ва баъд аз нав дурахш мекунанд. Агар idf_monitor бо аргументи -E оғоз шуда бошад, ҳадафи рамзгузорӣ-flash иҷро мешавад. idf_monitor-ро барои иҷро кардани ҳадафи флеши барнома таваққуф мекунад ва сипас idf_monitor-ро дубора идома медиҳад. Ба ҳадафи флеш монанд, аммо танҳо барномаи асосӣ сохта ва аз нав дурахш карда мешавад. Агар idf_monitor бо аргументи -E оғоз шуда бошад, ҳадафи encrypted-app-flash иҷро мешавад. Ҳангоми фаъол кардани ҳама маълумоти силсилавии воридотӣ хориҷ карда мешавад. Ба зудӣ таваққуф кардан ва тафтиш кардани баромади гузориш бидуни тарк кардани монитор имкон медиҳад. Эҷод мекунад а file дар феҳристи лоиҳа ва баромад ба он навишта мешавад file то он даме, ки ин бо ҳамон миёнабури клавиатура ғайрифаъол карда шавад (ё баромади IDF Monitor). Monitor IDF метавонад вақтро чоп кунадamp дар аввали ҳар як сатр. Беҳтарин вақтamp формат метавонад бо -timest тағир дода шавадamp-формати аргументи сатри фармон.
Аз барнома хориҷ шавед
Қатъи иҷрокунандаи барнома
Мониторинги IDF-ро таваққуф мекунад ва ислоҳкунандаи лоиҳаи GDB-ро барои ислоҳи барнома дар вақти корӣ иҷро мекунад. Ин талаб мекунад, ки имконоти :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME фаъол карда шавад.
Ҳама гуна калидҳои пахшшуда, ғайр аз Ctrl-] ва Ctrl-T, тавассути порти силсилавӣ фиристода мешаванд.
Хусусиятҳои хоси IDF
Рамзи худкори суроға ҳар гоҳе, ки ESP-IDF суроғаи рамзи шонздаҳии шакли 0x4_______ мебарорад, Monitor IDF addr2line_-ро барои ҷустуҷӯи макон дар коди манбаъ ва пайдо кардани номи функсия истифода мебарад.
Агар барномаи ESP-IDF суқут кунад ва ба воҳима дучор шавад, партови реестр ва бозгашт ба монанди зерин тавлид мешавад:
Системаҳои Espressif
31 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Guru Meditation Хатои намуди StoreProhibited дар ядрои 0 рух дод. Истисно буд
дастнорас.
Бақайдгирии партовҳо:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
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 LEND: 0x4000c477 LCOUNT:
0х00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitor ба партов тафсилоти бештар илова мекунад:
Guru Meditation Хатои намуди StoreProhibited дар ядрои 0 рух дод. Истисно буд
дастнорас.
Бақайдгирии партовҳо:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: do_something_to_crash дар /home/gus/esp/32/idf/examples/оғоз-оғоз/
hello_world/main/./hello_world_main.c:57
(аз ҷониби) inner_dont_crash дар /home/gus/esp/32/idf/examples/started/salam_
ҷаҳон/main/./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 LEND: 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 (inlineed) inner_dont_crash дар /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash дар /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash дар /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main дар /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task дар /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254
Барои рамзкушоӣ кардани ҳар як суроға, Monitor IDF дар замина фармони зеринро иҷро мекунад: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Эзоҳ: Тағйирёбандаи муҳити ESP_MONITOR_DECODE ба 0 таъин кунед ё idf_monitor.py -ро бо сатри фармони мушаххас занг занед
Системаҳои Espressif
32 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
хосият: idf_monitor.py –disable-address-decoding барои хомӯш кардани рамзгузории суроға.
Бо нобаёнӣ, IDF Monitor ҳангоми пайвастшавӣ ба он ҳадафро аз нав танзим мекунад. Барқароркунии чипи ҳадаф бо истифода аз хатҳои силсилавии DTR ва RTS анҷом дода мешавад. Барои пешгирӣ кардани IDF Monitor аз ба таври худкор аз нав танзимкунии ҳадаф ҳангоми пайвастшавӣ, ба IDF Monitor бо опсияи –no-reset занг занед (масалан, idf_monitor.py –no-reset).
Эзоҳ: Опсияи –no-reset ҳатто ҳангоми пайваст кардани IDF Monitor ба порти мушаххас ҳамон рафторро татбиқ мекунад (масалан, idf.py monitor –no-reset -p [PORT]).
Оғози GDB бо GDBStub GDBStub як хусусияти муфиди ислоҳи вақти корӣ мебошад, ки дар ҳадаф кор мекунад ва ба мизбон тавассути бандари силсилавӣ барои қабул кардани фармонҳои ислоҳи хатогӣ пайваст мешавад. GDBStub фармонҳоро, аз қабили хондани хотира ва тағирёбандаҳо, тафтиши чаҳорчӯбаҳои стеки зангҳо ва ғайраҳоро дастгирӣ мекунад. Ҳарчанд GDBStub нисбат ба J камтар универсалӣ аст.TAG ислоҳ, он ягон сахтафзори махсусро талаб намекунад (масалан, JTAG ба пули USB) ҳамчун муошират пурра тавассути порти силсилавӣ анҷом дода мешавад. Ҳадафро метавон танзим кард, ки GDBStub-ро дар замина бо гузоштани CONFIG_ESP_SYSTEM_PANIC ба GDBStub дар вақти корӣ иҷро кунад. GDBStub дар замина кор мекунад, то он даме, ки паёми Ctrl+C тавассути бандари пайдарпай фиристода шавад ва боиси шикастани GDBStub мегардад (яъне, иҷрои онро қатъ мекунад) ва ба ин васила ба GDBStub имкон медиҳад, ки фармонҳои ислоҳи ислоҳро идора кунад. Ғайр аз он, коркардкунандаи ваҳмро метавон танзим кард, ки GDBStub-ро ҳангоми садама бо гузоштани CONFIG_ESP_SYSTEM_PANIC ба GDBStub ҳангоми ваҳшат кор кунад. Вақте ки садама рух медиҳад, GDBStub намунаи сатри махсусро дар бандари силсилавӣ мебарорад, то нишон диҳад, ки он кор мекунад. Дар ҳарду ҳолат (яъне, фиристодани паёми Ctrl+C ё гирифтани намунаи махсуси сатр), IDF Monitor ба таври худкор GDB-ро оғоз мекунад, то ба корбар имкон диҳад, ки фармонҳои ислоҳи ислоҳро фиристад. Пас аз баромадани GDB, ҳадаф тавассути хати силсилавии RTS аз нав барқарор карда мешавад. Агар ин хат пайваст набошад, корбарон метавонанд ҳадафи худро аз нав барқарор кунанд (бо пахш кардани тугмаи Reset boardns).
Эзоҳ: Дар замина, IDF Monitor фармони зеринро барои оғоз кардани GDB иҷро мекунад:
xtensa-esp32-elf-gdb -ex “танзими boud силсилавии BAUD” -собиқ “порти дурдасти ҳадаф” -сохтаи қатъи сохтмон/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″, …). Муайян накардани а ё бо истифода аз * пешфарз ба сатҳи Verbose.
Эзоҳ: Сабти ибтидоиро барои хомӯш кардани натиҷаҳое, ки ба шумо тавассути китобхонаи сабти ном лозим нестанд, истифода баред. Филтри баромад бо монитори IDF як ҳалли дуюмдараҷа аст, ки метавонад барои танзими имконоти филтр бидуни дубора тартиб додани барнома муфид бошад.
Барномаи шумо tags бояд дорои фосила, ситорача * ё ду нуқта набошанд: бо хусусияти филтркунии баромад мувофиқ бошад.
Агар сатри охирини баромади барномаи шумо бо бозгашти вагон наояд, филтркунии баромад метавонад иштибоҳ кунад, яъне монитор ба чопи сатр оғоз мекунад ва баъдтар мефаҳмад, ки сатр набояд навишта шуда бошад. Ин як масъалаи маълум аст ва онро тавассути илова кардани баргардонидани вагон пешгирӣ кардан мумкин аст (хусусан вақте ки ҳеҷ гуна баромад фавран пас аз он наояд).
Системаҳои Espressif
33 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
ExampҚоидаҳои филтр:
· * метавонад барои мувофиқат ба ҳар як tags. Аммо, сатри PRINT_FILTER=”*:I tag1: E” нисбат ба tag1 танҳо хатогиҳоро чоп мекунад, зеро қоида барои tag1 нисбат ба коида барои * афзалияти баландтар дорад.
· Қоидаи пешфарз (холӣ) ба *:V баробар аст, зеро мувофиқи ҳар як tag дар сатҳи Verbose ё пасттар маънои мувофиқ кардани ҳама чизро дорад.
· “*:N” на танҳо натиҷаҳоро аз функсияҳои сабти ном, балки инчунин чопҳои аз ҷониби printf ва ғ. баровардашударо маҳв мекунад. Барои пешгирӣ кардани ин, *:E ё сатҳи баланди муфлисиро истифода баред.
· Қоидаҳо "tag1:V", "tag1:v","tag1:", "tag1:*”, ва “tag1" баробаранд. · Қоида "tag1: В tag1:E" баробар ба "tag1: E" зеро ҳама гуна пайдоиши окибати якхела tag
ном пешинаи пешинаро сабт мекунад. · Қоида "tag1: I tag2:W" танҳо чоп мекунад tag1 дар сатҳи маълумоти муфассал ё пасттар ва tag2 дар Огоҳӣ
сатҳи муфассал ё пасттар. · Қоида "tag1: I tag2: В tag3:N» аслан ба пештара баробар аст, зеро tag3:N муайян мекунад
ки tag3 набояд чоп карда шавад. · tag3:N дар қоида "tag1: I tag2: В tag3:N *:V» пурмазмунтар аст, зеро бе tag3: Н
tag3 паём чоп кардан мумкин буд; хатогиҳо барои tag1 ва tag2 дар сатҳи мушаххаси мушаххас (ё камтар) чоп карда мешавад ва ҳама чизи дигар бо нобаёнӣ чоп карда мешавад.
Филтркунии мураккабтар Мисample Парчами гузориши зерин бидуни ягон имконоти филтр ба даст оварда шуд:
боркунӣ: 0x40078000,len: 13564 вуруд 0x40078d4c E (31) esp_image: тасвир дар 0x30000 дорои байти ҷодугарӣ W (31) esp_image: тасвир дар 0x30000 беэътибор дорад SPI (режими E3 255 boot тақсим карда намешавад) (568) cpu_start: CPU Pro боло. Ман (569) heap_init: Оғоз кардан. RAM барои тақсимоти динамикӣ дастрас аст: I (603) cpu_start: Pro cpu оғоз рамзи корбар 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 ман (569) heap_init: оғоз. RAM барои тақсимоти динамикӣ дастрас аст: D (309) light_driver: [light_init, 74]: Ҳолат: 1, режим: 2
Масъалаҳои маълум бо IDF Monitor
Масъалаҳое, ки дар Windows мушоҳида мешаванд
· Тугмаҳои тирчавӣ, инчунин баъзе калидҳои дигар, аз сабаби маҳдудиятҳои Windows Console дар GDB кор намекунанд. · Баъзан, вақте ки oidf.pypexit, он метавонад то 30 сония пеш аз дубора оғоз кардани мониторинги IDF қатъ шавад. · Вақте ки ogdbpis кор мекунад, он метавонад барои як муддати кӯтоҳ пеш аз оғози муошират бо GDBStub қатъ шавад.
Системаҳои Espressif
34 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози Танзими асбобҳои стандартӣ барои Linux ва macOS
Қадам ба қадам насбкунӣ Ин харитаи роҳест, ки ба шумо тавассути раванди насбкунӣ роҳнамоӣ мекунад.
Танзими муҳити рушд Инҳо қадамҳои насб кардани ESP-IDF барои ESP32-и шумо мебошанд. · Қадами 1. Насб кардани шартҳо · Қадами 2. Гирифтани ESP-IDF · Қадами 3. Насб кардани асбобҳо · Қадами 4. Танзими тағирёбандаҳои муҳити зист · Қадами 5. Қадамҳои аввал дар ESP-IDF
Қадами 1. Насб кардани шартҳо Барои истифодаи ESP-IDF бо ESP32, шумо бояд баъзе бастаҳои нармафзорро дар асоси системаи оператсионии худ насб кунед. Ин дастури танзимот ба шумо барои насб кардани ҳама чиз дар системаҳои Linux ва macOS асосёфта кӯмак мекунад.
Барои корбарони Linux Барои тартиб додани ESP-IDF шумо бояд бастаҳои зеринро гиред. Фармони иҷрошаванда аз он вобаста аст, ки шумо кадом тақсимоти Linux-ро истифода мебаред:
· Ubuntu ва Debian: sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 ва 8: sudo yum -y навсозӣ && sudo yum насб кунед git wget flex bizon gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 то ҳол дастгирӣ мешавад, аммо версияи CentOS 8 барои таҷрибаи беҳтари корбар тавсия дода мешавад. · Arch: sudo pacman -S – лозим gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Эзоҳ: · Барои истифода бо ESP-IDF версияи CMake 3.16 ё навтар лозим аст. otools/idf_tools.py -ро насб кунед, то версияи мувофиқро насб кунед, агар версияҳои OS-и шумо версия надошта бошанд. · Агар шумо тақсимоти Linux-и худро дар рӯйхати боло набинед, лутфан ҳуҷҷатҳои онро тафтиш кунед, то бифаҳмед, ки кадом фармон барои насби бастаҳо истифода мешавад.
Барои корбарони macOS ESP-IDF версияи Python-ро, ки бо нобаёнӣ дар macOS насб шудааст, истифода мебарад. · CMake & Ninja build-ро насб кунед: Агар шумо HomeBrew дошта бошед, шумо метавонед иҷро кунед: brew install cmake ninja dfu-util Агар шумо MacPorts дошта бошед, шумо метавонед иҷро кунед: sudo port install cmake ninja dfu-util Дар акси ҳол, барои зеркашиҳои насби macOS ба саҳифаҳои хонагии CMake ва Ninja муроҷиат кунед.
Системаҳои Espressif
35 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
· Инчунин тавсия дода мешавад, ки ccache барои сохтани тезтар насб карда шавад. Агар шумо HomeBrew дошта бошед, ин метавонад тавассути ccache brew install ё ccache насби порти sudo дар MacPorts анҷом дода шавад.
Эзоҳ: Агар дар ҳама гуна қадам хатогӣ ба ин монанд нишон дода шавад: 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
Он гоҳ ба шумо лозим меояд, ки Apple Rosetta 2-ро тавассути иҷро кардани /usr/sbin/softwareupdate –install-rosetta –agree-to-license насб кунед.
Насб кардани Python 3 Дар асоси ёддоштҳои нашри macOS Catalina 10.15, истифодаи Python 2.7 тавсия дода намешавад ва Python 2.7 ба таври нобаёнӣ дар версияҳои ояндаи macOS дохил карда намешавад. Санҷед, ки кадом Python шумо ҳоло доред: python -version
Агар натиҷа мисли Python 2.7.17 бошад, тарҷумони пешфарзии шумо Python 2.7 аст. Агар ин тавр бошад, инчунин санҷед, ки оё Python 3 дар компютери шумо аллакай насб нашудааст: python3 -version
Агар фармони боло хато баргардонад, ин маънои онро дорад, ки Python 3 насб нашудааст. Дар поён як тамом астview қадамҳои насб кардани Python 3.
· Насбкунӣ бо HomeBrew метавонад ба таври зерин анҷом дода шавад: brew install python3
· Агар шумо MacPorts дошта бошед, шумо метавонед иҷро кунед: sudo port install python38
Қадами 2. Гирифтани ESP-IDF Барои сохтани барномаҳо барои ESP32, ба шумо китобхонаҳои нармафзори аз ҷониби Espressif дар анбори ESP-IDF пешниҳодшуда лозим аст. Барои ба даст овардани ESP-IDF, ба феҳристи насби худ гузаред ва анборро бо git clone клон кунед, бо риояи дастурҳои дар зер мушаххас ба системаи оператсионии шумо. Терминалро кушоед ва фармонҳои зеринро иҷро кунед:
Системаҳои Espressif
36 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 -рекурсивӣ https://github.com/espressif/esp-idf.git
ESP-IDF ба ~/esp/esp-idf бор карда мешавад. Барои маълумот дар бораи он, ки кадом версияи ESP-IDF дар вазъияти додашуда истифода мешавад, ба версияҳои ESP-IDF муроҷиат кунед.
Қадами 3. Асбобҳоро насб кунед Ба ғайр аз ESP-IDF, шумо инчунин бояд асбобҳоеро, ки ESP-IDF истифода мебаранд, ба монанди компилятор, дебаггер, бастаҳои Python ва ғайра барои лоиҳаҳои дастгирии ESP32 насб кунед. 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 ҳама
Эзоҳ: Барои корбарони macOS, агар дар ҳама гуна қадам хатогӣ ба ин монанд нишон дода шавад:urlхатои кушода [SSL: CERTIFICATE_VERIFY_FAILED] тасдиқи сертификат ноком шуд: натавониста шавад сертификати эмитенти маҳаллӣ (_ssl.c:xxx)
Шумо метавонед барои насб кардани сертификатҳо дар ҷузвдони Python-и компютери худ Install Certificates.command -ро иҷро кунед. Барои тафсилот, нигаред Хатои зеркашӣ ҳангоми насби асбобҳои ESP-IDF.
Алтернативӣ File Боргириҳо Насбкунандаи асбобҳо як қаторро зеркашӣ мекунад fileба GitHub Releases замима карда шудааст. Агар дастрасӣ ба GitHub суст бошад, он гоҳ имкон дорад, ки тағирёбандаи муҳити атрофро барои бартарӣ додан ба сервери зеркашии Espressifns барои зеркашиҳои дороиҳои GitHub муқаррар кард.
Эзоҳ: Ин танзимот танҳо асбобҳои инфиродии аз релизҳои GitHub зеркашидашударо назорат мекунад, он тағир намедиҳад URLs барои дастрасӣ ба ҳама гуна анбори Git истифода мешавад.
Барои бартарӣ додан ба сервери зеркашии Espressif ҳангоми насб кардани асбобҳо, ҳангоми иҷро кардани install.sh пайдарпаии фармонҳои зеринро истифода баред:
Системаҳои Espressif
37 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
cd ~/esp/esp-idf содироти IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Мутобиқсозии роҳи насби асбобҳо Скриптҳои дар ин қадам ҷорӣшуда абзорҳои компиляцияро насб мекунанд, ки ESP-IDF дар дохили феҳристи хонагии корбар лозим аст: $HOME/.espressif дар Linux. Агар шумо хоҳед, ки асбобҳоро дар директорияи дигар насб кунед, пеш аз иҷро кардани скриптҳои насбкунӣ тағирёбандаи муҳити IDF_TOOLS_PATH -ро таъин кунед. Боварӣ ҳосил кунед, ки ҳисоби корбарии шумо барои хондан ва навиштани ин роҳ иҷозати кофӣ дорад. Агар тағир додани IDF_TOOLS_PATH, боварӣ ҳосил кунед, ки он ҳар дафъа иҷро шудани скрипти Насб (install. bat, install.ps1 ё install.sh) ва скрипти содирот (export.bat, export.ps1 ё export.sh) ба ҳамон арзиш муқаррар карда мешавад.
Қадами 4. Тағйирёбандаҳои муҳити зистро насб кунед Асбобҳои насбшуда ҳанӯз ба тағирёбандаи муҳити PATH илова карда нашудаанд. Барои он, ки асбобҳо аз сатри фармон истифода шаванд, баъзе тағирёбандаҳои муҳити зист бояд муқаррар карда шаванд. ESP-IDF скрипти дигареро пешниҳод мекунад, ки ин корро мекунад. Дар терминале, ки шумо ESP-IDF-ро истифода мебаред, иҷро кунед:
. $HOME/esp/esp-idf/export.sh
ё барои моҳӣ (танҳо аз версияи моҳии 3.0.0 дастгирӣ карда мешавад):
. $HOME/esp/esp-idf/export.fish
Ба фосилаи байни нуқтаи пешбаранда ва роҳ диққат диҳед! Агар шумо нақшаи истифодаи esp-idf-ро зуд-зуд дошта бошед, шумо метавонед барои иҷрои export.sh тахаллус эҷод кунед:
1. Фармони зеринро ба shellns pro-и худ нусхабардорӣ ва часбонедfile (.profile, .bashrc, .zprofile, ва ғайра)
тахаллуси get_idf ='. $HOME/esp/esp-idf/export.sh' 2. Конфигуратсияро тавассути аз нав оғоз кардани сеанси терминал ё иҷро кардани манбаъ [роҳ ба pro навсозӣ кунед.file],
барои мисолample, сарчашма ~/.bashrc. Акнун шумо метавонед get_idf-ро барои насб ё нав кардани муҳити esp-idf дар ҳама гуна сессияи терминал иҷро кунед. Аз ҷиҳати техникӣ, шумо метавонед export.sh -ро ба shellns pro-и худ илова кунедfile бевосита; аммо тавсия дода намешавад. Ин кор муҳити виртуалии IDF-ро дар ҳар як сессияи терминал фаъол мекунад (аз ҷумла онҳое, ки ба IDF лозим нест), ҳадафи муҳити виртуалиро вайрон мекунад ва эҳтимолан ба нармафзори дигар таъсир мерасонад.
Қадами 5. Қадамҳои аввал оид ба ESP-IDF Акнун азбаски ҳама талаботҳо иҷро мешаванд, мавзӯи навбатӣ шуморо дар бораи чӣ гуна оғоз кардани лоиҳаи аввалинатон роҳнамоӣ мекунад. Ин дастур ба шумо дар қадамҳои аввалини истифодаи ESP-IDF кӯмак мекунад. Барои оғоз кардани лоиҳаи нав дар ESP32 ин дастурро иҷро кунед ва баромади дастгоҳро созед, флешдор кунед ва назорат кунед.
Эзоҳ: Агар шумо то ҳол ESP-IDF-ро насб накарда бошед, лутфан ба "Насбкунӣ" гузаред ва дастурро иҷро кунед, то тамоми нармафзори лозимаро барои истифодаи ин дастур дастрас кунед.
Лоиҳаро оғоз кунед Акнун шумо омодаед, ки аризаи худро барои ESP32 омода созед. Шумо метавонед бо лоиҳаи getstarted/hello_world аз собиқ оғоз кунедampфеҳристи les дар ESP-IDF.
Муҳим: Системаи сохтани ESP-IDF ҷойҳоро дар роҳҳо ба ESP-IDF ё лоиҳаҳо дастгирӣ намекунад.
Лоиҳаи get-started/hello_world-ро ба феҳристи ~/esp нусхабардорӣ кунед:
Системаҳои Espressif
38 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world.
Эзоҳ: Як қатор собиқ вуҷуд дорадampлоиҳаҳо дар собиқampфеҳристи les дар ESP-IDF. Шумо метавонед ҳама гуна лоиҳаро ҳамон тавре ки дар боло оварда шудааст нусхабардорӣ кунед ва онро иҷро кунед. Сохтмони собик низ имконпазир астamples дар ҷои аввал бе нусхабардории онҳо.
Дастгоҳи худро пайваст кунед Акнун тахтаи ESP32-и худро ба компютер пайваст кунед ва санҷед, ки дар кадом порти силсилавӣ тахта намоён аст. Портҳои силсилавӣ дорои намунаҳои зерини номгузорӣ мебошанд:
· Linux: оғоз бо /dev/tty · macOS: сар аз /dev/cu. Агар шумо боварӣ надошта бошед, ки чӣ тавр номи порти силсилавии худро тафтиш кунед, лутфан ба Тафсилоти пурра муроҷиат кунед.
Эзоҳ: Номи портро дар дасти худ нигоҳ доред, зеро дар қадамҳои оянда ба шумо лозим меояд.
Лоиҳаи худро танзим кунед Ба феҳристи hello_world худ равед, ESP32-ро ҳамчун ҳадаф таъин кунед ва менюconfig утилитаи конфигуратсияи лоиҳаро иҷро кунед. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Пас аз кушодани лоиҳаи нав, шумо бояд аввал ҳадафро бо idf.py set-target esp32 таъин кунед. Дар хотир доред, ки сохтмонҳо ва конфигуратсияҳои мавҷуда дар лоиҳа, агар вуҷуд дошта бошанд, дар ин раванд тоза ва оғоз карда мешаванд. Ҳадаф метавонад дар тағирёбандаи муҳити зист захира карда шавад, то ин қадамро тамоман гузаред. Барои маълумоти иловагӣ нигаред Чипи Ҳадафро интихоб кунед: set-target. Агар қадамҳои қаблӣ дуруст иҷро шуда бошанд, менюи зерин пайдо мешавад:
Расми 17: Конфигуратсияи лоиҳа – Равзанаи хонагӣ Шумо ин менюро барои насб кардани тағирёбандаҳои мушаххаси лоиҳа истифода мебаред, масалан, номи шабакаи Wi-Fi ва пароли, суръати протсессори протсессор ва ғайра. Насб кардани лоиҳа бо menuconfig мумкин аст forohello_worldp гузаред, зеро ин собиқample бо
Системаҳои Espressif
39 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
конфигуратсияи пешфарз.
Диққат: Агар шумо панели ESP32-DevKitC-ро бо модули ESP32-SOLO-1 ё тахтаи ESP32-DevKitM-1 бо модули ESP32-MIN1-1(1U) истифода баред, лутфан режими ягонаи ядроиро (CONFIG_FREERTOS_UNICORE) дар меню конфигуратсия пеш аз дурахшанда фаъол созед.amples.
Эзоҳ: Рангҳои меню дар терминали шумо метавонанд гуногун бошанд. Шумо метавонед намуди зоҳириро бо варианти -style тағйир диҳед. Лутфан барои маълумоти иловагӣ idf.py menuconfig –help -ро иҷро кунед.
Агар шумо яке аз тахтаҳои таҳияи дастгирӣшавандаро истифода баред, шумо метавонед бо истифода аз бастаи дастгирии Шӯрои рушди худ суръат бахшед. Барои маълумоти бештар ба Маслиҳатҳои иловагӣ нигаред.
Сохтани лоиҳа Лоиҳаро тавассути иҷро кардани:
idf.py сохтан
Ин фармон барнома ва ҳама ҷузъҳои ESP-IDF-ро тартиб медиҳад, пас он боркунак, ҷадвали тақсимот ва бинарҳои барномаро тавлид мекунад.
$ idf.py build Иҷро кардани cmake дар феҳристи /path/to/hello_world/build Иҷрои “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Огоҳӣ дар бораи арзишҳои оғознашуда. — Гит ёфт: /usr/bin/git (версияи “2.17.0” пайдо шуд) — Сохтани ҷузъҳои холии aws_iot аз сабаби конфигуратсия — Номҳои ҷузъҳо: … — Роҳҳои компонентҳо: …
… (хати бештари баромади системаи сохтани)
[527/527] Эҷоди hello_world.bin esptool.py v2.3.1
Сохтмони лоиҳа анҷом ёфт. Барои флешдор, ин фармонро иҷро кунед: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio -flash_size detect -flash_freq 40m 0x10000 build/hello_wld. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin ё 'idf.py -p PORT flash' -ро иҷро кунед
Агар ягон хатогӣ вуҷуд надошта бошад, сохтмон тавассути тавлиди нармафзори бинарии .bin ба анҷом мерасад files.
Дар дастгоҳ дурахш кунед бинарҳои наверо, ки шумо сохтаед (bootloader.bin, partition-table.bin ва hello_world.bin) дар тахтаи ESP32-и худ тавассути иҷро:
idf.py -p PORT [-b BAUD] дурахш
PORT-ро бо номи порти силсилавии boardns ESP32 иваз кунед. Шумо инчунин метавонед суръати интиқоли флешдорро бо иваз кардани BAUD бо суръати интиқоли лозима тағир диҳед. Меъёри интиқоли пешфарз 460800 аст. Барои маълумоти бештар дар бораи далелҳои idf.py, ба idf.py нигаред.
Эзоҳ: Опсияи флеш ба таври худкор лоиҳаро месозад ва медурахшад, аз ин рӯ иҷро кардани сохтани idf.py лозим нест.
Системаҳои Espressif
40 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Ҳангоми дурахшидан ба мушкилот дучор шудед? Агар шумо фармони додашударо иҷро кунед ва хатогиҳоеро бинед, ба монанди пайвастшавӣ ба хатогӣ, ин метавонад якчанд сабаб дошта бошад. Яке аз сабабҳо метавонад мушкилоте бошад, ки esptool.py, утилитае, ки аз ҷониби системаи сохта барои аз нав танзимкунии чип даъват карда мешавад, бо боркунаки ROM ва нармафзори флешдор. Як роҳи ҳалли оддии кӯшиш аз нав танзимкунии дастӣ дар зер тавсиф шудааст ва агар он ёрӣ надиҳад, шумо метавонед тафсилоти бештарро дар бораи мушкилоти эҳтимолӣ дар ҳалли мушкилот пайдо кунед.
esptool.py ESP32-ро ба таври худкор бо тасдиқи хатҳои идоракунии DTR ва RTS-и USB ба чипи табдилдиҳандаи пайдарпай, яъне FTDI ё CP210x аз нав барқарор мекунад (барои маълумоти бештар нигаред ба Таъсиси пайвасти силсилавӣ бо ESP32). Хатҳои идоракунии DTR ва RTS дар навбати худ ба пинҳои GPIO0 ва CHIP_PU (EN) -и ESP32 пайваст карда мешаванд, бинобар ин дар ҳаҷмиtagсатҳҳои e DTR ва RTS ESP32-ро ба ҳолати боргирии нармафзор бор мекунанд. Ҳамчун собиқample, схемаи тахтаи рушди ESP32 DevKitC -ро тафтиш кунед.
Умуман, шумо набояд бо тахтаҳои расмии таҳияи esp-idf мушкилот надошта бошед. Аммо, esptool.py қодир нест, ки сахтафзори шуморо дар ҳолатҳои зерин ба таври худкор аз нав танзим кунад:
· Таҷҳизоти шумо хатҳои DTR ва RTS, ки ба GPIO0 ва CHIP_PU пайваст нестанд · Хатҳои DTR ва RTS ба таври гуногун танзим карда шудаанд.
Вобаста аз намуди сахтафзоре, ки шумо доред, инчунин метавонад ба таври дастӣ тахтаи ESP32-и худро ба ҳолати боргирии нармафзор (аз нав танзим) гузоред.
· Барои лавҳаҳои таҳиякардаи Espressif, ин маълумотро дар дастурҳои мувофиқ оид ба оғозёбӣ ё дастурҳои корбар пайдо кардан мумкин аст. Барои мисолample, барои ба таври дастӣ аз нав танзим кардани як тахтаи таҳияи ESP-IDF, тугмаи пурборро нигоҳ доред (GPIO0) ва тугмаи EN (CHIP_PU) -ро пахш кунед.
· Барои дигар намудҳои сахтафзор, кӯшиш кунед, ки GPIO0-ро ба поён кашед.
Фаъолияти муқаррарӣ Ҳангоми дурахшидан, шумо гузориши баромадро ба монанди зерин мебинед:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB partition 0x8000000-tablet. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Порти силсилавии /dev/ttyUSB0 Пайвастшавӣ…….._ Чип ESP32D0WDQ6 аст (ревизияи 0) Хусусиятҳо: WiFi, BT, Дучанд асосии, Схемаи рамзгузории MAC4 нест: MAC4 24:0a:c4:05:b9:14 Боркунии ноустувор… Ноустувор иҷро мешавад… Ноустувор иҷро мешавад… Тағйир додани суръати интиқол ба 460800 Тағир дода шудааст. Танзими андозаи флеш… Фишурдашуда 3072 байт ба 103… Навиштан дар 0x00008000… (100 %) 3072 байт (103 фишурда) дар 0x00008000 дар 0.0 сония навишт (эътиборнок 5962.8 кбит/с… маълумот). Фишурдашуда 26096 байт ба 15408… Навиштан дар 0x00001000… (100%) 26096 байт (15408 фишурда) дар 0x00001000 дар 0.4 сония навишт (эътиборнок 546.7 кбит/с маълумот)…. Фишурдашуда 147104 байт ба 77364… Навиштан дар 0x00010000… (20 %) Навиштан дар 0x00014000… (40 %) Навиштан дар 0x00018000… (60 %) Навиштан дар 0x0001c (60 %)0
(давом дар саҳифаи оянда)
Системаҳои Espressif
41 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
(Идома аз саҳифаи қаблӣ) Навиштан дар 0x00020000… (100 %) Навиштан 147104 байт (77364 фишурда) дар 0x00010000 дар 1.9 сония (эътиборнок 615. 5 кбит/с)… Хеши маълумот тасдиқ карда шуд.
Рафту… Аз нав танзимкунии сахт тавассути pin RTS… Иҷро шуд
Агар то охири раванди флеш ягон мушкилот надошта бошад, тахта аз нав фаъол мешавад ва theohello_worldpapplication-ро оғоз мекунад. Агар шумо хоҳед, ки ба ҷои кор кардани idf.py Eclipse ё VS Code IDE-ро истифода баред, Eclipse Plugin, Extension VSCode-ро санҷед.
Мониторинги Натиҷа Барои санҷидани он, ки оё ohello_worldpis воқеан кор мекунад, idf.py -p монитори PORT -ро нависед (Фаромӯш накунед, ки PORT-ро бо номи порти силсилавии худ иваз кунед). Ин фармон барномаи IDF Monitor -ро оғоз мекунад:
$ idf.py -p монитор Иҷрои idf_monitor дар директория […]/esp/hello_world/build Иҷрои “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf_”…i 115200 —– Хуруҷ: Ctrl+] | Меню: Ctrl+T | Кӯмак: Ctrl+T пас аз Ctrl+H –ets 8 июн 2016 00:22:57
аввал: 0x1 (POWERON_RESET), боркунӣ: 0x13 (SPI_FAST_FLASH_BOOT) ва 8 июни 2016 00:22:57 …
Пас аз оғоз ва сабтҳои ташхис ба боло ҳаракат кунед, шумо бояд oHello world!-ро бинед, ки аз ҷониби барнома чоп шудааст.
… Салом Ҷаҳон! Бозоғозӣ дар 10 сония… Ин чипи esp32 бо 2 ядро(ҳо)-и CPU, WiFi/BT/BLE, ревизияи кремний 1, 2МБ флеши беруна аст.
Барои баромадан аз монитори IDF, миёнабури Ctrl+]-ро истифода баред. Агар монитори IDF чанде пас аз боргузорӣ кор накунад, ё агар ба ҷои паёмҳои дар боло овардашуда, шумо партовҳои тасодуфии шабеҳеро, ки дар зер оварда шудааст, бинед, тахтаи шумо эҳтимолан кристали 26 МГцро истифода мебарад. Аксарияти тарҳҳои тахтаи таҳия 40 МГс истифода мебаранд, аз ин рӯ ESP-IDF ин басомадро ҳамчун арзиши пешфарз истифода мебарад.
Агар шумо чунин мушкилот дошта бошед, амалҳои зеринро иҷро кунед:
1. Аз монитор хориҷ шавед. 2. Бозгашт ба танзимоти menu. 3. Ба конфигуратсияи ҷузъҳо > Танзимоти сахтафзор > Танзимоти асосии XTAL > асосии XTAL гузаред
басомад, пас CONFIG_XTAL_FREQ_SEL ба 26 МГс иваз кунед. 4. Пас аз он, барномаро боз созед ва флешдор кунед.
Системаҳои Espressif
42 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Дар версияи ҷории ESP-IDF, басомадҳои асосии XTAL, ки аз ҷониби ESP32 дастгирӣ мешаванд, инҳоянд:
· 26 МГс · 40 МГс
Эзоҳ: Шумо метавонед сохтан, дурахшидан ва мониторингро дар як қадам бо иҷро кардан якҷоя кунед: idf.py -p PORT монитор флеш
Ҳамчунин нигаред: · Monitor IDF барои миёнабурҳои муфид ва тафсилоти бештар дар бораи истифодаи монитори IDF. · idf.py барои маълумотномаи пурраи фармонҳо ва имконоти idf.py.
Ин ҳама чизест, ки ба шумо барои оғоз кардани ESP32 лозим аст! Акнун шумо омодаед, ки ягон собиқи дигарро санҷедamples, ё бевосита ба таҳияи барномаҳои шахсии худ равед.
Муҳим: Баъзе аз собиқamples ESP32-ро дастгирӣ намекунад, зеро сахтафзори зарурӣ ба ESP32 дохил карда нашудааст, бинобар ин онро дастгирӣ кардан мумкин нест. Агар бинои собиқample, лутфан README-ро тафтиш кунед file барои ҷадвали Ҳадафҳои дастгирӣшаванда. Агар ин мавҷуд бошад, аз ҷумла ҳадафи ESP32 ё ҷадвал умуман вуҷуд надошта бошад, собиқample дар ESP32 кор хоҳад кард.
Маслиҳатҳои иловагӣ
Масъалаҳои иҷозатдиҳӣ /dev/ttyUSB0 Бо баъзе дистрибюторҳои Linux, шумо метавонед ҳангоми дурахши ESP32 паёми хатогии порти /dev/ttyUSB0 -ро пайдо кунед. Инро тавассути илова кардани корбари ҷорӣ ба гурӯҳи гуфтугӯҳо ҳал кардан мумкин аст.
Мутобиқати Python ESP-IDF Python 3.7 ё навтарро дастгирӣ мекунад. Тавсия дода мешавад, ки системаи оператсионии худро ба версияи охирини қонеъкунандаи ин талабот навсозӣ кунед. Вариантҳои дигар насби Python аз манбаъҳо ё истифодаи системаи идоракунии версияи Python ба монанди pyenv мебошанд.
Бо бастаи дастгирии Шӯрои оғоз Барои суръат бахшидан ба прототипсозӣ дар баъзе тахтаҳои таҳия, шумо метавонед Бастаҳои Дастгирии Шӯрои (BSPs) -ро истифода баред, ки оғозкунии тахтаи мушаххасро ба мисли чанд занги функсионалӣ осон мекунад. BSP маъмулан ҳамаи ҷузъҳои сахтафзори дар тахтаи таҳия пешниҳодшударо дастгирӣ мекунад. Ба ғайр аз вазифаҳои таърифи pinout ва оғозёбӣ, BSP бо драйверҳо барои ҷузъҳои беруна ба монанди сенсорҳо, дисплейҳо, кодекҳои аудиоӣ ва ғайра интиқол дода мешавад. BSPҳо тавассути Менеҷери Компонентҳои IDF тақсим карда мешаванд, аз ин рӯ онҳоро дар Феҳристи Компонентҳои IDF пайдо кардан мумкин аст. Ҳеренс собиқample дар бораи чӣ гуна илова кардани ESP-WROVER-KIT BSP ба лоиҳаи худ: idf.py add-dependency esp_wrover_kit
Бештар собиқampМаълумоти истифодаи BSP-ро дар BSP собиқ пайдо кардан мумкин астampпапкаи les.
Маслиҳат: Навсозии ESP-IDF Тавсия дода мешавад, ки вақт аз вақт ESP-IDF-ро навсозӣ кунед, зеро версияҳои навтар хатогиҳоро ислоҳ мекунанд ва/ё хусусиятҳои навро таъмин мекунанд. Лутфан таваҷҷӯҳ намоед, ки ҳар як версияи барориши асосӣ ва ноболиғи ESP-IDF давраи дастгирии алоқаманд дорад ва вақте ки як шохаи нашр ба охири ҳаёт (EOL) наздик мешавад, ҳамаи корбарон ташвиқ карда мешаванд, ки лоиҳаҳои худро ба релизҳои охирини ESP-IDF навсозӣ кунанд, то маълумоти бештар дар бораи давраҳои дастгирӣ, ба Версияҳои ESP-IDF нигаред.
Системаҳои Espressif
43 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 1. Оғози кор
Роҳи соддатарини навсозӣ ин нест кардани папкаи мавҷудаи esp-idf ва дубора клон кардани он аст, гӯё иҷрои насби ибтидоии дар Қадами 2 тавсифшуда. Гирифтани ESP-IDF. Ҳалли дигар ин аст, ки танҳо он чизе, ки тағир ёфтааст, навсозӣ кунед. Тартиби навсозӣ аз версияи ESP-IDF, ки шумо истифода мебаред, вобаста аст. Пас аз навсозии ESP-IDF, скрипти Install-ро дубора иҷро кунед, агар версияи нави ESP-IDF версияҳои гуногуни асбобҳоро талаб кунад. Ба дастурҳо дар Қадами 3 нигаред. Асбобҳоро насб кунед. Пас аз насб кардани асбобҳои нав, муҳити атрофро бо истифода аз скрипти Экспорт навсозӣ кунед. Ба дастурҳо дар Қадами 4 нигаред. Тағйирёбандаҳои муҳити зистро насб кунед.
Ҳуҷҷатҳои алоқаманд · Пайвастшавии силсилавӣ бо ESP32 · Васлкунаки Eclipse · Васеъ кардани VSCode · Monitor IDF
1.4 Лоиҳаи аввалини худро созед
Агар шумо аллакай ESP-IDF-ро насб карда бошед ва IDE-ро истифода набаред, шумо метавонед лоиҳаи аввалини худро аз сатри фармон пас аз Оғози лоиҳа дар Windows ё Лоиҳаро дар Linux ва macOS оғоз кунед.
1.5 ESP-IDF-ро нест кунед
Агар шумо хоҳед, ки ESP-IDF-ро нест кунед, лутфан пайравӣ кунед Uninstall ESP-IDF.
Системаҳои Espressif
44 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 2
Истинод API
2.1 Конвенсияҳои API
Ин ҳуҷҷат конвенсияҳо ва пиндоштҳоеро, ки барои интерфейсҳои барномасозии барномасозии ESP-IDF (API) маъмуланд, тавсиф мекунад. ESP-IDF якчанд намуди интерфейсҳои барномасозиро пешниҳод мекунад:
· Функсияҳои C, сохторҳо, рақамҳо, таърифҳои намудҳо ва макросҳои пешазпросессор, ки дар сарлавҳаи умумӣ эълон шудаанд files ҷузъҳои ESPIDF. Саҳифаҳои гуногун дар бахши истинодҳои API-и дастури барномасозӣ тавсифи ин функсияҳо, сохторҳо ва намудҳоро дар бар мегиранд.
· Сохтани функсияҳои система, тағирёбандаҳо ва имконоти пешакӣ муайяншуда. Инҳо дар дастури системаи сохтмон ҳуҷҷатгузорӣ шудаанд. · Вариантҳои Kconfig метавонанд дар код ва дар системаи сохта истифода шаванд (CMakeLists.txt) fileс. · Асбобҳои ҳост ва параметрҳои сатри фармони онҳо инчунин қисми интерфейси ESP-IDF мебошанд. ESP-IDF аз ҷузъҳое иборат аст, ки махсус барои ESP-IDF ва инчунин китобхонаҳои тарафи сеюм навишта шудаанд. Дар баъзе мавридҳо, як бастаи махсуси ESP-IDF ба китобхонаи тарафи сеюм илова карда мешавад, ки интерфейсеро таъмин мекунад, ки бо дигар иншооти ESP-IDF соддатар ё беҳтар ҳамгиро шудааст. Дар ҳолатҳои дигар, API-и аслии китобхонаи тарафи сеюм ба таҳиягарони барнома пешниҳод карда мешавад. Фаслҳои зерин баъзе ҷанбаҳои API-ҳои ESP-IDF ва истифодаи онҳоро шарҳ медиҳанд.
2.1.1 Муносибати хато
Аксари API-ҳои ESP-IDF рамзҳои хатогиро, ки бо навъи esp_err_t муайян шудаанд, бармегардонанд. Барои маълумоти бештар дар бораи равишҳои коркарди хатогиҳо ба бахши Мубориза бо хатогиҳо нигаред. Маълумотномаи рамзи хато рӯйхати рамзҳои хатогиро, ки аз ҷониби ҷузъҳои ESP-IDF баргардонида шудаанд, дар бар мегирад.
2.1.2 Сохторҳои конфигуратсия
Муҳим: Оғозсозии дурусти сохторҳои конфигуратсия қисми муҳими мувофиқ кардани барнома бо версияҳои ояндаи ESP-IDF мебошад.
Аксарияти функсияҳои оғозёбӣ ё конфигуратсия дар ESP-IDF ҳамчун далел нишондиҳанда ба сохтори конфигуратсияро мегиранд. Барои мисолampле:
45
Боби 2. Маълумотномаи API
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = "ман_таймер"
}; esp_timer_handle_t my_timer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
Функсияҳои оғозёбӣ ҳеҷ гоҳ нишондиҳандаро ба сохтори конфигуратсия нигоҳ намедоранд, бинобар ин ҷудо кардани сохтор дар стек бехатар аст.
Барнома бояд ҳамаи майдонҳои сохторро оғоз кунад. Инҳо нодурустанд:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* нодуруст! Майдонҳои .arg ва .name оғоз карда нашудаанд */ esp_timer_create(&my_timer_args, &my_timer);
Аксарияти ESP-IDF собиқamples барои оғозкунии сохтор инициализаторҳои таъиншудаи C99-ро истифода мебаранд, зеро онҳо роҳи мухтасари муқаррар кардани зермаҷмӯи майдонҳо ва бо сифр оғоз кардани майдонҳои боқимондаро таъмин мекунанд:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Дуруст, майдонҳои .arg ва .name бо сифр оғоз карда шудаанд */
};
Забони C++ синтаксиси таъиншудаи инициализаторҳоро то C++20 дастгирӣ намекунад, аммо компилятори GCC онро қисман ҳамчун васеъ дастгирӣ мекунад. Ҳангоми истифодаи ESP-IDF API дар коди C++, шумо метавонед намунаи зеринро истифода баред:
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-ҳои хусусӣ
Сарлавҳаи муайян files дар ESP-IDF дорои APIҳо мебошанд, ки танҳо дар коди сарчашмаи ESP-IDF истифода мешаванд, на аз ҷониби барномаҳо. Чунин сарлавҳа files аксар вақт дар ном ё роҳи худ хусусӣ ё esp_private доранд. Ҷузъҳои муайян, ба монанди hal танҳо API-ҳои хусусиро дар бар мегиранд. API-ҳои хусусӣ метавонанд бо роҳи номувофиқ байни релизҳои хурд ё пачка хориҷ карда шаванд ё тағир дода шаванд.
2.1.4 Компонентҳо дар мисоли мисampлоиҳаҳо
ESP-IDF собиқamples дорои лоиҳаҳои гуногунест, ки истифодаи API-ҳои ESP-IDF-ро нишон медиҳанд. Бо мақсади кам кардани такрори код дар собиқamples, чанд ёварҳои умумӣ дар дохили ҷузъҳои муайян, ки аз ҷониби якчанд собиқ истифода бурда мешавадamples.
Системаҳои Espressif
46 Пешниҳоди фикру мулоҳизаҳо дар бораи ҳуҷҷат
Нашри v5.0.9
Боби 2. Маълумотномаи API
Ин ҷузъҳои ҷойгиршударо дар бар мегирад
Ҳуҷҷатҳо / Сарчашмаҳо
![]() |
Шӯрои рушди Espressif Systems ESP32 Dev Kitc [pdf] Дастури корбар ESP32 Шӯрои таҳияи Dev Kitc, ESP32, Шӯрои рушди Dev Kitc, Шӯрои рушди Kitc, Шӯрои таҳия, Раёсат |
