ESP32 Dev Kitc Development Board

Impormasyon ng Produkto

Mga pagtutukoy

  • Produkto: ESP32
  • Gabay sa Programming: ESP-IDF
  • Bersyon ng Paglabas: v5.0.9
  • Tagagawa: Espressif Systems
  • Petsa ng Paglabas: Mayo 16, 2025

Mga Tagubilin sa Paggamit ng Produkto

1. Magsimula

Bago magsimula sa ESP32, gawing pamilyar ang iyong sarili sa
sumusunod:

1.1 Panimula

Alamin ang tungkol sa mga pangunahing pag-andar at kakayahan ng
ESP32.

1.2 Ano ang Kailangan Mo

Tiyaking mayroon kang kinakailangang hardware at software:

  • Hardware: Suriin ang listahan ng kinakailangang hardware
    mga bahagi.
  • Software: I-install ang kinakailangang software
    mga bahagi.

1.3 Pag-install

Sundin ang mga hakbang na ito upang i-install ang IDE at i-set up ang
kapaligiran:

  • IDE: I-install ang inirerekomendang IDE para sa
    programming ang ESP32.
  • Manu-manong Pag-install: Manu-manong i-set up ang
    kapaligiran kung kinakailangan.

1.4 Buuin ang Iyong Unang Proyekto

Lumikha at buuin ang iyong paunang proyekto gamit ang ESP32.

1.5 I-uninstall ang ESP-IDF

Kung kinakailangan, alamin kung paano i-uninstall ang ESP-IDF mula sa iyong
sistema.

2. Sanggunian ng API

Sumangguni sa dokumentasyon ng API para sa detalyadong impormasyon sa
mga protocol ng application, paghawak ng error, at pagsasaayos
mga istruktura.

Mga Madalas Itanong (FAQ)

T: Paano ko maaayos ang mga karaniwang isyu sa ESP32?

A: Sumangguni sa seksyon ng pag-troubleshoot sa gabay sa programming
o bisitahin ang tagagawa website para sa mga mapagkukunan ng suporta.

T: Maaari ko bang gamitin ang ESP-IDF kasama ng iba pang mga microcontroller?

A: Ang ESP-IDF ay partikular na idinisenyo para sa ESP32, ngunit maaari mong mahanap
pagiging tugma sa iba pang mga Espressif microcontroller.

ESP32
Gabay sa Programming ng ESP-IDF
Inilabas ang v5.0.9 Espressif Systems Mayo 16, 2025

Talaan ng nilalaman

Talaan ng nilalaman

i

1 Magsimula

3

1.1 Panimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Ano ang Kailangan Mo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

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

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

1.3 Pag-install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

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

1.3.2 Manu-manong Pag-install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Buuin ang Iyong Unang Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 I-uninstall ang ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 Sanggunian ng API

45

2.1 Mga Kumbensyon sa API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Error sa paghawak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.2 Mga istruktura ng pagsasaayos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.3 Mga Pribadong API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.4 Mga bahagi sa halampang mga proyekto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.5 Katatagan ng API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2 Mga Protokol ng Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 Lokal na Kontrol ng ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

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

2.2.8 Bundle ng Sertipiko ng ESP x509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 HTTPS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

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

2.2.12 Serbisyo ng mDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

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

2.2.14 IP Network Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

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

2.3.1 Karaniwang Bluetooth® . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.2 Bluetooth® Mababang Enerhiya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

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

2.3.4 Controller at HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

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

2.3.6 NimBLE-based na mga host API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767

2.4 Sanggunian ng Mga Error Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769

2.5 Mga Networking API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

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

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

2.5.3 Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936

i

2.5.4 ESP-NETIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP Network Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Application Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Peripherals API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Analog to Digital Converter (ADC) Oneshot Mode Driver . . . . . . . . . . . . . . . . . 977 2.6.2 Analog to Digital Converter (ADC) Continuous Mode Driver . . . . . . . . . . . . . . . 986 2.6.3 Analog to Digital Converter (ADC) Calibration Driver . . . . . . . . . . . . . . . . . . . 993 2.6.4 Puno ng Orasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Digital To Analog Converter (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO & RTC GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 General Purpose Timer (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Inter-Integrated Circuit (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Inter-IC Sound (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED Control (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Motor Control Pulse Width Modulator (MCPWM) . . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Pulse Counter (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Remote Control Transceiver (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD Pull-up na Kinakailangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC Host Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI Host Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO Card Slave Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-Delta Modulation (SDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI Master Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI Slave Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Secure Element) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Touch Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Two-Wire Automotive Interface (TWAI) . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Universal Asynchronous Receiver/Transmitter (UART) . . . . . . . . . . . . . . . . . . 1317 2.7 Configuration ng Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Panimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Menu ng Configuration ng Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Paggamit ng sdkconfig.defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Mga Panuntunan sa Pag-format ng Kconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Paatras na Pagkatugma ng Kconfig Options . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Configuration Options Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Provisioning API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protocol Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Pinag-isang Paglalaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Paglalaan ng Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Storage API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSuporta sa system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Utility sa Paggawa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Non-volatile Storage Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS Partition Generator Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filesistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtual filebahagi ng sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Wear Leveling API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Format ng Larawan ng App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Pagsubaybay sa Antas ng Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Call function na may panlabas na stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Pagbabago ng Chip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Error Codes at Helper Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii

2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Event Loop Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Overview). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Mga Karagdagang Tampok) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Paglalaan ng Heap Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Heap Memory Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 High Resolution Timer (ESP Timer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Panloob at Hindi Matatag na mga API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Inter-Processor Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Makagambala sa paglalaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Pag-log library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Mga Miscellaneous System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Over The Air Updates (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Monitor ng Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Pamamahala ng Kapangyarihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Suporta sa POSIX Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Random Number Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Mga Mode ng Pagtulog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Oras ng Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 Ang himem allocation API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP Coprocessor programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Mga asong nagbabantay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161

3 Sanggunian sa Hardware

2167

3.1 Paghahambing ng Serye ng Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 Mga Kaugnay na Dokumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

4 Mga Gabay sa API

2171

4.1 Application Level Tracing library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Mga Mode ng Operasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Mga Opsyon sa Configuration at Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Paano Gamitin ang Aklatan na Ito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Daloy ng Pagsisimula ng Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 Unang stage bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 Segundo stage bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Pagsisimula ng aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

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

4.3.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® Mababang Enerhiya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Magsimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

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

4.5 Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Pagkatugma sa bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Antas ng Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Factory reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Boot mula sa Test Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Rollback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.6 Asong tagapagbantay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.7 Laki ng Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Mabilis na pag-boot mula sa Deep Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Custom na bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Bumuo ng Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Paggamit ng Build System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 Halample Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Project CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Component CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Component Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Mga Kahulugan ng Preprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Mga Kinakailangan sa Bahagi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Mga Overriding na Bahagi ng Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Mga Bahagi ng Configuration-Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Pag-debug sa CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Halample Component CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Mga default na custom sdkconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Mga argumento ng flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Pagbuo ng Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Pagsulat ng Purong Mga Bahagi ng CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Paggamit ng Mga Third-Party na Proyekto ng CMake na may mga Bahagi . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Paggamit ng Prebuilt Libraries na may Mga Bahagi . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Paggamit ng ESP-IDF sa Mga Custom na Proyekto ng CMake . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globbing at Incremental Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Build System Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Build System Internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Paglipat mula sa ESP-IDF GNU Make System . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Core Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Mga Kumpigurasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 I-save ang core dump para mag-flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 I-print ang core dump sa UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 Mga Pag-andar ng ROM sa Mga Backtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Paglalaglag ng mga variable on demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Pagpapatakbo ng espcoredump.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Malalim na Tulog Wake Stubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Mga Panuntunan para sa Mga Wake Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Pagpapatupad ng Isang Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Naglo-load ng Code sa RTC Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Naglo-load ng Data Sa RTC Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC Check Para sa Wake Stubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Halample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Paghawak ng Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Mga error code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Pag-convert ng mga error code sa mga mensahe ng error. . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_WITHOUT_ABORT macro . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 CHECK MACROS Halamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Mga pattern sa paghawak ng error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Panimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 Mga Konsepto ng ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Pagbuo ng Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Pamamahala ng Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Paghahatid ng Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Paglipat ng Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv

4.10.8 Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Karagdagang Mga Tala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Pangangasiwa sa Kaganapan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet, at IP Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Mesh Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Mga Kaganapan sa Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Mga Malalang Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Panic Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Magrehistro ng Dump at Backtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Guru Meditation Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Iba Pang Mga Malalang Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Panimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Mga Kaugnay na eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Proseso ng Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Configuration ng Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Mga Posibleng Pagkabigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 Katayuan ng ESP32 Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Pagbasa at Pagsulat ng Data sa Naka-encrypt na Flash . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Pag-update ng Naka-encrypt na Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Hindi pagpapagana ng Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Mga Pangunahing Punto Tungkol sa Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Mga Limitasyon ng Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Flash Encryption at Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Mga Advanced na Tampok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Mga Detalye ng Teknikal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Abstraction ng Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arkitektura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (Mababang Antas) Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Hardware Abstraction Layer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Mataas na Antas na mga Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Mga Antas ng Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Mga Tala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Pag-debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Panimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Paano Ito Gumagana? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 Pagpili ng JTAG Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Setup ng OpenOCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Pag-configure ng ESP32 Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Paglulunsad ng Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Pag-debug Halamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Pagbuo ng OpenOCD mula sa Mga Pinagmulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Mga Tip at Katangian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Mga Kaugnay na Dokumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Pagbuo ng Linker Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Mabilis na Pagsisimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Mga Internal sa Pagbuo ng Linker Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Mga sinusuportahang API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS Gawain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip custom na mga pagbabago . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Pag-optimize ng Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Mga Uri ng Memorya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (Data RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Instruction RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (code na isinagawa mula sa flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (data na nakaimbak sa flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Mabagal na memorya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC FAST memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 Kinakailangang May Kakayahang DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA Buffer sa stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Mga mode ng OpenThread stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Paano Sumulat ng OpenThread Application . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 Ang OpenThread Border Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Mga Talahanayan ng Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Mga Built-in na Partition Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Paglikha ng Mga Custom na Talahanayan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Pagbuo ng Binary Partition Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Mga Pagsusuri sa Sukat ng Partisyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Pag-flash ng partition table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Partition Tool (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Paano I-optimize ang Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Mga Gabay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF pagkakalibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Bahagyang pagkakalibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Buong pagkakalibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Walang pagkakalibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY initialization data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 Sanggunian ng API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Tapos na ang Secure Boot Processview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Mga Susi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Sukat ng Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Paano Paganahin ang Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Re-Flashable Software Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Pagbuo ng Secure Boot Signing Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Remote Signing ng Mga Larawan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Pinakamahusay na Mga Kasanayan sa Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Mga Detalye ng Teknikal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Secure Boot at Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Signed App Verification Nang Walang Hardware Secure Boot . . . . . . . . . . . . . . . . . . 2478 4.24.13 Mga Advanced na Tampok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Proseso ng Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Format ng Signature Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Secure Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Pagpapatunay ng Signature Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Pagpapatunay ng Larawan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Laki ng Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 paggamit ng eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Paano Paganahin ang Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Mga paghihigpit pagkatapos paganahin ang Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Pagbuo ng Secure Boot Signing Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi

4.25.13 Remote Signing ng Mga Larawan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Mga Pinakamahusay na Kasanayan sa Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Mga Detalye ng Teknikal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Secure Boot at Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Naka-sign na Pag-verify ng App Nang Walang Hardware Secure Boot . . . . . . . . . . . . . . . . . . 2484 4.25.18 Mga Advanced na Tampok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Suporta para sa Panlabas na RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Panimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Pag-configure ng Panlabas na RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Mga Paghihigpit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Pagkabigong simulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Mga Pagbabago sa Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Lokal na Imbakan ng Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 LibrengRTOS Native API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Pamantayan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Mga Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF Component Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Mga Nada-download na Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Unit Testing sa ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Mga Normal na Test Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Mga Multi-device na Test Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Multi-stage Mga Test Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Mga Pagsusuri Para sa Iba't Ibang Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Building Unit Test App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Running Unit Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Timing Code na may Cache Compensated Timer . . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Mga pangungutya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Unit Testing sa Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Mga Pagsubok sa Naka-embed na Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF Unit Tests sa Linux Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Listahan ng Tampok ng ESP32 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Paano Sumulat ng Wi-Fi Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi API Error Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi API Parameter Initialization . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wi-Fi Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 Wi-Fi Paglalarawan ng Kaganapan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi Station Pangkalahatang Sitwasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP Pangkalahatang Sitwasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi Station Connecting Scenario . . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 Kumokonekta ang ESP32 Wi-Fi Station Kapag Nahanap ang Maramihang AP . . . . . . . . . . . . . 2543 4.31.12 Kumonekta muli ng Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi Beacon Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 Wi-Fi Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Pamamahala ng Wireless Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Pagsukat ng Mapagkukunan ng Radyo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Mabilis na BSS Transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi Power-saving Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wi-Fi Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Wi-Fi 80211 Packet Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi Sniffer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi Maramihang Antenna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Impormasyon ng Estado ng Wi-Fi Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Wi-Fi Channel State Information Configure . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Wi-Fi Fragment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS Enrollee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Paggamit ng Wi-Fi Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Paano Pahusayin ang Pagganap ng Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi Menuconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Pag-troubleshoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Seguridad ng Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 Wi-Fi Security Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Protected Management Frames (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 Coexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Lampasview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Sinusuportahang Coexistence Scenario para sa ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Mekanismo at Patakaran ng Coexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Paano Gamitin ang Coexistence Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Reproducible Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Panimula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Mga dahilan para sa mga di-reproducible build . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Pag-enable ng mga reproducible build sa ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Paano nakakamit ang mga reproducible build . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Reproducible build at debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Mga salik na nakakaapekto pa rin sa mga muling ginawang build. . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Gabay sa Gumagamit ng Low Power Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578

5 Mga Gabay sa Migrasyon

2579

5.1 ESP-IDF 5.x Patnubay sa Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 Migration mula 4.4 hanggang 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 Mga Aklatan at Framework

2611

6.1 Cloud Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

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

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

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

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

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

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

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

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

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

6.2 Espressifns Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

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

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

6.2.3 Espressif DSP Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.4 ESP-WIFI-MESH Development Framework . . . . . . . . . . . . . . . . . . . . . . . . 2613

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

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

6.2.7 ESP-IoT-Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.8 ESP-Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

viii

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

7 Gabay sa Kontribusyon

2615

7.1 Paano Mag-ambag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.2 Bago Mag-ambag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.3 Proseso ng Paghiling ng Hilahin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.4 Legal na Bahagi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5 Mga Kaugnay na Dokumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.1 Espressif IoT Development Framework Gabay sa Estilo . . . . . . . . . . . . . . . . . . . . 2616

7.5.2 Mag-install ng pre-commit Hook para sa ESP-IDF Project . . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Documenting Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Paglikha ng Halamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 Template ng Dokumentasyon ng API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Kasunduan sa Contributor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

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

7.5.8 Mga Pagsusuri sa ESP-IDF na may Gabay sa Pytest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635

8 Mga Bersyon ng ESP-IDF

2645

8.1 Mga Paglabas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.2 Sa Aling Bersyon Ako Dapat Magsimula? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.3 Versioning Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.4 Mga Panahon ng Suporta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 Pagsusuri sa Kasalukuyang Bersyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

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

8.7 Pag-update ng ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 Pag-update sa Stable Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.2 Pag-update sa isang Pre-Release na Bersyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 Pag-update sa Master Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 Pag-update sa isang Release Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 Mga Mapagkukunan

2651

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

9.1.1 Ano ang PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 Pag-install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Mga Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Proyekto Halamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Mga Susunod na Hakbang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Mga Kapaki-pakinabang na Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

10 Mga Copyright at Lisensya

2653

10.1 Mga Copyright sa Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.1 Mga Bahagi ng Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 Dokumentasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 ROM Source Code Copyrights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.3 Xtensa libhal MIT License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.4 TinyBasic Plus MIT License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.5 TJpgDec Lisensya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

11 Tungkol sa

2657

12 Lumipat sa Pagitan ng mga Wika

2659

Index

2661

Index

2661

ix

x

Talaan ng nilalaman
Ito ang dokumentasyon para sa Espressif IoT Development Framework (esp-idf). Ang ESP-IDF ay ang opisyal na balangkas ng pagpapaunlad para sa ESP32, ESP32-S at ESP32-C Series SoCs. Inilalarawan ng dokumentong ito ang paggamit ng ESP-IDF sa ESP32 SoC.

Magsimula

Sanggunian ng API

Mga Gabay sa API

Mga Sistema ng Espressif

1 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Talaan ng nilalaman

Mga Sistema ng Espressif

2 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1
Magsimula
Ang dokumentong ito ay nilayon na tulungan kang i-set up ang software development environment para sa hardware batay sa ESP32 chip ng Espressif. Pagkatapos nito, isang simpleng exampIpapakita sa iyo kung paano gamitin ang ESP-IDF (Espressif IoT Development Framework) para sa configuration ng menu, pagkatapos ay para sa pagbuo at pag-flash ng firmware sa isang ESP32 board.
Tandaan: Ito ay dokumentasyon para sa stable na bersyon v5.0.9 ng ESP-IDF. Available din ang iba pang Bersyon ng ESP-IDF.
1.1 Panimula
Ang ESP32 ay isang system sa isang chip na nagsasama ng mga sumusunod na feature: · Wi-Fi (2.4 GHz band) · Bluetooth · Dual high performance Xtensa® 32-bit LX6 CPU cores · Ultra Low Power co-processor · Maramihang peripheral
Pinapatakbo ng 40 nm na teknolohiya, ang ESP32 ay nagbibigay ng isang matatag, lubos na pinagsama-samang platform, na tumutulong na matugunan ang patuloy na mga pangangailangan para sa mahusay na paggamit ng kuryente, compact na disenyo, seguridad, mataas na pagganap, at pagiging maaasahan. Nagbibigay ang Espressif ng mga pangunahing mapagkukunan ng hardware at software upang matulungan ang mga developer ng application na maunawaan ang kanilang mga ideya gamit ang ESP32 series hardware. Ang software development framework ng Espressif ay nilayon para sa pagbuo ng Internetof-Things (IoT) na mga application na may Wi-Fi, Bluetooth, power management at ilang iba pang feature ng system.
1.2 Ano ang Kailangan Mo
1.2.1 Hardware
· Isang ESP32 board. · USB cable – USB A / micro USB B. · Computer na nagpapatakbo ng Windows, Linux, o macOS.
Tandaan: Sa kasalukuyan, ang ilan sa mga development board ay gumagamit ng USB Type C connectors. Tiyaking mayroon kang tamang cable para ikonekta ang iyong board!
Kung mayroon kang isa sa mga opisyal na development board ng ESP32 na nakalista sa ibaba, maaari kang mag-click sa link upang matuto nang higit pa tungkol sa hardware.
3

Kabanata 1. Magsimula
ESP32-DevKitS(-R)
Ang gabay sa gumagamit na ito ay nagbibigay ng impormasyon sa ESP32-DevKitS(-R), isang ESP32-based na flashing board na ginawa ng Espressif. Ang ESP32-DevKitS(-R) ay kumbinasyon ng dalawang board name: ESP32-DevKitS at ESP32-DevKitS-R. Ang S ay nangangahulugang mga bukal, at ang R ay nangangahulugang WROVER.

ESP32-DevKitS

ESP32-DevKitS-R

Binubuo ang dokumento ng mga sumusunod na pangunahing seksyon: · Pagsisimula: Nagbibigay ng overview ng ESP32-DevKitS(-R) at mga tagubilin sa pag-setup ng hardware/software para makapagsimula. · Hardware Reference: Nagbibigay ng mas detalyadong impormasyon tungkol sa ESP32-DevKitS(-R)ns hardware. · Mga Kaugnay na Dokumento: Nagbibigay ng mga link sa kaugnay na dokumentasyon.

Pagsisimula Inilalarawan ng seksyong ito kung paano magsimula sa ESP32-DevKitS(-R). Nagsisimula ito sa ilang panimulang seksyon tungkol sa ESP32-DevKitS(-R), pagkatapos ay ang Section How to Flash a Board ay nagbibigay ng mga tagubilin kung paano mag-mount ng module sa ESP32-DevKitS(-R), ihanda ito, at mag-flash ng firmware dito.

Tapos naview Ang ESP32-DevKitS(-R) ay ESPressifns flashing board na sadyang idinisenyo para sa ESP32. Maaari itong magamit upang mag-flash ng ESP32 module nang hindi naghihinang ng module sa power supply at mga linya ng signal. Sa isang module na naka-mount, ang ESP32-DevKitS(-R) ay maaari ding gamitin bilang isang mini development board tulad ng ESP32-DevKitC.
Ang mga ESP32-DevKitS at ESP32-DevKitS-R board ay nag-iiba lamang sa layout ng mga spring pin upang magkasya sa mga sumusunod na ESP32 module.
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB at IPEX) ESP32-WROVER-B (PCB at IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Para sa impormasyon tungkol sa mga module sa itaas, mangyaring sumangguni sa ESP32 Series Modules.

Paglalarawan ng Mga Bahagi

Mga Sistema ng Espressif

4 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Fig. 1: ESP32-DevKitS – harap

Mga Sistema ng Espressif

Fig. 2: ESP32-DevKitS-R – harap 5
Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Mga Pangunahing Bahagi ng Spring Pin na 2.54 mm na Pambabaeng Header
USB-to-UART Bridge LDO Micro-USB Connector/Micro USB Port EN Button Boot Button
Power On LED

Paglalarawan I-click ang module sa loob. Ang mga pin ay magkakasya sa mga module na naka-castellated na butas. Ang mga babaeng header na ito ay konektado sa mga pin ng module na naka-mount sa board na ito. Para sa paglalarawan ng mga babaeng header, mangyaring sumangguni sa Header Blocks. Ang single-chip USB to UART bridge ay nagbibigay ng mga rate ng paglilipat na hanggang 3 Mbps.
5V-to-3.3V low-dropout voltage regulator (LDO).
USB interface. Power supply para sa board pati na rin ang interface ng komunikasyon sa pagitan ng isang computer at ng board.
I-reset ang pindutan.
Button sa pag-download. Ang pagpindot sa Boot at pagkatapos ay pagpindot sa EN ay magsisimula ng Firmware Download mode para sa pag-download ng firmware sa pamamagitan ng serial port.
Ino-on kapag nakakonekta ang USB o power supply sa board.

Paano Mag-flash ng Board Bago paganahin ang iyong ESP32-DevKitS(-R), pakitiyak na ito ay nasa mabuting kondisyon nang walang halatang senyales ng pinsala.
Kinakailangang Hardware · Isang ESP32 module na iyong pinili · USB 2.0 cable (Standard-A to Micro-B) · Computer na tumatakbo sa Windows, Linux, o macOS
Setup ng Hardware Mangyaring i-mount ang isang module na iyong pinili sa iyong ESP32-DevKitS(-R) ayon sa mga sumusunod na hakbang:
· Dahan-dahang ilagay ang iyong module sa ESP32-DevKitS(-R) board. Tiyaking nakahanay ang mga castellated hole sa iyong module sa mga spring pin sa board.
· Pindutin ang iyong module pababa sa board hanggang sa mag-click ito. · Suriin kung ang lahat ng mga spring pin ay ipinasok sa mga butas na may castellated. Kung mayroong ilang hindi pagkakatugmang spring pin,
ilagay ang mga ito sa mga castellated hole na may mga sipit.
Pag-setup ng Software
Preferred Method Ang ESP-IDF development framework ay nagbibigay ng gustong paraan ng pag-flash ng mga binary sa ESP32-DevKitS(-R). Mangyaring magpatuloy sa Magsimula, kung saan ang Pag-install ng Seksyon ay mabilis na tutulong sa iyo na i-set up ang development environment at pagkatapos ay mag-flash ng application examppumunta sa iyong ESP32-DevKitS(-R).
Alternatibong Paraan Bilang alternatibo, ang mga gumagamit ng Windows ay maaaring mag-flash ng mga binary gamit ang Flash Download Tool. I-download lang ito, i-unzip ito, at sundin ang mga tagubilin sa loob ng folder ng doc.
Tandaan: 1. Upang mag-flash ng binary files, ang ESP32 ay dapat itakda sa Firmware Download mode. Magagawa ito alinman sa pamamagitan ng awtomatikong flash tool, o sa pamamagitan ng pagpindot sa Boot button at pag-tap sa EN button. 2. Pagkatapos mag-flash ng binary files, ire-restart ng Flash Download Tool ang iyong ESP32 module at i-boot ang naka-flash na application bilang default.

Mga Dimensyon ng Board Mga Nilalaman at Packaging

Mga Sistema ng Espressif

6 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula Fig. 3: Mga sukat ng board ng ESP32-DevKitS – pabalik

Mga Sistema ng Espressif

Fig. 4: Mga sukat ng ESP32-DevKitS-R board – likod 7
Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Mga retail order Kung mag-order ka ng ilang sampSa ngayon, ang bawat ESP32-DevKitS(-R) ay nasa isang indibidwal na pakete sa alinman sa antistatic na bag o anumang packaging depende sa isang retailer. Para sa mga retail order, mangyaring pumunta sa https://www.espressif.com/en/contact-us/get-samples.
Mga Pakyawan na Order Kung mag-order ka nang maramihan, ang mga board ay nasa malalaking karton na kahon. Para sa pakyawan na mga order, mangyaring pumunta sa https://www.espressif.com/en/contact-us/sales-questions.
Sanggunian sa Hardware
Block Diagram Ang isang block diagram sa ibaba ay nagpapakita ng mga bahagi ng ESP32-DevKitS(-R) at ang kanilang mga interconnection.

Fig. 5: ESP32-DevKitS(-R) (i-click para palakihin)
Mga Opsyon sa Power Supply Mayroong tatlong magkahiwalay na paraan upang magbigay ng power sa board: · Micro USB port, default na power supply · 5V at GND header pins · 3V3 at GND header pins
Pinapayuhan na gamitin ang unang opsyon: micro USB port.

Mga Sistema ng Espressif

.

Signal ng Label

L1 3V3 VDD 3V3

L2 EN CHIP_PU

L3 VP SENSOR_VP

L4 VN SENSOR_VN

L5 34

GPIO34

L6 35

GPIO35

L7 32

GPIO32

L8 33

GPIO33

magpapatuloy sa susunod na pahina

8 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Ang talahanayan 1 ay nagpatuloy mula sa nakaraang pahina

.

Signal ng Label

L9 25

GPIO25

L10 26

GPIO26

L11 27

GPIO27

L12 14

GPIO14

L13 12

GPIO12

L14 GND GND

L15 13

GPIO13

L16 D2 SD_DATA2

L17 D3 SD_DATA3

L18 CMD SD_CMD

L19 5V

Panlabas na 5V

R1 GND GND

R2 23

GPIO23

R3 22

GPIO22

R4 TX U0TXD

R5 RX U0RXD

R6 21

GPIO21

R7 GND GND

R8 19

GPIO19

R9 18

GPIO18

R10 5

GPIO5

R11 17

GPIO17

R12 16

GPIO16

R13 4

GPIO4

R14 0

GPIO0

R15 2

GPIO2

R16 15

GPIO15

R17 D1 SD_DATA1

R18 D0 SD_DATA0

R19 CLK SD_CLK

Mga Block ng Header Para sa larawan ng mga bloke ng header, mangyaring sumangguni sa Paglalarawan ng Mga Bahagi.

Mga Kaugnay na Dokumento
· ESP32-DevKitS(-R) Schematics (PDF) · ESP32 Datasheet (PDF) · ESP32-WROOM-32 Datasheet (PDF) · ESP32-WROOM-32D & ESP32-WROOM-32U Datasheet (PDF) · ESP32-SOLO-F Datasheet (32SOLO-F) Datasheet ng ESP32-SOLO-F (PDF) · ESP1-WROVER-B Datasheet (PDF) · Tagapili ng Produkto ng ESP

ESP32-DevKitM-1

Tutulungan ka ng gabay sa gumagamit na ito na makapagsimula sa ESP32-DevKitM-1 at magbibigay din ng mas malalim na impormasyon.
Ang ESP32-DevKitM-1 ay isang ESP32-MINI-1(1U)-based na development board na ginawa ng Espressif. Karamihan sa mga I/O pin ay pinaghiwa-hiwalay sa mga pin header sa magkabilang panig para sa madaling interfacing. Maaaring ikonekta ng mga user ang mga peripheral gamit ang mga jumper wire o i-mount ang ESP32-DevKitM-1 sa isang breadboard.

Mga Sistema ng Espressif

9 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

ESP32-DevKitM-1 – harap

ESP32-DevKitM-1 – isometric

Binubuo ang dokumento ng mga sumusunod na pangunahing seksyon: · Pagsisimula: Nagbibigay ng overview ng ESP32-DevKitM-1 at mga tagubilin sa pag-setup ng hardware/software para makapagsimula. · Sanggunian sa hardware: Nagbibigay ng mas detalyadong impormasyon tungkol sa ESP32-DevKitM-1ns hardware. · Mga Kaugnay na Dokumento: Nagbibigay ng mga link sa kaugnay na dokumentasyon.

Pagsisimula Inilalarawan ng seksyong ito kung paano magsimula sa ESP32-DevKitM-1. Nagsisimula ito sa ilang panimulang seksyon tungkol sa ESP32-DevKitM-1, pagkatapos ay nagbibigay ang Section Start Application Development ng mga tagubilin kung paano gawin ang paunang pag-setup ng hardware at pagkatapos ay kung paano mag-flash ng firmware sa ESP32-DevKitM-1.

Tapos naview Ito ay isang maliit at maginhawang development board na nagtatampok ng:
· ESP32-MINI-1, o ESP32-MINI-1U module · USB-to-serial programming interface na nagbibigay din ng power supply para sa board · pin header · mga pushbutton para sa pag-reset at pag-activate ng Firmware Download mode · ilan pang bahagi

Mga Nilalaman at Packaging

Mga retail order Kung mag-order ka ng ilang sampSa ngayon, ang bawat ESP32-DevKitM-1 ay nasa isang indibidwal na pakete sa alinman sa antistatic na bag o anumang packaging depende sa iyong retailer.
Para sa mga retail order, mangyaring pumunta sa https://www.espressif.com/en/contact-us/get-samples.

Mga Pakyawan na Order Kung mag-order ka nang maramihan, ang mga board ay nasa malalaking karton na kahon. Para sa pakyawan na mga order, mangyaring pumunta sa https://www.espressif.com/en/contact-us/sales-questions.

Paglalarawan ng Mga Bahagi Ang sumusunod na figure at ang talahanayan sa ibaba ay naglalarawan ng mga pangunahing bahagi, interface at kontrol ng ESP32-DevKitM-1 board. Kinukuha namin ang board na may ESP32-MINI-1 module bilang example sa mga sumusunod na seksyon.

Mga Sistema ng Espressif

10 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Larawan 6: ESP32-DevKitM-1 – harap

Key Component On-board module
5 V hanggang 3.3 V LDO Boot Button
I-reset ang Button na Micro-USB Port
USB-to-UART Bridge 3.3 V Power On LED
I/O Connector

Paglalarawan
ESP32-MINI-1 module o ESP32-MINI-1U module. Ang ESP32-MINI-1 ay may kasamang on-board na PCB antenna. Ang ESP32-MINI-1U ay may kasamang panlabas na antenna connector. Ang dalawang module ay parehong may 4 MB flash sa chip package. Para sa mga detalye, pakitingnan ang ESP32-MINI-1 at ESP32-MINI-1U Datasheet.
Ang power regulator ay nagko-convert ng 5 V sa 3.3 V.
Button sa pag-download. Ang pagpindot sa Boot at pagkatapos ay ang pagpindot sa I-reset ay magsisimula ng Firmware Download mode para sa pag-download ng firmware sa pamamagitan ng serial port.
I-reset ang Pindutan
USB interface. Power supply para sa board pati na rin ang interface ng komunikasyon sa pagitan ng isang computer at ng ESP32 chip.
Ang solong USB-UART bridge chip ay nagbibigay ng mga rate ng paglilipat ng hanggang 3 Mbps.
Naka-on kapag nakakonekta ang USB sa board. Para sa mga detalye, pakitingnan ang mga schematic sa Mga Kaugnay na Dokumento. Ang lahat ng available na GPIO pin (maliban sa SPI bus para sa flash) ay pinaghiwa-hiwalay sa mga pin header sa board. Ang mga gumagamit ay maaaring mag-program ng ESP32 chip upang paganahin ang maramihang mga function.

Simulan ang Pag-develop ng Application Bago paganahin ang iyong ESP32-DevKitM-1, pakitiyak na ito ay nasa mabuting kondisyon nang walang halatang senyales ng pinsala.
Mga Kinakailangang Hardware · ESP32-DevKitM-1 · USB 2.0 cable (Standard-A to Micro-B) · Computer na tumatakbo sa Windows, Linux, o macOS
Software Setup Mangyaring magpatuloy sa Magsimula, kung saan ang Pag-install ng Seksyon ay mabilis na tutulong sa iyo na i-set up ang development environment at pagkatapos ay mag-flash ng application examppumunta sa iyong ESP32-DevKitM-1.

Mga Sistema ng Espressif

11 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Pansin: Ang mga ESP32-DevKitM-1 board na ginawa bago ang Disyembre 2, 2021 ay may naka-install na solong core module. Upang i-verify kung anong module ang mayroon ka, pakisuri ang impormasyon sa pagmamarka ng module sa PCN-2021-021 . Kung ang iyong board ay may naka-install na single core module, mangyaring paganahin ang single core mode (CONFIG_FREERTOS_UNICORE) sa menuconfig bago i-flash ang iyong mga application.
Hardware Reference Block Diagram Ang isang block diagram sa ibaba ay nagpapakita ng mga bahagi ng ESP32-DevKitM-1 at ang kanilang mga interconnection.

Larawan 7: ESP32-DevKitM-1
Power Source Select May tatlong magkaibang paraan para magbigay ng power sa board: · Micro USB port, default power supply · 5V at GND header pins · 3V3 at GND header pins
Babala: · Ang power supply ay dapat ibigay gamit ang isa at isa lamang sa mga opsyon sa itaas, kung hindi ay maaaring masira ang board at/o ang power supply source. · Inirerekomenda ang power supply sa pamamagitan ng micro USB port.

Mga Paglalarawan ng Pin Ang talahanayan sa ibaba ay nagbibigay ng Pangalan at Function ng mga pin sa magkabilang panig ng board. Para sa mga pagsasaayos ng peripheral pin, mangyaring sumangguni sa ESP32 Datasheet.

Hindi.

Pangalan

Uri

1

GND

P

2

3V3

P

Function Ground 3.3 V power supply

magpapatuloy sa susunod na pahina

Mga Sistema ng Espressif

12 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Ang talahanayan 2 ay nagpatuloy mula sa nakaraang pahina

Hindi.

Pangalan

Uri

Function

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

I-reset; Mataas: paganahin; Mababa: powers off

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32

I/O

GPIO32, XTAL_32K_P (32.768 kHz crystal oscillator input),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

I/O

GPIO33, XTAL_32K_N (32.768 kHz crystal oscillator output),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25

I/O

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26

I/O

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27

I/O

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14

I/O

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

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

5 V power supply

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

Mga Detalye ng Pagbabago ng Hardware Walang magagamit na mga nakaraang bersyon.
Mga Kaugnay na Dokumento
· ESP32-MINI-1 at ESP32-MINI-1U Datasheet (PDF) · ESP32-DevKitM-1 Schematics (PDF) · ESP32-DevKitM-1 PCB layout (PDF) · ESP32-DevKitM-1 layout (DXF) – Maaari mong view ito gamit ang Autodesk Viewer online · ESP32 Datasheet (PDF) · ESP Product Selector
Para sa iba pang dokumentasyon ng disenyo para sa board, mangyaring makipag-ugnayan sa amin sa sales@espressif.com.

Mga Sistema ng Espressif

13 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
1.2.2 software
Upang simulang gamitin ang ESP-IDF sa ESP32, i-install ang sumusunod na software: · Toolchain para mag-compile ng code para sa ESP32 · Bumuo ng mga tool – CMake at Ninja para bumuo ng isang buong Application para sa ESP32 · ESP-IDF na mahalagang naglalaman ng API (software library at source code) para sa ESP32 at mga script para patakbuhin ang Toolchain

1.3 Pag-install
Upang mai-install ang lahat ng kinakailangang software, nag-aalok kami ng ilang iba't ibang paraan upang mapadali ang gawaing ito. Pumili mula sa isa sa mga magagamit na opsyon.
1.3.1 IDE

Tandaan: Lubos naming inirerekomenda ang pag-install ng ESP-IDF sa pamamagitan ng iyong paboritong IDE.
· Eclipse Plugin · VSCode Extension

1.3.2 Manu-manong Pag-install
Para sa manu-manong pamamaraan, mangyaring pumili ayon sa iyong operating system.

Mga Sistema ng Espressif

14 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Standard Setup ng Toolchain para sa Windows
Panimula Nangangailangan ang ESP-IDF ng ilang kinakailangang kasangkapan upang mai-install upang makagawa ka ng firmware para sa mga sinusuportahang chips. Kasama sa mga kinakailangang tool ang Python, Git, cross-compiler, CMake at Ninja build tool. Para sa Pagsisimula na ito, gagamitin ang Command Prompt, ngunit pagkatapos ma-install ang ESP-IDF maaari mong gamitin ang Eclipse Plugin o isa pang graphical na IDE na may suporta sa CMake. Tandaan: Mga Limitasyon: – Ang landas ng pag-install ng ESP-IDF at ESP-IDF Tools ay hindi dapat mas mahaba sa 90 character. Ang masyadong mahahabang daanan ng pag-install ay maaaring magresulta sa isang nabigong build. – Ang landas ng pag-install ng Python o ESP-IDF ay hindi dapat maglaman ng mga puting espasyo o panaklong. – Ang landas ng pag-install ng Python o ESP-IDF ay hindi dapat maglaman ng mga espesyal na character (nonASCII) maliban kung ang operating system ay na-configure na may oUnicode UTF-8psupport. Maaaring paganahin ng System Administrator ang suporta sa pamamagitan ng Control Panel – Baguhin ang mga format ng petsa, oras, o numero – Administrative tab – Baguhin ang locale ng system – suriin ang opsyon oBeta: Gamitin ang Unicode UTF-8 para sa suporta sa wikang pandaigdigp – Ok at i-reboot ang computer.
ESP-IDF Tools Installer Ang pinakamadaling paraan sa pag-install ng mga ESP-IDFns na kinakailangan ay ang pag-download ng isa sa ESP-IDF Tools Installer.

Pag-download ng Windows Installer
Ano ang usecase para sa Online at Offline na Installer na Online Installer ay napakaliit at pinapayagan ang pag-install ng lahat ng available na release ng ESP-IDF. Ang installer ay magda-download lamang ng mga kinakailangang dependency kabilang ang Git Para sa Windows sa panahon ng proseso ng pag-install. Na-download ang mga tindahan ng installer files sa direktoryo ng cache na %userprofile%. espressif
Ang Offline Installer ay hindi nangangailangan ng anumang koneksyon sa network. Ang installer ay naglalaman ng lahat ng kinakailangang dependencies kabilang ang Git For Windows .
Mga bahagi ng pag-install Idini-deploy ng installer ang mga sumusunod na bahagi:
· Naka-embed na Python · Cross-compiler · OpenOCD · CMake at Ninja build tool · ESP-IDF
Pinapayagan din ng installer ang muling paggamit ng kasalukuyang direktoryo sa ESP-IDF. Ang inirerekomendang direktoryo ay %userprofile%Desktopesp-idf kung saan %userprofile% ang iyong home directory.

Mga Sistema ng Espressif

15 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Paglulunsad ng ESP-IDF Environment Sa pagtatapos ng proseso ng pag-install maaari mong tingnan ang opsyong Patakbuhin ang ESP-IDF PowerShell Environment o Patakbuhin ang ESP-IDF Command Prompt (cmd.exe). Ilulunsad ng installer ang ESP-IDF environment sa napiling prompt. Patakbuhin ang ESP-IDF PowerShell Environment:

Fig. 8: Pagkumpleto ng ESP-IDF Tools Setup Wizard gamit ang Run ESP-IDF PowerShell Environment
Patakbuhin ang ESP-IDF Command Prompt (cmd.exe):
Gamit ang Command Prompt Para sa natitirang mga hakbang sa Pagsisimula, gagamitin namin ang Windows Command Prompt. Gumagawa din ang ESP-IDF Tools Installer ng shortcut sa Start menu para ilunsad ang ESP-IDF Command Prompt. Ang shortcut na ito ay naglulunsad ng Command Prompt (cmd.exe) at nagpapatakbo ng export.bat script upang i-set up ang mga variable ng kapaligiran (PATH, IDF_PATH at iba pa). Sa loob ng command prompt na ito, available ang lahat ng naka-install na tool. Tandaan na ang shortcut na ito ay partikular sa ESP-IDF na direktoryo na pinili sa ESP-IDF Tools Installer. Kung marami kang ESP-IDF na direktoryo sa computer (halimbawa, halample, upang gumana sa iba't ibang bersyon ng ESP-IDF), mayroon kang dalawang opsyon para gamitin ang mga ito:
1. Gumawa ng kopya ng shortcut na ginawa ng ESP-IDF Tools Installer, at baguhin ang gumaganang direktoryo ng bagong shortcut sa ESP-IDF na direktoryo na gusto mong gamitin.
2. Bilang kahalili, patakbuhin ang cmd.exe, pagkatapos ay lumipat sa direktoryo ng ESP-IDF na nais mong gamitin, at patakbuhin ang export.bat. Tandaan na hindi tulad ng nakaraang opsyon, ang paraang ito ay nangangailangan ng Python at Git na naroroon sa PATH. Kung nakakakuha ka ng mga error na nauugnay sa Python o Git na hindi nahanap, gamitin ang unang opsyon.
Mga Unang Hakbang sa ESP-IDF Ngayon dahil ang lahat ng mga kinakailangan ay natutugunan, ang susunod na paksa ay gagabay sa iyo kung paano simulan ang iyong unang proyekto.

Mga Sistema ng Espressif

16 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula Fig. 9: ESP-IDF PowerShell

Fig. 10: Pagkumpleto ng ESP-IDF Tools Setup Wizard gamit ang Run ESP-IDF Command Prompt (cmd.exe)

Mga Sistema ng Espressif

17 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Fig. 11: ESP-IDF Command Prompt

Mga Sistema ng Espressif

18 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Tutulungan ka ng gabay na ito sa mga unang hakbang gamit ang ESP-IDF. Sundin ang gabay na ito upang magsimula ng bagong proyekto sa ESP32 at bumuo, mag-flash, at subaybayan ang output ng device. Tandaan: Kung hindi mo pa na-install ang ESP-IDF, mangyaring pumunta sa Pag-install at sundin ang pagtuturo upang makuha ang lahat ng software na kailangan para magamit ang gabay na ito.

Magsimula ng Proyekto Ngayon ay handa ka nang ihanda ang iyong aplikasyon para sa ESP32. Maaari kang magsimula sa getstarted/hello_world na proyekto mula sa examples directory sa ESP-IDF.
Mahalaga: Hindi sinusuportahan ng build system ng ESP-IDF ang mga puwang sa mga landas patungo sa ESP-IDF o sa mga proyekto.
Kopyahin ang proyekto get-started/hello_world sa ~/esp directory: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
Tandaan: Mayroong hanay ng example projects sa examples directory sa ESP-IDF. Maaari mong kopyahin ang anumang proyekto sa parehong paraan tulad ng ipinakita sa itaas at patakbuhin ito. Posible ring bumuo ng examples in-place nang hindi kinokopya muna ang mga ito.

Ikonekta ang Iyong Device Ngayon ikonekta ang iyong ESP32 board sa computer at tingnan sa ilalim kung aling serial port ang board ay makikita. Ang mga pangalan ng serial port ay nagsisimula sa COM sa Windows. Kung hindi ka sigurado kung paano suriin ang serial port name, mangyaring sumangguni sa Magtatag ng Serial Connection sa ESP32 para sa buong detalye.
Tandaan: Panatilihing madaling gamitin ang pangalan ng port dahil kakailanganin mo ito sa mga susunod na hakbang.

I-configure ang Iyong Project Mag-navigate sa iyong hello_world directory, itakda ang ESP32 bilang target, at patakbuhin ang project configuration utility menuconfig.
Windows cd %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Pagkatapos magbukas ng bagong proyekto, dapat mo munang itakda ang target gamit ang idf.py set-target esp32. Tandaan na ang mga kasalukuyang build at configuration sa proyekto, kung mayroon man, ay iki-clear at masisimulan sa prosesong ito. Maaaring i-save ang target sa variable ng kapaligiran upang laktawan ang hakbang na ito. Tingnan ang Piliin ang Target na Chip: set-target para sa karagdagang impormasyon. Kung nagawa nang tama ang mga nakaraang hakbang, lalabas ang sumusunod na menu: Ginagamit mo ang menu na ito upang mag-set up ng mga variable na partikular sa proyekto, hal, pangalan at password ng Wi-Fi network, ang bilis ng processor, atbp. Ang pag-set up ng proyekto gamit ang menuconfig ay maaaring laktawan para sa ohello_wordp, dahil ang ex na itoample ay tumatakbo sa default na configuration.
Pansin: Kung gumagamit ka ng ESP32-DevKitC board na may ESP32-SOLO-1 module, o ESP32-DevKitM-1 board na may ESP32-MIN1-1(1U) module, mangyaring paganahin ang single core mode (CONFIG_FREERTOS_UNICORE) sa menuconfig bago mag-flash ng examples.

Mga Sistema ng Espressif

19 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Fig. 12: Configuration ng proyekto – Home window
Tandaan: Maaaring iba ang mga kulay ng menu sa iyong terminal. Maaari mong baguhin ang hitsura gamit ang opsyon -style. Mangyaring patakbuhin ang idf.py menuconfig –help para sa karagdagang impormasyon.
Kung gumagamit ka ng isa sa mga sinusuportahang development board, maaari mong pabilisin ang iyong development sa pamamagitan ng paggamit ng Board Support Package. Tingnan ang Mga Karagdagang Tip para sa higit pang impormasyon.
Buuin ang Proyekto Buuin ang proyekto sa pamamagitan ng pagpapatakbo:
idf.py build
Isasama ng command na ito ang application at lahat ng bahagi ng ESP-IDF, pagkatapos ay bubuo ito ng bootloader, partition table, at mga binary ng application.
$ idf.py build Pagpapatakbo ng cmake sa direktoryo /path/to/hello_world/build Isinasagawa ang “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Magbabala tungkol sa mga hindi nasimulang value. — Nahanap na Git: /usr/bin/git (nahanap na bersyon “2.17.0”) — Pagbuo ng walang laman na bahagi ng aws_iot dahil sa pagsasaayos — Mga pangalan ng bahagi: … — Mga path ng bahagi: …
… (higit pang mga linya ng build system output)
[527/527] Bumubuo ng hello_world.bin esptool.py v2.3.1
Nakumpleto ang pagbuo ng proyekto. Upang mag-flash, patakbuhin ang command na ito: ../../../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 o patakbuhin ang 'idf.py -p PORT flash'
Kung walang mga error, matatapos ang build sa pamamagitan ng pagbuo ng firmware binary .bin files.

Mga Sistema ng Espressif

20 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Flash sa Device I-flash ang mga binary na kakagawa mo lang (bootloader.bin, partition-table.bin at hello_world.bin) sa iyong ESP32 board sa pamamagitan ng pagpapatakbo ng: idf.py -p PORT [-b BAUD] flash
Palitan ang PORT ng iyong ESP32 boardns serial port name. Maaari mo ring baguhin ang flasher baud rate sa pamamagitan ng pagpapalit sa BAUD ng baud rate na kailangan mo. Ang default na baud rate ay 460800. Para sa higit pang impormasyon sa mga argumento ng idf.py, tingnan ang idf.py.
Tandaan: Awtomatikong binubuo at pinapa-flash ng opsyong flash ang proyekto, kaya hindi kinakailangan ang pagpapatakbo ng idf.py build.

Nakatagpo ng mga Isyu Habang Nag-flash? Kung patakbuhin mo ang ibinigay na utos at makakita ng mga error tulad ng Nabigong kumonekta, maaaring may ilang dahilan para dito. Ang isa sa mga dahilan ay maaaring mga isyung nakatagpo ng esptool.py, ang utility na tinatawag ng build system upang i-reset ang chip, makipag-ugnayan sa ROM bootloader, at flash firmware. Isang simpleng solusyon na susubukan ay ang manu-manong pag-reset na inilarawan sa ibaba, at kung hindi ito makakatulong, makakahanap ka ng higit pang mga detalye tungkol sa mga posibleng isyu sa Pag-troubleshoot.
Awtomatikong nire-reset ng esptool.py ang ESP32 sa pamamagitan ng paggiit ng mga linya ng kontrol ng DTR at RTS ng USB sa serial converter chip, ibig sabihin, FTDI o CP210x (para sa higit pang impormasyon, tingnan ang Magtatag ng Serial Connection sa ESP32). Ang mga linya ng kontrol ng DTR at RTS ay konektado naman sa GPIO0 at CHIP_PU (EN) na mga pin ng ESP32, kaya nagbabago sa voltagAng mga antas ng DTR at RTS ay magbo-boot ng ESP32 sa Firmware Download mode. Bilang isang example, suriin ang eskematiko para sa ESP32 DevKitC development board.
Sa pangkalahatan, hindi ka dapat magkaroon ng mga problema sa opisyal na esp-idf development boards. Gayunpaman, hindi ma-reset ng esptool.py ang iyong hardware nang awtomatiko sa mga sumusunod na kaso:
· Ang iyong hardware ay walang mga linya ng DTR at RTS na konektado sa GPIO0 at CHIP_PU · Ang mga linya ng DTR at RTS ay magkaiba ang pagkaka-configure · Walang ganoong mga serial control lines sa lahat
Depende sa uri ng hardware na mayroon ka, maaari ding manual na ilagay ang iyong ESP32 board sa Firmware Download mode (reset).
· Para sa mga development board na ginawa ng Espressif, ang impormasyong ito ay makikita sa kani-kanilang mga gabay sa pagsisimula o mga gabay sa gumagamit. Para kay example, upang manu-manong i-reset ang isang ESP-IDF development board, pindutin nang matagal ang Boot button (GPIO0) at pindutin ang EN button (CHIP_PU).
· Para sa iba pang mga uri ng hardware, subukang hilahin ang GPIO0 pababa.

Normal na Operasyon Kapag nag-flash, makikita mo ang output log na katulad ng sumusunod:
… 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/bootloader-table. 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Connecting…….._ Chip ay ESP32D0WDQ6 (rebisyon 0) Mga Tampok: WiFi, BT, Dual Core, Coding Scheme Wala Ang Crystal ay 40MHz MAC: 24:0a Tubb: 1000:0a: stub stub: 4:05a: stub: 9:14a tumatakbo... Binabago ang baud rate sa 460800 Binago.
(pagpapatuloy sa susunod na pahina)

Mga Sistema ng Espressif

21 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
(ipinagpatuloy mula sa nakaraang pahina) Kino-configure ang laki ng flash... Na-compress ang 3072 bytes sa 103... Sumulat sa 0x00008000... (100 %) Nagsulat ng 3072 byte (103 naka-compress) sa 0x00008000 sa 0.0 na segundo... 8 na ksh/s. Na-compress ang 26096 bytes sa 15408… Nagsusulat sa 0x00001000… (100 %) Nagsulat ng 26096 bytes (15408 naka-compress) sa 0x00001000 sa loob ng 0.4 segundo (epektibong 546.7 kbit/s na-verify). Na-compress ang 147104 bytes sa 77364... Sumulat sa 0x00010000... (20 %) Sumulat sa 0x00014000... (40 %) Sumulat sa 0x00018000... (60 %) Sumulat sa 0x0001c000% Writing sa 0x0001c000% 0x00020000… (100 %) Nagsulat ng 147104 bytes (77364 compressed) sa 0x00010000 sa loob ng 1.9 segundo (epektibong 615. 5 kbit/s)… Na-verify ang hash ng data.
Aalis... Hard reset sa pamamagitan ng RTS pin... Tapos na
Kung walang mga isyu sa pagtatapos ng proseso ng flash, magre-reboot ang board at magsisimula ang theohello_worldpapplication. Kung gusto mong gamitin ang Eclipse o VS Code IDE sa halip na patakbuhin ang idf.py, tingnan ang Eclipse Plugin, VSCode Extension.
Subaybayan ang Output Upang suriin kung tumatakbo nga ang ohello_worldpis, i-type ang idf.py -p PORT monitor (Huwag kalimutang palitan ang PORT ng iyong serial port name).
Inilunsad ng command na ito ang application ng IDF Monitor:
$ idf.py -p monitor Pagpapatakbo ng idf_monitor sa direktoryo […]/esp/hello_world/build Isinasagawa ang “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor on 115200 —– Umalis: Ctrl+] | Menu: Ctrl+T | Tulong: Ctrl+T na sinusundan ng Ctrl+H –ets Hun 8 2016 00:22:57
una:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) at Hunyo 8, 2016 00:22:57 …
Pagkatapos mag-scroll pataas ng startup at diagnostic logs, dapat mong makita ang oHello world!pprinted out ng application.
… Hello mundo! Nagre-restart sa loob ng 10 segundo... Ito ang esp32 chip na may 2 (mga) CPU core, WiFi/BT/BLE, silicon revision 1, 2MB external flash Minimum na libreng laki ng heap: 298968 bytes Magsisimula muli sa loob ng 9 segundo... Magsisimula muli sa loob ng 8 segundo... Magsisimula muli sa loob ng 7 segundo...
Upang lumabas sa IDF monitor gamitin ang shortcut na Ctrl+].

Mga Sistema ng Espressif

22 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Kung nabigo ang IDF monitor pagkatapos ng pag-upload, o, kung sa halip na ang mga mensahe sa itaas, makakita ka ng mga random na basura na katulad ng ibinigay sa ibaba, malamang na gumagamit ang iyong board ng 26 MHz na kristal. Karamihan sa mga disenyo ng development board ay gumagamit ng 40 MHz, kaya ginagamit ng ESP-IDF ang dalas na ito bilang default na halaga.

Kung mayroon kang ganoong problema, gawin ang sumusunod: 1. Lumabas sa monitor. 2. Bumalik sa menuconfig. 3. Pumunta sa Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency, pagkatapos ay baguhin ang CONFIG_XTAL_FREQ_SEL sa 26 MHz. 4. Pagkatapos nito, buuin at i-flash muli ang application.
Sa kasalukuyang bersyon ng ESP-IDF, ang mga pangunahing XTAL frequency na sinusuportahan ng ESP32 ay ang mga sumusunod:
· 26 MHz · 40 MHz
Tandaan: Maaari mong pagsamahin ang pagbuo, pag-flash at pagsubaybay sa isang hakbang sa pamamagitan ng pagpapatakbo ng: idf.py -p PORT flash monitor
Tingnan din ang: · IDF Monitor para sa mga madaling gamiting shortcut at higit pang mga detalye sa paggamit ng IDF monitor. · idf.py para sa buong sanggunian ng idf.py na mga utos at opsyon.
Iyan lang ang kailangan mo para makapagsimula sa ESP32! Ngayon ay handa ka nang sumubok ng ibang examples, o dumiretso sa pagbuo ng sarili mong mga application.
Mahalaga: Ang ilan sa exampHindi sinusuportahan ng les ang ESP32 dahil hindi kasama sa ESP32 ang kinakailangang hardware kaya hindi ito masuportahan. Kung bumuo ng example, paki-check ang README file para sa talahanayan ng Mga Sinusuportahang Target. Kung ito ay naroroon kasama ang ESP32 target, o ang talahanayan ay wala sa lahat, ang exampGagana ang ESP32.
Mga Karagdagang Tip
Mga isyu sa pahintulot /dev/ttyUSB0 Sa ilang distribusyon ng Linux, maaari mong makuha ang Nabigong buksan ang port /dev/ttyUSB0 na mensahe ng error kapag nag-flash ng ESP32. Ito ay malulutas sa pamamagitan ng pagdaragdag ng kasalukuyang user sa dialout group.
Ang Python compatibility ESP-IDF ay sumusuporta sa Python 3.7 o mas bago. Inirerekomenda na i-upgrade ang iyong operating system sa isang kamakailang bersyon na nakakatugon sa kinakailangang ito. Kasama sa iba pang mga pagpipilian ang pag-install ng Python mula sa mga mapagkukunan o ang paggamit ng isang sistema ng pamamahala ng bersyon ng Python tulad ng pyenv.
Magsimula sa Board Support Package Para mapabilis ang prototyping sa ilang development board, maaari mong gamitin ang Board Support Packages (BSPs), na ginagawang kasingdali ng ilang function call ang pagsisimula ng isang partikular na board.

Mga Sistema ng Espressif

23 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Karaniwang sinusuportahan ng BSP ang lahat ng bahagi ng hardware na ibinigay sa development board. Bukod sa pinout definition at initialization function, ang isang BSP ay nagpapadala ng mga driver para sa mga external na bahagi tulad ng mga sensor, display, audio codec atbp. Ang mga BSP ay ipinamamahagi sa pamamagitan ng IDF Component Manager, kaya makikita ang mga ito sa IDF Component Registry. Herens isang example ng kung paano magdagdag ng ESP-WROVER-KIT BSP sa iyong proyekto: idf.py add-dependency esp_wrover_kit
Marami pang exampang kaunting paggamit ng BSP ay makikita sa BSP examples folder.
Mga Kaugnay na Dokumento Para sa mga advanced na user na gustong i-customize ang proseso ng pag-install: · Pag-update ng mga tool ng ESP-IDF sa Windows · Magtatag ng Serial Connection sa ESP32 · Eclipse Plugin · VSCode Extension · IDF Monitor
Pag-update ng mga tool ng ESP-IDF sa Windows
I-install ang mga tool ng ESP-IDF gamit ang isang script Mula sa Windows Command Prompt, lumipat sa direktoryo kung saan naka-install ang ESPIDF. Pagkatapos ay tumakbo:
install.bat
Para sa Powershell, lumipat sa direktoryo kung saan naka-install ang ESP-IDF. Pagkatapos ay tumakbo:
i-install.ps1
Ito ay magda-download at mag-i-install ng mga tool na kinakailangan para magamit ang ESP-IDF. Kung ang partikular na bersyon ng tool ay naka-install na, walang aksyon na gagawin. Ang mga tool ay dina-download at naka-install sa isang direktoryo na tinukoy sa panahon ng proseso ng ESP-IDF Tools Installer. Bilang default, ito ay C:Usersusername.espressif.
Magdagdag ng mga tool ng ESP-IDF sa PATH gamit ang isang export script Gumagawa ang ESP-IDF tools installer ng Start menu shortcut para sa oESP-IDF Command Promptp. Ang shortcut na ito ay nagbubukas ng isang Command Prompt na window kung saan ang lahat ng mga tool ay mayroon na
magagamit. Sa ilang mga kaso, maaaring gusto mong magtrabaho kasama ang ESP-IDF sa isang Command Prompt na window na hindi nagsimulang gumamit ng shortcut na iyon. Kung ito ang sitwasyon, sundin ang mga tagubilin sa ibaba upang magdagdag ng mga tool ng ESP-IDF sa PATH. Sa command prompt kung saan kailangan mong gamitin ang ESP-IDF, lumipat sa direktoryo kung saan naka-install ang ESP-IDF, pagkatapos ay isagawa ang export.bat:
cd %userprofile%espesp-idf export.bat
Bilang kahalili, sa Powershell kung saan kailangan mong gumamit ng ESP-IDF, lumipat sa direktoryo kung saan naka-install ang ESP-IDF, pagkatapos ay isagawa ang export.ps1:
cd ~/esp/esp-idf export.ps1
Kapag tapos na ito, magiging available ang mga tool sa command prompt na ito.
Magtatag ng Serial Connection sa ESP32 Ang seksyong ito ay nagbibigay ng gabay kung paano magtatag ng serial connection sa pagitan ng ESP32 at PC.

Mga Sistema ng Espressif

24 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Ikonekta ang ESP32 sa PC Ikonekta ang ESP32 board sa PC gamit ang USB cable. Kung hindi awtomatikong nag-i-install ang driver ng device, tukuyin ang USB sa serial converter chip sa iyong ESP32 board (o external converter dongle), maghanap ng mga driver sa internet at i-install ang mga ito. Nasa ibaba ang listahan ng USB to serial converter chips na naka-install sa karamihan ng ESP32 boards na ginawa ng Espressif kasama ang mga link sa mga driver:
· CP210x: CP210x USB to UART Bridge VCP Drivers · FTDI: FTDI Virtual COM Port Drivers Pakitingnan ang board user guide para sa partikular na USB to serial converter chip na ginamit. Ang mga driver sa itaas ay pangunahing para sa sanggunian. Sa ilalim ng normal na mga pangyayari, ang mga driver ay dapat na kasama ng isang operating system at awtomatikong naka-install sa pagkonekta sa board sa PC.
Suriin ang port sa Windows Suriin ang listahan ng mga natukoy na COM port sa Windows Device Manager. Idiskonekta ang ESP32 at ikonekta ito pabalik, upang i-verify kung aling port ang mawawala sa listahan at pagkatapos ay ipapakita muli. Ipinapakita ng mga figure sa ibaba ang serial port para sa ESP32 DevKitC at ESP32 WROVER KIT

Fig. 13: USB to UART bridge ng ESP32-DevKitC sa Windows Device Manager

Suriin ang port sa Linux at macOS Para suriin ang pangalan ng device para sa serial port ng iyong ESP32 board (o external converter dongle), patakbuhin ang command na ito nang dalawang beses, una nang naka-unplugged ang board / dongle, pagkatapos ay nakasaksak. Ang port na lalabas sa pangalawang pagkakataon ay ang kailangan mo: Linux
ls /dev/tty*
macOS

Mga Sistema ng Espressif

25 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Fig. 14: Dalawang USB Serial Port ng ESP-WROVER-KIT sa Windows Device Manager

Mga Sistema ng Espressif

26 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

ls /dev/cu.* Tandaan: mga gumagamit ng macOS: kung hindi mo nakikita ang serial port, tingnan kung mayroon kang naka-install na USB/serial driver. Tingnan ang Seksyon Ikonekta ang ESP32 sa PC para sa mga link sa mga driver. Para sa macOS High Sierra (10.13), maaaring kailanganin mo ring tahasang payagan ang mga driver na mag-load. Buksan ang Mga Kagustuhan sa System -> Seguridad at Pagkapribado -> Pangkalahatan at tingnan kung mayroong isang mensahe na ipinapakita dito tungkol sa oSystem Software mula sa developer kung saan ang pangalan ng developer ay Silicon Labs o FTDI.

Pagdaragdag ng user sa pag-dialout sa Linux Ang kasalukuyang naka-log na user ay dapat magkaroon ng read at write access sa serial port sa USB. Sa karamihan ng mga distribusyon ng Linux, ginagawa ito sa pamamagitan ng pagdaragdag ng user sa dialout group na may sumusunod na command:
sudo usermod -a -G dialout $USER
sa Arch Linux ito ay ginagawa sa pamamagitan ng pagdaragdag ng user sa uucp group na may sumusunod na command:
sudo usermod -a -G uucp $USER
Tiyaking muli kang mag-log in upang paganahin ang mga pahintulot sa pagbasa at pagsulat para sa serial port.
I-verify ang serial connection Ngayon ay i-verify na ang serial connection ay gumagana. Magagawa mo ito gamit ang isang serial terminal program sa pamamagitan ng pagsuri kung nakakuha ka ng anumang output sa terminal pagkatapos i-reset ang ESP32. Ang default na console baud rate sa ESP32 ay 115200.
Windows at Linux Sa ex na itoampgagamitin namin ang PuTTY SSH Client na magagamit para sa parehong Windows at Linux. Maaari kang gumamit ng iba pang mga serial program at magtakda ng mga parameter ng komunikasyon tulad ng nasa ibaba. Patakbuhin ang terminal at itakda ang natukoy na serial port. Baud rate = 115200 (kung kinakailangan, baguhin ito sa default na baud rate ng chip na ginagamit), data bits = 8, stop bits = 1, at parity = N. Nasa ibaba ang exampang mga screenshot ng pagtatakda ng port at mga naturang parameter ng transmission (sa madaling salita ay inilarawan bilang 115200-8-1-N) sa Windows at Linux. Tandaang piliin ang eksaktong parehong serial port na natukoy mo sa mga hakbang sa itaas. Pagkatapos ay buksan ang serial port sa terminal at suriin, kung makakita ka ng anumang log na naka-print out ng ESP32. Ang mga nilalaman ng log ay depende sa application na na-load sa ESP32, tingnan ang Halample Output.
Tandaan: Isara ang serial terminal pagkatapos ma-verify na gumagana ang komunikasyon. Kung pananatilihin mong bukas ang terminal session, hindi maa-access ang serial port para sa pag-upload ng firmware sa ibang pagkakataon.

macOS Para maiwasan mo ang problema sa pag-install ng serial terminal program, inaalok ng macOS ang screen command. · Gaya ng tinalakay sa Check port sa Linux at macOS, patakbuhin ang:

ls /dev/cu.* · Dapat mong makita ang katulad na output:

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

/dev/cu.SLAB_

· Mag-iiba ang output depende sa uri at bilang ng mga board na nakakonekta sa iyong PC. Pagkatapos ay piliin ang pangalan ng device ng iyong board at patakbuhin (kung kinakailangan, baguhin o115200 ang default na baud rate ng chip na ginagamit):

screen /dev/cu.device_name 115200 Palitan ang device_name ng pangalang nakitang tumatakbo ls /dev/cu.*.

Mga Sistema ng Espressif

27 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Fig. 15: Pagse-set ng Serial Communication sa PuTTY sa Windows

Mga Sistema ng Espressif

28 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Fig. 16: Pagse-set ng Serial Communication sa PuTTY sa Linux

Mga Sistema ng Espressif

29 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
· Ang iyong hinahanap ay ilang log na ipinapakita ng screen. Ang mga nilalaman ng log ay depende sa application na na-load sa ESP32, tingnan ang Halample Output. Upang lumabas sa screen session i-type ang Ctrl-A + .
Tandaan: Huwag kalimutang lumabas sa screen session pagkatapos ma-verify na gumagana ang komunikasyon. Kung nabigo kang gawin ito at isara lamang ang terminal window, ang serial port ay hindi maa-access para sa pag-upload ng firmware sa ibang pagkakataon.
Example Output Isang exampAng log ay ipinapakita sa ibaba. I-reset ang board kung wala kang makita. at Hun 8 2016 00:22:57
una:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) at Hunyo 8, 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stage bootloader I (45) boot: oras ng pag-compile 18:48:10

Kung makikita mo ang nababasang output ng log, nangangahulugan ito na gumagana ang serial connection at handa ka nang magpatuloy sa pag-install at sa wakas ay mag-upload ng application sa ESP32.
Tandaan: Para sa ilang serial port wiring configuration, ang serial RTS at DTR pin ay kailangang i-disable sa terminal program bago mag-boot ang ESP32 at makagawa ng serial output. Depende ito sa mismong hardware, karamihan sa mga development board (kabilang ang lahat ng Espressif board) ay walang ganitong isyu. Ang isyu ay naroroon kung ang RTS at DTR ay direktang naka-wire sa EN at GPIO0 pin. Tingnan ang dokumentasyon ng esptool para sa higit pang mga detalye.
Kung nakarating ka rito mula sa Hakbang 5. Mga Unang Hakbang sa ESP-IDF kapag nag-i-install ng s/w para sa pagpapaunlad ng ESP32, maaari kang magpatuloy sa Hakbang 5. Mga Unang Hakbang sa ESP-IDF.
IDF Monitor Ang IDF Monitor ay pangunahing isang serial terminal program na nagre-relay ng serial data papunta at mula sa target na device na serial port. Nagbibigay din ito ng ilang tampok na partikular sa IDF. Maaaring ilunsad ang IDF Monitor mula sa isang proyekto ng IDF sa pamamagitan ng pagpapatakbo ng idf.py monitor.
Mga Keyboard Shortcut Para sa madaling pakikipag-ugnayan sa IDF Monitor, gamitin ang mga keyboard shortcut na ibinigay sa talahanayan.

Mga Sistema ng Espressif

30 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Keyboard Shortcut Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (o A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (o I)
· Ctrl+H (o H)
· Ctrl+X (o X)
Ctrl+C

Aksyon

Paglalarawan

Lumabas sa programa Menu escape key Ipadala ang menu character mismo sa remote
Ipadala ang exit character mismo sa remote
I-reset ang target sa bootloader para i-pause ang app sa pamamagitan ng RTS line
I-reset ang target board sa pamamagitan ng RTS
Buuin at i-flash ang proyekto

Buuin at i-flash ang app lamang

Ihinto/ipagpatuloy ang pag-print ng output ng log sa screen

Ihinto/ipagpatuloy ang output ng log na na-save sa file

Ihinto/ipagpatuloy ang mga orasamps

paglilimbag

Ipakita ang lahat ng mga keyboard shortcut

Pindutin at sundan ito ng isa sa mga key na ibinigay sa ibaba.
Nire-reset ang target, sa bootloader sa pamamagitan ng linya ng RTS (kung nakakonekta), upang ang board ay walang tumatakbo. Kapaki-pakinabang kapag kailangan mong maghintay para sa isa pang device na mag-startup. I-reset ang target board at muling simulan ang application sa pamamagitan ng RTS line (kung konektado).
Pino-pause ang idf_monitor upang patakbuhin ang flash target ng proyekto, pagkatapos ay ipagpatuloy ang idf_monitor. Anumang binagong pinagmulan files ay muling pinagsama-sama at pagkatapos ay muling nag-flash. Ang target na naka-encrypt na-flash ay tatakbo kung ang idf_monitor ay sinimulan sa argument -E. Pino-pause ang idf_monitor upang patakbuhin ang app-flash target, pagkatapos ay ipagpatuloy ang idf_monitor. Katulad ng flash target, ngunit ang pangunahing app lang ang binuo at muling na-flash. Ang target na naka-encrypt na-app-flash ay pinapatakbo kung sinimulan ang idf_monitor sa argument -E. Itinatapon ang lahat ng papasok na serial data habang naka-activate. Nagbibigay-daan upang mabilis na i-pause at suriin ang output ng log nang hindi umaalis sa monitor. Lumilikha ng a file sa direktoryo ng proyekto at ang output ay nakasulat doon file hanggang hindi ito pinagana gamit ang parehong shortcut sa keyboard (o paglabas ng IDF Monitor). Maaaring mag-print ng timest ang IDF Monitoramp sa simula ng bawat linya. Ang orasamp format ay maaaring baguhin sa pamamagitan ng –timestamp-format argumento ng command line.

Lumabas sa programa

Abalahin ang pagpapatakbo ng application

Pino-pause ang IDF Monitor at patakbuhin ang GDB project debugger para i-debug ang application sa runtime. Nangangailangan ito ng :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME na opsyon upang paganahin.

Anumang mga key na pinindot, maliban sa Ctrl-] at Ctrl-T, ay ipapadala sa pamamagitan ng serial port.

Mga tampok na partikular sa IDF

Awtomatikong Pagde-decode ng Address Sa tuwing naglalabas ang ESP-IDF ng hexadecimal code address ng form na 0x4_______, gumagamit ang IDF Monitor ng addr2line_ upang hanapin ang lokasyon sa source code at hanapin ang pangalan ng function.
Kung mag-crash at mag-panic ang isang ESP-IDF app, gagawa ng register dump at backtrace, gaya ng sumusunod:

Mga Sistema ng Espressif

31 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Guru Meditation Error ng uri StoreProhibited naganap sa core 0. Exception ay

hindi nahawakan.

Magrehistro ng dump:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

A2

: 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

A10

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

A14

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 DAHILAN:

0x0000001d

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

0x00000000

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

Ang IDF Monitor ay nagdaragdag ng higit pang mga detalye sa dump:

Guru Meditation Error ng uri StoreProhibited naganap sa core 0. Exception ay

hindi nahawakan.

Magrehistro ng dump:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: do_something_to_crash sa /home/gus/esp/32/idf/examples/get-start/

hello_world/main/./hello_world_main.c:57

(inlined by) inner_dont_crash sa /home/gus/esp/32/idf/examples/get-start/hello_

world/main/./hello_world_main.c:52

A2

: 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

A10

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

A14

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 DAHILAN:

0x0000001d

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

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (inlined by) inner_dont_crash sa /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash sa /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash sa /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main sa /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task sa /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

Upang i-decode ang bawat address, pinapatakbo ng IDF Monitor ang sumusunod na command sa background: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

Tandaan: Itakda ang environment variable na ESP_MONITOR_DECODE sa 0 o tumawag sa idf_monitor.py na may partikular na command line

Mga Sistema ng Espressif

32 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
opsyon: idf_monitor.py –disable-address-decoding upang huwag paganahin ang pag-decode ng address.
I-reset ang Target sa Koneksyon Bilang default, ire-reset ng IDF Monitor ang target kapag kumokonekta dito. Ang pag-reset ng target na chip ay isinasagawa gamit ang DTR at RTS serial lines. Upang pigilan ang IDF Monitor na awtomatikong i-reset ang target sa koneksyon, tawagan ang IDF Monitor gamit ang –no-reset na opsyon (hal., idf_monitor.py –no-reset).
Tandaan: Ang –no-reset na opsyon ay nalalapat sa parehong gawi kahit na kapag kumukonekta sa IDF Monitor sa isang partikular na port (hal., idf.py monitor –no-reset -p [PORT]).
Ang paglulunsad ng GDB gamit ang GDBStub Ang GDBStub ay isang kapaki-pakinabang na runtime debugging feature na tumatakbo sa target at kumokonekta sa host sa serial port upang makatanggap ng mga debugging command. Sinusuportahan ng GDBStub ang mga command tulad ng memorya sa pagbabasa at mga variable, pagsusuri sa mga call stack frame atbp. Bagama't hindi gaanong nagagamit ang GDBStub kaysa sa JTAG pag-debug, hindi ito nangangailangan ng anumang espesyal na hardware (tulad ng isang JTAG sa USB bridge) habang ang komunikasyon ay ganap na ginagawa sa serial port. Maaaring i-configure ang isang target na patakbuhin ang GDBStub sa background sa pamamagitan ng pagtatakda ng CONFIG_ESP_SYSTEM_PANIC sa GDBStub sa runtime. Ang GDBStub ay tatakbo sa background hanggang sa maipadala ang isang Ctrl+C na mensahe sa serial port at maging sanhi ng pagkasira ng GDBStub (ibig sabihin, ihinto ang pagpapatupad ng) program, kaya pinapayagan ang GDBStub na pangasiwaan ang mga utos sa pag-debug. Higit pa rito, ang panic handler ay maaaring i-configure upang patakbuhin ang GDBStub sa isang pag-crash sa pamamagitan ng pagtatakda ng CONFIG_ESP_SYSTEM_PANIC sa GDBStub sa panic. Kapag may nangyaring pag-crash, maglalabas ang GDBStub ng isang espesyal na pattern ng string sa serial port upang ipahiwatig na ito ay tumatakbo. Sa parehong mga kaso (ibig sabihin, pagpapadala ng Ctrl+C na mensahe, o pagtanggap ng espesyal na pattern ng string), awtomatikong ilulunsad ng IDF Monitor ang GDB upang payagan ang user na magpadala ng mga utos sa pag-debug. Pagkatapos lumabas ng GDB, ni-reset ang target sa pamamagitan ng serial line ng RTS. Kung hindi konektado ang linyang ito, maaaring i-reset ng mga user ang kanilang target (sa pamamagitan ng pagpindot sa boardns Reset button).
Tandaan: Sa background, pinapatakbo ng IDF Monitor ang sumusunod na command upang ilunsad ang GDB:
xtensa-esp32-elf-gdb -ex “set serial baud BAUD” -ex “target remote PORT” -ex interrupt build/PROJECT.elf :idf_target:`Hello NAME chip`

Output Filtering Ang IDF monitor ay maaaring gamitin bilang idf.py monitor –print-filter=”xyz”, kung saan –print-filter ang parameter para sa output filtering. Ang default na halaga ay isang walang laman na string, na nangangahulugan na ang lahat ay naka-print.
Ang mga paghihigpit sa kung ano ang ipi-print ay maaaring tukuyin bilang isang serye ngtag>: mga bagay kung saantag> ay ang tag string at ay isang character mula sa set {N, E, W, I, D, V, *} na tumutukoy sa isang antas para sa pag-log.
Para kay example, PRINT_FILTER=”tag1:W” ay tumutugma at nagpi-print lamang ng mga output na nakasulat sa ESP_LOGW(“tag1”, …) o sa mas mababang antas ng verbosity, ibig sabihin, ESP_LOGE(“tag1″, …). Hindi tumutukoy a o paggamit ng * default sa antas ng Verbose.
Tandaan: Gumamit ng pangunahing pag-log upang i-disable sa pagsasama-sama ang mga output na hindi mo kailangan sa pamamagitan ng logging library. Ang pag-filter ng output gamit ang IDF monitor ay isang pangalawang solusyon na maaaring maging kapaki-pakinabang para sa pagsasaayos ng mga opsyon sa pag-filter nang hindi muling kino-compile ang application.
Ang iyong app tags hindi dapat maglaman ng mga puwang, asterisk *, o mga tutuldok : upang maging tugma sa tampok na pag-filter ng output.
Kung ang huling linya ng output sa iyong app ay hindi sinusundan ng isang carriage return, ang pag-filter ng output ay maaaring malito, ibig sabihin, ang monitor ay magsisimulang i-print ang linya at sa kalaunan ay nalaman na ang linya ay hindi dapat nakasulat. Isa itong kilalang isyu at maiiwasan sa pamamagitan ng palaging pagdaragdag ng carriage return (lalo na kapag walang output na susunod kaagad pagkatapos).

Mga Sistema ng Espressif

33 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
ExampMga Panuntunan sa Pag-filter:
· * ay maaaring gamitin upang tumugma sa anumang tags. Gayunpaman, ang string PRINT_FILTER=”*:I tag1:E” patungkol sa tag1 ay nagpi-print ng mga error lamang, dahil ang panuntunan para sa tag1 ay may mas mataas na priyoridad kaysa sa panuntunan para sa *.
· Ang default (empty) na panuntunan ay katumbas ng *:V dahil tumutugma sa bawat tag sa antas ng Verbose o mas mababa ay nangangahulugan na tumutugma sa lahat.
· Pinipigilan ng “*:N” hindi lamang ang mga output mula sa mga function ng pag-log, kundi pati na rin ang mga print na ginawa ng printf, atbp. Upang maiwasan ito, gumamit ng *:E o mas mataas na antas ng verbosity.
· Mga Panuntunan “tag1:V", "tag1:v", "tag1:", "tag1:*", at “tag1” ay katumbas. · Panuntunan “tag1:W tag1:E” ay katumbas ng “tag1:E” dahil ang anumang kalalabasang pangyayari ng pareho tag
pinatungan ng pangalan ang nauna. · Panuntunan “tag1:I tag2:W” ay nagpi-print lamang tag1 sa Info verbosity level o mas mababa at tag2 sa Babala
antas ng verbosity o mas mababa. · Panuntunan “tag1:I tag2:W tag3:N” ay mahalagang katumbas ng nauna dahil tag3:N tumutukoy
na tag3 ay hindi dapat i-print. · tag3:N sa panuntunan "tag1:I tag2:W tag3:N *:V” ay mas makabuluhan dahil wala tag3:N ang
tag3 mensahe ang maaaring nai-print; ang mga pagkakamali para sa tag1 at tag2 ay ipi-print sa tinukoy (o mas mababang) verbosity level at lahat ng iba pa ay ipi-print bilang default.
Isang Mas Masalimuot na Pag-filter Halample Ang sumusunod na log snippet ay nakuha nang walang anumang mga opsyon sa pag-filter:
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: ang imahe sa 0x30000 ay may di-wastong magic byte W (31) esp_image: ang imahe sa 0x30000 ay may di-wastong SPI mode 255 E (39) hindi wasto ang boot ng factory app (568) cpu_start: Pro cpu up. I (569) heap_init: Nagsisimula. Available ang RAM para sa dynamic na alokasyon: I (603) cpu_start: Pro cpu start user code D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range ay matagumpay para sa range <54; 64) at VFS ID 1 I (328) wifi: wifi driver task: 3ffdbf84, prio:23, stack:4096, core=0
Ang nakuhang output para sa mga opsyon sa pag-filter PRINT_FILTER=”wifi esp_image:E light_driver:I” ay ibinigay sa ibaba:
E (31) esp_image: ang imahe sa 0x30000 ay may di-wastong magic byte I (328) wifi: wifi driver task: 3ffdbf84, prio:23, stack:4096, core=0
Ang mga opsyon na “PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” ay nagpapakita ng sumusunod na output:
load:0x40078000,len:13564 entry 0x40078d4c I (569) heap_init: Sinisimulan. Available ang RAM para sa dynamic na alokasyon: D (309) light_driver: [light_init, 74]:status: 1, mode: 2
Mga Kilalang Isyu sa IDF Monitor
Mga Isyu na Naobserbahan sa Windows
· Ang mga arrow key, pati na rin ang ilang iba pang mga key, ay hindi gumagana sa GDB dahil sa mga limitasyon ng Windows Console. · Paminsan-minsan, kapag ang oidf.pypexit, maaari itong tumigil nang hanggang 30 segundo bago magpatuloy ang IDF Monitor. · Kapag tumakbo ang ogdbpis, maaaring tumigil ito ng maikling panahon bago ito magsimulang makipag-ugnayan sa GDBStub.

Mga Sistema ng Espressif

34 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula sa Standard Toolchain Setup para sa Linux at macOS

Hakbang sa Hakbang ng Pag-install Ito ay isang detalyadong roadmap upang gabayan ka sa proseso ng pag-install.
Pag-set up ng Development Environment Ito ang mga hakbang para sa pag-set up ng ESP-IDF para sa iyong ESP32. · Hakbang 1. I-install ang Mga Prerequisite · Hakbang 2. Kumuha ng ESP-IDF · Hakbang 3. I-set up ang mga tool · Hakbang 4. I-set up ang mga variable ng kapaligiran · Hakbang 5. Mga Unang Hakbang sa ESP-IDF
Hakbang 1. Mag-install ng Mga Prerequisite Upang magamit ang ESP-IDF kasama ang ESP32, kailangan mong mag-install ng ilang software packages batay sa iyong Operating System. Tutulungan ka ng gabay sa pag-setup na ito sa pag-install ng lahat sa Linux at macOS based system.
Para sa Mga Gumagamit ng Linux Upang mag-compile gamit ang ESP-IDF kakailanganin mong makuha ang mga sumusunod na pakete. Ang utos na tatakbo ay depende sa kung aling pamamahagi ng Linux ang iyong ginagamit:
· Ubuntu at Debian: sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 & 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
Sinusuportahan pa rin ang CentOS 7 ngunit ang bersyon 8 ng CentOS ay inirerekomenda para sa isang mas mahusay na karanasan ng gumagamit. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Tandaan: · Kinakailangan ang bersyon ng CMake 3.16 o mas bago para magamit sa ESP-IDF. Magpatakbo ng otools/idf_tools.py install cmakepto mag-install ng angkop na bersyon kung ang iyong mga bersyon ng OS ay walang nito. · Kung hindi mo nakikita ang iyong pamamahagi ng Linux sa listahan sa itaas, mangyaring suriin ang dokumentasyon nito upang malaman kung aling command ang gagamitin para sa pag-install ng package.
Para sa Mga User ng macOS, gagamitin ng ESP-IDF ang bersyon ng Python na naka-install bilang default sa macOS. · I-install ang CMake at Ninja build: Kung mayroon kang HomeBrew, maaari kang magpatakbo ng: brew install cmake ninja dfu-util Kung mayroon kang MacPorts, maaari kang magpatakbo ng: sudo port install cmake ninja dfu-util Kung hindi man, kumonsulta sa CMake at Ninja home page para sa pag-download ng macOS installation.

Mga Sistema ng Espressif

35 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
· Lubos na inirerekomenda na i-install din ang ccache para sa mas mabilis na mga build. Kung mayroon kang HomeBrew, maaari itong gawin sa pamamagitan ng brew install ccache o sudo port install ccache sa MacPorts.
Tandaan: Kung ang isang error na tulad nito ay ipinapakita sa anumang hakbang: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), nawawala ang xcrun sa: /Library/Developer/CommandLineTools/usr/bin/xcrun
Pagkatapos ay kakailanganin mong i-install ang XCode command line tool upang magpatuloy. Maaari mong i-install ang mga ito sa pamamagitan ng pagpapatakbo ng xcode-select –install.
Mga Gumagamit ng Apple M1 Kung gumagamit ka ng Apple M1 platform at nakakita ng isang error na tulad nito: BABALA: ang direktoryo para sa tool na xtensa-esp32-elf na bersyon esp-2021r2-patch3-8.4.0 ay naroroon, ngunit ang tool ay hindi natagpuan ERROR: ang tool na xtensa-esp32-elf ay walang mga naka-install na bersyon. Mangyaring patakbuhin ang 'install.sh' upang mai-install ito.
o: zsh: masamang uri ng CPU sa executable: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Pagkatapos ay kakailanganin mong i-install ang Apple Rosetta 2 sa pamamagitan ng pagpapatakbo ng /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Pag-install ng Python 3 Batay sa macOS Catalina 10.15 na mga tala sa paglabas, ang paggamit ng Python 2.7 ay hindi inirerekomenda at ang Python 2.7 ay hindi isasama bilang default sa mga hinaharap na bersyon ng macOS. Suriin kung anong Python ang mayroon ka sa kasalukuyan: python –version
Kung ang output ay tulad ng Python 2.7.17, ang iyong default na interpreter ay Python 2.7. Kung gayon, suriin din kung ang Python 3 ay hindi pa naka-install sa iyong computer: python3 –bersyon
Kung ang utos sa itaas ay nagbabalik ng isang error, nangangahulugan ito na hindi naka-install ang Python 3. Sa ibaba ay tapos naview ng mga hakbang sa pag-install ng Python 3.
· Ang pag-install gamit ang HomeBrew ay maaaring gawin tulad ng sumusunod: brew install python3
· Kung mayroon kang MacPorts, maaari mong patakbuhin ang: sudo port install python38
Hakbang 2. Kumuha ng ESP-IDF Para makabuo ng mga application para sa ESP32, kailangan mo ang mga software library na ibinigay ng Espressif sa ESP-IDF repository. Upang makakuha ng ESP-IDF, mag-navigate sa iyong direktoryo ng pag-install at i-clone ang repositoryo gamit ang git clone, sumusunod sa mga tagubilin sa ibaba na partikular sa iyong operating system. Buksan ang Terminal, at patakbuhin ang sumusunod na mga utos:

Mga Sistema ng Espressif

36 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –recursive https://github.com/espressif/esp-idf.git
Ang ESP-IDF ay mada-download sa ~/esp/esp-idf. Kumonsulta sa Mga Bersyon ng ESP-IDF para sa impormasyon tungkol sa kung aling bersyon ng ESP-IDF ang gagamitin sa isang partikular na sitwasyon.
Hakbang 3. I-set up ang mga tool Bukod sa ESP-IDF, kailangan mo ring i-install ang mga tool na ginagamit ng ESP-IDF, tulad ng compiler, debugger, Python packages, atbp, para sa mga proyektong sumusuporta sa ESP32. cd ~/esp/esp-idf ./install.sh esp32
o gamit ang Fish shell cd ~/esp/esp-idf ./install.fish esp32
Ang mga utos sa itaas ay nag-i-install ng mga tool para sa ESP32 lamang. Kung balak mong bumuo ng mga proyekto para sa higit pang mga target ng chip, dapat mong ilista ang lahat ng mga ito at tumakbo para sa example: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
o gamit ang Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Upang mag-install ng mga tool para sa lahat ng sinusuportahang target mangyaring patakbuhin ang sumusunod na command: cd ~/esp/esp-idf ./install.sh all
o gamit ang Fish shell cd ~/esp/esp-idf ./install.fish all
Tandaan: Para sa mga gumagamit ng macOS, kung ang isang error na tulad nito ay ipinapakita sa anumang hakbang:urlbukas na error [SSL: CERTIFICATE_VERIFY_FAILED] ang pag-verify ng certificate ay nabigo: hindi makakuha ng lokal na tagabigay ng certificate (_ssl.c:xxx)
Maaari mong patakbuhin ang Install Certificates.command sa Python folder ng iyong computer upang mag-install ng mga certificate. Para sa mga detalye, tingnan ang Error sa Pag-download Habang Nag-i-install ng ESP-IDF Tools.

Alternatibo File Mga Download Nagda-download ang installer ng mga tool ng ilang files na naka-attach sa GitHub Releases. Kung mabagal ang pag-access sa GitHub, posibleng magtakda ng environment variable para mas gusto ang server ng pag-download ng Espressifns para sa mga pag-download ng asset ng GitHub.

Tandaan: Kinokontrol lang ng setting na ito ang mga indibidwal na tool na na-download mula sa mga release ng GitHub, hindi nito binabago ang URLs ay ginagamit upang ma-access ang anumang Git repository.

Para mas gusto ang server ng pag-download ng Espressif kapag nag-i-install ng mga tool, gamitin ang sumusunod na pagkakasunod-sunod ng mga command kapag nagpapatakbo ng install.sh:

Mga Sistema ng Espressif

37 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Pag-customize sa path ng pag-install ng mga tool Ang mga script na ipinakilala sa hakbang na ito ay nag-install ng mga compilation tool na kinakailangan ng ESP-IDF sa loob ng home directory ng user: $HOME/.espressif sa Linux. Kung gusto mong i-install ang mga tool sa ibang direktoryo, itakda ang environment variable na IDF_TOOLS_PATH bago patakbuhin ang mga script ng pag-install. Tiyaking may sapat na pahintulot ang iyong user account na basahin at isulat ang landas na ito. Kung babaguhin ang IDF_TOOLS_PATH, tiyaking nakatakda ito sa parehong halaga sa tuwing ipapatupad ang script ng Install (install. bat, install.ps1 o install.sh) at isang Export script (export.bat, export.ps1 o export.sh).
Hakbang 4. I-set up ang mga variable ng kapaligiran Ang mga naka-install na tool ay hindi pa naidagdag sa PATH na environment variable. Upang gawing magagamit ang mga tool mula sa command line, dapat itakda ang ilang variable ng kapaligiran. Nagbibigay ang ESP-IDF ng isa pang script na gumagawa nito. Sa terminal kung saan mo gagamitin ang ESP-IDF, patakbuhin ang:
. $HOME/esp/esp-idf/export.sh
o para sa isda (sinusuportahan lamang mula noong bersyon ng isda 3.0.0):
. $HOME/esp/esp-idf/export.fish
Pansinin ang espasyo sa pagitan ng nangungunang tuldok at landas! Kung plano mong gumamit ng esp-idf nang madalas, maaari kang lumikha ng isang alias para sa pagsasagawa ng export.sh:
1. Kopyahin at i-paste ang sumusunod na command sa iyong shellns profile (.profile, .bashrc, .zprofile, atbp.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. I-refresh ang configuration sa pamamagitan ng pag-restart ng terminal session o sa pamamagitan ng pagpapatakbo ng source [path to profile],
para kay example, source ~/.bashrc. Maaari mo na ngayong patakbuhin ang get_idf para i-set up o i-refresh ang esp-idf na kapaligiran sa anumang terminal session. Sa teknikal, maaari kang magdagdag ng export.sh sa iyong shellns profile direkta; gayunpaman, hindi ito inirerekomenda. Ang paggawa nito ay nag-a-activate ng virtual na kapaligiran ng IDF sa bawat terminal session (kabilang ang mga kung saan hindi kailangan ang IDF), tinatalo ang layunin ng virtual na kapaligiran at malamang na nakakaapekto sa iba pang software.
Hakbang 5. Mga Unang Hakbang sa ESP-IDF Ngayon dahil ang lahat ng mga kinakailangan ay natutugunan, ang susunod na paksa ay gagabay sa iyo kung paano simulan ang iyong unang proyekto. Tutulungan ka ng gabay na ito sa mga unang hakbang gamit ang ESP-IDF. Sundin ang gabay na ito upang magsimula ng bagong proyekto sa ESP32 at bumuo, mag-flash, at subaybayan ang output ng device.
Tandaan: Kung hindi mo pa na-install ang ESP-IDF, mangyaring pumunta sa Pag-install at sundin ang pagtuturo upang makuha ang lahat ng software na kailangan para magamit ang gabay na ito.

Magsimula ng Proyekto Ngayon ay handa ka nang ihanda ang iyong aplikasyon para sa ESP32. Maaari kang magsimula sa getstarted/hello_world na proyekto mula sa examples directory sa ESP-IDF.

Mahalaga: Hindi sinusuportahan ng build system ng ESP-IDF ang mga puwang sa mga landas patungo sa ESP-IDF o sa mga proyekto.

Kopyahin ang proyekto get-started/hello_world sa ~/esp directory:

Mga Sistema ng Espressif

38 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Tandaan: Mayroong hanay ng example projects sa examples directory sa ESP-IDF. Maaari mong kopyahin ang anumang proyekto sa parehong paraan tulad ng ipinakita sa itaas at patakbuhin ito. Posible ring bumuo ng examples in-place nang hindi kinokopya muna ang mga ito.
Ikonekta ang Iyong Device Ngayon ikonekta ang iyong ESP32 board sa computer at tingnan sa ilalim kung aling serial port ang board ay makikita. Ang mga serial port ay may mga sumusunod na pattern ng pagbibigay ng pangalan:
· Linux: nagsisimula sa /dev/tty · macOS: nagsisimula sa /dev/cu. Kung hindi ka sigurado kung paano suriin ang serial port name, mangyaring sumangguni sa Magtatag ng Serial Connection sa ESP32 para sa buong detalye.
Tandaan: Panatilihing madaling gamitin ang pangalan ng port dahil kakailanganin mo ito sa mga susunod na hakbang.
I-configure ang Iyong Project Mag-navigate sa iyong hello_world directory, itakda ang ESP32 bilang target, at patakbuhin ang project configuration utility menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Pagkatapos magbukas ng bagong proyekto, dapat mo munang itakda ang target gamit ang idf.py set-target esp32. Tandaan na ang mga kasalukuyang build at configuration sa proyekto, kung mayroon man, ay iki-clear at masisimulan sa prosesong ito. Maaaring i-save ang target sa variable ng kapaligiran upang laktawan ang hakbang na ito. Tingnan ang Piliin ang Target na Chip: set-target para sa karagdagang impormasyon. Kung nagawa nang tama ang mga nakaraang hakbang, lilitaw ang sumusunod na menu:

Fig. 17: Configuration ng proyekto – Home window Ginagamit mo ang menu na ito para mag-set up ng mga variable na partikular sa proyekto, hal., pangalan at password ng Wi-Fi network, ang bilis ng processor, atbp. Ang pag-set up ng proyekto gamit ang menuconfig ay maaaring laktawan forohello_worldp, dahil ang ex na itoamptumakbo kasama si le

Mga Sistema ng Espressif

39 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
default na pagsasaayos.
Pansin: Kung gumagamit ka ng ESP32-DevKitC board na may ESP32-SOLO-1 module, o ESP32-DevKitM-1 board na may ESP32-MIN1-1(1U) module, mangyaring paganahin ang single core mode (CONFIG_FREERTOS_UNICORE) sa menuconfig bago mag-flash ng examples.
Tandaan: Maaaring iba ang mga kulay ng menu sa iyong terminal. Maaari mong baguhin ang hitsura gamit ang opsyon -style. Mangyaring patakbuhin ang idf.py menuconfig –help para sa karagdagang impormasyon.
Kung gumagamit ka ng isa sa mga sinusuportahang development board, maaari mong pabilisin ang iyong development sa pamamagitan ng paggamit ng Board Support Package. Tingnan ang Mga Karagdagang Tip para sa higit pang impormasyon.
Buuin ang Proyekto Buuin ang proyekto sa pamamagitan ng pagpapatakbo:
idf.py build
Isasama ng command na ito ang application at lahat ng bahagi ng ESP-IDF, pagkatapos ay bubuo ito ng bootloader, partition table, at mga binary ng application.
$ idf.py build Pagpapatakbo ng cmake sa direktoryo /path/to/hello_world/build Isinasagawa ang “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Magbabala tungkol sa mga hindi nasimulang value. — Nahanap na Git: /usr/bin/git (nahanap na bersyon “2.17.0”) — Pagbuo ng walang laman na bahagi ng aws_iot dahil sa pagsasaayos — Mga pangalan ng bahagi: … — Mga path ng bahagi: …
… (higit pang mga linya ng build system output)
[527/527] Bumubuo ng hello_world.bin esptool.py v2.3.1
Nakumpleto ang pagbuo ng proyekto. Upang mag-flash, patakbuhin ang command na ito: ../../../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 o patakbuhin ang 'idf.py -p PORT flash'
Kung walang mga error, matatapos ang build sa pamamagitan ng pagbuo ng firmware binary .bin files.
I-flash sa Device I-flash ang mga binary na kakagawa mo lang (bootloader.bin, partition-table.bin at hello_world.bin) sa iyong ESP32 board sa pamamagitan ng pagpapatakbo:
idf.py -p PORT [-b BAUD] flash
Palitan ang PORT ng iyong ESP32 boardns serial port name. Maaari mo ring baguhin ang flasher baud rate sa pamamagitan ng pagpapalit sa BAUD ng baud rate na kailangan mo. Ang default na baud rate ay 460800. Para sa higit pang impormasyon sa mga argumento ng idf.py, tingnan ang idf.py.
Tandaan: Awtomatikong binubuo at pinapa-flash ng opsyong flash ang proyekto, kaya hindi kinakailangan ang pagpapatakbo ng idf.py build.

Mga Sistema ng Espressif

40 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula

Nakatagpo ng mga Isyu Habang Nag-flash? Kung patakbuhin mo ang ibinigay na utos at makakita ng mga error tulad ng Nabigong kumonekta, maaaring may ilang dahilan para dito. Ang isa sa mga dahilan ay maaaring mga isyung nakatagpo ng esptool.py, ang utility na tinatawag ng build system upang i-reset ang chip, makipag-ugnayan sa ROM bootloader, at flash firmware. Isang simpleng solusyon na susubukan ay ang manu-manong pag-reset na inilarawan sa ibaba, at kung hindi ito makakatulong, makakahanap ka ng higit pang mga detalye tungkol sa mga posibleng isyu sa Pag-troubleshoot.
Awtomatikong nire-reset ng esptool.py ang ESP32 sa pamamagitan ng paggiit ng mga linya ng kontrol ng DTR at RTS ng USB sa serial converter chip, ibig sabihin, FTDI o CP210x (para sa higit pang impormasyon, tingnan ang Magtatag ng Serial Connection sa ESP32). Ang mga linya ng kontrol ng DTR at RTS ay konektado naman sa GPIO0 at CHIP_PU (EN) na mga pin ng ESP32, kaya nagbabago sa voltagAng mga antas ng DTR at RTS ay magbo-boot ng ESP32 sa Firmware Download mode. Bilang isang example, suriin ang eskematiko para sa ESP32 DevKitC development board.
Sa pangkalahatan, hindi ka dapat magkaroon ng mga problema sa opisyal na esp-idf development boards. Gayunpaman, hindi ma-reset ng esptool.py ang iyong hardware nang awtomatiko sa mga sumusunod na kaso:
· Ang iyong hardware ay walang mga linya ng DTR at RTS na konektado sa GPIO0 at CHIP_PU · Ang mga linya ng DTR at RTS ay magkaiba ang pagkaka-configure · Walang ganoong mga serial control lines sa lahat
Depende sa uri ng hardware na mayroon ka, maaari ding manual na ilagay ang iyong ESP32 board sa Firmware Download mode (reset).
· Para sa mga development board na ginawa ng Espressif, ang impormasyong ito ay makikita sa kani-kanilang mga gabay sa pagsisimula o mga gabay sa gumagamit. Para kay example, upang manu-manong i-reset ang isang ESP-IDF development board, pindutin nang matagal ang Boot button (GPIO0) at pindutin ang EN button (CHIP_PU).
· Para sa iba pang mga uri ng hardware, subukang hilahin ang GPIO0 pababa.

Normal na Operasyon Kapag nag-flash, makikita mo ang output log na katulad ng sumusunod:
… 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/bootloader-table. 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Connecting…….._ Chip ay ESP32D0WDQ6 (rebisyon 0) Mga Tampok: WiFi, BT, Dual Core, Coding Scheme Wala Ang Crystal ay 40MHz MAC: 24:0a Tubb: 24:0a: stub stub: 24:0a: stub: 24:0a tumatakbo... Binabago ang baud rate sa 460800 Binago. Kino-configure ang laki ng flash... Na-compress ang 3072 bytes hanggang 103... Sumulat sa 0x00008000... (100 %) Nagsulat ng 3072 bytes (103 naka-compress) sa 0x00008000 sa loob ng 0.0 segundo (epektibong 5962.8 kbit/s). Na-compress ang 26096 bytes sa 15408… Nagsusulat sa 0x00001000… (100 %) Nagsulat ng 26096 bytes (15408 naka-compress) sa 0x00001000 sa loob ng 0.4 segundo (epektibong 546.7 kbit/s na-verify). Na-compress ang 147104 bytes sa 77364… Nagsusulat sa 0x00010000… (20 %) Nagsusulat sa 0x00014000… (40 %) Nagsusulat sa 0x00018000… (60 %) Nagsusulat sa 0x0001c000%)
(pagpapatuloy sa susunod na pahina)

Mga Sistema ng Espressif

41 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
(ipinagpatuloy mula sa nakaraang pahina) Sumulat sa 0x00020000… (100 %) Nagsulat ng 147104 byte (77364 compressed) sa 0x00010000 sa loob ng 1.9 segundo (epektibong 615. 5 kbit/s)… Na-verify ang hash ng data.
Aalis... Hard reset sa pamamagitan ng RTS pin... Tapos na
Kung walang mga isyu sa pagtatapos ng proseso ng flash, magre-reboot ang board at magsisimula ang theohello_worldpapplication. Kung gusto mong gamitin ang Eclipse o VS Code IDE sa halip na patakbuhin ang idf.py, tingnan ang Eclipse Plugin, VSCode Extension.
Subaybayan ang Output Upang suriin kung tumatakbo nga ang ohello_worldpis, i-type ang idf.py -p PORT monitor (Huwag kalimutang palitan ang PORT ng iyong serial port name). Inilunsad ng command na ito ang application ng IDF Monitor:
$ idf.py -p monitor Pagpapatakbo ng idf_monitor sa direktoryo […]/esp/hello_world/build Isinasagawa ang “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor on 115200 —– Umalis: Ctrl+] | Menu: Ctrl+T | Tulong: Ctrl+T na sinusundan ng Ctrl+H –ets Hun 8 2016 00:22:57
una:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) at Hunyo 8, 2016 00:22:57 …
Pagkatapos mag-scroll pataas ng startup at diagnostic logs, dapat mong makita ang oHello world!pprinted out ng application.
… Hello mundo! Nagre-restart sa loob ng 10 segundo... Ito ang esp32 chip na may 2 (mga) CPU core, WiFi/BT/BLE, silicon revision 1, 2MB external flash Minimum na libreng laki ng heap: 298968 bytes Magsisimula muli sa loob ng 9 segundo... Magsisimula muli sa loob ng 8 segundo... Magsisimula muli sa loob ng 7 segundo...
Upang lumabas sa IDF monitor gamitin ang shortcut na Ctrl+]. Kung nabigo ang IDF monitor pagkatapos ng pag-upload, o, kung sa halip na ang mga mensahe sa itaas, makakita ka ng mga random na basura na katulad ng ibinigay sa ibaba, malamang na gumagamit ang iyong board ng 26 MHz na kristal. Karamihan sa mga disenyo ng development board ay gumagamit ng 40 MHz, kaya ginagamit ng ESP-IDF ang dalas na ito bilang default na halaga.

Kung mayroon kang ganoong problema, gawin ang sumusunod:
1. Lumabas sa monitor. 2. Bumalik sa menuconfig. 3. Pumunta sa Component config > Hardware Settings > Main XTAL Config > Main XTAL
frequency, pagkatapos ay baguhin ang CONFIG_XTAL_FREQ_SEL sa 26 MHz. 4. Pagkatapos nito, buuin at i-flash muli ang application.

Mga Sistema ng Espressif

42 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Sa kasalukuyang bersyon ng ESP-IDF, ang mga pangunahing XTAL frequency na sinusuportahan ng ESP32 ay ang mga sumusunod:
· 26 MHz · 40 MHz
Tandaan: Maaari mong pagsamahin ang pagbuo, pag-flash at pagsubaybay sa isang hakbang sa pamamagitan ng pagpapatakbo ng: idf.py -p PORT flash monitor
Tingnan din ang: · IDF Monitor para sa mga madaling gamiting shortcut at higit pang mga detalye sa paggamit ng IDF monitor. · idf.py para sa buong sanggunian ng idf.py na mga utos at opsyon.
Iyan lang ang kailangan mo para makapagsimula sa ESP32! Ngayon ay handa ka nang sumubok ng ibang examples, o dumiretso sa pagbuo ng sarili mong mga application.
Mahalaga: Ang ilan sa exampHindi sinusuportahan ng les ang ESP32 dahil hindi kasama sa ESP32 ang kinakailangang hardware kaya hindi ito masuportahan. Kung bumuo ng example, paki-check ang README file para sa talahanayan ng Mga Sinusuportahang Target. Kung ito ay naroroon kasama ang ESP32 target, o ang talahanayan ay wala sa lahat, ang exampGagana ang ESP32.
Mga Karagdagang Tip
Mga isyu sa pahintulot /dev/ttyUSB0 Sa ilang distribusyon ng Linux, maaari mong makuha ang Nabigong buksan ang port /dev/ttyUSB0 na mensahe ng error kapag nag-flash ng ESP32. Ito ay malulutas sa pamamagitan ng pagdaragdag ng kasalukuyang user sa dialout group.
Ang Python compatibility ESP-IDF ay sumusuporta sa Python 3.7 o mas bago. Inirerekomenda na i-upgrade ang iyong operating system sa isang kamakailang bersyon na nakakatugon sa kinakailangang ito. Kasama sa iba pang mga pagpipilian ang pag-install ng Python mula sa mga mapagkukunan o ang paggamit ng isang sistema ng pamamahala ng bersyon ng Python tulad ng pyenv.
Magsimula sa Board Support Package Para mapabilis ang prototyping sa ilang development board, maaari mong gamitin ang Board Support Packages (BSPs), na ginagawang kasingdali ng ilang function call ang pagsisimula ng isang partikular na board. Karaniwang sinusuportahan ng BSP ang lahat ng bahagi ng hardware na ibinigay sa development board. Bukod sa pinout definition at initialization function, ang isang BSP ay nagpapadala ng mga driver para sa mga external na bahagi tulad ng mga sensor, display, audio codec atbp. Ang mga BSP ay ipinamamahagi sa pamamagitan ng IDF Component Manager, kaya makikita ang mga ito sa IDF Component Registry. Herens isang example ng kung paano magdagdag ng ESP-WROVER-KIT BSP sa iyong proyekto: idf.py add-dependency esp_wrover_kit
Marami pang exampang kaunting paggamit ng BSP ay makikita sa BSP examples folder.
Tip: Pag-update ng ESP-IDF Inirerekomenda na i-update ang ESP-IDF paminsan-minsan, dahil ang mga mas bagong bersyon ay nag-aayos ng mga bug at/o nagbibigay ng mga bagong feature. Pakitandaan na ang bawat ESP-IDF major at minor release na bersyon ay may kaugnay na panahon ng suporta, at kapag ang isang release branch ay malapit nang matapos ang buhay (EOL), ang lahat ng user ay hinihikayat na i-upgrade ang kanilang mga proyekto sa mas bagong ESP-IDF release, upang malaman ang higit pa tungkol sa mga panahon ng suporta, tingnan ang ESP-IDF Bersyon.

Mga Sistema ng Espressif

43 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 1. Magsimula
Ang pinakasimpleng paraan upang gawin ang pag-update ay tanggalin ang umiiral na esp-idf folder at i-clone ito muli, na parang ginagawa ang paunang pag-install na inilarawan sa Hakbang 2. Kunin ang ESP-IDF. Ang isa pang solusyon ay i-update lamang kung ano ang nagbago. Ang pamamaraan ng pag-update ay depende sa bersyon ng ESP-IDF na iyong ginagamit. Pagkatapos i-update ang ESP-IDF, isagawa muli ang Install script, kung sakaling ang bagong bersyon ng ESP-IDF ay nangangailangan ng iba't ibang bersyon ng mga tool. Tingnan ang mga tagubilin sa Hakbang 3. I-set up ang mga tool. Kapag na-install na ang mga bagong tool, i-update ang environment gamit ang Export script. Tingnan ang mga tagubilin sa Hakbang 4. I-set up ang mga variable ng kapaligiran.
Mga Kaugnay na Dokumento · Magtatag ng Serial na Koneksyon sa ESP32 · Eclipse Plugin · VSCode Extension · IDF Monitor
1.4 Buuin ang Iyong Unang Proyekto
Kung mayroon ka nang naka-install na ESP-IDF at hindi gumagamit ng IDE, maaari mong buuin ang iyong unang proyekto mula sa command line kasunod ng Start a Project sa Windows o Start a Project sa Linux at macOS.
1.5 I-uninstall ang ESP-IDF
Kung gusto mong tanggalin ang ESP-IDF, mangyaring sundin ang I-uninstall ang ESP-IDF.

Mga Sistema ng Espressif

44 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 2
Sanggunian ng API
2.1 Mga Kumbensyon ng API
Inilalarawan ng dokumentong ito ang mga kumbensyon at pagpapalagay na karaniwan sa ESP-IDF Application Programming Interfaces (APIs). Nagbibigay ang ESP-IDF ng ilang uri ng mga interface ng programming:
· C function, structures, enums, type definitions at preprocessor macros na idineklara sa pampublikong header filemga bahagi ng ESPIDF. Ang iba't ibang mga pahina sa seksyong Reference ng API ng gabay sa programming ay naglalaman ng mga paglalarawan ng mga function, istruktura at uri na ito.
· Bumuo ng mga function ng system, paunang-natukoy na mga variable at mga pagpipilian. Nakadokumento ang mga ito sa gabay sa build system. · Maaaring gamitin ang mga opsyon sa Kconfig sa code at sa build system (CMakeLists.txt) files. · Ang mga tool sa host at ang kanilang mga parameter ng command line ay bahagi rin ng ESP-IDF interface. Ang ESP-IDF ay binubuo ng mga bahagi na partikular na isinulat para sa ESP-IDF pati na rin ang mga third-party na aklatan. Sa ilang mga kaso, ang isang wrapper na partikular sa ESP-IDF ay idinaragdag sa third-party na library, na nagbibigay ng interface na alinman sa mas simple o mas mahusay na isinama sa iba pang pasilidad ng ESP-IDF. Sa ibang mga kaso, ang orihinal na API ng third-party na library ay ipinakita sa mga developer ng application. Ang mga sumusunod na seksyon ay nagpapaliwanag ng ilan sa mga aspeto ng ESP-IDF API at ang kanilang paggamit.
Pag-handle ng 2.1.1 Error
Karamihan sa mga ESP-IDF API ay nagbabalik ng mga error code na tinukoy sa uri ng esp_err_t. Tingnan ang seksyon ng Error Handling para sa higit pang impormasyon tungkol sa mga diskarte sa paghawak ng error. Ang Error Code Reference ay naglalaman ng listahan ng mga error code na ibinalik ng mga bahagi ng ESP-IDF.
2.1.2 Mga istruktura ng pagsasaayos
Mahalaga: Ang tamang pagsisimula ng mga istruktura ng pagsasaayos ay isang mahalagang bahagi sa paggawa ng application na tugma sa mga hinaharap na bersyon ng ESP-IDF.
Karamihan sa mga pagpapasimula o configuration function sa ESP-IDF ay kumukuha bilang argumento ng pointer sa isang configuration structure. Para kay example:
45

Kabanata 2. Sanggunian ng API

const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = “my_timer”
}; esp_timer_handle_t my_timer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
Hindi kailanman iniimbak ng mga function ng initialization ang pointer sa istraktura ng pagsasaayos, kaya ligtas na ilaan ang istraktura sa stack.
Dapat simulan ng application ang lahat ng field ng structure. Ang mga sumusunod ay hindi tama:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Mali! Ang mga field na .arg at .name ay hindi nasimulan */ esp_timer_create(&my_timer_args, &my_timer);
Karamihan sa ESP-IDF halampGumagamit kami ng mga itinalagang initializer ng C99 para sa pagsisimula ng istraktura, dahil nagbibigay sila ng isang maigsi na paraan ng pagtatakda ng subset ng mga field, at zero-initializing ang natitirang mga field:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Tama, ang mga field .arg at .name ay zero-initialized */
};
Hindi sinusuportahan ng C++ na wika ang itinalagang initializers syntax hanggang C++20, gayunpaman, bahagyang sinusuportahan ito ng GCC compiler bilang extension. Kapag gumagamit ng mga ESP-IDF API sa C++ code, maaari mong isaalang-alang ang paggamit ng sumusunod na pattern:
esp_timer_create_args_t my_timer_args = {}; /* Lahat ng field ay zero-initialized */ my_timer_args.callback = &my_timer_callback;

Mga default na initializer
Para sa ilang istruktura ng pagsasaayos, ang ESP-IDF ay nagbibigay ng mga macro para sa pagtatakda ng mga default na halaga ng mga field:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* Ang HTTPD_DEFAULT_CONFIG ay lumalawak sa isang itinalagang initializer.
Ngayon ang lahat ng mga patlang ay nakatakda sa mga default na halaga. Maaari pa ring baguhin ang anumang field: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Inirerekomenda na gumamit ng mga default na initializer macro sa tuwing ibibigay ang mga ito para sa isang partikular na istraktura ng pagsasaayos.

2.1.3 Mga Pribadong API
Ilang header files sa ESP-IDF ay naglalaman ng mga API na nilalayong gamitin lamang sa ESP-IDF source code, at hindi ng mga application. Ang ganyang header files ay madalas na naglalaman ng pribado o esp_private sa kanilang pangalan o landas. Ang ilang partikular na bahagi, gaya ng hal ay naglalaman lamang ng mga pribadong API. Maaaring alisin o baguhin ang mga pribadong API sa isang hindi tugmang paraan sa pagitan ng mga menor de edad o patch release.

2.1.4 Mga bahagi sa halampmga proyekto
ESP-IDF halampAng mga ito ay naglalaman ng iba't ibang mga proyekto na nagpapakita ng paggamit ng mga ESP-IDF API. Para mabawasan ang pagdoble ng code sa examples, ang ilang mga karaniwang katulong ay tinukoy sa loob ng mga bahagi na ginagamit ng maraming examples.

Mga Sistema ng Espressif

46 Magsumite ng Feedback ng Dokumento

Ilabas ang v5.0.9

Kabanata 2. Sanggunian ng API
Kabilang dito ang mga sangkap na matatagpuan

Mga Dokumento / Mga Mapagkukunan

Espressif Systems ESP32 Dev Kitc Development Board [pdf] Gabay sa Gumagamit
ESP32 Dev Kitc Development Board, ESP32, Dev Kitc Development Board, Kitc Development Board, Development Board, Board

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *