Плата распрацоўкі 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 Espressif Systems 16 мая 2025 г.

Змест

Змест

i

1 Пачніце

3

1.1 Уводзіны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Што вам спатрэбіцца . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Апаратнае забеспячэнне . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Праграмнае забеспячэнне . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 Усталёўка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

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

1.3.2 Ручная ўстаноўка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Стварыце свой першы праект . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 Выдаленне ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 Даведка па API

45

2.1 Пагадненні API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Апрацоўка памылак . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.2 Структуры канфігурацыі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.3 Прыватныя API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.4 Кампаненты ў exampпраекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 HTTP-кліент ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 Лакальнае кіраванне ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2.2.7 Паслядоўны падпарадкаваны канал 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 Mbed 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® Класічны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

2.3.4 Кантролер і гідракантролерная інфраструктура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Драйвер аналага-лічбавага пераўтваральніка (АЛП) у аднамаштабным рэжыме. . . . . . . . . . . . . . . . . 977 2.6.2 Драйвер аналага-лічбавага пераўтваральніка (АЛП) у бесперапынным рэжыме. . . . . . . . . . . . . . . 986 2.6.3 Драйвер каліброўкі аналага-лічбавага пераўтваральніка (АЛП). . . . . . . . . . . . . . . . . . . 993 2.6.4 Дрэва гадзіннікаў. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Лічба-аналагавы пераўтваральнік (ЦАП). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO і GPIO з гадзіннікам рэальнага часу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Таймер агульнага прызначэння (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Міжінтэграваная схема (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Гук паміж мікрасхемамі (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 ВК-дысплей. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 Кіраванне святлодыёдамі (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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Сігма-дэльта мадуляцыя (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 Галоўны драйвер 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 Утыліта генератара раздзелаў NVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 Драйвер SD/SDIO/MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 API флэш-памяці SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Fileсістэма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Віртуальны fileкампанент сістэмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 API для выраўноўвання зносу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 API сістэмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Фармат выявы праграмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Трасіроўка ўзроўню праграмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Выклік функцыі з знешнім стэкам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Версія чыпа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Кансоль . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 Менеджэр eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Коды памылак і дапаможныя функцыі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii

2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Бібліятэка цыклаў падзей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (звышview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (дадатковыя функцыі) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Размеркаванне кучы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Адладка кучы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Таймер высокага разрознення (таймер ESP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Унутраныя і нестабільныя API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Міжпрацэсарны выклік . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Размеркаванне перапыненняў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Бібліятэка рэгістрацыі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Розныя сістэмныя API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Абнаўленні па бесправадной сувязі (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Манітор прадукцыйнасці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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® Класічны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.3.1 Скончанаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® з нізкім энергаспажываннем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 Скончанаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Пачатак працы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

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

4.5 Загрузнік . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Сумяшчальнасць загрузніка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Узровень журнала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Скід да заводскіх налад . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Загрузка з тэставай прашыўкі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Адкат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.6 Вартавы таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.7 Памер загрузніка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Хуткая загрузка з глыбокага сну . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Карыстальніцкі загрузнік . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Зборка сістэмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 Скончанаview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Выкарыстанне сістэмы зборкі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 практampПраект . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Праект CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Кампанент CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Канфігурацыя кампанентаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Вызначэнні прэпрацэсара . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Патрабаванні да кампанентаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Асноўныя часткі праекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Кампаненты толькі для канфігурацыі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Адладка CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 ПрыкладampКампанент CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Карыстальніцкія налады sdkconfig па змаўчанні . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Аргументы Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Зборка загрузніка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Напісанне чыстых кампанентаў CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Выкарыстанне старонніх праектаў CMake з кампанентамі . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Выкарыстанне загадзя падрыхтаваных бібліятэк з кампанентамі . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Выкарыстанне ESP-IDF у карыстальніцкіх праектах CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 API сістэмы зборкі ESP-IDF CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Функцыі ПЗП у зваротных трасіроўках . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Выпіс зменных па патрабаванні . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Запуск espscoredump.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_WITHOUT_ABORT . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 Макрас ESP_RETURN_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 Макрас ESP_GOTO_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 Макрас ESP_RETURN_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 Макрас ESP_GOTO_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 ПРАВЕРКА МАКРАСАЎ Прыкладampлес . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Дамп рэгістра і зваротная трасіроўка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 Загаловак GDB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 Тайм-аўт вартаўніка RTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Памылкі гуру-медытацыі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Іншыя фатальныя памылкі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Шыфраванне флэш-памяці. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Уводзіны. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Адпаведныя электронныя засцерагальнікі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Працэс шыфравання флэш-памяці. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Канфігурацыя шыфравання флэш-памяці. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Магчымыя збоі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 Стан шыфравання флэш-памяці ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Чытанне і запіс дадзеных у зашыфраванай флэш-памяці. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Абнаўленне зашыфраванай флэш-памяці. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Адключэнне шыфравання флэш-памяці. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Ключавыя моманты шыфравання флэш-памяці. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Абмежаванні шыфравання флэш-памяці. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Шыфраванне флэш-памяці і бяспечная загрузка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Выбар JTAG Адаптар . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Усталёўка OpenOCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Налада мэты ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Запуск адладчыка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Адладкаampлес . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Зборка OpenOCD з зыходных кодаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Парады і асаблівасці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Звязаныя дакументы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Генерацыя сцэнарыяў кампаноўнікa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Звышview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Хуткі старт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Унутраная генерацыя скрыптоў кампаноўнікa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Падтрымліваемыя API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 API сокетаў BSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP Задача FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 Падтрымка IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip карыстальніцкія мадыфікацыі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Аптымізацыя прадукцыйнасці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Тыпы памяці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (аператыўная памяць дадзеных) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (аператыўная памяць інструкцый) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (код, які выконваецца з флэш-памяці) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (дадзеныя, якія захоўваюцца ў флэш-памяці) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 Павольная памяць RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 Хуткая памяць RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Каліброўка РЧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Памер загрузніка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Памер загрузніка . . . . . . . . . . 2474 4.24.5 Як уключыць бяспечную загрузку . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Перапрашыўны праграмны загрузнік . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Стварэнне ключа падпісання бяспечнай загрузкі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Аддаленае падпісанне вобразаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Найлепшыя практыкі бяспечнай загрузкі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Тэхнічныя падрабязнасці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Бяспечная загрузка і шыфраванне флэш-памяці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Бяспечная загрузка і шыфраванне флэш-памяці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Праверка падпісанага прыкладання без апаратнага забеспячэння бяспечнай загрузкі . . . . . . . . . . . . . . . . . . . 2484 4.25.18 Пашыраныя функцыі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Падтрымка знешняй аператыўнай памяці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Уводзіны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Апаратнае забеспячэнне . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Налада знешняй аператыўнай памяці . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 API Pthread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 Стандарт C11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Інструменты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 Фронтэнд IDF – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 Вобраз Docker для IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 Усталёўшчык IDF для Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 Кіраўнік кампанентаў IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Інструменты для запампоўкі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Юніт-тэсціраванне ў ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Звычайныя тэставыя выпадкі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Тэставыя выпадкі з некалькімі прыладамі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Мультыпрыладыtagе Тэставыя выпадкі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Драйвер Wi-Fi 2520 4.31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Спіс функцый Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Агульны сцэнар станцыі Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 Агульны сцэнар кропкі доступу Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 Сканіраванне Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 Сцэнар падключэння станцыі Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 Падключэнне станцыі Wi-Fi ESP32 пры выяўленні некалькіх кропак доступу. . . . . . . . . . . . . 2543 4.31.12 Паўторнае падключэнне да Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Час чакання маяка Wi-Fi скончыўся. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 Канфігурацыя Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Кіраванне бесправадной сеткай. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Вымярэнне радыёрэсурсаў. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Хуткі пераход BSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 Рэжым энергазберажэння ESP32 Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 Прапускная здольнасць Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Адпраўка пакетаў Wi-Fi 80211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Рэжым сніфера Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Некалькі антэн Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Інфармацыя аб стане канала Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Інфармацыя аб стане канала Wi-Fi Наладзіць . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Фрагмент Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 Зарэгістраваны WPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Функцыі бяспекі Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Абароненыя кадры кіравання (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 Wi-Fi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.2 AWS Інтэрнэт рэчаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.5 Aliyun IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.6 Joylink Інтэрнэт рэчаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.7 Tencent Інтэрнэт рэчаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.8 Tencentyun Інтэрнэт рэчаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.9 Baidu Інтэрнэт рэчаў . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2 Фрэймворкі экспрэсіі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.1 Праграма распрацоўкі аўдыё Espressif . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

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

6.2.3 Бібліятэка DSP Espressif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.4 Структура распрацоўкі ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.5 ESP-СААЗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.6 Рэгенератар дажджу ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.7 Рашэнне ESP-IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.8 ESP-пратаколы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

VIII

6.2.9 ЭСП-БСП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Стварэнне Exampлес . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Платформа ўводу/вываду . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.1 Што такое PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 Усталёўка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Канфігурацыя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Падручнікі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Праект Exampлес . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. У гэтым дакуменце апісваецца выкарыстанне ESP-IDF з сістэмай на кристале ESP32.

Пачніце

Спасылка на API

Кіраўніцтва па API

Сістэмы Espressif

1 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Змест

Сістэмы Espressif

2 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1
Пачніце
Гэты дакумент прызначаны для таго, каб дапамагчы вам наладзіць асяроддзе распрацоўкі праграмнага забеспячэння для абсталявання на базе чыпа ESP32 ад Espressif. Пасля гэтага просты exampУ гэтым артыкуле вы знойдзеце інфармацыю пра тое, як выкарыстоўваць ESP-IDF (Espressif IoT Development Framework) для канфігурацыі меню, а затым для зборкі і прашыўкі прашыўкі на плату ESP32.
Заўвага: Гэта дакументацыя для стабільнай версіі 5.0.9 ESP-IDF. Таксама даступныя іншыя версіі ESP-IDF.
1.1 Уводзіны
ESP32 — гэта сістэма на чыпе, якая аб'ядноўвае наступныя функцыі: · Wi-Fi (дыяпазон 2.4 ГГц) · Bluetooth · Два высокапрадукцыйныя 32-бітныя ядры працэсара Xtensa® LX6 · Супрацэсар з ультранізкім энергаспажываннем · Некалькі перыферыйных прылад
Вырабленая на базе 40-нм тэхналогіі, ESP32 забяспечвае надзейную, высокаінтэграваную платформу, якая дапамагае задаволіць пастаянныя патрабаванні да эфектыўнага выкарыстання энергіі, кампактнага дызайну, бяспекі, высокай прадукцыйнасці і надзейнасці. Espressif прадастаўляе базавыя апаратныя і праграмныя рэсурсы, каб дапамагчы распрацоўшчыкам прыкладанняў рэалізаваць свае ідэі з выкарыстаннем абсталявання серыі ESP32. Фрэймворк для распрацоўкі праграмнага забеспячэння ад Espressif прызначаны для распрацоўкі прыкладанняў Інтэрнэту рэчаў (IoT) з Wi-Fi, Bluetooth, кіраваннем харчаваннем і шэрагам іншых сістэмных функцый.
1.2 Што вам трэба
1.2.1 Абсталяванне
· Плата ESP32. · Кабель USB – USB A / micro USB B. · Камп'ютар з аперацыйнай сістэмай Windows, Linux або macOS.
Заўвага: У цяперашні час некаторыя платы распрацоўшчыкаў выкарыстоўваюць раздымы USB тыпу 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 (друкаваная плата і IPEX) ESP32-WROVER-B (друкаваная плата і 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-UART, раз'ём LDO Micro-USB/порт Micro-USB, кнопка EN, кнопка загрузкі
Святлодыёд харчавання

Апісанне Устаўце модуль у месца. Высновы зоймуць адтуліны модуля. Гэтыя раздымы падлучаныя да высноў модуля, усталяванага на гэтай плаце. Апісанне раздымоў глядзіце ў раздзеле "Блокі раздымоў". Аднакрыштальны мост USB-UART забяспечвае хуткасць перадачы дадзеных да 3 Мбіт/с.
Нізкі прападанне напружання ад 5 В да 3.3 Вtagрэгулятар (LDO).
Інтэрфейс USB. Крыніца харчавання для платы, а таксама інтэрфейс сувязі паміж кампутарам і платай.
Кнопка скіду.
Кнопка загрузкі. Утрыманне Boot і наступнае націсканне EN запускае рэжым загрузкі прашыўкі праз паслядоўны порт.
Уключаецца, калі да платы падключаны USB або блок харчавання.

Як прашыць плату Перад уключэннем ESP32-DevKitS(-R) пераканайцеся, што яна знаходзіцца ў добрым стане і не мае відавочных пашкоджанняў.
Неабходнае абсталяванне · Модуль ESP32 на ваш выбар · Кабель USB 2.0 (стандартны A - Micro-B) · Камп'ютар з аперацыйнай сістэмай Windows, Linux або macOS
Налада абсталявання Калі ласка, усталюйце абраны вамі модуль на ваш ESP32-DevKitS(-R) у адпаведнасці з наступнымі крокамі:
· Акуратна пакладзеце модуль на плату ESP32-DevKitS(-R). Пераканайцеся, што зубчастыя адтуліны на модулі супадаюць з спружыннымі штыфтамі на плаце.
· Націсніце модуль на плату да пстрычкі. · Праверце, ці ўсе спружынныя штыфты ўстаўлены ў адтуліны. Калі ёсць няправільныя спружынныя штыфты,
змясціце іх у зубчастыя адтуліны з дапамогай пінцэта.
Налада праграмнага забеспячэння
Пераважны метад. Фрэймворк распрацоўкі ESP-IDF прапануе пераважны спосаб прашыўкі двайковых файлаў на ESP32-DevKitS(-R). Калі ласка, перайдзіце да раздзела «Пачатак працы», дзе раздзел «Усталёўка» дапаможа вам хутка наладзіць асяроддзе распрацоўкі, а затым прашыць прыкладанне.ampзапісвайце на свой ESP32-DevKitS(-R).
Альтэрнатыўны метад У якасці альтэрнатывы карыстальнікі Windows могуць прашываць бінарныя файлы з дапамогай Flash Download Tool. Проста запампуйце яго, распакуйце і выконвайце інструкцыі ў тэчцы doc.
Заўвага: 1. Каб прашыць двайковы файл fileESP32 павінен быць усталяваны ў рэжым загрузкі прашыўкі. Гэта можна зрабіць альбо аўтаматычна з дапамогай праграмы прашыўкі, альбо ўтрымліваючы кнопку Boot і націснуўшы кнопку EN. 2. Пасля прашыўкі двайковага файла files, Flash Download Tool перазагружае ваш модуль ESP32 і загружае прашытую праграму па змаўчанні.

Памеры платы Змест і ўпакоўка

Сістэмы Espressif

6 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы Мал. 3: Памеры платы ESP32-DevKitS – ззаду

Сістэмы Espressif

Мал. 4: Памеры платы ESP32-DevKitS-R – задняя частка 7
Адправіць водгук на дакумент

Рэліз v5.0.9

Раздзел 1. Пачатак працы
Рознічныя заказы Калі вы заказваеце некалькіampКожны ESP32-DevKitS(-R) пастаўляецца ў індывідуальнай упакоўцы ў антыстатычным пакеце або ў любой іншай упакоўцы ў залежнасці ад прадаўца. Для рознічных заказаў, калі ласка, перайдзіце па спасылцы https://www.espressif.com/en/contact-us/get-sampлес.
Аптовыя заказы Калі вы заказваеце оптам, дошкі пастаўляюцца ў вялікіх кардонных скрынках. Для аптовых заказаў, калі ласка, перайдзіце па спасылцы 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 ДАТЧЫК_VN

L5 34

GPIO34

L6 35

GPIO35

L7 32

GPIO32

L8 33

GPIO33

працягваецца на наступнай старонцы

8 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы

Табліца 1 працяг з папярэдняй старонкі

.

Сігнал меткі

L9 25

GPIO25

L10 26

GPIO26

L11 27

GPIO27

L12 14

GPIO14

L13 12

GPIO12

L14 ЗАЗЕМЛЕННЕ ЗАЗЕМЛЕННЕ

L15 13

GPIO13

L16 D2 SD_DATA2

L17 D3 SD_DATA3

L18 CMD SD_CMD

L19 5В

Знешняе 5В

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-1 (PDF) · Тэхнічныя характарыстыкі ESP32-WROVER (PDF) · Тэхнічныя характарыстыкі ESP32-WROVER-B (PDF) · Выбар прадукту ESP

ESP32-DevKitM-1

Гэта кіраўніцтва карыстальніка дапаможа вам пачаць працу з ESP32-DevKitM-1, а таксама дасць больш падрабязную інфармацыю.
ESP32-DevKitM-1 — гэта макетная плата на базе ESP32-MINI-1(1U), вырабленая кампаніяй Espressif. Большасць кантактаў уводу/вываду выведзеныя на раздымы з абодвух бакоў для зручнага падключэння. Карыстальнікі могуць падключаць перыферыйныя прылады з дапамогай перамычак або мантаваць 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-паслядоўны порт, які таксама забяспечвае харчаванне платы · раздымы · кнопкі для скіду і актывацыі рэжыму загрузкі прашыўкі · некалькі іншых кампанентаў

Змест і ўпакоўка

Рознічныя заказы Калі вы заказваеце некалькіampКожны ESP32-DevKitM-1 пастаўляецца ў індывідуальнай упакоўцы ў антыстатычным пакеце або ў любой іншай упакоўцы ў залежнасці ад вашага прадаўца.
Для рознічных заказаў, калі ласка, перайдзіце па спасылцы https://www.espressif.com/en/contact-us/get-sampлес.

Аптовыя заказы Калі вы заказваеце оптам, дошкі пастаўляюцца ў вялікіх кардонных скрынках. Для аптовых заказаў, калі ласка, перайдзіце па спасылцы 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 – пярэдняя частка

Ключавы кампанент Убудаваны модуль
Кнопка загрузкі LDO ад 5 В да 3.3 В
Кнопка скіду Порт Micro-USB
Мост USB-UART 3.3 В Святлодыёд уключэння харчавання
Раз'ём уводу/вываду

Апісанне
Модуль ESP32-MINI-1 або модуль ESP32-MINI-1U. ESP32-MINI-1 пастаўляецца з убудаванай антэнай на друкаванай плаце. ESP32-MINI-1U пастаўляецца з раздымам для знешняй антэны. Абодва модулі маюць 4 МБ флэш-памяці ў корпусе. Падрабязную інфармацыю глядзіце ў тэхнічных характарыстыках ESP32-MINI-1 і ESP32-MINI-1U.
Рэгулятар магутнасці пераўтворыць 5 В у 3.3 В.
Кнопка загрузкі. Утрыманне кнопкі Boot і наступнае націсканне кнопкі Reset запускае рэжым загрузкі прашыўкі праз паслядоўны порт.
Кнопка скіду
Інтэрфейс USB. Блок харчавання для платы, а таксама інтэрфейс сувязі паміж кампутарам і чыпам ESP32.
Адзін мост USB-UART забяспечвае хуткасць перадачы да 3 Мбіт/с.
Уключаецца, калі да платы падключаны USB. Падрабязную інфармацыю глядзіце ў схемах у раздзеле «Звязаныя дакументы». Усе даступныя кантакты GPIO (акрамя шыны SPI для флэш-памяці) падключаны да раздымоў на плаце. Карыстальнікі могуць праграмаваць мікрасхему ESP32 для выканання розных функцый.

Пачатак распрацоўкі прыкладання Перад уключэннем ESP32-DevKitM-1 пераканайцеся, што ён знаходзіцца ў добрым стане і не мае бачных прыкмет пашкоджанняў.
Неабходнае абсталяванне · ESP32-DevKitM-1 · Кабель USB 2.0 (стандартны A - 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) у меню config перад прашыўкай праграм.
Блок-схема даведачнай інфармацыі аб апаратным забеспячэнні На блок-схеме ніжэй паказаны кампаненты ESP32-DevKitM-1 і іх узаемасувязь.

Мал. 7: ESP32-DevKitM-1
Выбар крыніцы харчавання Існуе тры ўзаемавыключныя спосабы падачы харчавання на плату: · Порт Micro USB, крыніца харчавання па змаўчанні · Кантакты 5V і GND · Кантакты 3V3 і GND
Папярэджанне: · Блок харчавання павінен быць забяспечаны адным і толькі адным з вышэйпералічаных варыянтаў, інакш плата і/або крыніца харчавання могуць быць пашкоджаны. · Рэкамендуецца харчаванне праз порт micro USB.

Апісанне кантактаў У табліцы ніжэй прыведзены назвы і функцыі кантактаў з абодвух бакоў платы. Інфармацыю пра канфігурацыі перыферыйных кантактаў можна знайсці ў тэхнічным апісанні 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

Увод-вывад

GPIO32, XTAL_32K_P (уваходны кварцавы генератар 32.768 кГц),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

Увод-вывад

GPIO33, XTAL_32K_N (32.768 кГц выхад крышталічнага генератара),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25

Увод-вывад

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26

Увод-вывад

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27

Увод-вывад

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14

Увод-вывад

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

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

Блок харчавання 5 В

17

IO12

Увод-вывад

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

HS2_DATA2, SD_DATA2, EMAC_TXD3

18

IO13

Увод-вывад

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

HS2_DATA3, SD_DATA3, EMAC_RX_ER

19

IO15

Увод-вывад

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

HS2_CMD, SD_CMD, EMAC_RXD3

20

IO2

Увод-вывад

GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,

HS2_DATA0, SD_DATA0

21

IO0

Увод-вывад

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,

EMAC_TX_CLK

22

IO4

Увод-вывад

GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,

HS2_DATA1, SD_DATA1, EMAC_TX_ER

23

IO9

Увод-вывад

GPIO9, HS1_DATA2, U1RXD, SD_DATA2

24

IO10

Увод-вывад

GPIO10, HS1_DATA3, U1TXD, SD_DATA3

25

IO5

Увод-вывад

GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK

26

IO18

Увод-вывад

GPIO18, HS1_DATA7, VSPICLK

27

IO23

Увод-вывад

GPIO23, HS1_STROBE, VSPID

28

IO19

Увод-вывад

GPIO19, VSPIQ, U0CTS, EMAC_TXD0

29

IO22

Увод-вывад

GPIO22, VSPIWP, U0RTS, EMAC_TXD1

30

IO21

Увод-вывад

GPIO21, VSPIHD, EMAC_TX_EN

31

TXD0

Увод-вывад

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

RXD0

Увод-вывад

GPIO3, U0RXD, CLK_OUT2

Падрабязнасці аб версіі абсталявання Папярэднія версіі недаступныя.
Звязаныя дакументы
· Тэхнічныя характарыстыкі ESP32-MINI-1 і ESP32-MINI-1U (PDF) · Схема ESP32-DevKitM-1 (PDF) · Кампанента друкаванай платы ESP32-DevKitM-1 (PDF) · Кампанента ESP32-DevKitM-1 (DXF) – Вы можаце view гэта з Autodesk Viewанлайн · Тэхнічныя характарыстыкі ESP32 (PDF) · Выбар прадукту ESP
Каб атрымаць іншую праектную дакументацыю для платы, звяжыцеся з намі па адрасе sales@espressif.com.

Сістэмы Espressif

13 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
Праграмнае забеспячэнне 1.2.2
Каб пачаць выкарыстоўваць ESP-IDF на ESP32, усталюйце наступнае праграмнае забеспячэнне: · Toolchain для кампіляцыі кода для ESP32 · Інструменты зборкі – CMake і Ninja для стварэння поўнага прыкладання для ESP32 · ESP-IDF, які па сутнасці змяшчае API (бібліятэкі праграмнага забеспячэння і зыходны код) для ESP32 і скрыпты для працы Toolchain

1.3 Ўстаноўка
Каб усталяваць усё неабходнае праграмнае забеспячэнне, мы прапануем некалькі спосабаў спрасціць гэтую задачу. Выберыце адзін з даступных варыянтаў.
1.3.1 Інфармацыйнае асяроддзе (ІА)

Заўвага: Мы настойліва рэкамендуем усталёўваць 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 або іншае графічнае асяроддзе распрацоўкі з падтрымкай CMake. Заўвага: Абмежаванні: – Шлях усталёўкі ESP-IDF і ESP-IDF Tools не павінен перавышаць 90 сімвалаў. Занадта доўгія шляхі ўсталявання могуць прывесці да няўдалай зборкі. – Шлях усталёўкі Python або ESP-IDF не павінен утрымліваць прабелы або дужкі. – Шлях усталёўкі Python або ESP-IDF не павінен утрымліваць спецыяльныя сімвалы (не ASCII), калі аперацыйная сістэма не настроена з падтрымкай Unicode UTF-8. Сістэмны адміністратар можа ўключыць падтрымку праз Панэль кіравання – Змяніць фарматы даты, часу або лікаў – Укладка «Адміністраванне» – Змяніць лакалізацыю сістэмы – пастаўце галачку насупраць опцыі «Бета: выкарыстоўваць Unicode UTF-8 для падтрымкі моў ва ўсім свеце» – Добра і перазагрузіце кампутар.
Усталёўшчык інструментаў ESP-IDF Найпрасцейшы спосаб усталяваць неабходныя кампаненты ESP-IDFns - гэта загрузіць адзін з усталёўшчыкаў інструментаў ESP-IDF.

Спампаваць усталёўшчык Windows
Для чаго выкарыстоўваецца онлайн- і афлайн-усталёўшчык? Онлайн-усталёўшчык вельмі невялікі і дазваляе ўсталёўваць усе даступныя версіі ESP-IDF. Падчас усталёўкі ўсталёўшчык спампуе толькі неабходныя залежнасці, у тым ліку Git для Windows. Усталёўшчык захоўвае спампаваныя файлы. fileу каталогу кэша %userprofile%. эспрэсіф
Аўтаномны ўсталёўшчык не патрабуе падлучэння да сеткі. Усталёўшчык змяшчае ўсе неабходныя залежнасці, у тым ліку Git для Windows.
Кампаненты ўстаноўкі Праграма ўстаноўкі разгортвае наступныя кампаненты:
· Убудаваны Python · Крос-кампілятары · OpenOCD · Інструменты зборкі CMake і Ninja · ESP-IDF
Праграма ўстаноўкі таксама дазваляе паўторна выкарыстоўваць існуючы каталог з ESP-IDF. Рэкамендаваны каталог — %userprofile%Desktopesp-idf, дзе %userprofile% — гэта ваш хатні каталог.

Сістэмы Espressif

15 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
Запуск асяроддзя ESP-IDF У канцы працэсу ўстаноўкі вы можаце выбраць опцыю «Запусціць асяроддзе ESP-IDF PowerShell» або «Запусціць камандны радок ESP-IDF (cmd.exe). Праграма ўстаноўкі запусціць асяроддзе ESP-IDF у выбраным радку. Запусціце асяроддзе ESP-IDF PowerShell:

Мал. 8: Завяршэнне майстра налады ESP-IDF Tools з дапамогай каманды «Запуск асяроддзя PowerShell ESP-IDF».
Запусціце камандны радок ESP-IDF (cmd.exe):
Выкарыстанне каманднага радка Для астатніх крокаў па пачатку працы мы будзем выкарыстоўваць камандны радок Windows. Усталёўшчык інструментаў ESP-IDF таксама стварае ярлык у меню «Пуск» для запуску каманднага радка ESP-IDF. Гэты ярлык запускае камандны радок (cmd.exe) і выконвае скрыпт export.bat для налады зменных асяроддзя (PATH, IDF_PATH і іншых). Унутры гэтага каманднага радка даступныя ўсе ўсталяваныя інструменты. Звярніце ўвагу, што гэты ярлык прызначаны толькі для каталога ESP-IDF, абранага ўсталёўшчыкам інструментаў ESP-IDF. Калі ў вас на кампутары ёсць некалькі каталогаў ESP-IDF (напрыклад,ampт. е. для працы з рознымі версіямі ESP-IDF), у вас ёсць два варыянты іх выкарыстання:
1. Стварыце копію цэтліка, створанага ўсталёўшчыкам ESP-IDF Tools, і змяніце рабочы каталог новага цэтліка на каталог 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 Tools з дапамогай каманды «Запуск каманднага радка 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 з exampкаталог les у ESP-IDF.
Важна: Сістэма зборкі ESP-IDF не падтрымлівае прабелы ў шляхах ні да ESP-IDF, ні да праектаў.
Скапіюйце праект get-started/hello_world у каталог ~/esp: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world прывітанне_свет
Заўвага: Існуе шэраг былыхample праекты ў эксampкаталог les у ESP-IDF. Вы можаце скапіяваць любы праект такім жа спосабам, як пададзены вышэй, і запусціць яго. Таксама можна пабудаваць эксampфайлы на месцы без папярэдняга капіявання.

Падключыце прыладу Цяпер падключыце плату ESP32 да кампутара і праверце, пад якім паслядоўным портам яна бачная. Назвы паслядоўных партоў у Windows пачынаюцца з COM. Калі вы не ведаеце, як праверыць назву паслядоўнага порта, звярніцеся да раздзела «Устанаўленне паслядоўнага злучэння з ESP32» для атрымання поўнай інфармацыі.
Заўвага: трымайце назву порта пад рукой, бо яна вам спатрэбіцца ў наступных кроках.

Наладзьце свой праект Перайдзіце ў каталог hello_world, усталюйце ESP32 у якасці мэтавага рэсурсу і запусціце ўтыліту канфігурацыі праекта menuconfig.
кампакт-дыск Windows %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), перад прашыўкай ex уключыце аднаядзерны рэжым (CONFIG_FREERTOS_UNICORE) у меню config.ampлес.

Сістэмы 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”… Папярэджваць аб неініцыялізаваных значэннях. — Знойдзены Git: /usr/bin/git (знойдзеная версія “2.17.0”) — Зборка пустога кампанента aws_iot з-за канфігурацыі — Назвы кампанентаў: … — Шляхі да кампанентаў: …
... (больш радкоў вываду сістэмы зборкі)
[527/527] Генерацыя hello_world.bin esptool.py v2.3.1
Зборка праекта завершана. Каб прашыць, выканайце наступную каманду: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.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] flash
Заменіце PORT на назву паслядоўнага порта вашай платы ESP32. Вы таксама можаце змяніць хуткасць перадачы дадзеных прашыўкі, замяніўшы BAUD на патрэбную хуткасць перадачы дадзеных. Хуткасць перадачы дадзеных па змаўчанні — 460800. Больш падрабязную інфармацыю пра аргументы idf.py глядзіце ў idf.py.
Заўвага: Опцыя flash аўтаматычна збірае і прашывае праект, таму запуск idf.py build не патрабуецца.

Узніклі праблемы падчас прашыўкі? Калі вы выканалі дадзеную каманду і ўбачылі памылкі, такія як «Не ўдалося падключыцца» (Failed to connectp), гэтаму можа быць некалькі прычын. Адной з прычын могуць быць праблемы, з якімі сутыкаецца esptool.py, утыліта, якая выклікаецца сістэмай зборкі для скіду чыпа, узаемадзеяння з загрузнікам ROM і прашыўкі. Адно простае рашэнне, якое можна паспрабаваць, - гэта ручны скід, апісаны ніжэй, а калі гэта не дапаможа, вы можаце знайсці больш падрабязную інфармацыю аб магчымых праблемах у раздзеле «Ліквідацыя непаладак».
esptool.py аўтаматычна скідае ESP32, усталёўваючы кіруючыя лініі DTR і RTS мікрасхемы пераўтваральніка USB у паслядоўны порт, г.зн. FTDI або CP210x (больш падрабязную інфармацыю глядзіце ў раздзеле "Устанаўленне паслядоўнага злучэння з ESP32"). Кіруючыя лініі DTR і RTS па чарзе падключаюцца да кантактаў GPIO0 і CHIP_PU (EN) ESP32, такім чынам змяняючы гучнасць.tagУзроўні DTR і RTS загрузяць ESP32 у рэжым загрузкі прашыўкі. У якасці прыкладуampле, праверце схему платы распрацоўкі ESP32 DevKitC.
У цэлым, у вас не павінна ўзнікнуць праблем з афіцыйнымі платамі распрацоўкі esp-idf. Аднак esptool.py не можа аўтаматычна скінуць налады абсталявання ў наступных выпадках:
· Ваша абсталяванне не мае ліній DTR і RTS, падлучаных да GPIO0 і CHIP_PU · Лініі DTR і RTS настроены па-рознаму · Такіх паслядоўных ліній кіравання зусім няма
У залежнасці ад тыпу абсталявання, якое ў вас ёсць, вы таксама можаце ўручную перавесці плату ESP32 у рэжым загрузкі прашыўкі (скід).
· Для плат распрацоўкі, вырабленых кампаніяй Espressif, гэтую інфармацыю можна знайсці ў адпаведных кіраўніцтвах па пачатку працы або кіраўніцтвах карыстальніка. Напрыкладampнапрыклад, каб уручную скінуць налады платы распрацоўкі ESP-IDF, утрымлівайце кнопку Boot (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 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Паслядоўны порт /dev/ttyUSB0 Падключэнне…….._ Чып ESP32D0WDQ6 (рэвізія 0) Асаблівасці: WiFi, BT, двух'ядравы працэсар, схема кадавання Няма Крышталь 40 МГц MAC: 24:0a:c4:05:b9:14 Загрузка заглушкі… Запуск заглушкі… Запуск заглушкі… Змена хуткасці перадачы дадзеных на 460800 Зменена.
(працяг на наступнай старонцы)

Сістэмы Espressif

21 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
(працяг з папярэдняй старонкі) Налада памеру флэш-памяці… Сціснута 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 %) Запіс з адзнакай 0x0001c000… (80 %) Запіс з адзнакай 0x00020000… (100 %) Запісана 147104 байт (77364 сціснута) з адзнакай 0x00010000 за 1.9 секунды (эфектыўна 615,5 кбіт/с)… Хэш дадзеных правераны.
Пакідаю… Апаратны скід праз кантакт RTS… Гатова
Калі пасля заканчэння працэсу прашыўкі праблем не ўзнікне, плата перазагрузіцца і запусціць праграму theohello_worldpapplication. Калі вы хочаце выкарыстоўваць Eclipse або VS Code IDE замест запуску idf.py, азнаёмцеся з убудовай Eclipse, пашырэннем VSCode.
Маніторынг вываду Каб праверыць, ці сапраўды працуе ohello_worldpis, увядзіце idf.py -p PORT monitor (не забудзьцеся замяніць PORT назвай вашага паслядоўнага порта).
Гэтая каманда запускае прыкладанне IDF Monitor:
$ idf.py -p monitor Запуск idf_monitor у каталогу […]/esp/hello_world/build Выкананне “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor уключаны 115200 —– Выхад: Ctrl+] | Меню: Ctrl+T | Даведка: Ctrl+T, а затым Ctrl+H –ets 8 чэрвеня 2016 г. 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8 чэрвеня 2016 г. 00:22:57 …
Пасля таго, як журналы запуску і дыягностыкі пракруцяцца ўверх, вы павінны ўбачыць надпіс oHello world!, надрукаваны праграмай.
… Прывітанне, свет! Перазагрузка праз 10 секунд… Гэта чып esp32 з 2 ядрамі працэсара, WiFi/BT/BLE, крэмніевым працэсарам рэвізіі 1, 2 МБ знешняй флэш-памяці Мінімальны памер свабоднай кучы: 298968 байт Перазагрузка праз 9 секунд… Перазагрузка праз 8 секунд… Перазагрузка праз 7 секунд…
Каб выйсці з манітора IDF, выкарыстоўвайце цэтлік Ctrl+].

Сістэмы Espressif

22 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
Калі манітор IDF выходзіць з ладу неўзабаве пасля загрузкі, або калі замест вышэйзгаданых паведамленняў вы бачыце выпадковыя памылкі, падобныя да тых, што прыведзены ніжэй, ваша плата, верагодна, выкарыстоўвае крышталь 26 МГц. Большасць распрацоўчых плат выкарыстоўваюць 40 МГц, таму ESP-IDF выкарыстоўвае гэтую частату ў якасці значэння па змаўчанні.

Калі ў вас узнікла такая праблема, зрабіце наступнае: 1. Выйдзіце з манітора. 2. Вярніцеся ў menuconfig. 3. Перайдзіце ў Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency, затым зменіце CONFIG_XTAL_FREQ_SEL на 26 MHz. 4. Пасля гэтага зноў збярыце і прашыйце праграму.
У бягучай версіі ESP-IDF асноўныя частоты XTAL, якія падтрымліваюцца ESP32, наступныя:
· 26 МГц · 40 МГц
Заўвага: Вы можаце аб'яднаць зборку, прашыўку і маніторынг у адзін крок, выканаўшы каманду: idf.py -p PORT flash monitor
Глядзіце таксама: · IDF Monitor для зручных спалучэнняў клавіш і больш падрабязнай інфармацыі аб выкарыстанні IDF monitor. · idf.py для поўнага даведніка каманд і опцый idf.py.
Гэта ўсё, што вам трэба, каб пачаць працаваць з ESP32! Цяпер вы гатовыя паспрабаваць іншыя...ampфайлы, альбо адразу перайсці да распрацоўкі ўласных праграм.
Важна: некаторыя з былыхampФайлы не падтрымліваюць ESP32, бо неабходнае абсталяванне не ўваходзіць у ESP32, таму ён не можа падтрымлівацца. Пры зборцы эксampкалі ласка, праверце файл README file для табліцы "Падтрымліваемыя мэты". Калі яна прысутнічае, у тым ліку мэта ESP32, або табліца наогул не існуе, exampбудзе працаваць на ESP32.
Дадатковыя парады
Праблемы з дазволамі /dev/ttyUSB0 У некаторых дыстрыбутывах Linux пры прашыўцы ESP32 можа з'явіцца паведамленне пра памылку «Не ўдалося адкрыць порт /dev/ttyUSB0». Гэтую праблему можна вырашыць, дадаўшы бягучага карыстальніка ў групу dialout.
Сумяшчальнасць з Python ESP-IDF падтрымлівае Python 3.7 або больш новую версію. Рэкамендуецца абнавіць аперацыйную сістэму да апошняй версіі, якая задавальняе гэтаму патрабаванню. Іншыя варыянты ўключаюць усталёўку Python з зыходных кодаў або выкарыстанне сістэмы кіравання версіямі Python, напрыклад, pyenv.
Пачніце з пакета падтрымкі платы. Каб паскорыць стварэнне прататыпаў на некаторых платах распрацоўкі, можна выкарыстоўваць пакеты падтрымкі платы (BSP), якія спрашчаюць ініцыялізацыю пэўнай платы да некалькіх выклікаў функцый.

Сістэмы Espressif

23 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы

Звычайна BSP падтрымлівае ўсе апаратныя кампаненты, размешчаныя на плаце распрацоўкі. Акрамя вызначэння разводкі кантактаў і функцый ініцыялізацыі, BSP пастаўляецца з драйверамі для знешніх кампанентаў, такіх як датчыкі, дысплеі, аўдыёкодэкі і г.д. BSP распаўсюджваюцца праз IDF Component Manager, таму іх можна знайсці ў рэестры кампанентаў IDF. Вось прыкладampІнструкцыя па даданні ESP-WROVER-KIT BSP у ваш праект: idf.py add-dependency esp_wrover_kit
Больш эксampІнфармацыю пра выкарыстанне BSP можна знайсці ў прыкладе BSPampтэчка les.
Звязаныя дакументы Для вопытных карыстальнікаў, якія жадаюць наладзіць працэс усталёўкі: · Абнаўленне інструментаў ESP-IDF у Windows · Устаноўка паслядоўнага злучэння з ESP32 · Убудова Eclipse · Пашырэнне VSCode · Манітор IDF
Абнаўленне інструментаў ESP-IDF у Windows
Усталяванне інструментаў ESP-IDF з дапамогай скрыпта. З каманднага радка Windows перайдзіце ў каталог, дзе ўсталяваны ESPIDF. Затым запусціце каманду:
install.bat
Для Powershell перайдзіце ў каталог, дзе ўсталяваны ESP-IDF. Затым запусціце:
усталяваць.ps1
Гэта дазволіць загрузіць і ўсталяваць інструменты, неабходныя для выкарыстання ESP-IDF. Калі пэўная версія інструмента ўжо ўсталявана, ніякіх дзеянняў прадпрынята не будзе. Інструменты спампоўваюцца і ўсталёўваюцца ў каталог, указаны падчас працэсу ўсталёўкі інструментаў ESP-IDF. Па змаўчанні гэта C:\Usersusername.espressif.
Дадайце інструменты ESP-IDF у PATH з дапамогай экспартнага скрыпта. Праграма ўстаноўкі інструментаў ESP-IDF стварае ярлык у меню «Пуск» для каманднага радка ESP-IDF. Гэты ярлык адкрывае акно каманднага радка, дзе ўжо знаходзяцца ўсе інструменты.
даступна. У некаторых выпадках вам можа спатрэбіцца працаваць з ESP-IDF у акне каманднага радка, якое не было запушчана з дапамогай гэтага спалучэння клавіш. У гэтым выпадку выканайце інструкцыі ніжэй, каб дадаць інструменты ESP-IDF у PATH. У камандным радку, дзе вам трэба выкарыстоўваць ESP-IDF, перайдзіце ў каталог, дзе ўсталяваны ESP-IDF, а затым выканайце export.bat:
кампакт-дыск %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 да ПК Падлучыце плату ESP32 да ПК з дапамогай кабеля USB. Калі драйвер прылады не ўсталёўваецца аўтаматычна, знайдзіце мікрасхему пераўтваральніка USB у паслядоўны порт на вашай плаце ESP32 (або знешнім пераўтваральніку), знайдзіце драйверы ў Інтэрнэце і ўсталюйце іх. Ніжэй прыведзены спіс мікрасхем пераўтваральніка USB у паслядоўны порт, усталяваных на большасці плат ESP32, вырабленых Espressif, разам са спасылкамі на драйверы:
· CP210x: Драйверы VCP моста CP210x USB-UART · 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) вам таксама можа спатрэбіцца відавочна дазволіць загрузку драйвераў. Адкрыйце «Сістэмныя налады» -> «Бяспека і прыватнасць» -> «Агульныя» і праверце, ці ёсць тут паведамленне аб сістэмным праграмным забеспячэнні ад распрацоўшчыка lp, дзе імя распрацоўшчыка — Silicon Labs або FTDI.

Даданне карыстальніка ў групу dialout у Linux Карыстальнік, які ўвайшоў у сістэму, павінен мець доступ да паслядоўнага порта праз USB на чытанне і запіс. У большасці дыстрыбутываў Linux гэта робіцца шляхам дадання карыстальніка ў групу dialout з дапамогай наступнай каманды:
sudo usermod -a -G выклік $USER
у Arch Linux гэта робіцца шляхам дадання карыстальніка ў групу uucp з дапамогай наступнай каманды:
sudo usermod -a -G uucp $КАРЫСТАЛЬНІК
Пераканайцеся, што вы паўторна ўвайшлі ў сістэму, каб уключыць дазволы на чытанне і запіс для паслядоўнага порта.
Праверка паслядоўнага злучэння Цяпер праверце, ці працуе паслядоўнае злучэнне. Вы можаце зрабіць гэта з дапамогай праграмы паслядоўнага тэрмінала, праверыўшы, ці атрымліваеце вы які-небудзь вынік на тэрмінале пасля скіду ESP32. Хуткасць перадачы дадзеных кансолі па змаўчанні на ESP32 складае 115200.
Windows і Linux у гэтым былымampМы будзем выкарыстоўваць кліент PuTTY SSH, даступны як для Windows, так і для Linux. Вы можаце выкарыстоўваць іншыя праграмы для паслядоўнага порта і ўсталёўваць параметры сувязі, як паказана ніжэй. Запусціце тэрмінал і ўсталюйце вызначаны паслядоўны порт. Хуткасць перадачы дадзеных = 115200 (пры неабходнасці змяніце гэта на хуткасць перадачы дадзеных па змаўчанні для выкарыстоўванага чыпа), біты дадзеных = 8, стоп-біты = 1 і цотнасць = N. Ніжэй прыведзены прыклады.ampскрыншоты налады порта і такіх параметраў перадачы (скарочана апісана як 115200-8-1-N) у Windows і Linux. Не забудзьцеся выбраць менавіта той самы паслядоўны порт, які вы вызначылі ў папярэдніх кроках. Затым адкрыйце паслядоўны порт у тэрмінале і праверце, ці бачыце вы які-небудзь журнал, раздрукаваны ESP32. Змест журнала будзе залежаць ад праграмы, загружанай у ESP32, гл. прыклад.ampВыхад.
Заўвага: Зачыніце паслядоўны тэрмінал пасля праверкі наяўнасці сувязі. Калі вы пакінеце сеанс тэрмінала адкрытым, паслядоўны порт будзе недаступны для загрузкі прашыўкі пазней.

macOS Каб пазбегнуць праблем з усталёўкай праграмы паслядоўнага тэрмінала, macOS прапануе каманду screen. · Як абмяркоўвалася ў раздзеле «Праверка порта ў Linux і macOS», выканайце наступную каманду:

ls /dev/cu.* · Вы павінны ўбачыць падобны вынік:

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

/dev/cu.SLAB_

· Вывад будзе адрознівацца ў залежнасці ад тыпу і колькасці плат, падлучаных да вашага ПК. Затым выберыце назву прылады вашай платы і запусціце (пры неабходнасці змяніце o115200to на хуткасць перадачы дадзеных па змаўчанні для выкарыстоўванага чыпа):

экран /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, гл. прыкладampВывад. Каб выйсці з экраннага сеансу, націсніце Ctrl-A + .
Заўвага: Не забудзьцеся выйсці з сеансу прагляду экрана пасля праверкі працы сувязі. Калі вы гэтага не зробіце і проста закрыеце акно тэрмінала, паслядоўны порт будзе недаступны для загрузкі прашыўкі пазней.
ExampВывад An exampЖурнал паказаны ніжэй. Скіньце налады дошкі, калі нічога не бачыце. ets 8 чэрвеня 2016 г. 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 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загрузнік e I (45) загрузка: час кампіляцыі 18:48:10

Калі вы бачыце чытальны вывад журнала, гэта азначае, што паслядоўнае злучэнне працуе, і вы гатовыя працягнуць усталёўку і, нарэшце, загрузку праграмы ў ESP32.
Заўвага: Для некаторых канфігурацый падключэння паслядоўных партоў паслядоўныя кантакты RTS і DTR неабходна адключыць у тэрмінальнай праграме, перш чым ESP32 загрузіцца і будзе выдаваць паслядоўны вывад. Гэта залежыць ад самога абсталявання, большасць плат распрацоўшчыкаў (у тым ліку ўсе платы Espressif) не маюць гэтай праблемы. Праблема існуе, калі RTS і DTR падключаны непасрэдна да кантактаў EN і GPIO0. Глядзіце дакументацыю esptool для атрымання больш падрабязнай інфармацыі.
Калі вы трапілі сюды з кроку 5. Першыя крокі па ESP-IDF пры ўсталёўцы праграмнага забеспячэння для распрацоўкі на ESP32, то вы можаце працягнуць з кроку 5. Першыя крокі па ESP-IDF.
IDF Monitor IDF Monitor — гэта ў асноўным праграма паслядоўнага тэрмінала, якая перадае паслядоўныя дадзеныя на паслядоўны порт мэтавай прылады і назад. Яна таксама забяспечвае некаторыя функцыі, характэрныя для IDF. IDF Monitor можна запусціць з праекта IDF, выканаўшы каманду idf.py monitor.
Спалучэнні клавіш Для зручнага ўзаемадзеяння з 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перакампілююцца і затым перапрашываюцца. Мэтавая праграма encrypted-flash запускаецца, калі idf_monitor быў запушчаны з аргументам -E. Прыпыняе idf_monitor для запуску мэты app-flash, а затым аднаўляе idf_monitor. Падобна да мэты флэш-памяці, але збіраецца і перапрашываецца толькі асноўная праграма. Мэтавая праграма encrypted-app-flash запускаецца, калі idf_monitor быў запушчаны з аргументам -E. Адкідае ўсе ўваходныя паслядоўныя дадзеныя падчас актывацыі. Дазваляе хутка прыпыніць і праглядзець вывад журнала без выхаду з манітора. Стварае file у каталогу праекта, і вынік запісваецца туды file пакуль гэта не будзе адключана тым жа спалучэннем клавіш (або пакуль IDF Monitor не закрыецца). IDF Monitor можа вывесці часamp у пачатку кожнага радка. Найбольшы часamp фармат можа быць зменены з дапамогай –timestamp-format аргумент каманднага радка.

Выйсці з праграмы

Перапыненне працы праграмы

Прыпыняе манітор IDF і запускае адладчык праекта GDB для адладкі праграмы падчас выканання. Для гэтага патрабуецца ўключыць опцыю :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME.

Любыя націснутыя клавішы, акрамя Ctrl-] і Ctrl-T, будуць адпраўлены праз паслядоўны порт.

Асаблівасці, спецыфічныя для Арміі абароны Ізраіля

Аўтаматычнае дэкадаванне адраса. Кожны раз, калі ESP-IDF выводзіць шаснаццатковы код адраса ў выглядзе 0x4_______, IDF Monitor выкарыстоўвае addr2line_ для пошуку месцазнаходжання ў зыходным кодзе і пошуку назвы функцыі.
Калі праграма ESP-IDF выходзіць з ладу і выходзіць з ладу, ствараецца дамп рэестра і зваротная трасіроўка, напрыклад, наступныя:

Сістэмы Espressif

31 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы

Памылка медытацыі гуру тыпу StoreProhibited адбылася на ядры 0. Выключэнне:

неапрацаваны.

Дамп рэгістрацыі:

PC

: 0x400f360d ПС

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

A2

: 0x3ffb136c А3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

A10

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

A14

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 ПРЫЧЫНА:

0x0000001d

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

0x00000000

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

Манітор IDF дадае ў дамп больш падрабязнасцей:

Памылка медытацыі гуру тыпу StoreProhibited адбылася на ядры 0. Выключэнне:

неапрацаваны.

Дамп рэгістрацыі:

PC

: 0x400f360d ПС

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: нешта зрабіць, каб збіць сістэму ў /home/gus/esp/32/idf/examples/пачатак працы/

hello_world/main/./hello_world_main.c:57

(убудавана з дапамогай) inner_dont_crash у /home/gus/esp/32/idf/examples/get-started/hello_

свет/галоўны/./прывітанне_свет_маін.c:52

A2

: 0x3ffb136c А3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

A10

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

A14

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 ПРЫЧЫНА:

0x0000001d

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

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (убудавана) inner_dont_crash у /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: усё яшчэ не адбываецца збой у /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

Каб расшыфраваць кожны адрас, IDF Monitor выконвае наступную каманду ў фонавым рэжыме: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

Заўвага: Усталюйце зменную асяроддзя ESP_MONITOR_DECODE ў 0 або выклічце idf_monitor.py з дапамогай пэўнай каманды.

Сістэмы Espressif

32 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
опцыя: idf_monitor.py –disable-address-decoding для адключэння дэкадавання адрасоў.
Скід мэты пры падключэнні Па змаўчанні IDF Monitor скідае цэль пры падключэнні да яе. Скід чыпа мэты выконваецца з дапамогай паслядоўных ліній DTR і RTS. Каб IDF Monitor не аддаваў цэль аўтаматычнай скідкі пры падключэнні, выклічце IDF Monitor з опцыяй –no-reset (напрыклад, idf_monitor.py –no-reset).
Заўвага: Опцыя –no-reset ужывае тую ж паводзіны нават пры падключэнні IDF Monitor да пэўнага порта (напрыклад, idf.py monitor –no-reset -p [ПОРТ]).
Запуск GDB з дапамогай GDBStub GDBStub — гэта карысная функцыя адладкі падчас выканання, якая працуе на мэтавай сістэме і падключаецца да хаста праз паслядоўны порт для атрымання каманд адладкі. GDBStub падтрымлівае такія каманды, як чытанне памяці і зменных, праверка кадраў стэка выклікаў і г.д. Нягледзячы на ​​тое, што GDBStub менш універсальны, чым JTAG адладка, не патрабуе ніякага спецыяльнага абсталявання (напрыклад, 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 “устанавіць паслядоўны BAUD” -ex “мэтавы аддалены ПОРТ” -ex interrupt build/PROJECT.elf :idf_target:`Прывітанне, НАЗВА чыпа`

Фільтраванне вываду Манітор IDF можна выклікаць як idf.py monitor –print-filter=”xyz”, дзе –print-filter — гэта параметр для фільтрацыі вываду. Значэнне па змаўчанні — пусты радок, гэта значыць, што друкуецца ўсё.
Абмежаванні на тое, што друкаваць, можна задаць у выглядзе серыіtag>: прадметы, дзеtag> гэта tag радок і — сімвал з мноства {N, E, W, I, D, V, *}, які адносіцца да ўзроўню рэгістрацыі.
Напрыкладampле, PRINT_FILTER="tag1:W” супадае і друкуе толькі вынікі, запісаныя з дапамогай ESP_LOGW(“tag1”, …) або на ніжэйшым узроўні падрабязнасці, г.зн. ESP_LOGE(“tag1″, …). Без указання або выкарыстанне * па змаўчанні ставіць падрабязны ўзровень.
Заўвага: Выкарыстоўвайце першаснае рэгістраванне, каб адключыць пры кампіляцыі непатрэбныя вам вывады праз бібліятэку рэгістрацыі. Фільтраванне вываду з дапамогай манітора IDF — гэта другаснае рашэнне, якое можа быць карысным для налады параметраў фільтрацыі без перакампіляцыі праграмы.
Ваша праграма tags не павінен утрымліваць прабелаў, зорачак * або двукроп'яў: для сумяшчальнасці з функцыяй фільтрацыі вываду.
Калі пасля апошняга радка вываду ў вашай праграме няма сімвала вяртання карэткі, фільтрацыя вываду можа быць блытанай, г.зн. манітор пачынае друкаваць радок, а пазней выяўляе, што радок не павінен быў быць запісаны. Гэта вядомая праблема, і яе можна пазбегнуць, заўсёды дадаючы сімвал вяртання карэткі (асабліва калі адразу пасля яго няма вываду).

Сістэмы Espressif

33 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
Exampспіс правілаў фільтрацыі:
· * можна выкарыстоўваць для супастаўлення з любым tagsАднак радок PRINT_FILTER=”*:I tag1:E” адносна tag1 друкуе толькі памылкі, бо правіла для tag1 мае вышэйшы прыярытэт над правілам для *.
· Правіла па змаўчанні (пустое) эквівалентна *:V, таму што супадзенне з кожным tag на ўзроўні Verbose або ніжэй азначае супадзенне ўсяго.
· «*:N» падаўляе не толькі вывад функцый рэгістрацыі, але і вывады, зробленыя printf і г.д. Каб пазбегнуць гэтага, выкарыстоўвайце *:E або больш высокі ўзровень падрабязнасці.
· Правілыtag1:V”, “tag1:v”, “tag1:”, “tag1:*” і “tag1” эквівалентныя. · Правіла “tag1:W tag1:E» эквівалентна «tag1:E», таму што любое наступнае з'яўленне таго ж tag
імя перазапісвае папярэдняе. · Правіла “tag1:I tagдрукуецца толькі 2:W” tag1 на ўзроўні падрабязнасці інфармацыі або ніжэй і tag2 у папярэджанні
узровень падрабязнасці або ніжэй. · Правіла «tag1:I tag2:W tag«3:N» па сутнасці эквівалентны папярэдняму, таму што tag3:N паказвае
што tag3 нельга друкаваць. · tag3:N у правіле “tag1:I tag2:W tag3:N *:V” мае больш сэнс, таму што без tag3:N
tagМагло быць надрукавана 3 паведамленні; памылкі для tag1 і tag2 будзе надрукаваны з зададзеным (ці ніжэйшым) узроўнем падрабязнасці, а ўсё астатняе будзе надрукавана па змаўчанні.
Больш складаны прыклад фільтрацыіampНаступны фрагмент журнала быў атрыманы без якіх-небудзь опцый фільтрацыі:
load:0x40078000,len:13564 запіс 0x40078d4c E (31) esp_image: выява па адрасе 0x30000 мае няправільны магічны байт W (31) esp_image: выява па адрасе 0x30000 мае няправільны рэжым SPI 255 E (39) boot: Раздзел заводскіх праграм не загружаецца I (568) cpu_start: Працэсар Pro запушчаны. I (569) heap_init: Ініцыялізацыя. Аператыўная памяць даступная для дынамічнага размеркавання: I (603) cpu_start: Код карыстальніка запуску працэсара Pro D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range паспяховы для дыяпазону <54; 64) і VFS ID 1 I (328) wifi: задача драйвера wifi: 3ffdbf84, прыярытэт: 23, стэк: 4096, ядро=0
Ніжэй прыведзены вынік фільтрацыі PRINT_FILTER=”wifi esp_image:E light_driver:I”:
E (31) esp_image: выява па адрасе 0x30000 мае няправільны магічны байт I (328) wifi: задача драйвера wifi: 3ffdbf84, prio:23, stack:4096, core=0
Опцыі “PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" паказваюць наступны вынік:
load:0x40078000,len:13564 запіс 0x40078d4c I (569) heap_init: Ініцыялізацыя. Аператыўная памяць, даступная для дынамічнага размеркавання: D (309) light_driver: [light_init, 74]:status: 1, mode: 2
Вядомыя праблемы з маніторам IDF
Праблемы, якія назіраліся ў Windows
· Клавішы са стрэлкамі, а таксама некаторыя іншыя клавішы, не працуюць у GDB з-за абмежаванняў кансолі Windows. · Часам, пры выхадзе з праграмы oidf.pypexit, яна можа завіснуць на тэрмін да 30 секунд, перш чым аднавіць працу IDF Monitor. · Пры запуску ogdbpis яна можа ненадоўга завіснуць, перш чым пачаць сувязь з GDBStub.

Сістэмы Espressif

34 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы са стандартнай наладкай Toolchain для 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 update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 усё яшчэ падтрымліваецца, але для лепшага карыстальніцкага досведу рэкамендуецца CentOS версіі 8. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Заўвага: · Для выкарыстання з ESP-IDF патрабуецца CMake версіі 3.16 або больш позняй. Запусціце otools/idf_tools.py install cmake, каб усталяваць адпаведную версію, калі ў вашай аперацыйнай сістэме яе няма. · Калі вы не бачыце свайго дыстрыбутыва Linux у спісе вышэй, праверце яго дакументацыю, каб даведацца, якую каманду выкарыстоўваць для ўсталёўкі пакета.
Для карыстальнікаў macOS ESP-IDF будзе выкарыстоўваць версію Python, усталяваную па змаўчанні ў macOS. · Усталёўка зборкі CMake і Ninja: калі ў вас ёсць HomeBrew, вы можаце выканаць каманду: brew install cmake ninja dfu-util. Калі ў вас ёсць MacPorts, вы можаце выканаць каманду: sudo port install cmake ninja dfu-util. У адваротным выпадку звярніцеся да хатніх старонак CMake і Ninja для загрузкі ўсталёўкі macOS.

Сістэмы Espressif

35 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
· Настойліва рэкамендуецца ўсталяваць таксама ccache для больш хуткай зборкі. Калі ў вас ёсць HomeBrew, гэта можна зрабіць з дапамогай brew install ccache або sudo port install ccache на 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: няправільны тып працэсара ў выканальным файле: ~/.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 all
Заўвага: Для карыстальнікаў macOS, калі на любым этапе адлюстроўваецца падобная памылка:urlпамылка адкрыцця [SSL: CERTIFICATE_VERIFY_FAILED] праверка сертыфіката не ўдалася: не ўдалося атрымаць лакальны сертыфікат эмітэнта (_ssl.c:xxx)
Вы можаце выканаць каманду Install Certificates.command у тэчцы Python на вашым кампутары, каб усталяваць сертыфікаты. Падрабязнасці глядзіце ў раздзеле Памылка загрузкі пры ўсталёўцы інструментаў ESP-IDF.

Альтэрнатыўны File Спампаваць Праграма ўстаноўкі інструментаў спампоўвае некалькі fileпрымацаваны да выпускаў GitHub. Калі доступ да GitHub павольны, можна ўсталяваць зменную асяроддзя, каб аддаваць перавагу серверу загрузкі Espressifns для загрузкі рэсурсаў GitHub.

Заўвага: Гэты параметр кіруе толькі асобнымі інструментамі, загружанымі з рэлізаў GitHub, ён не змяняе URLвыкарыстоўваецца для доступу да любых рэпазіторыяў Git.

Каб пры ўсталёўцы інструментаў аддаваць перавагу серверу загрузкі Espressif, выкарыстоўвайце наступную паслядоўнасць каманд пры запуску install.sh:

Сістэмы Espressif

37 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы

cd ~/esp/esp-idf экспарт IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Налада шляху ўсталёўкі інструментаў Скрыпты, прадстаўленыя на гэтым кроку, усталёўваюць інструменты кампіляцыі, неабходныя ESP-IDF, у хатні каталог карыстальніка: $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
або для рыбы (падтрымліваецца толькі з версіі fish 3.0.0):
$HOME/esp/esp-idf/export.fish
Звярніце ўвагу на прабел паміж кропкай і шляхам! Калі вы плануеце часта выкарыстоўваць esp-idf, вы можаце стварыць псеўданім для выканання export.sh:
1. Скапіруйце і ўстаўце наступную каманду ў ваш shellns profile (.profile, .bashrc, .zprofileі г.д.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Абнавіце канфігурацыю, перазапусціўшы тэрмінальны сеанс або выканаўшы каманду source [шлях да profile],
напрыкладample, зыходны код ~/.bashrc. Цяпер вы можаце запусціць get_idf для налады або абнаўлення асяроддзя esp-idf у любым тэрмінальным сеансе. Тэхнічна вы можаце дадаць export.sh у свой shellns profile непасрэдна; аднак гэта не рэкамендуецца. Гэта актывуе віртуальнае асяроддзе IDF у кожным тэрмінальным сеансе (у тым ліку ў тых, дзе IDF не патрэбны), што зводзіць на нішто мэту віртуальнага асяроддзя і, верагодна, паўплывае на іншае праграмнае забеспячэнне.
Крок 5. Першыя крокі на ESP-IDF Цяпер, калі ўсе патрабаванні выкананы, наступны раздзел дапаможа вам пачаць свой першы праект. Гэта кіраўніцтва дапаможа вам зрабіць першыя крокі з выкарыстаннем ESP-IDF. Выконвайце гэта кіраўніцтва, каб пачаць новы праект на ESP32, а таксама сабраць, прашыць і кантраляваць выхад прылады.
Заўвага: Калі вы яшчэ не ўсталявалі ESP-IDF, перайдзіце да раздзела «Усталёўка» і выканайце інструкцыі, каб атрымаць усё неабходнае праграмнае забеспячэнне для выкарыстання гэтага кіраўніцтва.

Пачатак праекта Цяпер вы гатовыя падрыхтаваць сваё прыкладанне для ESP32. Вы можаце пачаць з праекта getstarted/hello_world з exampкаталог 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 .
Заўвага: Існуе шэраг былыхample праекты ў эксampкаталог les у ESP-IDF. Вы можаце скапіяваць любы праект такім жа спосабам, як пададзены вышэй, і запусціць яго. Таксама можна пабудаваць эксampфайлы на месцы без папярэдняга капіявання.
Падключыце прыладу Цяпер падключыце плату ESP32 да кампутара і праверце, пад якім паслядоўным портам яна бачная. Паслядоўныя парты маюць наступныя шаблоны наймення:
· Linux: пачынаючы з /dev/tty · macOS: пачынаючы з /dev/cu. Калі вы не ведаеце, як праверыць назву паслядоўнага порта, звярніцеся да раздзела «Устанаўленне паслядоўнага злучэння з дапамогай ESP32» для атрымання поўнай інфармацыі.
Заўвага: трымайце назву порта пад рукой, бо яна вам спатрэбіцца ў наступных кроках.
Наладзьце свой праект. Перайдзіце ў каталог hello_world, усталюйце ESP32 у якасці мэтавай прасторы і запусціце ўтыліту канфігурацыі праекта menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Пасля адкрыцця новага праекта спачатку варта ўсталяваць мэтавую аб'ект з дапамогай каманды idf.py set-target esp32. Звярніце ўвагу, што існуючыя зборкі і канфігурацыі ў праекце, калі такія маюцца, будуць ачышчаны і ініцыялізаваны ў гэтым працэсе. Мэтавую аб'ект можна захаваць у зменнай асяроддзя, каб прапусціць гэты крок. Глядзіце раздзел «Выбар мэтавага чыпа: set-target» для атрымання дадатковай інфармацыі. Калі папярэднія крокі былі выкананы правільна, з'явіцца наступнае меню:

Мал. 17: Канфігурацыя праекта – Галоўнае акно. Гэтае меню выкарыстоўваецца для налады зменных, спецыфічных для праекта, напрыклад, імя і пароль сеткі Wi-Fi, хуткасці працэсара і г.д. Наладу праекта з дапамогай menuconfig можна прапусціць для hello_worldp, паколькі гэта...ampле працуе з

Сістэмы Espressif

39 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
канфігурацыя па змаўчанні.
Увага: Калі вы выкарыстоўваеце плату ESP32-DevKitC з модулем ESP32-SOLO-1 або плату ESP32-DevKitM-1 з модулем ESP32-MIN1-1(1U), перад прашыўкай ex уключыце аднаядзерны рэжым (CONFIG_FREERTOS_UNICORE) у меню config.ampлес.
Заўвага: Колеры меню ў вашым тэрмінале могуць адрознівацца. Вы можаце змяніць знешні выгляд з дапамогай опцыі –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”… Папярэджваць аб неініцыялізаваных значэннях. — Знойдзены Git: /usr/bin/git (знойдзеная версія “2.17.0”) — Зборка пустога кампанента aws_iot з-за канфігурацыі — Назвы кампанентаў: … — Шляхі да кампанентаў: …
... (больш радкоў вываду сістэмы зборкі)
[527/527] Генерацыя hello_world.bin esptool.py v2.3.1
Зборка праекта завершана. Каб прашыць, выканайце наступную каманду: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.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 ПОРТ [-b BAUD] flash
Заменіце PORT на назву паслядоўнага порта вашай платы ESP32. Вы таксама можаце змяніць хуткасць перадачы дадзеных прашыўкі, замяніўшы BAUD на патрэбную хуткасць перадачы дадзеных. Хуткасць перадачы дадзеных па змаўчанні — 460800. Больш падрабязную інфармацыю пра аргументы idf.py глядзіце ў idf.py.
Заўвага: Опцыя flash аўтаматычна збірае і прашывае праект, таму запуск idf.py build не патрабуецца.

Сістэмы Espressif

40 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы

Узніклі праблемы падчас прашыўкі? Калі вы выканалі дадзеную каманду і ўбачылі памылкі, такія як «Не ўдалося падключыцца» (Failed to connectp), гэтаму можа быць некалькі прычын. Адной з прычын могуць быць праблемы, з якімі сутыкаецца esptool.py, утыліта, якая выклікаецца сістэмай зборкі для скіду чыпа, узаемадзеяння з загрузнікам ROM і прашыўкі. Адно простае рашэнне, якое можна паспрабаваць, - гэта ручны скід, апісаны ніжэй, а калі гэта не дапаможа, вы можаце знайсці больш падрабязную інфармацыю аб магчымых праблемах у раздзеле «Ліквідацыя непаладак».
esptool.py аўтаматычна скідае ESP32, усталёўваючы кіруючыя лініі DTR і RTS мікрасхемы пераўтваральніка USB у паслядоўны порт, г.зн. FTDI або CP210x (больш падрабязную інфармацыю глядзіце ў раздзеле "Устанаўленне паслядоўнага злучэння з ESP32"). Кіруючыя лініі DTR і RTS па чарзе падключаюцца да кантактаў GPIO0 і CHIP_PU (EN) ESP32, такім чынам змяняючы гучнасць.tagУзроўні DTR і RTS загрузяць ESP32 у рэжым загрузкі прашыўкі. У якасці прыкладуampле, праверце схему платы распрацоўкі ESP32 DevKitC.
У цэлым, у вас не павінна ўзнікнуць праблем з афіцыйнымі платамі распрацоўкі esp-idf. Аднак esptool.py не можа аўтаматычна скінуць налады абсталявання ў наступных выпадках:
· Ваша абсталяванне не мае ліній DTR і RTS, падлучаных да GPIO0 і CHIP_PU · Лініі DTR і RTS настроены па-рознаму · Такіх паслядоўных ліній кіравання зусім няма
У залежнасці ад тыпу абсталявання, якое ў вас ёсць, вы таксама можаце ўручную перавесці плату ESP32 у рэжым загрузкі прашыўкі (скід).
· Для плат распрацоўкі, вырабленых кампаніяй Espressif, гэтую інфармацыю можна знайсці ў адпаведных кіраўніцтвах па пачатку працы або кіраўніцтвах карыстальніка. Напрыкладampнапрыклад, каб уручную скінуць налады платы распрацоўкі ESP-IDF, утрымлівайце кнопку Boot (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 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Паслядоўны порт /dev/ttyUSB0 Падключэнне…….._ Чып ESP32D0WDQ6 (рэвізія 0) Асаблівасці: WiFi, BT, двух'ядравы працэсар, схема кадавання Няма Крышталь 40 МГц MAC: 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 %) Запіс з адрасам 0x0001c000… (80 %)
(працяг на наступнай старонцы)

Сістэмы Espressif

41 Адправіць водгук аб дакуменце

Рэліз v5.0.9

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

Калі ў вас узнікла такая праблема, зрабіце наступнае:
1. Выйдзіце з манітора. 2. Вярніцеся ў меню канфігурацыі. 3. Перайдзіце ў раздзел Канфігурацыя кампанентаў > Налады абсталявання > Галоўная канфігурацыя XTAL > Галоўная XTAL
частату, затым зменіце CONFIG_XTAL_FREQ_SEL на 26 МГц. 4. Пасля гэтага зноў збярыце і прашыйце праграму.

Сістэмы Espressif

42 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 1. Пачатак працы
У бягучай версіі ESP-IDF асноўныя частоты XTAL, якія падтрымліваюцца ESP32, наступныя:
· 26 МГц · 40 МГц
Заўвага: Вы можаце аб'яднаць зборку, прашыўку і маніторынг у адзін крок, выканаўшы каманду: idf.py -p PORT flash monitor
Глядзіце таксама: · IDF Monitor для зручных спалучэнняў клавіш і больш падрабязнай інфармацыі аб выкарыстанні IDF monitor. · idf.py для поўнага даведніка каманд і опцый idf.py.
Гэта ўсё, што вам трэба, каб пачаць працаваць з ESP32! Цяпер вы гатовыя паспрабаваць іншыя...ampфайлы, альбо адразу перайсці да распрацоўкі ўласных праграм.
Важна: некаторыя з былыхampФайлы не падтрымліваюць ESP32, бо неабходнае абсталяванне не ўваходзіць у ESP32, таму ён не можа падтрымлівацца. Пры зборцы эксampкалі ласка, праверце файл README file для табліцы "Падтрымліваемыя мэты". Калі яна прысутнічае, у тым ліку мэта ESP32, або табліца наогул не існуе, exampбудзе працаваць на ESP32.
Дадатковыя парады
Праблемы з дазволамі /dev/ttyUSB0 У некаторых дыстрыбутывах Linux пры прашыўцы ESP32 можа з'явіцца паведамленне пра памылку «Не ўдалося адкрыць порт /dev/ttyUSB0». Гэтую праблему можна вырашыць, дадаўшы бягучага карыстальніка ў групу dialout.
Сумяшчальнасць з Python ESP-IDF падтрымлівае Python 3.7 або больш новую версію. Рэкамендуецца абнавіць аперацыйную сістэму да апошняй версіі, якая задавальняе гэтаму патрабаванню. Іншыя варыянты ўключаюць усталёўку Python з зыходных кодаў або выкарыстанне сістэмы кіравання версіямі Python, напрыклад, pyenv.
Пачніце з пакета падтрымкі платы. Каб паскорыць стварэнне прататыпаў на некаторых платах распрацоўшчыка, можна выкарыстоўваць пакеты падтрымкі платы (BSP), якія спрашчаюць ініцыялізацыю пэўнай платы да некалькіх выклікаў функцый. BSP звычайна падтрымлівае ўсе апаратныя кампаненты, прадугледжаныя на плаце распрацоўшчыка. Акрамя вызначэння разводкі кантактаў і функцый ініцыялізацыі, BSP пастаўляецца з драйверамі для знешніх кампанентаў, такіх як датчыкі, дысплеі, аўдыёкодэкі і г.д. BSP распаўсюджваюцца праз IDF Component Manager, таму іх можна знайсці ў рэестры кампанентаў IDF. Вось прыклад.ampІнструкцыя па даданні ESP-WROVER-KIT BSP у ваш праект: idf.py add-dependency esp_wrover_kit
Больш эксampІнфармацыю пра выкарыстанне BSP можна знайсці ў прыкладе BSPampтэчка 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 зноў выканайце скрыпт усталёўкі, калі новая версія ESP-IDF патрабуе іншых версій інструментаў. Глядзіце інструкцыі ў кроку 3. Наладзьце інструменты. Пасля ўсталёўкі новых інструментаў абнавіце асяроддзе з дапамогай скрыпта экспарту. Глядзіце інструкцыі ў кроку 4. Наладзьце зменныя асяроддзя.
Звязаныя дакументы · Устанаўленне паслядоўнага злучэння з ESP32 · Убудова Eclipse · Пашырэнне VSCode · Манітор IDF
1.4 Стварыце свой першы праект
Калі ў вас ужо ўсталяваны ESP-IDF і вы не выкарыстоўваеце IDE, вы можаце стварыць свой першы праект з каманднага радка, выканаўшы дзеянні па інструкцыі «Пачаць праект у Windows» або «Пачаць праект у Linux і macOS».
1.5 Выдаленне ESP-IDF
Калі вы хочаце выдаліць ESP-IDF, выканайце наступныя дзеянні: Выдаленне ESP-IDF.

Сістэмы Espressif

44 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 2
Спасылка на API
2.1 Пагадненні API
У гэтым дакуменце апісаны агульныя для інтэрфейсаў праграмавання прыкладанняў (API) ESP-IDF. ESP-IDF прапануе некалькі відаў інтэрфейсаў праграмавання:
· Функцыі, структуры, пералічэнні, азначэнні тыпаў і макрасы прэпрацэсара C, абвешчаныя ў адкрытым загалоўку fileкампанентаў 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 = “my_timer”
esp_timer_handle_t мой_таймер; esp_err_t err = esp_timer_create(&arguments_my_timer, &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-IDFampФайлы выкарыстоўваюць ініцыялізатары, прызначаныя C99, для ініцыялізацыі структуры, бо яны забяспечваюць кароткі спосаб усталявання падмноства палёў і ініцыялізацыі астатніх палёў нулямі:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Правільна, палі .arg і .name ініцыялізаваны нулем */
};
Мова C++ не падтрымлівае сінтаксіс прызначаных ініцыялізатараў да C++20, аднак кампілятар GCC часткова падтрымлівае яго як пашырэнне. Пры выкарыстанні API ESP-IDF у кодзе C++ вы можаце разгледзець наступны шаблон:
esp_timer_create_args_t my_timer_args = {}; /* Усе палі ініцыялізаваны нулём */ my_timer_args.callback = &my_timer_callback;

Ініцыялізатары па змаўчанні
Для некаторых структур канфігурацыі ESP-IDF прапануе макрасы для ўсталёўкі значэнняў палёў па змаўчанні:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG пашыраецца да пазначанага ініцыялізатара.
Цяпер усе палі маюць значэнні па змаўчанні. Любое поле ўсё яшчэ можна змяніць: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Рэкамендуецца выкарыстоўваць макрасы ініцыялізатараў па змаўчанні, калі яны прадугледжаны для пэўнай структуры канфігурацыі.

2.1.3 Прыватныя API
Пэўны загаловак fileу ESP-IDF утрымліваюць API, прызначаныя для выкарыстання толькі ў зыходным кодзе ESP-IDF, а не ў праграмах. Такі загаловак fileЧаста ў сваёй назве або шляху ўтрымліваюць private або esp_private. Некаторыя кампаненты, такія як hal, утрымліваюць толькі прыватныя API. Прыватныя API могуць быць выдалены або зменены несумяшчальным чынам паміж выпускамі другарадных версій або патчаў.

2.1.4 Кампаненты ў exampле праекты
ESP-IDF exampФайлы ўтрымліваюць розныя праекты, якія дэманструюць выкарыстанне API ESP-IDF. Каб паменшыць дубляванне кода ў exampУ файлах некалькі распаўсюджаных памочнікаў вызначаны ўнутры кампанентаў, якія выкарыстоўваюцца некалькімі exampлес.

Сістэмы Espressif

46 Адправіць водгук аб дакуменце

Рэліз v5.0.9

Раздзел 2. Даведка па API
Гэта ўключае ў сябе кампаненты, размешчаныя

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

Мадэльная плата Espressif Systems ESP32 Dev Kitc [pdfКіраўніцтва карыстальніка
Плата распрацоўкі ESP32 Dev Kitc, ESP32, плата распрацоўкі Kitc, плата распрацоўкі Kitc, плата распрацоўкі, плата

Спасылкі

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаны *