Vývojová deska ESP32 Dev Kitc

Informace o produktu

Specifikace

  • Produkt: ESP32
  • Průvodce programováním: ESP-IDF
  • Verze vydání: v5.0.9
  • Výrobce: Espressif Systems
  • Datum vydání: 16. května 2025

Návod k použití produktu

1. Začněte

Než začnete s ESP32, seznamte se s
následující:

1.1 Úvod

Seznamte se se základními funkcemi a možnostmi
ESP32.

1.2 Co potřebujete

Ujistěte se, že máte potřebný hardware a software:

  • Železářské zboží: Zkontrolujte seznam potřebného hardwaru
    komponenty.
  • Software: Nainstalujte požadovaný software
    komponenty.

1.3 Instalace

Pro instalaci a nastavení IDE postupujte podle těchto kroků.
prostředí:

  • IDE: Nainstalujte doporučené IDE pro
    programování ESP32.
  • Ruční instalace: Ručně nastavte
    prostředí, pokud je to potřeba.

1.4 Vytvořte si svůj první projekt

Vytvořte a sestavte svůj počáteční projekt pomocí ESP32.

1.5 Odinstalace ESP-IDF

V případě potřeby se naučte, jak odinstalovat ESP-IDF z vašeho
systém.

2. Referenční informace k API

Podrobné informace naleznete v dokumentaci k API.
aplikační protokoly, ošetření chyb a konfigurace
struktur.

Často kladené otázky (FAQ)

Otázka: Jak mohu vyřešit běžné problémy s ESP32?

A: Viz část o řešení problémů v programovací příručce
nebo navštivte výrobce webmísto pro zdroje podpory.

Otázka: Mohu použít ESP-IDF s jinými mikrokontroléry?

A: ESP-IDF je speciálně navržen pro ESP32, ale můžete zjistit, že
kompatibilita s dalšími mikrokontroléry Espressif.

ESP32
Průvodce programováním ESP-IDF
Verze 5.0.9 Espressif Systems 16. května 2025

Obsah

Obsah

i

1 Začínáme

3

1.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Co potřebujete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 Instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

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

1.3.2 Ruční instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Sestavte svůj první projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 Odinstalace ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 Referenční informace k API

45

2.1 Konvence API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Ošetření chyb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.2 Konfigurační struktury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.3 Soukromá API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.4 Součásti v exampprojekty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.5 Stabilita API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2 Aplikační protokoly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.1 ASIO port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

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

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

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

2.2.5 ESP HTTP klient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 Místní ovládání ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2.2.7 Sériové podřízené propojení ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2.2.8 Balík certifikátů ESP x509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 HTTP server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 HTTPS server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2.2.11 Odezva ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

2.2.12 Služba mDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

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

2.2.14 Vrstva sítě IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3 Rozhraní Bluetooth API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.1 Běžné připojení Bluetooth® . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.2 Bluetooth® s nízkou spotřebou energie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

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

2.3.4 Řadič a HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

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

2.3.6 Hostitelská API založená na NimBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767

2.4 Referenční informace o chybových kódech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769

2.5 Síťová API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

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

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

2.5.3 Závit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936

i

2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 Vrstva IP sítě. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Aplikační vrstva. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 API pro periferie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Ovladač analogově-digitálního převodníku (ADC) v režimu OneShot. . . . . . . . . . . . . . . . . 977 2.6.2 Ovladač analogově-digitálního převodníku (ADC) v kontinuálním režimu. . . . . . . . . . . . . . . 986 2.6.3 Kalibrační ovladač analogově-digitálního převodníku (ADC). . . . . . . . . . . . . . . . . . . 993 2.6.4 Strom hodin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Digitálně-analogový převodník (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO a GPIO s reálným časem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Časovač pro všeobecné použití (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Propojený integrovaný obvod (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Zvuk mezi integrovanými obvody (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD displej. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 Ovládání LED (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Pulzně šířkový modulátor řízení motoru (MCPWM) . . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Čítač impulsů (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Vysílač/přijímač dálkového ovládání (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 Požadavky na shyby SD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 Ovladač hostitele SDMMC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 Ovladač hostitele SD SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 Ovladač podřízené jednotky karty SDIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-delta modulace (SDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 Hlavní ovladač SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 Ovladač podřízené jednotky SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Bezpečnostní prvek) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Dotykový senzor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Dvouvodičové automobilové rozhraní (TWAI) . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Univerzální asynchronní přijímač/vysílač (UART) . . . . . . . . . . . . . . . . . . 1317 2.7 Konfigurace projektu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Úvod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Nabídka konfigurace projektu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Použití sdkconfig.defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Pravidla formátování Kconfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Zpětná kompatibilita voleb Kconfig. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Referenční příručka k možnostem konfigurace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Rozhraní API pro zřizování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokolová komunikace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Sjednocené zřizování. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Zřizování Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Rozhraní API pro úložiště. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSystémová podpora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Výrobní užitek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Knihovna pro energeticky nezávislé ukládání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 Nástroj pro generování oddílů NVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 Ovladač SD/SDIO/MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filesystém . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtuální filesystémová komponenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 API pro vyrovnávání opotřebení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Systémové API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Formát obrazu aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Trasování na úrovni aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Volání funkce s externím zásobníkem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Revize čipu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konzole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 Správce eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Chybové kódy a pomocné funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii

2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Knihovna smyček událostí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Overview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (doplňkové funkce) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Alokace paměti haldy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Ladění paměti haldy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Časovač s vysokým rozlišením (časovač ESP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Interní a nestabilní API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Meziprocesorové volání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Alokace přerušení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Knihovna pro protokolování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Různá systémová API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Bezdrátové aktualizace (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Sledování výkonu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Správa napájení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Podpora vláken POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Generování náhodných čísel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Režimy spánku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Schopnosti SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Systémový čas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 API pro alokaci himem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 Programování koprocesoru ULP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Hlídací psy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161

3 Hardware Reference

2167

3.1 Porovnání řad čipů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 Související dokumenty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

4 Průvodci API

2171

4.1 Knihovna pro trasování na úrovni aplikací . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.1 Konecview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Provozní režimy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Možnosti konfigurace a závislosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Jak používat tuto knihovnu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Postup spouštění aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 První stagbootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 sekunda stagbootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Spuštění aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

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

4.3.1 Konecview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® s nízkou spotřebou energie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 Konecview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Začínáme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

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

4.5 Zavaděč . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Kompatibilita bootloaderu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Úroveň protokolu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Obnovení továrního nastavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Spuštění z testovacího firmwaru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Vrácení zpět . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.6 Hlídací pes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.7 Velikost bootloaderu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Rychlé spuštění z hlubokého spánku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Vlastní zavaděč . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Sestavení systému . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 Konecview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Používání systému sestavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 PřampProjekt le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Projekt CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponenta CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Konfigurace komponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Definice preprocesoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Požadavky na komponenty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Nadřazené části projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Komponenty určené pouze pro konfiguraci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Ladění CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 PříkladampKomponenta le CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Vlastní výchozí hodnoty sdkconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Argumenty Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Sestavení bootloaderu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Psaní čistých komponent CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Používání projektů CMake třetích stran s komponentami . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Používání předpřipravených knihoven s komponentami . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Použití ESP-IDF ve vlastních projektech CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 API systému sestavení CMake ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globální a inkrementální sestavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Sestavení metadat systému . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Sestavení vnitřních prvků systému . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Migrace ze systému ESP-IDF GNU Make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Výpis jádra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Překonatview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfigurace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Uložení výpisu paměti do flash paměti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Výpis dumpu jádra do UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 Funkce ROM v zpětných trasách . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Výpis proměnných na vyžádání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Spuštění espscoredump.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Probuzení z hlubokého spánku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Pravidla pro probuzení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Implementace stubu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Načítání kódu do paměti RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Načítání dat do paměti RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 Kontrola CRC pro probuzené pahýly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Př.ample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Ošetření chyb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Překročeníview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Chybové kódy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Převod chybových kódů na chybové zprávy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 Makro ESP_ERROR_CHECK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 Makro ESP_ERROR_CHECK_WITHOUT_ABORT . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 Makro ESP_RETURN_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 Makro ESP_GOTO_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 Makro ESP_RETURN_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 Makro ESP_GOTO_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 KONTROLA MAKER Př.amples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Vzory pro ošetření chyb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 Výjimky C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Překročeníview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 Koncepty ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Budování sítě . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Správa sítě . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Přenos dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Přepínání kanálů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv

4.10.8 Výkon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Další poznámky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Zpracování událostí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Události Wi-Fi, Ethernetu a IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Události sítě . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Události Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Závažné chyby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Více nežview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Obsluha paniky. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Výpis registru a zpětné trasování. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB stub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 Časový limit hlídacího systému RTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Chyby guruovy meditace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Další závažné chyby. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Šifrování flash paměti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Úvod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Relevantní e-pojistky. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Proces šifrování flash paměti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Konfigurace šifrování flash paměti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Možné poruchy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 Stav šifrování flash paměti ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Čtení a zápis dat v šifrované paměti Flash. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Aktualizace šifrované paměti Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Zakázání šifrování flash paměti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Klíčové body o šifrování flash paměti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Omezení šifrování flash paměti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Šifrování flash paměti a zabezpečené spouštění. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Pokročilé funkce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Technické podrobnosti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Hardwarová abstrakce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Architektura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 Vrstva LL (nízká úroveň) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (vrstva abstrakce hardwaru) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Přerušení na vysoké úrovni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Úrovně přerušení. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Poznámky. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Ladění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Jak to funguje? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 Výběr JTAG Adaptér . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Nastavení OpenOCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Konfigurace cíle ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Spuštění ladicího programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Laděníamplesy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Sestavení OpenOCD ze zdrojového kódu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Tipy a zvláštnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Související dokumenty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Generování skriptů linkeru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Rychlý start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Vnitřní funkce generování skriptů linkeru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Podporovaná API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP Úloha FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 Podpora IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 Vlastní úpravy esp-lwip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Optimalizace výkonu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Typy paměti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (datová RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (instrukční RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (kód spouštěný z flash paměti) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (data uložená v paměti flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 Pomalá paměť RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RYCHLÁ paměť RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 Požadavek na podporu DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 Vyrovnávací paměť DMA v zásobníku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Režimy zásobníku OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Jak napsat aplikaci OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 Border Router OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Tabulky oddílů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Přesview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Vestavěné tabulky oddílů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Vytváření vlastních tabulek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Generování binární tabulky oddílů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Kontrola velikosti oddílů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Aktualizace tabulky oddílů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Aktualizace tabulky oddílů . . . . . . . . . . . 2449 4.21.7 Nástroj pro dělení disků (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Výkon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Jak optimalizovat výkon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Vodítka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 Kalibrace RF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Částečná kalibrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Plná kalibrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Bez kalibrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 Inicializační data PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 Odkaz na API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Zabezpečené spouštění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Pozadí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Proces zabezpečeného spouštěníview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Klíče . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Velikost bootloaderu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Velikost bootloaderu . . . . . . . . . . 2474 4.24.5 Jak povolit zabezpečené spouštění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Znovu softwarový bootloader s možností aktualizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Generování podpisového klíče zabezpečeného spouštění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Vzdálené podepisování obrazů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Nejlepší postupy pro zabezpečené spouštění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Technické podrobnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Bezpečné spouštění a šifrování flash paměti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Ověření podepsané aplikace bez hardwarového zabezpečeného spouštění . . . . . . . . . . . . . . . . . . . 2478 4.24.13 Pokročilé funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Bezpečné spouštění V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Pozadí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Pokročilétages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Proces Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Formát bloku podpisu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Bezpečné odsazení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Ověření bloku podpisu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Ověření obrázku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Velikost bootloaderu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 Využití eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Jak povolit Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Omezení po povolení zabezpečeného spouštění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Generování podpisového klíče zabezpečeného spouštění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi

4.25.13 Vzdálené podepisování obrazů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Nejlepší postupy pro zabezpečené spouštění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Technické podrobnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Bezpečné spouštění a šifrování flash paměti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Ověření podepsané aplikace bez hardwarového zabezpečeného spouštění . . . . . . . . . . . . . . . . . . . 2484 4.25.18 Pokročilé funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Podpora externí paměti RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Konfigurace externí paměti RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Omezení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Selhání inicializace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Revize čipu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Lokální úložiště vláken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Více nežview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 Nativní API FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 API Pthread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 Standard C11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Nástroje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 Frontend IDF – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 Obraz Dockeru IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 Instalační program IDF pro Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 Správce komponent IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Nástroje ke stažení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Jednotkové testování v ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Normální testovací případy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Testovací případy s více zařízeními . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Více zařízenítage Testovací případy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Testy pro různé cíle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Vytvoření aplikace pro testování jednotek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Spouštění jednotkových testů. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Časovací kód s časovačem kompenzovaným v mezipaměti. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Zesměšňuje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Jednotkové testování v Linuxu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Testy vestavěného softwaru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Jednotkové testy IDF na hostiteli s Linuxem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ovladač Wi-Fi 2520 4.31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Seznam funkcí Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Jak napsat Wi-Fi aplikaci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 Kód chyby rozhraní ESP32 Wi-Fi API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 Inicializace parametrů rozhraní ESP32 Wi-Fi API. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 Programovací model ESP32 pro Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 Popis události Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 Obecný scénář Wi-Fi stanice ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 Obecný scénář přístupového bodu ESP32 Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 Skenování Wi-Fi pomocí ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 Scénář připojení Wi-Fi stanice ESP32. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 Stanice Wi-Fi ESP32 se připojuje, když je nalezeno více přístupových bodů. . . . . . . . . . . . . 2543 4.31.12 Obnovení připojení k Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Časový limit Wi-Fi majáku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 Konfigurace Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Správa bezdrátové sítě. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Měření rádiových zdrojů. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Rychlý přechod BSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi Úsporný režim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 Propustnost Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Odesílání paketů Wi-Fi 80211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Režim Wi-Fi snifferu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Více antén Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Informace o stavu kanálu Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Konfigurace informací o stavu kanálu 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 Fragment Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 Registrace WPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Využití vyrovnávací paměti Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Jak zlepšit výkon Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Konfigurace nabídky Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Řešení problémů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Zabezpečení Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 Funkce zabezpečení Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Chráněné rámce pro správu (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF koexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Přesview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Podporovaný scénář koexistence pro ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Mechanismus a politika koexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Jak používat funkci koexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Reprodukovatelné sestavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Důvody pro nereprodukovatelná sestavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Povolení reprodukovatelných sestavení v ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Jak je dosaženo reprodukovatelných sestavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Reprodukovatelné sestavení a ladění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Faktory, které stále ovlivňují reprodukovatelné sestavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Uživatelská příručka k režimu nízké spotřeby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578

5 Průvodců migrací

2579

5.1 Průvodce migrací ESP-IDF 5.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 Migrace z verze 4.4 na 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 Knihovny a frameworky

2611

6.1 Cloudové frameworky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.2 AWS IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

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

6.1.4 Jádro Google IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

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

6.1.6 Joylink IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.7 Tencent IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.8 Tencentyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.9 Baidu IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2 Rámce pro expresivitu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.1 Rámec pro vývoj zvuku Espressif . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

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

6.2.3 Knihovna Espressif DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.4 Vývojový rámec ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

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

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

6.2.7 Řešení ESP-IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.8 Protokoly ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

viii

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

7 Průvodce příspěvky

2615

7.1 Jak přispět . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.2 Před přispěním . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.3 Proces žádosti o změny (pull request) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.4 Právní část . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5 Související dokumenty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.1 Stylový průvodce pro vývojový rámec Espressif IoT . . . . . . . . . . . . . . . . . . . . 2616

7.5.2 Instalace hooku před potvrzením (pre-commit) pro projekt ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Dokumentace kódu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Vytvoření Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 Šablona dokumentace API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Smlouva s přispěvatelem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 Průvodce záhlavím autorských práv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 Testy ESP-IDF s průvodcem Pytest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635

8 Verze ESP-IDF

2645

8.1 Vydání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.2 S jakou verzí mám začít? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.3 Schéma verzování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.4 Podpůrné doby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 Kontrola aktuální verze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

8.6 Pracovní postup Gitu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7 Aktualizace ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 Aktualizace na stabilní verzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.2 Aktualizace na předběžnou verzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 Aktualizace na hlavní větev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 Aktualizace na větev vydání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 Zdroje

2651

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

9.1.1 Co je PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 Instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Konfigurace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Výukové programy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Projekt Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Další kroky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Užitečné odkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

10 Autorská práva a licence

2653

10.1 Autorská práva k softwaru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.1 Součásti firmwaru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 Dokumentace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 Autorská práva ke zdrojovému kódu ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.3 Xtensa libhal MIT Licence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.4 Licence MIT TinyBasic Plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.5 Licence TJpgDec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

11 O aplikaci

2657

12 Přepínání mezi jazyky

2659

Index

2661

Index

2661

ix

x

Obsah
Toto je dokumentace pro vývojový rámec Espressif IoT (esp-idf). ESP-IDF je oficiální vývojový rámec pro SoC řady ESP32, ESP32-S a ESP32-C. Tento dokument popisuje použití ESP-IDF s SoC ESP32.

Začněte

Reference API

Průvodci API

Systémy Espressif

1 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Obsah

Systémy Espressif

2 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1
Začněte
Tento dokument vám má pomoci s nastavením vývojového prostředí pro hardware založený na čipu ESP32 od společnosti Espressif. Poté bude nutný jednoduchý ex...ampUkážeme vám, jak používat ESP-IDF (Espressif IoT Development Framework) pro konfiguraci menu a poté pro sestavení a flashování firmwaru na desku ESP32.
Poznámka: Toto je dokumentace pro stabilní verzi v5.0.9 ESP-IDF. K dispozici jsou i další verze ESP-IDF.
1.1 Úvod
ESP32 je systém na čipu, který integruje následující funkce: · Wi-Fi (pásmo 2.4 GHz) · Bluetooth · Dvě vysoce výkonná 32bitová jádra CPU Xtensa® LX6 · Koprocesor s ultra nízkou spotřebou energie · Více periferií
ESP32, poháněný 40nm technologií, poskytuje robustní, vysoce integrovanou platformu, která pomáhá splňovat neustálé požadavky na efektivní využití energie, kompaktní design, zabezpečení, vysoký výkon a spolehlivost. Espressif poskytuje základní hardwarové a softwarové prostředky, které pomáhají vývojářům aplikací realizovat jejich nápady s využitím hardwaru řady ESP32. Softwarový vývojový framework od Espressifu je určen pro vývoj aplikací internetu věcí (IoT) s Wi-Fi, Bluetooth, správou napájení a několika dalšími systémovými funkcemi.
1.2 Co potřebujete
Hardware 1.2.1
· Deska ESP32. · Kabel USB – USB A / micro USB B. · Počítač s operačním systémem Windows, Linux nebo macOS.
Poznámka: V současné době některé vývojové desky používají konektory USB typu C. Ujistěte se, že máte správný kabel pro připojení desky!
Pokud máte některou z níže uvedených oficiálních vývojových desek ESP32, můžete kliknout na odkaz a dozvědět se více o hardwaru.
3

Kapitola 1. Začínáme
ESP32-DevKitS(-R)
Tato uživatelská příručka poskytuje informace o ESP32-DevKitS(-R), záslepce založené na ESP32 vyráběné společností Espressif. ESP32-DevKitS(-R) je kombinací dvou názvů desek: ESP32-DevKitS a ESP32-DevKitS-R. S znamená pružiny a R znamená WROVER.

ESP32-DevKitS

ESP32-DevKitS-R

Dokument se skládá z následujících hlavních částí: · Začínáme: Poskytuje přehledview Pokyny k nastavení ESP32-DevKitS(-R) a hardwaru/softwaru pro zahájení. · Referenční informace o hardwaru: Poskytuje podrobnější informace o hardwaru ESP32-DevKitS(-R)ns. · Související dokumenty: Poskytuje odkazy na související dokumentaci.

Začínáme Tato část popisuje, jak začít s ESP32-DevKitS(-R). Začíná několika úvodními částmi o ESP32-DevKitS(-R) a poté část Jak flashovat desku obsahuje pokyny, jak namontovat modul na ESP32-DevKitS(-R), připravit ho a nahrát na něj firmware.

Nadview ESP32-DevKitS(-R) je vývojová deska od Espressifns navržená speciálně pro ESP32. Lze ji použít k flashování modulu ESP32 bez nutnosti pájení modulu k napájecímu zdroji a signálovým vodičům. S namontovaným modulem lze ESP32-DevKitS(-R) také použít jako mini vývojovou desku podobně jako ESP32-DevKitC.
Desky ESP32-DevKitS a ESP32-DevKitS-R se liší pouze uspořádáním pružinových pinů, aby pasovaly na následující moduly ESP32.
· ESP32-DevKity: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB a IPEX) ESP32-WROVER-B (PCB a IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Informace o výše uvedených modulech naleznete v části Moduly řady ESP32.

Popis součástí

Systémy Espressif

4 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Obr. 1: ESP32-DevKitS – přední strana

Systémy Espressif

Obr. 2: ESP32-DevKitS-R – přední strana 5
Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Pružinové kolíky klíčových komponentů, 2.54 mm samičí konektory
Můstek USB-UART, LDO konektor micro-USB/port micro-USB, tlačítko EN, tlačítko Boot
Kontrolka LED zapnutí

Popis Zacvakněte modul. Piny zapadnou do otvorů v modulu. Tyto konektory typu „samice“ jsou připojeny k pinům modulu namontovaného na této desce. Popis konektorů typu „samice“ naleznete v části Bloky konektorů. Jednočipový můstek USB-UART poskytuje přenosové rychlosti až 3 Mb/s.
Nízký pokles napětí 5V až 3.3Vtagregulátor (LDO).
Rozhraní USB. Napájení desky a komunikační rozhraní mezi počítačem a deskou.
Tlačítko reset.
Tlačítko pro stahování. Podržením tlačítka Boot a následným stisknutím tlačítka EN se spustí režim stahování firmwaru přes sériový port.
Rozsvítí se, když je k desce připojen USB nebo napájecí zdroj.

Jak flashovat desku Před zapnutím ESP32-DevKitS(-R) se ujistěte, že je v dobrém stavu a nejeví žádné zjevné známky poškození.
Požadovaný hardware · Modul ESP32 dle vašeho výběru · Kabel USB 2.0 (Standard-A na Micro-B) · Počítač s operačním systémem Windows, Linux nebo macOS
Nastavení hardwaru Namontujte prosím modul dle vlastního výběru na váš ESP32-DevKitS(-R) podle následujících kroků:
· Opatrně umístěte modul na desku ESP32-DevKitS(-R). Ujistěte se, že otvory na modulu jsou zarovnány s pružinovými kolíky na desce.
· Zatlačte modul do desky, dokud nezaklapne. · Zkontrolujte, zda jsou všechny pružinové kolíky zasunuty do otvorů. Pokud jsou některé pružinové kolíky špatně zarovnané,
vložte je do hradbových otvorů pinzetou.
Nastavení softwaru
Preferovaná metoda Vývojový framework ESP-IDF poskytuje preferovaný způsob flashování binárních souborů do ESP32-DevKitS(-R). Pokračujte prosím k části Začínáme, kde vám sekce Instalace rychle pomůže nastavit vývojové prostředí a poté flashovat aplikaci např.ampna váš ESP32-DevKitS(-R).
Alternativní metoda Uživatelé Windows mohou binární soubory flashovat pomocí nástroje Flash Download Tool. Stačí si jej stáhnout, rozbalit a postupovat podle pokynů ve složce doc.
Poznámka: 1. Pro binární flashování fileESP32 by měl být nastaven na režim stahování firmwaru. To lze provést buď automaticky pomocí nástroje pro flashování, nebo podržením tlačítka Boot a klepnutím na tlačítko EN. 2. Po nainstalování binárního souboru fileNástroj pro stahování flash restartuje modul ESP32 a ve výchozím nastavení spustí flashovanou aplikaci.

Rozměry desky Obsah a balení

Systémy Espressif

6 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme Obr. 3: Rozměry desky ESP32-DevKitS – zadní strana

Systémy Espressif

Obr. 4: Rozměry desky ESP32-DevKitS-R – zadní strana 7
Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Maloobchodní objednávky Pokud si objednáte několik kusůampKaždý ESP32-DevKitS(-R) je dodáván v samostatném balení v antistatickém sáčku nebo v jakémkoli jiném obalu v závislosti na prodejci. Pro maloobchodní objednávky navštivte prosím https://www.espressif.com/en/contact-us/get-samples.
Velkoobchodní objednávky Pokud objednáváte ve velkém, desky se dodávají ve velkých kartonových krabicích. Pro velkoobchodní objednávky navštivte prosím https://www.espressif.com/en/contact-us/sales-questions.
Hardware Reference
Blokové schéma Níže uvedené blokové schéma znázorňuje komponenty ESP32-DevKitS(-R) a jejich propojení.

Obr. 5: ESP32-DevKitS(-R) (kliknutím zvětšíte)
Možnosti napájení Existují tři vzájemně se vylučující způsoby napájení desky: · Port Micro USB, výchozí napájení · Piny konektoru 5V a GND · Piny konektoru 3V3 a GND
Doporučuje se použít první možnost: micro USB port.

Systémy Espressif

.

Signál štítku

L1 3V3 VDD 3V3

L2 EN CHIP_PU

L3 VP SNÍMAČ_VP

L4 VN SNÍMAČ_VN

L5 34

GPIO34

L6 35

GPIO35

L7 32

GPIO32

L8 33

GPIO33

pokračuje na další straně

8 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Tabulka 1 pokračování z předchozí stránky

.

Signál štítku

L9 25

GPIO25

L10 26

GPIO26

L11 27

GPIO27

L12 14

GPIO14

L13 12

GPIO12

L14 ZEM ZEM

L15 13

GPIO13

L16 D2 SD_DATA2

L17 D3 SD_DATA3

L18 PŘÍKAZ SD_PŘÍKAZ

L19 5V

Externí 5V

R1 Uzemnění Uzemnění

R2 23

GPIO23

R3 22

GPIO22

R4 TX U0TXD

R5 RX U0RXD

R6 21

GPIO21

R7 Uzemnění Uzemnění

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

Bloky záhlaví Obrázek bloků záhlaví naleznete v části Popis komponent.

Související dokumenty
· Schéma zapojení ESP32-DevKitS(-R) (PDF) · Datový list ESP32 (PDF) · Datový list ESP32-WROOM-32 (PDF) · Datový list ESP32-WROOM-32D a ESP32-WROOM-32U (PDF) · Datový list ESP32-SOLO-1 (PDF) · Datový list ESP32-WROVER (PDF) · Datový list ESP32-WROVER-B (PDF) · Výběr produktů ESP

ESP32-DevKitM-1

Tato uživatelská příručka vám pomůže začít s ESP32-DevKitM-1 a také poskytne podrobnější informace.
ESP32-DevKitM-1 je vývojová deska založená na ESP32-MINI-1(1U) od společnosti Espressif. Většina I/O pinů je pro snadné propojení vyvedena do konektorů na obou stranách. Uživatelé mohou buď připojit periferie pomocí propojovacích vodičů, nebo ESP32-DevKitM-1 namontovat na nepájivé pole.

Systémy Espressif

9 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

ESP32-DevKitM-1 – přední

ESP32-DevKitM-1 – izometrický

Dokument se skládá z následujících hlavních částí: · Začínáme: Poskytuje přehledview pokyny k instalaci ESP32-DevKitM-1 a hardwaru/softwaru pro zahájení. · Referenční informace o hardwaru: Poskytuje podrobnější informace o hardwaru ESP32-DevKitM-1ns. · Související dokumenty: Poskytuje odkazy na související dokumentaci.

Začínáme Tato část popisuje, jak začít s ESP32-DevKitM-1. Začíná několika úvodními částmi o ESP32-DevKitM-1, poté část Zahájení vývoje aplikace obsahuje pokyny k provedení počátečního nastavení hardwaru a následnému nainstalování firmwaru do ESP32-DevKitM-1.

Nadview Jedná se o malou a pohodlnou vývojovou desku, která obsahuje:
· Modul ESP32-MINI-1 nebo ESP32-MINI-1U · Programovací rozhraní USB-sériové, které zároveň napájí desku · piny · tlačítka pro reset a aktivaci režimu stahování firmwaru · několik dalších komponent

Obsah a balení

Maloobchodní objednávky Pokud si objednáte několik kusůampKaždý ESP32-DevKitM-1 se dodává v samostatném balení buď v antistatickém sáčku, nebo v jakémkoli jiném obalu v závislosti na prodejci.
Pro maloobchodní objednávky přejděte na https://www.espressif.com/en/contact-us/get-samples.

Velkoobchodní objednávky Pokud objednáváte ve velkém, desky se dodávají ve velkých kartonových krabicích. Pro velkoobchodní objednávky navštivte prosím https://www.espressif.com/en/contact-us/sales-questions.

Popis komponent Následující obrázek a tabulka níže popisují klíčové komponenty, rozhraní a ovládací prvky desky ESP32-DevKitM-1. Desku s modulem ESP32-MINI-1 bereme jako příklad...ample v následujících částech.

Systémy Espressif

10 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Obr. 6: ESP32-DevKitM-1 – přední strana

Klíčová součástka Integrovaný modul
Bootovací tlačítko LDO 5 V až 3.3 V
Tlačítko resetování Port micro-USB
Můstek USB-UART 3.3 V LED zapnutí
I/O konektor

Popis
Modul ESP32-MINI-1 nebo modul ESP32-MINI-1U. ESP32-MINI-1 je dodáván s integrovanou anténou na desce plošných spojů. ESP32-MINI-1U je dodáván s konektorem pro externí anténu. Oba moduly mají 4MB flash paměť v pouzdře. Podrobnosti naleznete v datovém listu ESP32-MINI-1 a ESP32-MINI-1U.
Regulátor výkonu převádí 5 V na 3.3 V.
Tlačítko pro stahování. Podržením tlačítka Boot a následným stisknutím tlačítka Reset se spustí režim stahování firmwaru přes sériový port.
Tlačítko Reset
rozhraní USB. Napájení desky i komunikační rozhraní mezi počítačem a čipem ESP32.
Jeden můstkový čip USB-UART poskytuje přenosovou rychlost až 3 Mbps.
Rozsvítí se, když je k desce připojeno USB. Podrobnosti naleznete ve schématech v Souvisejících dokumentech. Všechny dostupné GPIO piny (kromě sběrnice SPI pro flash) jsou vyvedeny do konektorů na desce. Uživatelé mohou naprogramovat čip ESP32 pro aktivaci více funkcí.

Zahájení vývoje aplikace Před zapnutím ESP32-DevKitM-1 se ujistěte, že je v dobrém stavu a nejeví žádné zjevné známky poškození.
Požadovaný hardware · ESP32-DevKitM-1 · Kabel USB 2.0 (Standard-A na Micro-B) · Počítač s Windows, Linuxem nebo macOS
Nastavení softwaru Pokračujte prosím k části Začínáme, kde vám sekce Instalace rychle pomůže s nastavením vývojového prostředí a následným nainstalováním aplikace.ample do vašeho ESP32-DevKitM-1.

Systémy Espressif

11 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Upozornění: Desky ESP32-DevKitM-1 vyrobené před 2. prosincem 2021 mají nainstalovaný jednojádrový modul. Chcete-li ověřit, jaký modul máte, zkontrolujte informace o označení modulů v PCN-2021-021. Pokud má vaše deska nainstalovaný jednojádrový modul, povolte před flashováním aplikací v menuconfig režim jednoho jádra (CONFIG_FREERTOS_UNICORE).
Blokové schéma hardwarové reference Níže uvedené blokové schéma znázorňuje komponenty ESP32-DevKitM-1 a jejich propojení.

Obr. 7: ESP32-DevKitM-1
Výběr zdroje napájení Existují tři vzájemně se vylučující způsoby napájení desky: · Port Micro USB, výchozí napájení · Piny konektoru 5V a GND · Piny konektoru 3V3 a GND
Varování: · Napájení musí být zajištěno pouze jednou z výše uvedených možností, jinak může dojít k poškození desky a/nebo zdroje napájení. · Doporučuje se napájení přes port micro USB.

Popis pinů Níže uvedená tabulka uvádí názvy a funkce pinů na obou stranách desky. Konfigurace periferních pinů naleznete v datovém listu ESP32.

Žádný.

Jméno

Typ

1

GND

P

2

3V3

P

Funkční uzemnění Napájení 3.3 V

pokračuje na další straně

Systémy Espressif

12 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Tabulka 2 pokračování z předchozí stránky

Žádný.

Jméno

Typ

Funkce

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

Resetovat; Vysoká: povolit; Nízká: napájení vypnuto

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32

I/O

GPIO32, XTAL_32K_P (vstup krystalového oscilátoru 32.768 kHz),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

I/O

GPIO33, XTAL_32K_N (výstup krystalového oscilátoru 32.768 kHz),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25

I/O

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26

I/O

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27

I/O

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14

I/O

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

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

Napájení 5V

17

IO12

I/O

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

HS2_DATA2, SD_DATA2, EMAC_TXD3

18

IO13

I/O

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

HS2_DATA3, SD_DATA3, EMAC_RX_ER

19

IO15

I/O

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

HS2_CMD, SD_CMD, EMAC_RXD3

20

IO2

I/O

GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,

HS2_DATA0, SD_DATA0

21

IO0

I/O

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,

EMAC_TX_CLK

22

IO4

I/O

GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,

HS2_DATA1, SD_DATA1, EMAC_TX_ER

23

IO9

I/O

GPIO9, HS1_DATA2, U1RXD, SD_DATA2

24

IO10

I/O

GPIO10, HS1_DATA3, U1TXD, SD_DATA3

25

IO5

I/O

GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK

26

IO18

I/O

GPIO18, HS1_DATA7, VSPICLK

27

IO23

I/O

GPIO23, HS1_STROBE, VSPID

28

IO19

I/O

GPIO19, VSPIQ, U0CTS, EMAC_TXD0

29

IO22

I/O

GPIO22, VSPIWP, U0RTS, EMAC_TXD1

30

IO21

I/O

GPIO21, VSPIHD, EMAC_TX_EN

31

TXD0

I/O

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

RXD0

I/O

GPIO3, U0RXD, CLK_OUT2

Podrobnosti o revizi hardwaru Žádné předchozí verze nejsou k dispozici.
Související dokumenty
· Datový list ESP32-MINI-1 a ESP32-MINI-1U (PDF) · Schéma zapojení ESP32-DevKitM-1 (PDF) · Rozvržení desky plošných spojů ESP32-DevKitM-1 (PDF) · Rozvržení ESP32-DevKitM-1 (DXF) – Můžete view to s Autodeskem Viewonline · Datový list ESP32 (PDF) · Výběr produktů ESP
Pro další projektovou dokumentaci k deske nás prosím kontaktujte na adrese sales@espressif.com.

Systémy Espressif

13 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Software 1.2.2
Chcete-li začít používat ESP-IDF na ESP32, nainstalujte si následující software: · Toolchain pro kompilaci kódu pro ESP32 · Nástroje pro tvorbu – CMake a Ninja pro vytvoření plnohodnotné aplikace pro ESP32 · ESP-IDF, který v podstatě obsahuje API (softwarové knihovny a zdrojový kód) pro ESP32 a skripty pro provoz Toolchainu

1.3 Instalace
Pro instalaci veškerého potřebného softwaru nabízíme několik různých způsobů, jak si tento úkol usnadnit. Vyberte si jednu z dostupných možností.
1.3.1 Rozhraní vývoje (IDE)

Poznámka: Důrazně doporučujeme nainstalovat ESP-IDF pomocí vašeho oblíbeného IDE.
· Plugin Eclipse · Rozšíření VSCode

1.3.2 Ruční instalace
Pro ruční postup vyberte prosím podle vašeho operačního systému.

Systémy Espressif

14 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Standardní nastavení Toolchainu pro Windows
Úvod ESP-IDF vyžaduje instalaci některých nezbytných nástrojů, abyste mohli sestavit firmware pro podporované čipy. Mezi nezbytné nástroje patří Python, Git, křížové kompilátory, nástroje pro sestavení CMake a Ninja. V tomto Začínáme nebudeme používat příkazový řádek, ale po instalaci ESP-IDF můžete místo toho použít plugin Eclipse nebo jiné grafické IDE s podporou CMake. Poznámka: Omezení: – Instalační cesta ESP-IDF a nástrojů ESP-IDF nesmí být delší než 90 znaků. Příliš dlouhé instalační cesty mohou vést k selhání sestavení. – Instalační cesta Pythonu nebo ESP-IDF nesmí obsahovat mezery ani závorky. – Instalační cesta Pythonu nebo ESP-IDF by neměla obsahovat speciální znaky (ne ASCII), pokud není operační systém nakonfigurován s podporou Unicode UTF-8. Správce systému může podporu povolit prostřednictvím Ovládacích panelů – Změnit formát data, času nebo čísel – karta Správa – Změnit národní prostředí systému – zaškrtněte možnost Beta: Použít Unicode UTF-8 pro celosvětovou podporu jazyků – OK a restartujte počítač.
Instalační program nástrojů ESP-IDF Nejjednodušší způsob, jak nainstalovat předpoklady pro ESP-IDFns, je stáhnout si jeden z instalačních programů nástrojů ESP-IDF.

Stažení instalačního programu systému Windows
K čemu slouží online a offline instalační program? Online instalační program je velmi malý a umožňuje instalaci všech dostupných verzí ESP-IDF. Instalační program během instalace stáhne pouze nezbytné závislosti, včetně Gitu pro Windows. Instalační program ukládá stažené soubory. filev adresáři mezipaměti %userprofile%. espressif
Offline instalační program nevyžaduje žádné síťové připojení. Instalační program obsahuje všechny potřebné závislosti včetně Gitu pro Windows.
Součásti instalace Instalační program nasadí následující součásti:
· Vestavěný Python · Křížové kompilátory · OpenOCD · Nástroje pro sestavení CMake a Ninja · ESP-IDF
Instalační program také umožňuje opětovné použití existujícího adresáře s ESP-IDF. Doporučený adresář je %userprofile%Desktopesp-idf, kde %userprofile% je váš domovský adresář.

Systémy Espressif

15 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Spuštění prostředí ESP-IDF Na konci instalačního procesu můžete zaškrtnout možnost Spustit prostředí ESP-IDF PowerShell nebo Spustit příkazový řádek ESP-IDF (cmd.exe). Instalační program spustí prostředí ESP-IDF ve vybraném příkazovém řádku. Spusťte prostředí ESP-IDF PowerShell:

Obr. 8: Dokončení Průvodce nastavením nástrojů ESP-IDF pomocí příkazu Spustit prostředí PowerShell pro ESP-IDF
Spusťte příkazový řádek ESP-IDF (cmd.exe):
Použití příkazového řádku Pro zbývající kroky Začínáme budeme používat příkazový řádek systému Windows. Instalační program nástrojů ESP-IDF také vytvoří v nabídce Start zástupce pro spuštění příkazového řádku ESP-IDF. Tato zástupce spustí příkazový řádek (cmd.exe) a spustí skript export.bat pro nastavení proměnných prostředí (PATH, IDF_PATH a další). V tomto příkazovém řádku jsou k dispozici všechny nainstalované nástroje. Tato zástupce je specifická pro adresář ESP-IDF vybraný v instalačním programu nástrojů ESP-IDF. Pokud máte v počítači více adresářů ESP-IDF (napříkladamptj. pro práci s různými verzemi ESP-IDF), máte dvě možnosti, jak je použít:
1. Vytvořte kopii zástupce vytvořeného instalačním programem nástrojů ESP-IDF a změňte pracovní adresář nového zástupce na adresář ESP-IDF, který chcete použít.
2. Nebo spusťte cmd.exe, poté přejděte do adresáře ESP-IDF, který chcete použít, a spusťte export.bat. Na rozdíl od předchozí možnosti vyžaduje tento způsob přítomnost Pythonu a Gitu v cestě PATH. Pokud se vám zobrazí chyby související s nenalezením Pythonu nebo Gitu, použijte první možnost.
První kroky s ESP-IDF Nyní, když jsou splněny všechny požadavky, vás další téma provede tím, jak zahájit váš první projekt.

Systémy Espressif

16 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme Obr. 9: ESP-IDF PowerShell

Obr. 10: Dokončení Průvodce instalací nástrojů ESP-IDF spuštěním příkazového řádku ESP-IDF (cmd.exe)

Systémy Espressif

17 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Obr. 11: Příkazový řádek ESP-IDF

Systémy Espressif

18 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Tato příručka vám pomůže s prvními kroky používání ESP-IDF. Řiďte se touto příručkou pro zahájení nového projektu na ESP32 a pro sestavení, flashování a sledování výstupu zařízení. Poznámka: Pokud jste ESP-IDF ještě nenainstalovali, přejděte do sekce Instalace a postupujte podle pokynů, abyste získali veškerý software potřebný k používání této příručky.

Spuštění projektu Nyní jste připraveni připravit svou aplikaci pro ESP32. Můžete začít s projektem getstarted/hello_world z příkladuamples v ESP-IDF.
Důležité: Systém sestavení ESP-IDF nepodporuje mezery v cestách k ESP-IDF ani k projektům.
Zkopírujte projekt get-started/hello_world do adresáře ~/esp: cd %userprofile%esp xcopy /e /i %cesta_IDF%examplesget-startedhello_world hello_world
Poznámka: Existuje řada example projekty v examples v ESP-IDF. Jakýkoli projekt můžete zkopírovat stejným způsobem, jak je uvedeno výše, a spustit jej. Je také možné postavit exampsoubory na místě bez jejich předchozího kopírování.

Připojte zařízení Nyní připojte desku ESP32 k počítači a zkontrolujte, pod kterým sériovým portem je deska viditelná. Názvy sériových portů ve Windows začínají písmenem COM. Pokud si nejste jisti, jak zkontrolovat název sériového portu, podívejte se prosím na část Navázání sériového připojení s ESP32, kde najdete podrobnosti.
Poznámka: Název portu mějte po ruce, protože jej budete potřebovat v dalších krocích.

Konfigurace projektu Přejděte do adresáře hello_world, nastavte ESP32 jako cíl a spusťte konfigurační nástroj projektu menuconfig.
Windows cd %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Po otevření nového projektu byste měli nejprve nastavit cíl pomocí idf.py set-target esp32. Upozorňujeme, že stávající sestavení a konfigurace v projektu, pokud existují, budou v tomto procesu vymazány a inicializovány. Cíl lze uložit do proměnné prostředí, abyste tento krok zcela přeskočili. Další informace naleznete v části Výběr cílového čipu: set-target. Pokud byly předchozí kroky provedeny správně, zobrazí se následující nabídka: Tuto nabídku používáte k nastavení proměnných specifických pro projekt, např. názvu a hesla sítě Wi-Fi, rychlosti procesoru atd. Nastavení projektu pomocí menuconfig lze pro ohello_wordp přeskočit, protože tento exampSoubor le běží s výchozí konfigurací.
Upozornění: Pokud používáte desku ESP32-DevKitC s modulem ESP32-SOLO-1 nebo desku ESP32-DevKitM-1 s modulem ESP32-MIN1-1(1U), před flashováním ex prosím povolte v menuconfig režim jednoho jádra (CONFIG_FREERTOS_UNICORE).amples.

Systémy Espressif

19 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Obr. 12: Konfigurace projektu – Domovské okno
Poznámka: Barvy nabídky se ve vašem terminálu mohou lišit. Vzhled můžete změnit pomocí volby –style. Pro další informace spusťte prosím příkaz idf.py menuconfig –help.
Pokud používáte jednu z podporovaných vývojových desek, můžete svůj vývoj urychlit pomocí balíčku podpory desek. Další informace naleznete v části Další tipy.
Sestavení projektu Sestavení projektu spuštěním:
sestavení idf.py
Tento příkaz zkompiluje aplikaci a všechny komponenty ESP-IDF, poté vygeneruje zavaděč, tabulku oddílů a binární soubory aplikace.
$ idf.py build Spuštění cmake v adresáři /path/to/hello_world/build Spuštění „cmake -G Ninja –warn-uninitialized /path/to/hello_world“… Upozornění na neinicializované hodnoty. — Nalezen Git: /usr/bin/git (nalezena verze „2.17.0“) — Sestavení prázdné komponenty aws_iot z důvodu konfigurace — Názvy komponent: … — Cesty ke komponentám: …
… (více řádků výstupu sestavení systému)
[527/527] Generování souboru hello_world.bin esptool.py v2.3.1
Sestavení projektu dokončeno. Pro flashování spusťte tento příkaz: ../../../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 nebo spusťte 'idf.py -p PORT flash'
Pokud se nevyskytnou žádné chyby, sestavení se dokončí vygenerováním binárního souboru .bin firmwaru files.

Systémy Espressif

20 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Flashování do zařízení Nahrajte binární soubory, které jste právě sestavili (bootloader.bin, partition-table.bin a hello_world.bin), do desky ESP32 spuštěním: idf.py -p PORT [-b BAUD] flash
Nahraďte PORT názvem sériového portu vaší desky ESP32. Přenosovou rychlost flashovacího modulu můžete také změnit nahrazením BAUD požadovanou přenosovou rychlostí. Výchozí přenosová rychlost je 460800. Další informace o argumentech idf.py naleznete v idf.py.
Poznámka: Volba flash automaticky sestaví a načte projekt, takže spuštění příkazu idf.py build není nutné.

Došlo k problémům při flashování? Pokud spustíte daný příkaz a zobrazí se vám chyby, jako například „Nepodařilo se připojit p“, může to mít několik důvodů. Jedním z důvodů mohou být problémy, se kterými se setkává esptool.py, což je nástroj, který volá systém sestavení pro resetování čipu, interakci s bootloaderem ROM a flashování firmwaru. Jedním jednoduchým řešením, které můžete vyzkoušet, je ruční reset popsaný níže. Pokud to nepomůže, další podrobnosti o možných problémech naleznete v části Řešení problémů.
esptool.py automaticky resetuje ESP32 aktivací řídicích linek DTR a RTS čipu převodníku USB na sériový port, tj. FTDI nebo CP210x (další informace naleznete v části Navázání sériového spojení s ESP32). Řídicí linky DTR a RTS jsou postupně připojeny k pinům GPIO0 a CHIP_PU (EN) ESP32, čímž se změní hlasitost.tagÚrovně DTR a RTS spustí ESP32 do režimu stahování firmwaru. Jako např.ampnapř. zkontrolujte schéma zapojení vývojové desky ESP32 DevKitC.
Obecně byste s oficiálními vývojovými deskami esp-idf neměli mít žádné problémy. esptool.py však nedokáže automaticky resetovat hardware v následujících případech:
· Váš hardware nemá linky DTR a RTS připojené k GPIO0 a CHIP_PU · Linky DTR a RTS jsou konfigurovány odlišně · Neexistují žádné takové sériové řídicí linky
V závislosti na typu hardwaru, který máte, může být také možné ručně přepnout desku ESP32 do režimu stahování firmwaru (reset).
· U vývojových desek vyráběných společností Espressif lze tyto informace nalézt v příslušných úvodních příručkách nebo uživatelských příručkách. Např.ampNapříklad pro ruční resetování vývojové desky ESP-IDF podržte stisknuté tlačítko Boot (GPIO0) a stiskněte tlačítko EN (CHIP_PU).
· U jiných typů hardwaru zkuste stáhnout GPIO0 dolů.

Normální provoz Během blikání se zobrazí výstupní protokol podobný následujícímu:
… 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 Sériový port /dev/ttyUSB0 Připojuje se…….._ Čip je ESP32D0WDQ6 (revize 0) Vlastnosti: WiFi, BT, dvoujádrový procesor, kódovací schéma Žádné Krystal je 40MHz MAC: 24:0a:c4:05:b9:14 Nahrávání stubu… Spuštění stubu… Stub spuštěn… Změna přenosové rychlosti na 460800 Změněno.
(pokračování na další straně)

Systémy Espressif

21 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
(pokračování z předchozí stránky) Konfigurace velikosti flash paměti… Komprimováno 3072 bajtů na 103… Zápis rychlostí 0x00008000… (100 %) Zapsáno 3072 bajtů (103 komprimováno) rychlostí 0x00008000 za 0.0 sekund (efektivní 5962.8 kbit/s)… Hash dat ověřen. Komprimováno 26096 bajtů na 15408… Zápis rychlostí 0x00001000… (100 %) Zapsáno 26096 bajtů (15408 komprimováno) rychlostí 0x00001000 za 0.4 sekundy (efektivní 546.7 kbit/s)… Hash dat ověřen. Komprimováno 147104 bajtů na 77364… Zápis na 0x00010000… (20 %) Zápis na 0x00014000… (40 %) Zápis na 0x00018000… (60 %) Zápis na 0x0001c000… (80 %) Zápis na 0x00020000… (100 %) Zapsáno 147104 bajtů (77364 komprimováno) na 0x00010000 za 1.9 sekundy (efektivní 615,5 kbit/s)… Hash dat ověřen.
Odcházím... Tvrdé resetování pomocí RTS pinu... Hotovo
Pokud se do konce procesu flashování neobjeví žádné problémy, deska se restartuje a spustí aplikaci theohello_worldp. Pokud chcete místo spouštění idf.py použít Eclipse nebo VS Code IDE, podívejte se na Eclipse Plugin, VSCode Extension.
Monitorování výstupu Chcete-li zkontrolovat, zda je ohello_worldpis skutečně spuštěn, zadejte idf.py -p PORT monitor (nezapomeňte nahradit PORT názvem vašeho sériového portu).
Tento příkaz spustí aplikaci IDF Monitor:
$ idf.py -p monitor Spuštění idf_monitor v adresáři […]/esp/hello_world/build Spuštění „python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf“… — idf_monitor zapnuto 115200 —– Ukončit: Ctrl+] | Menu: Ctrl+T | Nápověda: Ctrl+T a následně Ctrl+H –ets 8. června 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8. června 2016 00:22:57 …
Po posunutí protokolů spuštění a diagnostiky nahoru by se mělo zobrazit, že aplikace vytiskne zprávu oHello world!.
... Ahoj světe! Restart za 10 sekund… Toto je čip esp32 se 2 jádry CPU, WiFi/BT/BLE, křemíkovou revizí 1, 2MB externí flash pamětí Minimální velikost volné paměti: 298968 bajtů Restart za 9 sekund… Restart za 8 sekund… Restart za 7 sekund…
Pro ukončení IDF monitoru použijte klávesovou zkratku Ctrl+].

Systémy Espressif

22 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Pokud monitor IDF selže krátce po nahrání, nebo pokud místo výše uvedených zpráv vidíte náhodné nesmysly podobné těm, které jsou uvedeny níže, vaše deska pravděpodobně používá krystal s frekvencí 26 MHz. Většina vývojových desek používá 40 MHz, takže ESP-IDF používá tuto frekvenci jako výchozí hodnotu.

Pokud máte takový problém, proveďte následující: 1. Ukončete monitor. 2. Vraťte se do menuconfig. 3. Přejděte do Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency a poté změňte CONFIG_XTAL_FREQ_SEL na 26 MHz. 4. Poté znovu sestavte a nainstalujte aplikaci.
V aktuální verzi ESP-IDF jsou hlavní frekvence XTAL podporované ESP32 následující:
· 26 MHz · 40 MHz
Poznámka: Sestavení, blikání a monitorování můžete spojit do jednoho kroku spuštěním: idf.py -p PORT flash monitor
Viz také: · IDF Monitor pro praktické zkratky a další podrobnosti o používání IDF monitoru. · idf.py pro kompletní referenci příkazů a možností idf.py.
To je vše, co potřebujete k zahájení práce s ESP32! Nyní jste připraveni vyzkoušet nějaké další ex...ampsoubory nebo se rovnou věnujte vývoji vlastních aplikací.
Důležité: Některé z bývalýchampSoubory nepodporují ESP32, protože požadovaný hardware není součástí ESP32, takže jej nelze podporovat. Pokud sestavujete exampprosím, podívejte se na soubor README file pro tabulku Podporované cíle. Pokud je tato tabulka přítomna včetně cíle ESP32, nebo tabulka vůbec neexistuje, exampBude fungovat na ESP32.
Další tipy
Problémy s oprávněními /dev/ttyUSB0 U některých distribucí Linuxu se při flashování ESP32 může zobrazit chybová zpráva „Nepodařilo se otevřít port /dev/ttyUSB0“. Tento problém lze vyřešit přidáním aktuálního uživatele do skupiny dialout.
Kompatibilita s Pythonem ESP-IDF podporuje Python 3.7 nebo novější. Doporučuje se upgradovat operační systém na novější verzi, která tento požadavek splňuje. Další možnosti zahrnují instalaci Pythonu ze zdrojového kódu nebo použití systému pro správu verzí Pythonu, jako je například pyenv.
Začněte s balíčkem podpory desky (Board Support Package) Pro urychlení prototypování na některých vývojových deskách můžete použít balíčky podpory desky (Board Support Packages, BSP), které usnadňují inicializaci konkrétní desky na pouhých několik volání funkcí.

Systémy Espressif

23 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

BSP obvykle podporuje všechny hardwarové komponenty dodávané na vývojové desce. Kromě definice zapojení pinů a inicializačních funkcí se BSP dodává s ovladači pro externí komponenty, jako jsou senzory, displeje, audio kodeky atd. BSP jsou distribuovány prostřednictvím IDF Component Manageru, takže je lze nalézt v IDF Component Registry. Zde je exampPopis přidání ESP-WROVER-KIT BSP do vašeho projektu: idf.py add-dependency esp_wrover_kit
Více exampÚdaje o využití BSP lze nalézt v příkladu BSPampsložka les.
Související dokumenty Pro pokročilé uživatele, kteří si chtějí přizpůsobit proces instalace: · Aktualizace nástrojů ESP-IDF ve Windows · Navázání sériového připojení s ESP32 · Plugin Eclipse · Rozšíření VSCode · Monitor IDF
Aktualizace nástrojů ESP-IDF ve Windows
Instalace nástrojů ESP-IDF pomocí skriptu Z příkazového řádku systému Windows přejděte do adresáře, kde je nainstalován ESPIDF. Poté spusťte:
install.bat
V Powershellu přejděte do adresáře, kde je nainstalován ESP-IDF. Poté spusťte:
install.ps1
Tímto se stáhnou a nainstalují nástroje potřebné k používání ESP-IDF. Pokud je daná verze nástroje již nainstalována, nebude provedena žádná akce. Nástroje se stáhnou a nainstalují do adresáře určeného během instalačního procesu nástrojů ESP-IDF. Ve výchozím nastavení je to C:Usersusername.espressif.
Přidání nástrojů ESP-IDF do cesty PATH pomocí exportního skriptu Instalační program nástrojů ESP-IDF vytvoří zástupce v nabídce Start pro příkazový řádek ESP-IDF. Tato zástupce otevře okno příkazového řádku, kde jsou již všechny nástroje.
k dispozici. V některých případech můžete chtít pracovat s ESP-IDF v okně příkazového řádku, které nebylo spuštěno pomocí této zkratky. V takovém případě postupujte podle níže uvedených pokynů a přidejte nástroje ESP-IDF do adresáře PATH. V příkazovém řádku, kde potřebujete použít ESP-IDF, přejděte do adresáře, kde je nainstalován ESP-IDF, a poté spusťte soubor export.bat:
cd %userprofile%espesp-idf export.bat
Nebo v Powershellu, kde potřebujete použít ESP-IDF, přejděte do adresáře, kde je nainstalován ESP-IDF, a poté spusťte export.ps1:
cd ~/esp/esp-idf export.ps1
Po dokončení budou nástroje k dispozici v tomto příkazovém řádku.
Navázání sériového spojení s ESP32 Tato část poskytuje pokyny k navázání sériového spojení mezi ESP32 a počítačem.

Systémy Espressif

24 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Připojení ESP32 k počítači Připojte desku ESP32 k počítači pomocí kabelu USB. Pokud se ovladač zařízení nenainstaluje automaticky, vyhledejte na desce ESP32 (nebo externím převodníku) čip převodníku USB na sériový port, vyhledejte ovladače na internetu a nainstalujte je. Níže je uveden seznam čipů převodníků USB na sériový port nainstalovaných na většině desek ESP32 vyráběných společností Espressif spolu s odkazy na ovladače:
· CP210x: Ovladače VCP pro CP210x USB-UART Bridge · FTDI: Ovladače virtuálního COM portu FTDI Konkrétní použitý čip převodníku USB-sériový port naleznete v uživatelské příručce desky. Výše ​​uvedené ovladače slouží především pro informaci. Za normálních okolností by ovladače měly být součástí operačního systému a automaticky nainstalovány po připojení desky k počítači.
Zkontrolujte port ve Windows. Zkontrolujte seznam identifikovaných COM portů ve Správci zařízení Windows. Odpojte ESP32 a znovu jej připojte, abyste ověřili, který port zmizel ze seznamu a poté se znovu objevil. Obrázky níže zobrazují sériový port pro ESP32 DevKitC a ESP32 WROVER KIT.

Obr. 13: Propojení USB s UART modulu ESP32-DevKitC ve Správci zařízení Windows

Kontrola portu v systémech Linux a macOS Chcete-li zkontrolovat název zařízení pro sériový port vaší desky ESP32 (nebo externího převodníku), spusťte tento příkaz dvakrát, nejprve s odpojenou deskou/hardwarovým klíčem a poté se zapojeným. Port, který se zobrazí podruhé, je ten, který potřebujete: Linux
ls /dev/tty*
macOS

Systémy Espressif

25 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Obr. 14: Dva sériové porty USB zařízení ESP-WROVER-KIT ve Správci zařízení systému Windows

Systémy Espressif

26 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

ls /dev/cu.* Poznámka: Uživatelé macOS: Pokud nevidíte sériový port, zkontrolujte, zda máte nainstalované ovladače USB/sériového portu. Odkazy na ovladače naleznete v části Připojení ESP32 k počítači. V systému macOS High Sierra (10.13) bude možná nutné explicitně povolit načtení ovladačů. Otevřete Předvolby systému -> Zabezpečení a soukromí -> Obecné a zkontrolujte, zda se zde nezobrazuje zpráva o systémovém softwaru od vývojáře lp, kde je jméno vývojáře Silicon Labs nebo FTDI.

Přidání uživatele do skupiny dialout v Linuxu Aktuálně přihlášený uživatel by měl mít přístup pro čtení a zápis k sériovému portu přes USB. Ve většině linuxových distribucí se to provádí přidáním uživatele do skupiny dialout pomocí následujícího příkazu:
sudo usermod -a -G dialout $USER
na Arch Linuxu se to provede přidáním uživatele do skupiny uucp pomocí následujícího příkazu:
sudo usermod -a -G uucp $USER
Ujistěte se, že jste se znovu přihlásili, abyste povolili oprávnění pro čtení a zápis pro sériový port.
Ověření sériového připojení Nyní ověřte, zda je sériové připojení funkční. To můžete provést pomocí terminálového programu kontrolou, zda se po resetování ESP32 na terminálu objeví nějaký výstup. Výchozí přenosová rychlost konzole na ESP32 je 115200.
Windows a Linux V tomto exampPoužijeme SSH klienta PuTTY, který je k dispozici pro Windows i Linux. Můžete použít i jiné sériové programy a nastavit komunikační parametry, jak je uvedeno níže. Spusťte terminál a nastavte identifikovaný sériový port. Přenosová rychlost = 115200 (v případě potřeby změňte na výchozí přenosovou rychlost použitého čipu), datové bity = 8, stop bity = 1 a parita = N. Níže jsou uvedeny příklady.ampsnímky obrazovky s nastavením portu a přenosových parametrů (zkráceně popsaných jako 115200-8-1-N) ve Windows a Linuxu. Nezapomeňte vybrat přesně stejný sériový port, který jste identifikovali ve výše uvedených krocích. Poté otevřete sériový port v terminálu a zkontrolujte, zda se vám vytiskl nějaký protokol z ESP32. Obsah protokolu bude záviset na aplikaci načtené do ESP32, viz příklad.ampVýstup.
Poznámka: Po ověření fungování komunikace zavřete sériový terminál. Pokud ponecháte terminálovou relaci otevřenou, sériový port nebude pro pozdější nahrání firmwaru k dispozici.

macOS Abyste se vyhnuli potížím s instalací sériového terminálového programu, macOS nabízí příkaz screen. · Jak je popsáno v části Kontrola portu v systémech Linux a macOS, spusťte:

ls /dev/cu.* · Měli byste vidět podobný výstup:

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

/dev/cu.SLAB_

· Výstup se bude lišit v závislosti na typu a počtu desek připojených k počítači. Poté vyberte název zařízení vaší desky a spusťte (v případě potřeby změňte o115200 na výchozí přenosovou rychlost použitého čipu):

obrazovka /dev/cu.název_zařízení 115200 Nahraďte název_zařízení názvem nalezeným při spuštění příkazu ls /dev/cu.*.

Systémy Espressif

27 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Obr. 15: Nastavení sériové komunikace v PuTTY ve Windows

Systémy Espressif

28 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Obr. 16: Nastavení sériové komunikace v PuTTY v Linuxu

Systémy Espressif

29 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
· Hledáte nějaký protokol zobrazený na obrazovce. Obsah protokolu bude záviset na aplikaci načtené do ESP32, viz příkladample Output. To exit the screen session type Ctrl-A + .
Poznámka: Nezapomeňte po ověření fungování komunikace ukončit relaci obrazovky. Pokud tak neučiníte a pouze zavřete okno terminálu, sériový port nebude pro pozdější nahrání firmwaru k dispozici.
ExampVýstup An exampZáznam je zobrazen níže. Pokud nic nevidíte, resetujte desku. ets 8. června 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) 8. června 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 stagbootloader I (45) boot: čas kompilace 18:48:10

Pokud vidíte čitelný log, znamená to, že sériové připojení funguje a jste připraveni pokračovat v instalaci a nakonec nahrání aplikace do ESP32.
Poznámka: U některých konfigurací zapojení sériových portů je nutné před spuštěním ESP32 a produkcí sériového výstupu v terminálovém programu deaktivovat piny RTS a DTR. To závisí na samotném hardwaru, většina vývojových desek (včetně všech desek Espressif) tento problém nemá. Problém nastává, pokud jsou RTS a DTR zapojeny přímo k pinům EN a GPIO0. Další podrobnosti naleznete v dokumentaci k esptool.
Pokud jste se sem dostali z kroku 5. První kroky na ESP-IDF při instalaci softwaru pro vývoj ESP32, můžete pokračovat krokem 5. První kroky na ESP-IDF.
IDF Monitor IDF Monitor je primárně sériový terminálový program, který přenáší sériová data do a ze sériového portu cílového zařízení. Nabízí také některé funkce specifické pro IDF. IDF Monitor lze spustit z IDF projektu spuštěním příkazu idf.py monitor.
Klávesové zkratky Pro snadnou interakci s programem IDF Monitor používejte klávesové zkratky uvedené v tabulce.

Systémy Espressif

30 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Klávesová zkratka Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (nebo A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (nebo I)
· Ctrl+H (nebo H)
· Ctrl+X (nebo X)
Ctrl+C

Akce

Popis

Ukončení programu Klávesa Escape z nabídky Odeslání samotného znaku nabídky na dálkové ovládání
Odeslat samotný výstupní znak do vzdáleného
Resetujte cíl do bootloaderu pro pozastavení aplikace přes linku RTS
Reset cílové desky pomocí RTS
Sestavení a flashování projektu

Pouze sestavení a flashování aplikace

Zastavení/obnovení tisku protokolu na obrazovku

Výstup protokolu zastavení/obnovení uložen do file

Čas zastavení/obnoveníamps

tisk

Zobrazit všechny klávesové zkratky

Stiskněte a poté stiskněte jednu z níže uvedených kláves.
Resetuje cíl do bootloaderu přes linku RTS (pokud je připojena), takže deska nic neběží. Užitečné, když potřebujete čekat na spuštění jiného zařízení. Resetuje cílovou desku a restartuje aplikaci přes linku RTS (pokud je připojena).
Pozastaví idf_monitor pro spuštění cíle flash projektu a poté obnoví idf_monitor. Jakýkoli změněný zdroj fileAplikace se znovu zkompilují a znovu nainstalují. Cíl encrypted-flash se spustí, pokud byl idf_monitor spuštěn s argumentem -E. Pozastaví idf_monitor pro spuštění cíle app-flash a poté obnoví idf_monitor. Podobně jako cíl flash, ale sestaví se a znovu nainstaluje pouze hlavní aplikace. Cíl encrypted-app-flash se spustí, pokud byl idf_monitor spuštěn s argumentem -E. Během aktivace zahodí všechna příchozí sériová data. Umožňuje rychle pozastavit a prohlédnout výstup protokolu bez ukončení monitoru. Vytvoří file v adresáři projektu a výstup se zapíše do něj file dokud se tato funkce nezakáže stejnou klávesovou zkratkou (nebo dokud se program IDF Monitor neukončí). IDF Monitor může vypsat časový údajamp na začátku každého řádku. Časamp formát lze změnit pomocí –timestamp-format argument příkazového řádku.

Ukončete program

Přerušení spuštěné aplikace

Pozastaví monitorování IDF a spustí ladicí program projektu GDB pro ladění aplikace za běhu. To vyžaduje povolení volby :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME.

Všechny stisknuté klávesy, kromě Ctrl-] a Ctrl-T, budou odeslány přes sériový port.

Specifické vlastnosti IDF

Automatické dekódování adresy Kdykoli ESP-IDF vydá hexadecimální kód adresy ve tvaru 0x4_______, IDF Monitor použije addr2line_ k vyhledání umístění ve zdrojovém kódu a nalezení názvu funkce.
Pokud dojde k chybě aplikace ESP-IDF a dojde k panice, vygeneruje se výpis registru a zpětné trasování, například takto:

Systémy Espressif

31 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Na jádru 0 došlo k chybě meditace gurua typu StoreProhibited. Výjimka byla

neošetřený.

Výpis registru:

PC

PS: 0x400f360d

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

A2

: 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

A10

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

A14

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 OMLUVA:

0x0000001d

ADRESA VÝMĚNY: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:

0x00000000

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

IDF Monitor přidává do výpisu další podrobnosti:

Na jádru 0 došlo k chybě meditace gurua typu StoreProhibited. Výjimka byla

neošetřený.

Výpis registru:

PC

PS: 0x400f360d

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: něco_pro_zhroucení v /home/gus/esp/32/idf/examples/začínáme/

hello_world/main/./hello_world_main.c:57

(vloženo pomocí) inner_dont_crash v /home/gus/esp/32/idf/examples/začínáme/ahoj_

world/main/./hello_world_main.c:52

A2

: 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

A10

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

A14

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 OMLUVA:

0x0000001d

ADRESA VÝMĚNY: 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 (vloženo pomocí) inner_dont_crash v /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: stále_nedochází_k_spadnutí v /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash v /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main v /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task v /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

Pro dekódování každé adresy spustí IDF Monitor na pozadí následující příkaz: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

Poznámka: Nastavte proměnnou prostředí ESP_MONITOR_DECODE na 0 nebo zavolejte idf_monitor.py s konkrétním příkazovým řádkem.

Systémy Espressif

32 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
volba: idf_monitor.py –disable-address-decoding pro zakázání dekódování adres.
Reset cíle při připojení Ve výchozím nastavení IDF Monitor resetuje cíl při připojení. Reset cílového čipu se provádí pomocí sériových linek DTR a RTS. Chcete-li zabránit automatickému resetování cíle ze strany IDF Monitoru při připojení, zavolejte IDF Monitor s parametrem –no-reset (např. idf_monitor.py –no-reset).
Poznámka: Volba –no-reset aplikuje stejné chování i při připojení IDF Monitoru k určitému portu (např. idf.py monitor –no-reset -p [PORT]).
Spuštění GDB pomocí GDBStub GDBStub je užitečná ladicí funkce za běhu, která běží na cílovém počítači a připojuje se k hostiteli přes sériový port, aby přijímala ladicí příkazy. GDBStub podporuje příkazy jako čtení paměti a proměnných, prověřování rámců zásobníku volání atd. Ačkoli je GDBStub méně všestranný než JTAG ladění, nevyžaduje žádný speciální hardware (například JTAG (k USB bridge), protože komunikace probíhá výhradně přes sériový port. Cíl lze nakonfigurovat tak, aby spouštěl GDBStub na pozadí nastavením CONFIG_ESP_SYSTEM_PANIC na GDBStub za běhu. GDBStub poběží na pozadí, dokud nebude přes sériový port odeslána zpráva Ctrl+C, která způsobí, že GDBStub přeruší (tj. zastaví provádění) programu, což umožní GDBStub zpracovávat ladicí příkazy. Obslužnou rutinu paniky lze dále nakonfigurovat tak, aby spouštěla ​​GDBStub při havárii nastavením CONFIG_ESP_SYSTEM_PANIC na GDBStub při panice. Když dojde k havárii, GDBStub vyšle přes sériový port speciální řetězcový vzor, ​​který indikuje, že běží. V obou případech (tj. odeslání zprávy Ctrl+C nebo přijetí speciálního řetězcového vzoru) IDF Monitor automaticky spustí GDB, aby uživatel mohl odesílat ladicí příkazy. Po ukončení GDB se cíl resetuje přes sériovou linku RTS. Pokud tato linka není připojena, uživatelé mohou resetovat svůj cíl (stisknutím tlačítka Reset na desce).
Poznámka: Na pozadí IDF Monitor spouští GDB následujícím příkazem:
xtensa-esp32-elf-gdb -ex „nastavit sériový baud BAUD“ -ex „cílový vzdálený PORT“ -ex interrupt build/PROJECT.elf :idf_target:`Hello NÁZEV čipu`

Filtrování výstupu Monitor IDF lze spustit jako idf.py monitor –print-filter=”xyz”, kde –print-filter je parametr pro filtrování výstupu. Výchozí hodnota je prázdný řetězec, což znamená, že se vypíše vše.
Omezení tisku lze specifikovat jako řadutag>: položky, kdetag> je tag řetězec a je znak z množiny {N, E, W, I, D, V, *} odkazující na úroveň pro logování.
Napřample, PRINT_FILTER="tag1:W“ shoduje se a tiskne pouze výstupy zapsané pomocí ESP_LOGW(“tag1“, …) nebo na nižší úrovni výřečnosti, tj. ESP_LOGE(“tag1″, …). Bez specifikace nebo použití * výchozí úrovně Verbose.
Poznámka: Pro zakázání nepotřebných výstupů při kompilaci pomocí knihovny pro protokolování použijte primární protokolování. Filtrování výstupu pomocí monitoru IDF je sekundární řešení, které může být užitečné pro úpravu možností filtrování bez nutnosti opětovné kompilace aplikace.
Vaše aplikace tags nesmí obsahovat mezery, hvězdičky * ani dvojtečky: aby byl kompatibilní s funkcí filtrování výstupu.
Pokud za posledním řádkem výstupu vaší aplikace nenásleduje znak konce řádku, může dojít ke zmatení filtrování výstupu, tj. monitor začne tisknout řádek a později zjistí, že řádek neměl být zapsán. Toto je známý problém, kterému lze předejít přidáním znaku konce řádku (zejména pokud bezprostředně za ním nenásleduje žádný výstup).

Systémy Espressif

33 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Exampseznam pravidel filtrování:
· * lze použít k přiřazení libovolného tagsŘetězec PRINT_FILTER=”*:I však tag1:E“ s ohledem na tag1 vytiskne pouze chyby, protože pravidlo pro tag1 má vyšší prioritu než pravidlo pro *.
· Výchozí (prázdné) pravidlo je ekvivalentní *:V, protože shoda pro každý tag Na úrovni Verbose nebo nižší znamená shodu se všemi parametry.
· „*:N“ potlačí nejen výstupy z logovacích funkcí, ale také výpisy provedené funkcí printf atd. Abyste tomu předešli, použijte *:E nebo vyšší úroveň výřečnosti.
· Pravidla “tag1:V“, „tag1:v“, „tag1:“, „tag1:*“ a „tag1“ jsou ekvivalentní. · Pravidlo „tag1:Z tag„1:E“ je ekvivalentní „tag1:E“, protože jakýkoli následný výskyt stejného tag
název přepíše předchozí. · Pravidlo “tag1:I tagtiskne pouze 2:W” tag1 na úrovni podrobností informací nebo nižší a tag2 u varování
úroveň výřečnosti nebo nižší. · Pravidlo „tag1:I tag2:Z tag„3:N“ je v podstatě ekvivalentní předchozímu, protože tag3:N specifikuje
že tag3 by se neměl tisknout. · tag3:N v pravidle „tag1:I tag2:Z tag„3:N *:V“ má větší význam, protože bez tag3:N
tagMohly být vytištěny 3 zprávy; chyby pro tag1 a tagČást 2 bude vytištěna na zadané (nebo nižší) úrovni výřečnosti a vše ostatní bude vytištěno standardně.
Složitější příklad filtrováníampNásledující úryvek protokolu byl získán bez jakýchkoli možností filtrování:
load:0x40078000,len:13564 záznam 0x40078d4c E (31) esp_image: obrázek na adrese 0x30000 má neplatný magic byte W (31) esp_image: obrázek na adrese 0x30000 má neplatný režim SPI 255 E (39) boot: Oddíl s tovární aplikací nelze spustit I (568) cpu_start: Pro CPU zapnutý. I (569) heap_init: Inicializace. RAM dostupná pro dynamickou alokaci: I (603) cpu_start: Pro CPU spuštěný uživatelský kód D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range je úspěšný pro rozsah <54; 64) a VFS ID 1 I (328) wifi: ovladač wifi task: 3ffdbf84, prio:23, stack:4096, core=0
Zachycený výstup pro možnosti filtrování PRINT_FILTER="wifi esp_image:E light_driver:I" je uveden níže:
E (31) esp_image: obrázek na adrese 0x30000 má neplatný magický bajt I (328) wifi: ovladač wifi task: 3ffdbf84, prio:23, stack:4096, core=0
Možnosti „PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" zobrazují následující výstup:
load:0x40078000,len:13564 záznam 0x40078d4c I (569) heap_init: Inicializace. RAM dostupná pro dynamickou alokaci: D (309) light_driver: [light_init, 74]:status: 1, mode: 2
Známé problémy s monitorem IDF
Problémy pozorované ve Windows
· Šipky, stejně jako některé další klávesy, nefungují v GDB kvůli omezením konzole Windows. · Občas se může při ukončení oidf.pypexit zastavit až na 30 sekund, než se IDF Monitor obnoví. · Při spuštění ogdbpis se může na krátkou dobu zastavit, než začne komunikovat s GDBStub.

Systémy Espressif

34 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme se standardním nastavením Toolchainu pro Linux a macOS

Instalace krok za krokem Toto je podrobný návod, který vás provede procesem instalace.
Nastavení vývojového prostředí Toto jsou kroky pro nastavení ESP-IDF pro váš ESP32. · Krok 1. Instalace předpokladů · Krok 2. Získání ESP-IDF · Krok 3. Nastavení nástrojů · Krok 4. Nastavení proměnných prostředí · Krok 5. První kroky s ESP-IDF
Krok 1. Předpoklady pro instalaci Abyste mohli používat ESP-IDF s ESP32, je třeba nainstalovat několik softwarových balíčků v závislosti na vašem operačním systému. Tato instalační příručka vám pomůže s instalací všech potřebných programů na systémech Linux a macOS.
Pro uživatele Linuxu Pro kompilaci pomocí ESP-IDF budete potřebovat následující balíčky. Příkaz, který je třeba spustit, závisí na používané distribuci Linuxu:
· Ubuntu a 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 a 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 je stále podporován, ale pro lepší uživatelský zážitek se doporučuje CentOS verze 8. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Poznámka: · Pro použití s ​​ESP-IDF je vyžadován CMake verze 3.16 nebo novější. Pokud váš operační systém nemá vhodnou verzi, spusťte příkaz otools/idf_tools.py install cmake. · Pokud v seznamu výše nenajdete svou distribuci Linuxu, podívejte se do její dokumentace a zjistěte, který příkaz použít pro instalaci balíčku.
Pro uživatele macOS bude ESP-IDF používat verzi Pythonu, která je v systému macOS standardně nainstalována. · Instalace buildu CMake a Ninja: Pokud máte HomeBrew, můžete spustit příkaz: brew install cmake ninja dfu-util Pokud máte MacPorts, můžete spustit příkaz: sudo port install cmake ninja dfu-util Jinak si pro stažení instalačních souborů pro macOS projděte domovské stránky CMake a Ninja.

Systémy Espressif

35 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
· Důrazně doporučujeme nainstalovat také ccache pro rychlejší sestavení. Pokud máte HomeBrew, lze to provést pomocí brew install ccache nebo sudo port install ccache na MacPortech.
Poznámka: Pokud se v jakémkoli kroku zobrazí podobná chyba: xcrun: chyba: neplatná aktivní cesta pro vývojáře (/Library/Developer/CommandLineTools), chybí xcrun v: /Library/Developer/CommandLineTools/usr/bin/xcrun
Pak budete muset nainstalovat nástroje příkazového řádku XCode, abyste mohli pokračovat. Můžete je nainstalovat spuštěním příkazu xcode-select –install.
Uživatelé Apple M1 Pokud používáte platformu Apple M1 a zobrazí se vám chyba, jako je tato: VAROVÁNÍ: adresář pro nástroj xtensa-esp32-elf verze esp-2021r2-patch3-8.4.0 je k dispozici, ale nástroj nebyl nalezen CHYBA: nástroj xtensa-esp32-elf nemá žádné nainstalované verze. Spusťte prosím soubor 'install.sh' pro jeho instalaci.
nebo: zsh: chybný typ CPU ve spustitelném souboru: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Pak budete muset nainstalovat Apple Rosetta 2 spuštěním příkazu /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Instalace Pythonu 3 Na základě poznámek k verzi macOS Catalina 10.15 se používání Pythonu 2.7 nedoporučuje a Python 2.7 nebude ve výchozím nastavení zahrnut v budoucích verzích macOS. Zkontrolujte, jaký Python aktuálně máte: python –version
Pokud je výstup podobný Pythonu 2.7.17, váš výchozí interpret je Python 2.7. Pokud ano, zkontrolujte také, zda na vašem počítači již není nainstalován Python 3: python3 –version
Pokud výše uvedený příkaz vrátí chybu, znamená to, že Python 3 není nainstalován. Níže je uveden příklad.view kroků k instalaci Pythonu 3.
· Instalaci pomocí HomeBrew lze provést následovně: brew install python3
· Pokud máte MacPorty, můžete spustit: sudo port install python38
Krok 2. Získejte ESP-IDF Pro tvorbu aplikací pro ESP32 potřebujete softwarové knihovny poskytované společností Espressif v repozitáři ESP-IDF. Chcete-li získat ESP-IDF, přejděte do instalačního adresáře a naklonujte repozitář pomocí příkazu git clone podle níže uvedených pokynů specifických pro váš operační systém. Otevřete Terminál a spusťte následující příkazy:

Systémy Espressif

36 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekurzivní https://github.com/espressif/esp-idf.git
ESP-IDF bude staženo do ~/esp/esp-idf. Informace o tom, kterou verzi ESP-IDF použít v dané situaci, najdete ve verzích ESP-IDF.
Krok 3. Nastavení nástrojů Kromě ESP-IDF je třeba nainstalovat také nástroje používané ESP-IDF, jako je kompilátor, debugger, balíčky Pythonu atd., pro projekty podporující ESP32. cd ~/esp/esp-idf ./install.sh esp32
nebo pomocí Fish shell cd ~/esp/esp-idf ./install.fish esp32
Výše uvedené příkazy instalují nástroje pouze pro ESP32. Pokud máte v úmyslu vyvíjet projekty pro více čipových cílů, měli byste je všechny vypsat a spustit napříkladample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
nebo pomocí Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Chcete-li nainstalovat nástroje pro všechny podporované cíle, spusťte prosím následující příkaz: cd ~/esp/esp-idf ./install.sh all
nebo pomocí Fish shell cd ~/esp/esp-idf ./install.fish all
Poznámka: Pro uživatele macOS, pokud se v jakémkoli kroku zobrazí podobná chyba:urlchyba otevření [SSL: CERTIFICATE_VERIFY_FAILED] ověření certifikátu selhalo: nelze získat lokální certifikát vydavatele (_ssl.c:xxx)
Certifikáty můžete nainstalovat spuštěním příkazu Install Certificates.command ve složce Python ve vašem počítači. Podrobnosti naleznete v části Chyba stahování při instalaci nástrojů ESP-IDF.

Alternativní File Stahování Instalační program nástrojů stáhne řadu files připojenými k vydáním GitHubu. Pokud je přístup na GitHub pomalý, je možné nastavit proměnnou prostředí, která upřednostňuje stahovací server Espressifns pro stahování dat z GitHubu.

Poznámka: Toto nastavení ovládá pouze jednotlivé nástroje stažené z verzí GitHubu, nemění URLpoužívá se pro přístup k libovolným repozitářům Git.

Chcete-li při instalaci nástrojů upřednostnit stahovací server Espressif, použijte při spuštění souboru install.sh následující posloupnost příkazů:

Systémy Espressif

37 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Přizpůsobení instalační cesty nástrojů Skripty uvedené v tomto kroku instalují kompilační nástroje vyžadované ESP-IDF do domovského adresáře uživatele: $HOME/.espressif v systému Linux. Pokud chcete nástroje nainstalovat do jiného adresáře, nastavte před spuštěním instalačních skriptů proměnnou prostředí IDF_TOOLS_PATH. Ujistěte se, že váš uživatelský účet má dostatečná oprávnění pro čtení a zápis této cesty. Pokud měníte IDF_TOOLS_PATH, ujistěte se, že je nastavena na stejnou hodnotu při každém spuštění instalačního skriptu (install.bat, install.ps1 nebo install.sh) a exportního skriptu (export.bat, export.ps1 nebo export.sh).
Krok 4. Nastavení proměnných prostředí Nainstalované nástroje zatím nejsou přidány do proměnné prostředí PATH. Aby bylo možné nástroje používat z příkazového řádku, je nutné nastavit některé proměnné prostředí. ESP-IDF poskytuje další skript, který to provádí. V terminálu, kde budete používat ESP-IDF, spusťte:
. $HOME/esp/esp-idf/export.sh
nebo pro ryby (podporováno pouze od verze 3.0.0 pro ryby):
$HOME/esp/esp-idf/export.fish
Všimněte si mezery mezi úvodní tečkou a cestou! Pokud plánujete esp-idf často používat, můžete si vytvořit alias pro spuštění export.sh:
1. Zkopírujte a vložte následující příkaz do svého shellns profile (.profile, .bashrc, .zprofileatd.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Obnovte konfiguraci restartováním terminálu nebo spuštěním příkazu source [cesta k souboru profile],
napřampsoubor le, zdrojový kód ~/.bashrc. Nyní můžete spustit příkaz get_idf pro nastavení nebo aktualizaci prostředí esp-idf v libovolné terminálové relaci. Technicky vzato můžete přidat export.sh do svého shellns pro.file přímo; nicméně se to nedoporučuje. Tímto se aktivuje virtuální prostředí IDF v každé terminálové relaci (včetně těch, kde IDF není potřeba), čímž se maří účel virtuálního prostředí a pravděpodobně se ovlivní i další software.
Krok 5. První kroky s ESP-IDF Nyní, když jsou splněny všechny požadavky, vás další téma provede tím, jak zahájit váš první projekt. Tato příručka vám pomůže s prvními kroky s používáním ESP-IDF. Postupujte podle této příručky pro zahájení nového projektu na ESP32 a sestavení, flashování a monitorování výstupu zařízení.
Poznámka: Pokud jste si ještě nenainstalovali ESP-IDF, přejděte prosím do sekce Instalace a postupujte podle pokynů, abyste získali veškerý software potřebný k používání této příručky.

Spuštění projektu Nyní jste připraveni připravit svou aplikaci pro ESP32. Můžete začít s projektem getstarted/hello_world z příkladuamples v ESP-IDF.

Důležité: Systém sestavení ESP-IDF nepodporuje mezery v cestách k ESP-IDF ani k projektům.

Zkopírujte projekt get-started/hello_world do adresáře ~/esp:

Systémy Espressif

38 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Poznámka: Existuje řada example projekty v examples v ESP-IDF. Jakýkoli projekt můžete zkopírovat stejným způsobem, jak je uvedeno výše, a spustit jej. Je také možné postavit exampsoubory na místě bez jejich předchozího kopírování.
Připojte zařízení Nyní připojte desku ESP32 k počítači a zkontrolujte, pod kterým sériovým portem je deska viditelná. Sériové porty mají následující vzorce pojmenování:
· Linux: počínaje /dev/tty · macOS: počínaje /dev/cu. Pokud si nejste jisti, jak zkontrolovat název sériového portu, podívejte se prosím na článek Navázání sériového připojení s ESP32, kde najdete podrobnosti.
Poznámka: Název portu mějte po ruce, protože jej budete potřebovat v dalších krocích.
Konfigurace projektu Přejděte do adresáře hello_world, nastavte ESP32 jako cíl a spusťte konfigurační utilitu projektu menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Po otevření nového projektu byste měli nejprve nastavit cíl pomocí příkazu idf.py set-target esp32. Všimněte si, že stávající sestavení a konfigurace v projektu, pokud existují, budou v tomto procesu vymazány a inicializovány. Cíl lze uložit do proměnné prostředí, abyste tento krok zcela přeskočili. Další informace naleznete v části Výběr cílového čipu: set-target. Pokud byly předchozí kroky provedeny správně, zobrazí se následující nabídka:

Obr. 17: Konfigurace projektu – domovské okno Toto menu používáte k nastavení proměnných specifických pro projekt, např. názvu a hesla sítě Wi-Fi, rychlosti procesoru atd. Nastavení projektu pomocí menuconfig může být pro hello_worldp přeskočeno, protože tento exampběží s

Systémy Espressif

39 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
výchozí konfigurace.
Upozornění: Pokud používáte desku ESP32-DevKitC s modulem ESP32-SOLO-1 nebo desku ESP32-DevKitM-1 s modulem ESP32-MIN1-1(1U), před flashováním ex prosím povolte v menuconfig režim jednoho jádra (CONFIG_FREERTOS_UNICORE).amples.
Poznámka: Barvy nabídky se ve vašem terminálu mohou lišit. Vzhled můžete změnit pomocí volby –style. Pro další informace spusťte prosím příkaz idf.py menuconfig –help.
Pokud používáte jednu z podporovaných vývojových desek, můžete svůj vývoj urychlit pomocí balíčku podpory desek. Další informace naleznete v části Další tipy.
Sestavení projektu Sestavení projektu spuštěním:
sestavení idf.py
Tento příkaz zkompiluje aplikaci a všechny komponenty ESP-IDF, poté vygeneruje zavaděč, tabulku oddílů a binární soubory aplikace.
$ idf.py build Spuštění cmake v adresáři /path/to/hello_world/build Spuštění „cmake -G Ninja –warn-uninitialized /path/to/hello_world“… Upozornění na neinicializované hodnoty. — Nalezen Git: /usr/bin/git (nalezena verze „2.17.0“) — Sestavení prázdné komponenty aws_iot z důvodu konfigurace — Názvy komponent: … — Cesty ke komponentám: …
… (více řádků výstupu sestavení systému)
[527/527] Generování souboru hello_world.bin esptool.py v2.3.1
Sestavení projektu dokončeno. Pro flashování spusťte tento příkaz: ../../../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 nebo spusťte 'idf.py -p PORT flash'
Pokud se nevyskytnou žádné chyby, sestavení se dokončí vygenerováním binárního souboru .bin firmwaru files.
Nahrajte zařízení Flashujte binární soubory, které jste právě sestavili (bootloader.bin, partition-table.bin a hello_world.bin), na desku ESP32 spuštěním:
idf.py -p PORT [-b BAUD] flash
Nahraďte PORT názvem sériového portu vaší desky ESP32. Přenosovou rychlost flashovacího modulu můžete také změnit nahrazením BAUD požadovanou přenosovou rychlostí. Výchozí přenosová rychlost je 460800. Další informace o argumentech idf.py naleznete v idf.py.
Poznámka: Volba flash automaticky sestaví a načte projekt, takže spuštění příkazu idf.py build není nutné.

Systémy Espressif

40 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme

Došlo k problémům při flashování? Pokud spustíte daný příkaz a zobrazí se vám chyby, jako například „Nepodařilo se připojit p“, může to mít několik důvodů. Jedním z důvodů mohou být problémy, se kterými se setkává esptool.py, což je nástroj, který volá systém sestavení pro resetování čipu, interakci s bootloaderem ROM a flashování firmwaru. Jedním jednoduchým řešením, které můžete vyzkoušet, je ruční reset popsaný níže. Pokud to nepomůže, další podrobnosti o možných problémech naleznete v části Řešení problémů.
esptool.py automaticky resetuje ESP32 aktivací řídicích linek DTR a RTS čipu převodníku USB na sériový port, tj. FTDI nebo CP210x (další informace naleznete v části Navázání sériového spojení s ESP32). Řídicí linky DTR a RTS jsou postupně připojeny k pinům GPIO0 a CHIP_PU (EN) ESP32, čímž se změní hlasitost.tagÚrovně DTR a RTS spustí ESP32 do režimu stahování firmwaru. Jako např.ampnapř. zkontrolujte schéma zapojení vývojové desky ESP32 DevKitC.
Obecně byste s oficiálními vývojovými deskami esp-idf neměli mít žádné problémy. esptool.py však nedokáže automaticky resetovat hardware v následujících případech:
· Váš hardware nemá linky DTR a RTS připojené k GPIO0 a CHIP_PU · Linky DTR a RTS jsou konfigurovány odlišně · Neexistují žádné takové sériové řídicí linky
V závislosti na typu hardwaru, který máte, může být také možné ručně přepnout desku ESP32 do režimu stahování firmwaru (reset).
· U vývojových desek vyráběných společností Espressif lze tyto informace nalézt v příslušných úvodních příručkách nebo uživatelských příručkách. Např.ampNapříklad pro ruční resetování vývojové desky ESP-IDF podržte stisknuté tlačítko Boot (GPIO0) a stiskněte tlačítko EN (CHIP_PU).
· U jiných typů hardwaru zkuste stáhnout GPIO0 dolů.

Normální provoz Během blikání se zobrazí výstupní protokol podobný následujícímu:
… 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 Sériový port /dev/ttyUSB0 Připojuje se…….._ Čip je ESP32D0WDQ6 (revize 0) Vlastnosti: WiFi, BT, dvoujádrový procesor, kódovací schéma Žádné Krystal je 40MHz MAC: 24:0a:c4:05:b9:14 Nahrávání stubu… Spuštění stubu… Stub spuštěn… Změna přenosové rychlosti na 460800 Změněno. Konfigurace velikosti flash paměti… Komprimováno 3072 bajtů na 103… Zápis rychlostí 0x00008000… (100 %) Zapsáno 3072 bajtů (103 komprimováno) rychlostí 0x00008000 za 0.0 sekund (efektivní 5962.8 kbit/s)… Hash dat ověřen. Komprimováno 26096 bajtů na 15408… Zápis rychlostí 0x00001000… (100 %) Zapsáno 26096 bajtů (15408 komprimováno) rychlostí 0x00001000 za 0.4 sekundy (efektivní 546.7 kbit/s)… Hash dat ověřen. Komprimováno 147104 bajtů na 77364… Zápis na 0x00010000… (20 %) Zápis na 0x00014000… (40 %) Zápis na 0x00018000… (60 %) Zápis na 0x0001c000… (80 %)
(pokračování na další straně)

Systémy Espressif

41 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
(pokračování z předchozí stránky) Zápis v čase 0x00020000… (100 %) Zapsáno 147104 bajtů (77364 komprimovaných) v čase 0x00010000 za 1.9 sekundy (efektivní 615,5 kbit/s)… Hash dat ověřen.
Odcházím... Tvrdé resetování pomocí RTS pinu... Hotovo
Pokud se do konce procesu flashování neobjeví žádné problémy, deska se restartuje a spustí aplikaci theohello_worldp. Pokud chcete místo spouštění idf.py použít Eclipse nebo VS Code IDE, podívejte se na Eclipse Plugin, VSCode Extension.
Monitorování výstupu Chcete-li zkontrolovat, zda je ohello_worldpis skutečně spuštěn, zadejte idf.py -p PORT monitor (nezapomeňte nahradit PORT názvem sériového portu). Tento příkaz spustí aplikaci IDF Monitor:
$ idf.py -p monitor Spuštění idf_monitor v adresáři […]/esp/hello_world/build Spuštění „python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf“… — idf_monitor zapnuto 115200 —– Ukončit: Ctrl+] | Menu: Ctrl+T | Nápověda: Ctrl+T a následně Ctrl+H –ets 8. června 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8. června 2016 00:22:57 …
Po posunutí protokolů spuštění a diagnostiky nahoru by se mělo zobrazit, že aplikace vytiskne zprávu oHello world!.
... Ahoj světe! Restart za 10 sekund… Toto je čip esp32 se 2 jádry CPU, WiFi/BT/BLE, křemíkovou revizí 1, 2MB externí flash pamětí Minimální velikost volné paměti: 298968 bajtů Restart za 9 sekund… Restart za 8 sekund… Restart za 7 sekund…
Pro ukončení IDF monitoru použijte klávesovou zkratku Ctrl+]. Pokud IDF monitor selže krátce po nahrání, nebo pokud místo výše uvedených zpráv vidíte náhodné nesmysly podobné těm, které jsou uvedeny níže, vaše deska pravděpodobně používá krystal s frekvencí 26 MHz. Většina vývojových desek používá 40 MHz, takže ESP-IDF používá tuto frekvenci jako výchozí hodnotu.

Pokud máte takový problém, postupujte takto:
1. Ukončete monitor. 2. Vraťte se do menuconfig. 3. Přejděte do Konfigurace komponent > Nastavení hardwaru > Hlavní konfigurace XTAL > Hlavní XTAL
frekvenci, poté změňte CONFIG_XTAL_FREQ_SEL na 26 MHz. 4. Poté znovu sestavte a nainstalujte aplikaci.

Systémy Espressif

42 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
V aktuální verzi ESP-IDF jsou hlavní frekvence XTAL podporované ESP32 následující:
· 26 MHz · 40 MHz
Poznámka: Sestavení, blikání a monitorování můžete spojit do jednoho kroku spuštěním: idf.py -p PORT flash monitor
Viz také: · IDF Monitor pro praktické zkratky a další podrobnosti o používání IDF monitoru. · idf.py pro kompletní referenci příkazů a možností idf.py.
To je vše, co potřebujete k zahájení práce s ESP32! Nyní jste připraveni vyzkoušet nějaké další ex...ampsoubory nebo se rovnou věnujte vývoji vlastních aplikací.
Důležité: Některé z bývalýchampSoubory nepodporují ESP32, protože požadovaný hardware není součástí ESP32, takže jej nelze podporovat. Pokud sestavujete exampprosím, podívejte se na soubor README file pro tabulku Podporované cíle. Pokud je tato tabulka přítomna včetně cíle ESP32, nebo tabulka vůbec neexistuje, exampBude fungovat na ESP32.
Další tipy
Problémy s oprávněními /dev/ttyUSB0 U některých distribucí Linuxu se při flashování ESP32 může zobrazit chybová zpráva „Nepodařilo se otevřít port /dev/ttyUSB0“. Tento problém lze vyřešit přidáním aktuálního uživatele do skupiny dialout.
Kompatibilita s Pythonem ESP-IDF podporuje Python 3.7 nebo novější. Doporučuje se upgradovat operační systém na novější verzi, která tento požadavek splňuje. Další možnosti zahrnují instalaci Pythonu ze zdrojového kódu nebo použití systému pro správu verzí Pythonu, jako je například pyenv.
Začněte s balíčkem podpory desky (Board Support Packages) Pro urychlení prototypování některých vývojových desek můžete použít balíčky podpory desky (Board Support Packages, BSP), které usnadňují inicializaci konkrétní desky na pouhých několik volání funkcí. BSP obvykle podporuje všechny hardwarové komponenty dodávané na vývojové desce. Kromě definice zapojení pinů a inicializačních funkcí se BSP dodává s ovladači pro externí komponenty, jako jsou senzory, displeje, zvukové kodeky atd. BSP jsou distribuovány prostřednictvím IDF Component Manageru, takže je lze nalézt v registru komponent IDF. Zde je exampPopis přidání ESP-WROVER-KIT BSP do vašeho projektu: idf.py add-dependency esp_wrover_kit
Více exampÚdaje o využití BSP lze nalézt v příkladu BSPampsložka les.
Tip: Aktualizace ESP-IDF Doporučuje se čas od času aktualizovat ESP-IDF, protože novější verze opravují chyby a/nebo poskytují nové funkce. Upozorňujeme, že každá hlavní a vedlejší verze ESP-IDF má přidružené období podpory a když se jedna větev vydání blíží konci své životnosti (EOL), všem uživatelům se doporučuje upgradovat své projekty na novější verze ESP-IDF. Více informací o obdobích podpory naleznete v části Verze ESP-IDF.

Systémy Espressif

43 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 1. Začínáme
Nejjednodušší způsob, jak provést aktualizaci, je odstranit existující složku esp-idf a znovu ji naklonovat, jako byste prováděli počáteční instalaci popsanou v kroku 2. Získejte ESP-IDF. Dalším řešením je aktualizovat pouze to, co se změnilo. Postup aktualizace závisí na používané verzi ESP-IDF. Po aktualizaci ESP-IDF spusťte znovu instalační skript, pokud nová verze ESP-IDF vyžaduje jiné verze nástrojů. Viz pokyny v kroku 3. Nastavte nástroje. Po instalaci nových nástrojů aktualizujte prostředí pomocí exportního skriptu. Viz pokyny v kroku 4. Nastavte proměnné prostředí.
Související dokumenty · Navázání sériového připojení s ESP32 · Plugin Eclipse · Rozšíření VSCode · Monitor IDF
1.4 Vytvořte si svůj první projekt
Pokud již máte nainstalovaný ESP-IDF a nepoužíváte IDE, můžete svůj první projekt sestavit z příkazového řádku podle pokynů v části Spuštění projektu ve Windows nebo Spuštění projektu v Linuxu a macOS.
1.5 Odinstalace ESP-IDF
Pokud chcete odebrat ESP-IDF, postupujte podle pokynů v části Odinstalovat ESP-IDF.

Systémy Espressif

44 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 2
Reference API
2.1 Konvence API
Tento dokument popisuje konvence a předpoklady společné pro aplikační programovací rozhraní (API) ESP-IDF. ESP-IDF poskytuje několik druhů programovacích rozhraní:
· Funkce, struktury, výčty, definice typů a makra preprocesoru v jazyce C deklarované ve veřejné hlavičce filekomponent ESPIDF. Popisy těchto funkcí, struktur a typů obsahují různé stránky v sekci Reference API v programátorské příručce.
· Funkce sestavovacího systému, předdefinované proměnné a možnosti. Tyto jsou popsány v průvodci sestavovacím systémem. · Možnosti Kconfig lze použít v kódu a v sestavovacím systému (CMakeLists.txt) files. · Součástí rozhraní ESP-IDF jsou také hostitelské nástroje a jejich parametry příkazového řádku. ESP-IDF se skládá z komponent napsaných speciálně pro ESP-IDF a také z knihoven třetích stran. V některých případech je do knihovny třetí strany přidán obal specifický pro ESP-IDF, který poskytuje rozhraní, které je buď jednodušší, nebo lépe integrované se zbytkem funkcí ESP-IDF. V jiných případech je vývojářům aplikací prezentováno původní API knihovny třetí strany. Následující části vysvětlují některé aspekty API ESP-IDF a jejich použití.
2.1.1 Chyba při manipulaci
Většina rozhraní API ESP-IDF vrací chybové kódy definované typem esp_err_t. Další informace o přístupech k ošetření chyb naleznete v části Ošetření chyb. Referenční informace o chybových kódech obsahuje seznam chybových kódů vrácených komponentami ESP-IDF.
2.1.2 Konfigurační struktury
Důležité: Správná inicializace konfiguračních struktur je důležitou součástí kompatibility aplikace s budoucími verzemi ESP-IDF.
Většina inicializačních nebo konfiguračních funkcí v ESP-IDF bere jako argument ukazatel na konfigurační strukturu. Napříkladampten:
45

Kapitola 2. Referenční informace k API

const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_args, .name = „my_timer“
esp_timer_handle_t můj_časovač; esp_err_t err = esp_timer_create(&argumenty_časovače, &můj_časovač);
Inicializační funkce nikdy neukládají ukazatel na konfigurační strukturu, takže je bezpečné alokovat strukturu na zásobníku.
Aplikace musí inicializovat všechna pole struktury. Následující text je nesprávný:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Nesprávně! Pole .arg a .name nejsou inicializována */ esp_timer_create(&my_timer_args, &my_timer);
Většina bývalých členů ESP-IDFampPro inicializaci struktur používají inicializátory určené standardem C99, protože poskytují stručný způsob nastavení podmnožiny polí a inicializace zbývajících polí nulou:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Správně, pole .arg a .name jsou inicializována nulou */
};
Jazyk C++ nepodporuje syntaxi určených inicializátorů až do verze C++20, nicméně kompilátor GCC ji částečně podporuje jako rozšíření. Při použití API ESP-IDF v kódu C++ můžete zvážit použití následujícího vzoru:
esp_timer_create_args_t my_timer_args = {}; /* Všechna pole jsou inicializována nulou */ my_timer_args.callback = &my_timer_callback;

Výchozí inicializátory
Pro některé konfigurační struktury poskytuje ESP-IDF makra pro nastavení výchozích hodnot polí:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG se rozbalí na určený inicializátor.
Nyní jsou všechna pole nastavena na výchozí hodnoty. Kterékoli pole lze stále upravovat: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Doporučuje se používat výchozí makra inicializátoru, kdykoli jsou k dispozici pro konkrétní konfigurační strukturu.

2.1.3 Soukromá API
Určitá hlavička filev ESP-IDF obsahují API určená k použití pouze ve zdrojovém kódu ESP-IDF, nikoli v aplikacích. Takové hlavičky fileSoučásti často obsahují ve svém názvu nebo cestě private nebo esp_private. Některé komponenty, jako například hal, obsahují pouze privátní API. Privátní API mohou být mezi menšími verzemi nebo patchi odstraněna nebo změněna nekompatibilním způsobem.

2.1.4 Součásti v example projekty
ESP-IDF exampSoubory obsahují řadu projektů demonstrujících použití API ESP-IDF. Aby se snížila duplicita kódu v exampV souborech je uvnitř komponent definováno několik běžných pomocných programů, které používá více examples.

Systémy Espressif

46 Odeslat zpětnou vazbu k dokumentu

Vydání v5.0.9

Kapitola 2. Referenční informace k API
To zahrnuje komponenty umístěné

Dokumenty / zdroje

Vývojová deska Espressif Systems ESP32 Dev Kitc [pdfUživatelská příručka
Vývojová deska ESP32 Dev Kitc, ESP32, Vývojová deska Dev Kitc, Vývojová deska Kitc, Vývojová deska, Deska

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *