ESP32 Dev Kitc Development Board
Impormasyon sa Produkto
Mga detalye
- Produkto: ESP32
- Giya sa Programa: ESP-IDF
- Pagpagawas nga Bersyon: v5.0.9
- Manufacturer: Espressif Systems
- Petsa sa Pagpagawas: Mayo 16, 2025
Mga Instruksyon sa Paggamit sa Produkto
1. Pagsugod
Sa dili pa magsugod sa ESP32, pamilyar sa imong kaugalingon sa
mosunod:
1.1 Pasiuna
Pagkat-on mahitungod sa sukaranang mga gamit ug kapabilidad sa
ESP32.
1.2 Unsa ang Imong Gikinahanglan
Siguroha nga ikaw adunay gikinahanglan nga hardware ug software:
- Hardware: Susiha ang listahan sa gikinahanglan nga hardware
mga sangkap. - Software: I-install ang gikinahanglan nga software
mga sangkap.
1.3 Pag-instalar
Sunda kini nga mga lakang aron i-install ang IDE ug i-set up ang
palibot:
- IDE: I-install ang girekomendar nga IDE para sa
pagprograma sa ESP32. - Manwal nga Pag-instalar: Manwal nga i-set up ang
palibot kon gikinahanglan.
1.4 Pagtukod sa Imong Unang Proyekto
Paghimo ug paghimo sa imong inisyal nga proyekto gamit ang ESP32.
1.5 I-uninstall ang ESP-IDF
Kung gikinahanglan, pagkat-on unsaon pag-uninstall sa ESP-IDF gikan sa imong
sistema.
2. Reperensya sa API
Tan-awa ang dokumentasyon sa API para sa detalyadong impormasyon sa
mga protocol sa aplikasyon, pagdumala sa sayup, ug pag-configure
mga istruktura.
Kanunay nga Gipangutana nga mga Pangutana (FAQ)
P: Unsaon nako pagsulbad ang kasagarang mga isyu sa ESP32?
A: Tan-awa ang seksyon sa pag-troubleshoot sa giya sa programming
o bisitaha ang tiggama website alang sa suporta nga mga kapanguhaan.
P: Mahimo ba nako gamiton ang ESP-IDF sa ubang mga microcontroller?
A: Ang ESP-IDF espesipikong gidisenyo alang sa ESP32, apan mahimo nimong makit-an
pagkaangay sa ubang mga Espressif microcontrollers.
ESP32
Giya sa Pagprograma sa ESP-IDF
Ipagawas ang v5.0.9 Espressif Systems Mayo 16, 2025
Talaan sa mga sulod
Talaan sa mga sulod
i
1 Pagsugod
3
1.1 Pasiuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Unsa ang Imong Gikinahanglan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Pag-instalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Manwal nga Pag-instalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Paghimo sa Imong Unang Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 I-uninstall ang ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 Reperensya sa API
45
2.1 Mga Kombensiyon sa API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Sayop sa pagdumala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Mga istruktura sa pag-configure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 Pribado nga mga API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 Mga sangkap sa exampmga proyekto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 Kalig-on sa API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Mga Protokol sa Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 nga Pagkontrol sa ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 ESP Serial Slave Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 ESP x509 nga Sertipiko nga Bundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 HTTPS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 ICMP Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 Serbisyo sa mDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 IP Network Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 Bluetooth API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® Komon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® Ubos nga Enerhiya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 Controller ug HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 NimBLE-based host APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Reperensya sa Mga Kodigo sa Sayop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Layer sa Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Peripheral 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 Kahoy nga Orasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Digital Sa 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 Mga Kinahanglanon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 nga Elemento) . . . . . . . . . . . . . . . . . . . . . . . . . 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 sa Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Pasiuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Menu sa Configuration sa Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Paggamit sa sdkconfig.defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Mga Lagda sa Pag-format sa Kconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Paatras nga Pagkaangay sa Kconfig Options . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Reperensya sa Opsyon sa Pag-configure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Provisioning API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protocol Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Nahiusa nga Pagtagana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Pagtagana sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Storage API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSuporta sa sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Utility sa Paggama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 filesangkap sa sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Wear Leveling API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Format sa Imahe sa App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Pagsubay sa Level sa Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Pagtawag function uban sa gawas nga stack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Pagbag-o sa Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Error Codes ug Helper Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Library sa Loop sa Panghitabo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Supplemental Features) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Alokasyon sa Heap Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Heap Memory Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 High Resolution Timer (ESP Timer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Internal ug Dili Lig-on nga mga API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Inter-Processor nga Tawag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Makabalda nga alokasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Pag-log sa librarya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Miscellaneous System APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Over The Air Updates (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Monitor sa Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Pagdumala sa Gahum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Suporta sa POSIX Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Random Number Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Mga Mode sa Pagkatulog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Mga Kapabilidad sa SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Panahon sa Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 Ang alokasyon sa himem API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP Coprocessor programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Tigbantay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 Reperensya sa Hardware
2167
3.1 Pagtandi sa Serye sa Chip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 May Kalabutan nga mga Dokumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 Mga Giya sa API
2171
4.1 Application Level Pagsubay sa librarya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 Labawview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 Mga Pamaagi sa Operasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 Mga Opsyon sa Configuration ug Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 Unsaon Paggamit Kini nga Librarya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 Pag-agos sa Pagsugod sa Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 Unang stagug bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 Ikaduhang stagug bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 Pagsugod sa aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 Labawview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® Ubos nga Enerhiya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 Labawview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 Pagsugod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Pagkaangay sa bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 Log Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 Pag-reset sa pabrika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 Boot gikan sa Test Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 Rollback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 Tigbantay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 Gidak-on sa Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 Paspas nga boot gikan sa Deep Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 Custom nga bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 Sistema sa Pagtukod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 Labawview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 Paggamit sa Sistema sa Pagtukod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 Exampang Proyekto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 sa Preprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Mga Kinahanglanon sa Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Nag-overriding nga mga Bahin sa Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Configuration-Only Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Pag-debug sa CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Example Component CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Custom sdkconfig defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Flash argumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Pagtukod sa Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Pagsulat sa Putli nga mga sangkap sa CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Paggamit sa Third-Party nga mga Proyekto sa CMake nga adunay mga component . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Paggamit sa Prebuilt Libraries nga adunay mga component . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Paggamit sa ESP-IDF sa Custom CMake Projects . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globbing & Incremental Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Build System Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Pagtukod sa mga Internal nga Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Paglalin gikan sa ESP-IDF GNU Make System . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Core Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Kapinview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 I-save ang core dump aron ma-flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 I-print ang core dump sa UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 ROM Function sa Backtraces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Dumping variables on demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Pagpadagan sa espcoredump.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Madalom nga Pagkatulog Pagmata Mga Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Mga Lagda alang sa Wake Stubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Pagpatuman sa Usa ka Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Nagkarga sa Code Ngadto sa RTC Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Pagkarga sa Data Ngadto sa RTC Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 Pagsusi sa CRC Alang sa Mga Wake Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Pagdumala sa Sayop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Kapinview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Mga error code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Pag-convert sa mga error code ngadto sa error messages . . . . . . . . . . . . . . . . . . . . . . . . . . 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 SUSI SA MACROS Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Sayop sa pagdumala sa mga sumbanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Kapinview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Pasiuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 Mga Konsepto sa ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Pagtukod og Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Pagdumala sa Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Pagpasa sa Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Pagbalhin sa Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Dugang nga mga Nota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Pagdumala sa Hitabo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet, ug IP Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Mga Hitabo sa Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Mga Hitabo sa Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Makamatay nga mga Sayop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Kapinview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Panic Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Register Dump ug Backtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Mga Sayop sa Pagpamalandong sa Guru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Ubang Makamatay nga mga Sayop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Pasiuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 May kalabotan nga mga eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Proseso sa Pag-encrypt sa Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Flash Encryption Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Posibleng mga Kapakyasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 Flash Encryption Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Pagbasa ug Pagsulat sa Data sa Encrypted Flash . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Pag-update sa Naka-encrypt nga Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Pag-disable sa Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Pangunang Punto Bahin sa Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Mga Limitasyon sa Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Flash Encryption ug Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Abante nga mga Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Teknikal nga mga Detalye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Abstraction sa Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arkitektura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (Ubos nga Level) Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Hardware Abstraction Layer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Taas nga Ang-ang mga Paghunong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Mga Antas sa Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Nota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Pag-debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Pasiuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Giunsa Kini Pagtrabaho? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 Pagpili sa JTAG Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Setup sa OpenOCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Pag-configure sa ESP32 Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Paglansad sa Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Pag-debug Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Pagtukod sa OpenOCD gikan sa Mga Tinubdan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Mga Tip ug Mga Kinaiya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 May Kalabutan nga mga Dokumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Linker Script Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Tapos naview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Dali nga Pagsugod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Linker Script Generation Internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Gisuportahan nga mga API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS Buluhaton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip custom nga mga kausaban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 Pag-optimize sa Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Mga Matang sa Memorya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (Data RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Instruction RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (gipatuman ang code gikan sa flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (data nga gitipigan sa flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Hinay nga memorya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC FAST memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA Capable nga Kinahanglanon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA Buffer sa stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Mga mode sa OpenThread stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Unsaon Pagsulat ug OpenThread Application . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 Ang OpenThread Border Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Mga Talaan sa Partisyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Tapos naview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Gitukod-sa Partition Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Paghimo ug Custom nga mga Talaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Paghimog Binary Partition Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Mga Pagsusi sa Gidak-on sa Partisyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Pag-flash sa partition table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Partition Tool (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Pagganap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Unsaon Pag-optimize sa Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Mga Giya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Partial nga pag-calibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Bug-os nga pagkakalibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Walay calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY initialization data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 Reperensya sa API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Luwas nga Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Luwas nga Proseso sa Pag-boot Tapos naview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Mga Yawe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Gidak-on sa Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Unsaon Pag-enable sa Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Re-Flashable Software Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Paghimo og Secure Boot Signing Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Hilit nga Pagpirma sa mga Larawan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Secure Boot Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Mga Detalye sa Teknikal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Luwas nga Boot ug Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Gipirmahan nga Pag-verify sa App nga Walay Hardware Secure Boot . . . . . . . . . . . . . . . . . . 2478 4.24.13 Abanteng mga Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Luwas nga Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Secure Boot V2 Proseso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Format sa Block sa Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Luwas nga Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Pagpamatuod sa usa ka Signature Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Pagpamatuod sa usa ka Imahe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Gidak-on sa Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 paggamit sa eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Unsaon Pag-enable ang Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Mga pagdili human ma-enable ang Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Paghimo og Secure Boot Signing Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 Hilit nga Pagpirma sa mga Larawan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Secure Boot Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Teknikal nga mga Detalye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Luwas nga Boot ug Flash Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Gipirmahan nga Pag-verify sa App nga Walay Hardware Secure Boot . . . . . . . . . . . . . . . . . . 2484 4.25.18 Advanced Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Suporta alang sa External RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Pasiuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Pag-configure sa External RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Mga Pagdili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Pagkapakyas sa pagsugod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Mga Pagbag-o sa Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Thread Lokal nga Pagtipig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Tapos naview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Native API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Sumbanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Mga himan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Ma-download nga mga Himan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Unit Testing sa ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Normal nga mga Kaso sa Pagsulay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Multi-device Test Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Multi-stage Mga Kaso sa Pagsulay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Mga Pagsulay Para sa Lainlaing Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Building Unit Test App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Pagpadagan sa mga Pagsulay sa Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Timing Code nga adunay Cache Compensated Timer . . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Mga pagbugal-bugal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Unit Testing sa Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Naka-embed nga Mga Pagsulay sa Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF Unit Tests sa Linux Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 Wi-Fi Feature List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Unsaon Pagsulat ug 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 Deskripsyon sa Hitabo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi Station Kinatibuk-ang Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP Kinatibuk-ang Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi Station Connecting Scenario . . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi Station nga Nagkonektar Kon Daghang AP ang Makita . . . . . . . . . . . . . 2543 4.31.12 Pagkonekta Pag-usab sa 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 Pagdumala sa Wireless Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Pagsukod sa Resource sa Radyo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Paspas nga 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 Daghang Antenna sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Impormasyon sa Estado sa 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 sa Wi-Fi Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Unsaon Pagpauswag sa Pagganap sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi Menuconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Pag-troubleshoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Seguridad sa 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 Tapos naview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Gisuportahan nga Coexistence Scenario para sa ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Mekanismo ug Polisiya sa Coexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Unsaon Paggamit ang Coexistence Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Reproducible nga Pagtukod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Pasiuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Rason alang sa dili-reproducible nga mga pagtukod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Pag-enable sa mga reproducible build sa ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Giunsa pagkab-ot ang mga reproducible nga pagtukod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Reproducible builds ug debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Mga hinungdan nga nakaapekto gihapon sa mga reproducible build . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Ubos nga Power Mode Giya sa Gumagamit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578
5 Mga Giya sa Paglalin
2579
5.1 ESP-IDF 5.x Giya sa Paglalin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 Paglalin gikan sa 4.4 ngadto sa 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 Mga Librarya ug 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-KINSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Giya sa mga Kontribusyon
2615
7.1 Unsaon Pag-amot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 Sa dili pa Mag-amot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 Proseso sa Pagbitad sa Paghangyo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 Legal nga Bahin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 May Kalabutan nga mga Dokumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Espressif IoT Development Framework Giya sa Estilo. . . . . . . . . . . . . . . . . . . . 2616
7.5.2 I-install ang pre-commit Hook para sa ESP-IDF Project . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Kodigo sa Pagdokumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 Paghimo Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 API Documentation Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 Kasabutan sa Kontributor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 Copyright Header Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 Mga Pagsulay sa ESP-IDF nga adunay Giya sa Pytest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 Mga Bersyon sa ESP-IDF
2645
8.1 Pagpagawas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 Unsa nga Bersyon ang Kinahanglan Nako Magsugod? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 Bersyon nga Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 Mga Panahon sa Pagsuporta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 Pagsusi sa Kasamtangang Bersyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Git Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 Pag-update sa ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 Pag-update sa Stable nga Pagpagawas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 Pag-update sa usa ka Pre-Release nga Bersyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 Pag-update sa Master Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 Pag-update sa usa ka Release Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 Mga Kapanguhaan
2651
9.1 PlatformIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 Unsa ang PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 Pag-instalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 Mga Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 Proyekto Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Sunod nga mga Lakang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Mapuslanon nga mga Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Mga Copyright ug Lisensya
2653
10.1 Mga Copyright sa Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Mga sangkap sa Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Dokumentasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 ROM Source Code Copyrights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Xtensa libhal MIT Lisensya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 Lisensya sa TinyBasic Plus MIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 TJpgDec Lisensya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 Mga
2657
12 Pagbalhin Tali sa mga Pinulongan
2659
Index
2661
Index
2661
ix
x
Talaan sa mga sulod
Kini ang dokumentasyon alang sa Espressif IoT Development Framework (esp-idf). Ang ESP-IDF mao ang opisyal nga development framework para sa ESP32, ESP32-S ug ESP32-C Series SoCs. Kini nga dokumento naghulagway sa paggamit sa ESP-IDF sa ESP32 SoC.
Pagsugod
Reperensya sa API
Mga Giya sa API
Mga Sistema sa Espressif
1 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Talaan sa mga sulod
Mga Sistema sa Espressif
2 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1
Pagsugod
Kini nga dokumento gituyo aron matabangan ka sa pag-set up sa software development environment alang sa hardware base sa ESP32 chip ni Espressif. After ato, simple nga exampIpakita kanimo kung giunsa paggamit ang ESP-IDF (Espressif IoT Development Framework) alang sa pag-configure sa menu, dayon alang sa pagtukod ug pag-flash sa firmware sa usa ka ESP32 board.
Mubo nga sulat: Kini ang dokumentasyon para sa stable nga bersyon v5.0.9 sa ESP-IDF. Ang ubang mga Bersyon sa ESP-IDF anaa usab.
1.1 Pasiuna
Ang ESP32 usa ka sistema sa chip nga nag-integrate sa mosunod nga mga feature: · Wi-Fi (2.4 GHz band) · Bluetooth · Dual high performance Xtensa® 32-bit LX6 CPU cores · Ultra Low Power co-processor · Multiple peripheral
Gipakusog sa 40 nm nga teknolohiya, ang ESP32 naghatag og lig-on, kaayo nga integrated nga plataporma, nga makatabang sa pagtagbo sa padayon nga mga panginahanglan alang sa episyente nga paggamit sa kuryente, compact design, seguridad, taas nga performance, ug kasaligan. Naghatag ang Espressif og batakang mga kahinguhaan sa hardware ug software aron matabangan ang mga developer sa aplikasyon nga makaamgo sa ilang mga ideya gamit ang ESP32 series hardware. Ang software development framework ni Espressif gituyo alang sa pagpalambo sa Internetof-Things (IoT) nga mga aplikasyon nga adunay Wi-Fi, Bluetooth, power management ug uban pang mga feature sa system.
1.2 Unsa ang Imong Gikinahanglan
1.2.1 Hardware
· Usa ka ESP32 board. · USB cable – USB A / micro USB B. · Computer nga nagpadagan sa Windows, Linux, o macOS.
Mubo nga sulat: Sa pagkakaron, ang pipila sa mga development board naggamit sa USB Type C connectors. Siguroha nga ikaw adunay husto nga kable aron makonektar ang imong board!
Kung naa kay usa sa opisyal nga development board sa ESP32 nga nalista sa ubos, mahimo nimong i-klik ang link aron mahibal-an ang dugang bahin sa hardware.
3
Kapitulo 1. Pagsugod
ESP32-DevKitS(-R)
Kini nga giya sa tiggamit naghatag og impormasyon sa ESP32-DevKitS(-R), usa ka ESP32-based flashing board nga gihimo ni Espressif. Ang ESP32-DevKitS(-R) maoy kombinasyon sa duha ka board name: ESP32-DevKitS ug ESP32-DevKitS-R. Ang S nagpasabut sa mga tubod, ug ang R mao ang WROVER.
ESP32-DevKitS
ESP32-DevKitS-R
Ang dokumento naglangkob sa mosunod nga dagkong mga seksyon: · Pagsugod: Naghatag og usa ka labawview sa ESP32-DevKitS(-R) ug mga instruksiyon sa pag-setup sa hardware/software aron makasugod. · Hardware Reference: Naghatag ug mas detalyado nga impormasyon bahin sa ESP32-DevKitS(-R)ns hardware. · May Kalabutan nga mga Dokumento: Naghatag ug mga link sa may kalabutan nga dokumentasyon.
Pagsugod Kini nga seksyon naghulagway kung unsaon pagsugod sa ESP32-DevKitS(-R). Nagsugod kini sa pipila ka pasiuna nga mga seksyon bahin sa ESP32-DevKitS(-R), dayon ang Seksyon Giunsa ang Pag-flash sa usa ka Lupon naghatag mga panudlo kung giunsa ang pag-mount sa usa ka module sa ESP32-DevKitS(-R), andama kini, ug pag-flash sa firmware niini.
Tapos naview Ang ESP32-DevKitS(-R) mao ang ESPressifns flashing board nga gidisenyo alang sa ESP32. Mahimo kining gamiton sa pag-flash sa usa ka ESP32 module nga walay pagsolder sa module ngadto sa power supply ug signal lines. Uban sa usa ka module nga gitaod, ang ESP32-DevKitS(-R) mahimo usab nga gamiton isip mini development board sama sa ESP32-DevKitC.
Ang ESP32-DevKitS ug ESP32-DevKitS-R nga mga tabla lainlain lang sa layout sa mga spring pin aron mohaum sa mosunod nga ESP32 modules.
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB & IPEX) ESP32-WROVER-B (PCB & IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Para sa impormasyon bahin sa mga module sa ibabaw, palihog tan-awa ang ESP32 Series Modules.
Deskripsyon sa mga sangkap
Mga Sistema sa Espressif
4 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Fig. 1: ESP32-DevKitS - atubangan
Mga Sistema sa Espressif
Fig. 2: ESP32-DevKitS-R – atubangan 5
Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Key Component Spring Pins 2.54 mm Babaye Header
USB-to-UART Bridge LDO Micro-USB Connector/Micro USB Port EN Button Boot Button
Ang Power On LED
Deskripsyon I-klik ang module sa sulod. Ang mga lagdok mohaum sa modulens nga gi-castellated nga mga lungag. Kini nga mga babaye nga header konektado sa mga pin sa module nga gitaod niini nga board. Para sa paghulagway sa mga babaye nga header, palihog tan-awa ang Header Blocks. Ang single-chip USB ngadto sa UART bridge naghatag og transfer rate nga hangtod sa 3 Mbps.
5V-to-3.3V ubos nga dropout voltage regulator (LDO).
USB interface. Ang suplay sa kuryente alang sa board ingon man ang interface sa komunikasyon tali sa usa ka computer ug board.
I-reset ang buton.
Button sa pag-download. Ang pagpugong sa Boot ug dayon pagpindot sa EN magsugod sa Firmware Download mode alang sa pag-download sa firmware pinaagi sa serial port.
Mo-on kung ang USB o power supply konektado sa board.
Unsaon Pag-flash sa usa ka Board Sa dili pa paandaron ang imong ESP32-DevKitS(-R), palihug siguroha nga kini anaa sa maayong kondisyon nga walay klaro nga mga timailhan sa kadaot.
Gikinahanglan nga Hardware · Usa ka ESP32 module nga imong gipili · USB 2.0 cable (Standard-A to Micro-B) · Computer nga nagdagan sa Windows, Linux, o macOS
Hardware Setup Palihug i-mount ang usa ka module nga imong gipili sa imong ESP32-DevKitS(-R) sumala sa mosunod nga mga lakang:
· Hinayhinay ibutang ang imong module sa ESP32-DevKitS(-R) board. Siguroha nga ang mga castellated hole sa imong module nahiuyon sa spring pin sa pisara.
· Ipadayon ang imong module ngadto sa pisara hangtod nga kini mo-click. · Susiha kon ang tanang spring pin nasulod ba sa mga castellated hole. Kung adunay pipila ka mga sayup nga mga spring pin,
ibutang kini sa mga castellated nga mga lungag nga adunay mga sipit.
Pag-setup sa Software
Gipalabi nga Pamaagi Ang ESP-IDF development framework naghatag ug pinalabi nga paagi sa pagkidlap sa mga binary ngadto sa ESP32-DevKitS(-R). Palihug ipadayon ang Pagsugod, diin ang Pag-install sa Seksyon dali nga makatabang kanimo sa pag-set up sa palibot sa pag-uswag ug dayon pag-flash sa usa ka aplikasyon exampsa imong ESP32-DevKitS(-R).
Alternatibong Pamaagi Isip alternatibo, ang mga tiggamit sa Windows maka-flash sa binary gamit ang Flash Download Tool. I-download lang kini, unzip kini, ug sunda ang mga instruksyon sulod sa doc folder.
Mubo nga sulat: 1. Sa flash binary files, ang ESP32 kinahanglan nga ibutang sa Firmware Download mode. Mahimo kini pinaagi sa flash tool nga awtomatiko, o pinaagi sa pagpugong sa Boot button ug pag-tap sa EN button. 2. Human sa pagkidlap binary files, ang Flash Download Tool mag-restart sa imong ESP32 module ug i-boot ang flashed nga aplikasyon pinaagi sa default.
Mga Dimensyon sa Lupon sa Mga sulud ug Pagputos
Mga Sistema sa Espressif
6 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod Fig. 3: ESP32-DevKitS board dimensyon - balik
Mga Sistema sa Espressif
Fig. 4: ESP32-DevKitS-R nga mga sukat sa board - likod 7
Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Retail orders Kon mag-order ka ug pipila ka sampDugang pa, ang matag ESP32-DevKitS(-R) moabut sa usa ka indibidwal nga pakete sa bisan unsang antistatic nga bag o bisan unsang pakete depende sa usa ka retailer. Para sa retail orders, palihog adto sa https://www.espressif.com/en/contact-us/get-samples.
Wholesale Orders Kung mag-order ka sa kadaghanan, ang mga tabla moabut sa dagkong mga karton nga kahon. Para sa pakyawan nga mga order, palihug adto sa https://www.espressif.com/en/contact-us/sales-questions.
Reperensya sa Hardware
Block Diagram Ang block diagram sa ubos nagpakita sa mga component sa ESP32-DevKitS(-R) ug sa ilang mga interconnection.
Fig. 5: ESP32-DevKitS(-R) (i-klik aron padakuon)
Mga Opsyon sa Pag-supply sa Gahum Adunay tulo ka esklusibo nga paagi sa paghatag og gahum sa board: · Micro USB port, default power supply · 5V ug GND header pins · 3V3 ug GND header pins
Gitambagan nga gamiton ang una nga kapilian: micro USB port.
Mga Sistema sa Espressif
.
Label Signal
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
nagpadayon sa sunod nga panid
8 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Table 1 nagpadayon gikan sa miaging panid
.
Label Signal
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
Gawas nga 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
Header Blocks Para sa hulagway sa header blocks, palihog tan-awa ang Deskripsyon sa mga Components.
May Kalabutan nga mga Dokumento
· ESP32-DevKitS(-R) Schematics (PDF) · ESP32 Datasheet (PDF) · ESP32-WROOM-32 Datasheet (PDF) · ESP32-WROOM-32D & ESP32-WROOM-32U Datasheet (PDF) · ESP32-SOLO-1 Datasheet (PDF) · ESP32-SOLO-1 Datasheet (PDF) · ESP32-WROVER-B Datasheet (PDF) · Tigpili sa Produkto sa ESP
ESP32-DevKitM-1
Kini nga giya sa paggamit makatabang kanimo sa pagsugod sa ESP32-DevKitM-1 ug maghatag usab og mas lawom nga impormasyon.
Ang ESP32-DevKitM-1 usa ka ESP32-MINI-1(1U)-based development board nga gihimo ni Espressif. Kadaghanan sa mga I/O nga mga pin gibuak ngadto sa mga header sa pin sa duha ka kilid alang sa sayon nga interfacing. Ang mga tiggamit mahimo’g magkonektar sa mga peripheral nga adunay mga jumper wire o i-mount ang ESP32-DevKitM-1 sa usa ka breadboard.
Mga Sistema sa Espressif
9 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
ESP32-DevKitM-1 – atubangan
ESP32-DevKitM-1 – isometric
Ang dokumento naglangkob sa mosunod nga dagkong mga seksyon: · Pagsugod: Naghatag og usa ka overview sa ESP32-DevKitM-1 ug mga instruksyon sa pag-setup sa hardware/software aron makasugod. · Reperensya sa hardware: Naghatag ug mas detalyado nga kasayuran bahin sa ESP32-DevKitM-1ns hardware. · May Kalabutan nga mga Dokumento: Naghatag ug mga link sa may kalabutan nga dokumentasyon.
Pagsugod Kini nga seksyon naghulagway kung unsaon pagsugod sa ESP32-DevKitM-1. Nagsugod kini sa pipila ka pasiuna nga mga seksyon bahin sa ESP32-DevKitM-1, unya ang Seksyon Pagsugod sa Application Development naghatag mga panudlo kung giunsa buhaton ang una nga pag-setup sa hardware ug dayon kung giunsa ang pag-flash sa firmware sa ESP32-DevKitM-1.
Tapos naview Kini usa ka gamay ug sayon nga development board nga adunay bahin:
· ESP32-MINI-1, o ESP32-MINI-1U module · USB-to-serial programming interface nga naghatag usab ug power supply para sa board · pin header · pushbuttons para sa pag-reset ug pagpaaktibo sa Firmware Download mode · pipila ka ubang component
Sulod ug Packaging
Retail orders Kon mag-order ka ug pipila ka sampDugang pa, ang matag ESP32-DevKitM-1 moabut sa usa ka indibidwal nga pakete sa bisan unsang antistatic nga bag o bisan unsang pakete depende sa imong retailer.
Para sa retail orders, palihog adto sa https://www.espressif.com/en/contact-us/get-samples.
Wholesale Orders Kung mag-order ka sa kadaghanan, ang mga tabla moabut sa dagkong mga karton nga kahon. Para sa pakyawan nga mga order, palihug adto sa https://www.espressif.com/en/contact-us/sales-questions.
Deskripsyon sa mga sangkap Ang mosunod nga numero ug ang lamesa sa ubos naghulagway sa mga yawe nga sangkap, interface ug kontrol sa ESP32-DevKitM-1 board. Gikuha namo ang board gamit ang ESP32-MINI-1 module isip example sa mosunod nga mga seksyon.
Mga Sistema sa Espressif
10 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Fig. 6: ESP32-DevKitM-1 – atubangan
Key Component On-board module
5 V hangtod 3.3 V LDO Boot Button
I-reset ang Butang nga Micro-USB Port
USB-to-UART Bridge 3.3 V Power On LED
Konektor sa I/O
Deskripsyon
ESP32-MINI-1 module o ESP32-MINI-1U module. Ang ESP32-MINI-1 adunay usa ka on-board nga PCB antenna. Ang ESP32-MINI-1U adunay usa ka external antenna connector. Ang duha ka mga module parehong adunay 4 MB flash sa chip package. Para sa mga detalye, palihog tan-awa ang ESP32-MINI-1 & ESP32-MINI-1U Datasheet.
Ang power regulator nag-convert sa 5 V ngadto sa 3.3 V.
Button sa pag-download. Ang pagpugong sa Boot ug dayon pagpindot sa Reset magsugod sa Firmware Download mode alang sa pag-download sa firmware pinaagi sa serial port.
I-reset ang Butang
USB interface. Ang suplay sa kuryente alang sa board ingon man ang interface sa komunikasyon tali sa usa ka kompyuter ug sa ESP32 chip.
Ang single USB-UART bridge chip naghatag ug transfer rate hangtod sa 3 Mbps.
Nag-on kung ang USB konektado sa board. Para sa mga detalye, palihog tan-awa ang schematics sa Related Documents. Ang tanan nga magamit nga GPIO pin (gawas sa SPI bus para sa flash) gibuak sa mga pin header sa pisara. Ang mga tiggamit mahimong magprograma sa ESP32 chip aron mahimo ang daghang mga gimbuhaton.
Sugdi ang Pagpalambo sa Aplikasyon Sa dili pa i-power up ang imong ESP32-DevKitM-1, palihug siguroha nga kini anaa sa maayong kondisyon nga walay klaro nga mga timailhan sa kadaot.
Gikinahanglan nga Hardware · ESP32-DevKitM-1 · USB 2.0 cable (Standard-A to Micro-B) · Computer nga nagdagan sa Windows, Linux, o macOS
Pag-setup sa Software Palihug ipadayon ang Pagsugod, diin ang Pag-install sa Seksyon dali nga makatabang kanimo sa pag-set up sa palibot sa pag-uswag ug dayon pag-flash sa usa ka aplikasyon exampsa imong ESP32-DevKitM-1.
Mga Sistema sa Espressif
11 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Atensyon: Ang ESP32-DevKitM-1 nga mga tabla nga gihimo sa wala pa ang Disyembre 2, 2021 adunay usa ka core module nga na-install. Aron mapamatud-an kung unsa nga module ang naa nimo, palihug susiha ang impormasyon sa pagmarka sa module sa PCN-2021-021. Kung ang imong board adunay usa ka core module nga na-install, palihug i-enable ang single core mode (CONFIG_FREERTOS_UNICORE) sa menuconfig sa dili pa i-flash ang imong mga aplikasyon.
Hardware Reference Block Diagram Ang usa ka block diagram sa ubos nagpakita sa mga component sa ESP32-DevKitM-1 ug sa ilang mga interconnection.
Hulagway 7: ESP32-DevKitM-1
Pagpili sa Tinubdan sa Gahum Adunay tulo ka esklusibo nga paagi sa paghatag og gahum sa board: · Micro USB port, default power supply · 5V ug GND header pins · 3V3 ug GND header pins
Pasidaan: · Ang suplay sa kuryente kinahanglang ihatag gamit ang usa ug usa lamang sa mga opsyon sa ibabaw, kon dili ang tabla ug/o ang tinubdan sa suplay sa kuryente mahimong madaot. · Girekomenda ang suplay sa kuryente pinaagi sa micro USB port.
Mga Deskripsyon sa Pin Ang lamesa sa ubos naghatag sa Ngalan ug Function sa mga pin sa duha ka kilid sa pisara. Para sa peripheral pin configurations, palihog tan-awa ang ESP32 Datasheet.
Dili.
Ngalan
Type
1
GND
P
2
3V3
P
Function Ground 3.3 V power supply
nagpadayon sa sunod nga panid
Mga Sistema sa Espressif
12 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Table 2 nagpadayon gikan sa miaging panid
Dili.
Ngalan
Type
Kalihokan
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; Taas: makahimo; Ubos: gipalong
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 kristal 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 nga suplay sa kuryente
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 sa Pagbag-o sa Hardware Walay nauna nga mga bersyon nga magamit.
May Kalabutan nga mga Dokumento
· ESP32-MINI-1 & ESP32-MINI-1U Datasheet (PDF) · ESP32-DevKitM-1 Schematics (PDF) · ESP32-DevKitM-1 PCB layout (PDF) · ESP32-DevKitM-1 layout (DXF) – Mahimo nimo view kini uban sa Autodesk Viewer online · ESP32 Datasheet (PDF) · ESP Product Selector
Alang sa uban pang dokumentasyon sa disenyo alang sa board, palihug kontaka kami sa sales@espressif.com.
Mga Sistema sa Espressif
13 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
1.2.2 Software
Sa pagsugod sa paggamit sa ESP-IDF sa ESP32, i-install ang mosunod nga software: · Toolchain sa pag-compile sa code para sa ESP32 · Pagtukod og mga himan – CMake ug Ninja sa paghimo og usa ka bug-os nga Aplikasyon para sa ESP32 · ESP-IDF nga adunay esensya nga adunay API (software libraries ug source code) para sa ESP32 ug mga script sa pag-operate sa Toolchain
1.3 Pag-instalar
Aron ma-install ang tanan nga gikinahanglan nga software, nagtanyag kami pipila ka lainlaing mga paagi aron mapadali kini nga buluhaton. Pagpili gikan sa usa sa mga magamit nga kapilian.
1.3.1 IDE
Mubo nga sulat: Among girekomendar ang pag-instalar sa ESP-IDF pinaagi sa imong paboritong IDE.
· Eclipse Plugin · VSCode Extension
1.3.2 Manwal nga Pag-instalar
Alang sa manwal nga pamaagi, palihug pagpili sumala sa imong operating system.
Mga Sistema sa Espressif
14 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Standard Setup sa Toolchain alang sa Windows
Pasiuna Ang ESP-IDF nanginahanglan pipila ka kinahanglanon nga mga himan nga ma-install aron makahimo ka og firmware alang sa gisuportahan nga mga chips. Ang gikinahanglan nga mga himan naglakip sa Python, Git, cross-compilers, CMake ug Ninja build tools. Alang niini nga Pagsugod gamiton ang Command Prompt, apan human ma-install ang ESP-IDF mahimo nimong gamiton ang Eclipse Plugin o laing graphical IDE nga adunay suporta sa CMake. Mubo nga sulat: Mga Limitasyon: – Ang dalan sa pag-instalar sa ESP-IDF ug ESP-IDF Tools kinahanglang dili molapas sa 90 ka karakter. Ang taas kaayo nga mga agianan sa pag-instalar mahimong moresulta sa usa ka pakyas nga pagtukod. - Ang agianan sa pag-install sa Python o ESP-IDF kinahanglan dili adunay puti nga mga wanang o parentesis. - Ang agianan sa pag-install sa Python o ESP-IDF kinahanglan dili maglangkob sa mga espesyal nga karakter (nonASCII) gawas kung ang operating system gi-configure nga adunay suporta sa oUnicode UTF-8p. Ang System Administrator makahimo sa suporta pinaagi sa Control Panel - Usba ang petsa, oras, o mga format sa numero - Administrative tab - Usba ang system locale - susiha ang opsyon oBeta: Gamita ang Unicode UTF-8 para sa tibuok kalibutan nga suporta sa pinulonganp - Ok ug i-reboot ang computer.
ESP-IDF Tools Installer Ang pinakasayon nga paagi sa pag-instalar sa mga kinahanglanon sa ESP-IDFns mao ang pag-download sa usa sa ESP-IDF Tools Installer.
Pag-download sa Windows Installer
Unsa ang usecase alang sa Online ug Offline Installer Online Installer gamay ra kaayo ug gitugotan ang pag-install sa tanan nga magamit nga pagpagawas sa ESP-IDF. Ang installer mag-download lamang sa gikinahanglan nga mga dependency lakip ang Git For Windows atol sa proseso sa pag-instalar. Na-download ang mga tindahan sa installer files sa cache directory %userprofile%. espressif
Ang Offline Installer wala magkinahanglan og bisan unsang koneksyon sa network. Ang installer naglangkob sa tanan nga gikinahanglan nga dependency lakip ang Git For Windows.
Mga bahin sa pag-instalar Ang installer nag-deploy sa mosunod nga mga sangkap:
· Naka-embed nga Python · Cross-compilers · OpenOCD · CMake ug Ninja build tool · ESP-IDF
Gitugotan usab sa installer ang paggamit pag-usab sa kasamtangan nga direktoryo sa ESP-IDF. Ang girekomendar nga direktoryo mao ang %userprofile%Desktopesp-idf diin %userprofile% mao ang imong home directory.
Mga Sistema sa Espressif
15 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Paglunsad sa ESP-IDF Environment Sa katapusan sa proseso sa pag-instalar mahimo nimong tan-awon ang opsyon Run ESP-IDF PowerShell Environment o Run ESP-IDF Command Prompt (cmd.exe). Ang installer maglunsad sa ESP-IDF nga palibot sa pinili nga prompt. Pagdalagan ang ESP-IDF PowerShell Environment:
Fig. 8: Pagkompleto sa ESP-IDF Tools Setup Wizard gamit ang Run ESP-IDF PowerShell Environment
Pagdalagan ang ESP-IDF Command Prompt (cmd.exe):
Paggamit sa Command Prompt Alang sa nahabilin nga mga lakang sa Pagsugod, gamiton ang Windows Command Prompt. Ang ESP-IDF Tools Installer naghimo usab og shortcut sa Start menu aron ilunsad ang ESP-IDF Command Prompt. Kini nga shortcut naglansad sa Command Prompt (cmd.exe) ug nagpadagan sa export.bat script aron i-set up ang environment variables (PATH, IDF_PATH ug uban pa). Sa sulod niini nga command prompt, ang tanan nga na-install nga mga himan anaa. Timan-i nga kini nga shortcut espesipiko sa ESP-IDF nga direktoryo nga gipili sa ESP-IDF Tools Installer. Kung ikaw adunay daghang mga direktoryo sa ESP-IDF sa kompyuter (alang sa example, sa pagtrabaho uban sa lain-laing mga bersyon sa ESP-IDF), kamo adunay duha ka mga opsyon sa paggamit niini:
1. Paghimo og kopya sa shortcut nga gihimo sa ESP-IDF Tools Installer, ug usba ang working directory sa bag-ong shortcut ngadto sa ESP-IDF directory nga gusto nimong gamiton.
2. Sa laing paagi, padagana ang cmd.exe, dayon usba ang direktoryo sa ESP-IDF nga gusto nimong gamiton, ug padagana ang export.bat. Timan-i nga dili sama sa miaging kapilian, kini nga paagi nanginahanglan Python ug Git nga naa sa PATH. Kung nakakuha ka mga sayup nga may kalabutan sa Python o Git nga wala makit-an, gamita ang una nga kapilian.
Unang mga Lakang sa ESP-IDF Karon tungod kay natuman na ang tanang kinahanglanon, ang sunod nga topiko maggiya kanimo kon unsaon pagsugod sa imong unang proyekto.
Mga Sistema sa Espressif
16 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod Fig. 9: ESP-IDF PowerShell
Fig. 10: Pagkompleto sa ESP-IDF Tools Setup Wizard gamit ang Run ESP-IDF Command Prompt (cmd.exe)
Mga Sistema sa Espressif
17 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Fig. 11: ESP-IDF Command Prompt
Mga Sistema sa Espressif
18 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Kini nga giya makatabang kanimo sa unang mga lakang gamit ang ESP-IDF. Sunda kini nga giya sa pagsugod og bag-ong proyekto sa ESP32 ug paghimo, pag-flash, ug pagmonitor sa output sa device. Mubo nga sulat: Kung wala pa nimo ma-install ang ESP-IDF, palihug adto sa Pag-install ug sunda ang panudlo aron makuha ang tanan nga software nga gikinahanglan aron magamit kini nga giya.
Pagsugod ug Proyekto Karon andam ka na sa pag-andam sa imong aplikasyon para sa ESP32. Makasugod ka sa getstarted/hello_world nga proyekto gikan sa examples nga direktoryo sa ESP-IDF.
Importante: Ang sistema sa pagtukod sa ESP-IDF wala mosuporta sa mga luna sa mga agianan paingon sa ESP-IDF o sa mga proyekto.
Kopyaha ang proyekto get-started/hello_world ngadto sa ~/esp directory: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
Mubo nga sulat: Adunay usa ka range sa example projects sa examples nga direktoryo sa ESP-IDF. Mahimo nimong kopyahon ang bisan unsang proyekto sa parehas nga paagi sama sa gipresentar sa ibabaw ug ipadagan kini. Posible usab nga magtukod og examples in-place nga dili una kopyahon.
Ikonektar ang Imong Device Karon ikonektar ang imong ESP32 board sa kompyuter ug susiha kung asa nga serial port makita ang board. Ang mga ngalan sa serial port nagsugod sa COM sa Windows. Kung dili ka sigurado kung giunsa pagsusi ang ngalan sa serial port, palihug tan-awa ang Pag-establisar sa Serial nga Koneksyon sa ESP32 alang sa tibuuk nga mga detalye.
Mubo nga sulat: Itago ang ngalan sa port nga magamit ingon nga kinahanglan nimo kini sa sunod nga mga lakang.
I-configure ang Imong Proyekto Pag-navigate sa imong hello_world nga direktoryo, itakda ang ESP32 isip target, ug padagana ang project configuration utility menuconfig.
Windows cd% userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Pagkahuman sa pag-abli sa usa ka bag-ong proyekto, kinahanglan una nimo nga itakda ang target gamit ang idf.py set-target esp32. Timan-i nga ang naglungtad nga mga pagtukod ug mga pag-configure sa proyekto, kung naa man, ma-clear ug magsugod sa kini nga proseso. Ang target mahimong ma-save sa variable sa palibot aron malaktawan kini nga lakang. Tan-awa ang Select the Target Chip: set-target para sa dugang nga impormasyon. Kung ang nangaging mga lakang nahimo sa husto, ang mosunod nga menu makita: Gigamit nimo kini nga menu aron i-set up ang mga piho nga variable sa proyekto, pananglitan, ngalan sa Wi-Fi network ug password, ang gikusgon sa processor, ug uban pa.ample midagan uban sa default configuration.
Atensyon: Kung mogamit ka sa ESP32-DevKitC board nga adunay ESP32-SOLO-1 module, o ESP32-DevKitM-1 board nga adunay ESP32-MIN1-1(1U) module, palihug i-enable ang single core mode (CONFIG_FREERTOS_UNICORE) sa menuconfig sa dili pa mag-flash examples.
Mga Sistema sa Espressif
19 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Fig. 12: Configuration sa proyekto – Home window
Pahinumdom: Ang mga kolor sa menu mahimong lahi sa imong terminal. Mahimo nimong usbon ang hitsura gamit ang kapilian -style. Palihug pagdagan idf.py menuconfig –help para sa dugang nga impormasyon.
Kung naggamit ka usa sa gisuportahan nga mga board sa pag-uswag, mahimo nimo mapadali ang imong pag-uswag pinaagi sa paggamit sa Board Support Package. Tan-awa ang Dugang nga mga Tip para sa dugang nga impormasyon.
Pagtukod sa Proyekto Pagtukod sa proyekto pinaagi sa pagpadagan:
idf.py pagtukod
Kini nga mando mag-compile sa aplikasyon ug sa tanan nga mga sangkap sa ESP-IDF, unya kini makamugna sa bootloader, partition table, ug mga binary sa aplikasyon.
$ idf.py build Nagdagan nga cmake sa direktoryo /path/to/hello_world/build Nagpatuman sa “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Pasidan-i ang bahin sa wala pa nasugdan nga mga bili. — Nakit-an nga Git: /usr/bin/git (nakaplagan nga bersyon “2.17.0”) — Pagtukod ug walay sulod nga aws_iot component tungod sa configuration — Component names: … — Component paths: …
… (daghang linya sa build system output)
[527/527] Paghimo hello_world.bin esptool.py v2.3.1
Kompleto ang pagtukod sa proyekto. Aron mag-flash, padagana kini nga sugo: ../../../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 run 'idf.py -p PORT flash'
Kung walay mga sayup, ang pagtukod mahuman pinaagi sa pagmugna sa firmware binary .bin files.
Mga Sistema sa Espressif
20 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
I-flash sa Device I-flash ang mga binary nga bag-o lang nimong gihimo (bootloader.bin, partition-table.bin ug hello_world.bin) sa imong ESP32 board pinaagi sa pagpadagan: idf.py -p PORT [-b BAUD] flash
Ilisan ang PORT sa imong ESP32 boardns serial port name. Mahimo usab nimo usbon ang flasher baud rate pinaagi sa pag-ilis sa BAUD sa baud rate nga imong gikinahanglan. Ang default baud rate kay 460800. Para sa dugang nga impormasyon sa idf.py arguments, tan-awa ang idf.py.
Mubo nga sulat: Ang opsyon nga flash awtomatik nga nagtukod ug nag-flash sa proyekto, mao nga ang pagpadagan sa idf.py build dili kinahanglan.
Nakasugat og mga Isyu Samtang Nag-flash? Kung gipadagan nimo ang gihatag nga mando ug nakita ang mga sayup sama sa Napakyas sa pagkonektar, mahimo’g adunay daghang mga hinungdan niini. Ang usa sa mga hinungdan mahimong mga isyu nga nasugatan sa esptool.py, ang utility nga gitawag sa build system aron i-reset ang chip, makig-uban sa ROM bootloader, ug flash firmware. Usa ka yano nga solusyon nga sulayan mao ang manual nga pag-reset nga gihulagway sa ubos, ug kung dili kini makatabang makit-an nimo ang dugang nga mga detalye bahin sa posible nga mga isyu sa Troubleshooting.
Awtomatiko nga gi-reset sa esptool.py ang ESP32 pinaagi sa pagpahayag sa mga linya sa pagkontrol sa DTR ug RTS sa USB sa serial converter chip, ie, FTDI o CP210x (alang sa dugang nga kasayuran, tan-awa ang Pagtukod og Serial Connection sa ESP32). Ang mga linya sa kontrol sa DTR ug RTS konektado sa GPIO0 ug CHIP_PU (EN) nga mga pin sa ESP32, sa ingon nagbag-o sa vol.tagAng mga lebel sa DTR ug RTS mag-boot sa ESP32 ngadto sa Firmware Download mode. Ingon usa ka example, susiha ang eskematiko alang sa ESP32 DevKitC development board.
Sa kinatibuk-an, kinahanglan nga wala ka'y problema sa opisyal nga esp-idf development boards. Bisan pa, ang esptool.py dili makahimo sa pag-reset sa imong hardware awtomatik sa mosunod nga mga kaso:
· Ang imong hardware walay mga linya sa DTR ug RTS nga konektado sa GPIO0 ug CHIP_PU · Ang mga linya sa DTR ug RTS kay lahi ang pagka-configure · Wala gayuy mga serial control lines.
Depende sa matang sa hardware nga naa nimo, mahimo usab nga mahimo nga mano-mano nga ibutang ang imong ESP32 board ngadto sa Firmware Download mode (reset).
· Para sa mga development board nga gihimo sa Espressif, kini nga impormasyon makita sa tagsa-tagsa nga mga giya sa pagsugod o mga giya sa paggamit. Kay exampug, aron manwal nga i-reset ang usa ka ESP-IDF development board, pugngi ang Boot button (GPIO0) ug pindota ang EN button (CHIP_PU).
· Para sa ubang klase sa hardware, sulayi pagbitad ang GPIO0 paubos.
Normal nga Operasyon Kung nagkidlap, imong makita ang output log nga susama sa mosunod:
… 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-100bin. 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Connecting…….._ Chip mao ang ESP32D0WDQ6 (rebisyon 0) Features: WiFi, BT, Dual Core, Coding Scheme Walay Crystal kay 40MHz MAC: 24:0atubb:c9:04… nagdagan… Pag-usab sa baud rate ngadto sa 460800 Gibag-o.
(padayon sa sunod nga panid)
Mga Sistema sa Espressif
21 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
(gipadayon gikan sa miaging panid) Pag-configure sa gidak-on sa flash... Gi-compress ang 3072 bytes ngadto sa 103... Pagsulat sa 0x00008000... (100 %) Nagsulat og 3072 bytes (103 compressed) sa 0x00008000 sa 0.0 ka segundos... Gi-compress ang 26096 bytes ngadto sa 15408… Pagsulat sa 0x00001000… (100 %) Misulat og 26096 bytes (15408 compressed) sa 0x00001000 sa 0.4 segundos (epektibo nga 546.7 kbit/s)… Gi-compress ang 147104 bytes ngadto sa 77364… Pagsulat sa 0x00010000… (20 %) Pagsulat sa 0x00014000… (40 %) Pagsulat sa 0x00018000… (60 %) Pagsulat sa 0x0001c000% Writing sa 0x0001c000% 0x00020000… (100 %) Nagsulat 147104 bytes (77364 compressed) sa 0x00010000 sa 1.9 segundos (epektibo 615. 5 kbit/s)… Hash sa datos napamatud-an.
Pagbiya… Lisud nga pag-reset pinaagi sa RTS pin… Tapos na
Kung walay mga isyu sa katapusan sa proseso sa flash, ang board mag-reboot ug magsugod sa theohello_worldpapplication. Kung gusto nimo gamiton ang Eclipse o VS Code IDE imbes nga magpadagan sa idf.py, tan-awa ang Eclipse Plugin, VSCode Extension.
Pag-monitor sa Output Aron masusi kung ang ohello_worldpis tinuod nga nagdagan, i-type ang idf.py -p PORT monitor (Ayaw kalimti ang pag-ilis sa PORT sa imong serial port nga ngalan).
Kini nga sugo naglansad sa aplikasyon sa IDF Monitor:
$ idf.py -p monitor Nagdagan ang idf_monitor sa direktoryo […]/esp/hello_world/build Pagpatuman sa “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor on 115200 —– Hunong: Ctrl+] | Menu: Ctrl+T | Tabang: Ctrl+T gisundan sa Ctrl+H –ets Jun 8 2016 00:22:57
una: 0x1 (POWERON_RESET), boot: 0x13 (SPI_FAST_FLASH_BOOT) ug Hunyo 8, 2016 00:22:57 …
Human sa pagsugod ug diagnostic logs scroll up, imong makita ang oHello world!pprinted sa aplikasyon.
… Hello kalibutan! Pag-restart sa 10 segundos… Kini ang esp32 chip nga adunay 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 2MB external flash Minimum free heap size: 298968 bytes Pag-restart sa 9 segundos… Pag-restart sa 8 segundos… Pag-restart sa 7 segundos…
Aron makagawas sa IDF monitor gamita ang shortcut Ctrl+].
Mga Sistema sa Espressif
22 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Kung mapakyas ang monitor sa IDF pagkahuman sa pag-upload, o, kung imbes sa mga mensahe sa itaas, makita nimo ang mga random nga basura nga parehas sa gihatag sa ubos, ang imong board lagmit naggamit usa ka 26 MHz nga kristal. Kadaghanan sa mga disenyo sa development board naggamit sa 40 MHz, mao nga ang ESP-IDF naggamit niini nga frequency isip default value.
Kon aduna kay problema, buhata ang mosunod: 1. Paggawas sa monitor. 2. Balik sa menuconfig. 3. Adto sa Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency, unya usba ang CONFIG_XTAL_FREQ_SEL ngadto sa 26 MHz. 4. Human niana, paghimo ug pag-flash sa aplikasyon pag-usab.
Sa kasamtangan nga bersyon sa ESP-IDF, ang nag-unang XTAL frequency nga gisuportahan sa ESP32 mao ang mosunod:
· 26 MHz · 40 MHz
Mubo nga sulat: Mahimo nimong ikombinar ang pagtukod, pagkidlap ug pagmonitor sa usa ka lakang pinaagi sa pagdagan: idf.py -p PORT flash monitor
Tan-awa usab: · IDF Monitor para sa mga dali nga shortcut ug dugang mga detalye sa paggamit sa IDF monitor. · idf.py para sa bug-os nga pakisayran sa idf.py nga mga sugo ug mga kapilian.
Kana ang tanan nga kinahanglan nimo aron makasugod sa ESP32! Karon andam ka na nga mosulay sa ubang mga examples, o diretso sa pagpalambo sa imong kaugalingong mga aplikasyon.
Importante: Pipila sa exampAng mga tawo dili mosuporta sa ESP32 tungod kay ang gikinahanglan nga hardware wala maapil sa ESP32 mao nga dili kini masuportahan. Kung magtukod ug example, palihog susiha ang README file alang sa Gisuportahan nga mga Target nga lamesa. Kung naa kini lakip ang target sa ESP32, o wala gyud ang lamesa, ang exampmagtrabaho sa ESP32.
Dugang nga mga Tip
Mga isyu sa pagtugot / dev / ttyUSB0 Uban sa pipila ka mga distribusyon sa Linux, mahimo nimong makuha ang Napakyas sa pag-abli sa port / dev / ttyUSB0 nga mensahe sa sayup kung nag-flash sa ESP32. Masulbad kini pinaagi sa pagdugang sa kasamtangang tiggamit sa dialout nga grupo.
Ang Python compatibility ESP-IDF nagsuporta sa Python 3.7 o mas bag-o. Girekomenda nga i-upgrade ang imong operating system sa usa ka bag-o nga bersyon nga makatagbaw niini nga kinahanglanon. Ang ubang mga kapilian naglakip sa pag-instalar sa Python gikan sa mga tinubdan o sa paggamit sa Python version management system sama sa pyenv.
Pagsugod sa Board Support Package Aron mapadali ang prototyping sa pipila ka development boards, mahimo nimong gamiton ang Board Support Packages (BSPs), nga naghimo sa pagsugod sa usa ka partikular nga board nga sayon sama sa pipila ka function calls.
Mga Sistema sa Espressif
23 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Ang BSP kasagarang nagsuporta sa tanan nga mga sangkap sa hardware nga gihatag sa development board. Gawas sa pinout definition ug initialization functions, ang usa ka BSP nagpadala ug mga drayber alang sa external components sama sa sensors, displays, audio codecs ug uban pa. Kini usa ka exampunsaon pagdugang ang ESP-WROVER-KIT BSP sa imong proyekto: idf.py add-dependency esp_wrover_kit
Dugang exampang gamay nga paggamit sa BSP makita sa BSP examples folder.
May Kalabutan nga mga Dokumento Para sa mga advanced user nga gustong i-customize ang proseso sa pag-install: · Pag-update sa mga gamit sa ESP-IDF sa Windows · Pagtukod og Serial Connection sa ESP32 · Eclipse Plugin · VSCode Extension · IDF Monitor
Pag-update sa mga himan sa ESP-IDF sa Windows
I-install ang mga himan sa ESP-IDF gamit ang script Gikan sa Windows Command Prompt, usba ang direktoryo diin gi-install ang ESPIDF. Unya dagan:
instalar.bat
Alang sa Powershell, usba ang direktoryo diin na-install ang ESP-IDF. Unya dagan:
instalar.ps1
Kini mag-download ug mag-install sa mga himan nga gikinahanglan aron magamit ang ESP-IDF. Kung ang piho nga bersyon sa himan na-install na, wala’y aksyon nga himuon. Ang mga himan gi-download ug gi-install sa usa ka direktoryo nga gitakda sa panahon sa proseso sa ESP-IDF Tools Installer. Sa kasagaran, kini mao ang C:Usersusername.espressif.
Idugang ang ESP-IDF nga mga himan sa PATH gamit ang export script Ang ESP-IDF tools installer nagmugna og Start menu shortcut para sa oESP-IDF Command Promptp. Kini nga shortcut nag-abli sa usa ka Command Prompt nga bintana diin ang tanan nga mga himan anaa na
anaa. Sa pipila ka mga kaso, mahimo nimong gusto nga magtrabaho kauban ang ESP-IDF sa usa ka window sa Command Prompt nga wala pa nagsugod sa paggamit sa kana nga shortcut. Kung mao kini ang kahimtang, sunda ang mga panudlo sa ubos aron idugang ang mga himan sa ESP-IDF sa PATH. Sa command prompt diin kinahanglan nimong gamiton ang ESP-IDF, usba ang direktoryo diin gi-install ang ESP-IDF, dayon i-execute ang export.bat:
cd% userprofile%espesp-idf export.bat
Sa laing bahin sa Powershell diin kinahanglan nimong gamiton ang ESP-IDF, usba ang direktoryo diin na-install ang ESP-IDF, dayon i-execute ang export.ps1:
cd ~/esp/esp-idf export.ps1
Kung nahuman na kini, ang mga himan magamit sa kini nga command prompt.
Pagtukod og Serial Connection sa ESP32 Kini nga seksyon naghatag og giya kung unsaon pag-establisar og serial connection tali sa ESP32 ug PC.
Mga Sistema sa Espressif
24 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Ikonektar ang ESP32 sa PC Ikonektar ang ESP32 board sa PC gamit ang USB cable. Kung ang driver sa aparato dili awtomatikong mag-install, ilha ang USB sa serial converter chip sa imong ESP32 board (o external converter dongle), pangitaa ang mga driver sa internet ug i-install kini. Sa ubos mao ang lista sa USB to serial converter chips nga na-install sa kadaghanan sa ESP32 boards nga gihimo sa Espressif kauban ang mga link sa mga driver:
· CP210x: CP210x USB to UART Bridge VCP Drivers · FTDI: FTDI Virtual COM Port Drivers Palihog susiha ang board user guide alang sa piho nga USB to serial converter chip nga gigamit. Ang mga drayber sa ibabaw kay para sa pakisayran. Ubos sa normal nga mga kahimtang, ang mga drayber kinahanglan nga i-bundle sa usa ka operating system ug awtomatikong i-install sa pagkonektar sa board sa PC.
Susiha ang port sa Windows Susiha ang listahan sa giila nga mga COM port sa Windows Device Manager. Idiskonekta ang ESP32 ug ikonektar kini balik, aron masusi kung unsang port ang nawala gikan sa lista ug dayon ipakita pag-usab. Ang mga numero sa ubos nagpakita sa serial port alang sa ESP32 DevKitC ug ESP32 WROVER KIT
Fig. 13: USB to UART bridge sa ESP32-DevKitC sa Windows Device Manager
Susiha ang port sa Linux ug macOS Aron masusi ang ngalan sa device alang sa serial port sa imong ESP32 board (o external converter dongle), padagana kini nga command duha ka beses, una sa board / dongle nga gi-unplugged, dayon uban sa plugged. Ang port nga makita sa ikaduhang higayon mao ang imong gikinahanglan: Linux
ls /dev/tty*
macOS
Mga Sistema sa Espressif
25 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Fig. 14: Duha ka USB Serial Ports sa ESP-WROVER-KIT sa Windows Device Manager
Mga Sistema sa Espressif
26 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
ls /dev/cu.* Note: macOS users: kung wala nimo makita ang serial port unya susiha nga na-install na nimo ang USB/serial drivers. Tan-awa ang Seksyon Ikonektar ang ESP32 sa PC para sa mga link sa mga drayber. Alang sa macOS High Sierra (10.13), mahimo usab nimo nga klaro nga tugutan ang mga drayber nga magkarga. Ablihi ang System Preferences -> Security & Privacy -> General ug susiha kung adunay mensahe nga gipakita dinhi mahitungod sa oSystem Software gikan sa developer lpdiin ang developer name mao ang Silicon Labs o FTDI.
Pagdugang sa user sa pag-dialout sa Linux Ang kasamtangang naka-log nga user kinahanglan nga nakabasa ug nagsulat ug access sa serial port sa USB. Sa kadaghanan sa mga distribusyon sa Linux, kini gihimo pinaagi sa pagdugang sa user sa dialout nga grupo nga adunay mosunod nga sugo:
sudo usermod -a -G dialout $USER
sa Arch Linux kini gihimo pinaagi sa pagdugang sa user sa uucp nga grupo uban sa mosunod nga sugo:
sudo usermod -a -G uucp $USER
Siguruha nga nag-login ka pag-usab aron mahimo ang pagtugot sa pagbasa ug pagsulat alang sa serial port.
I-verify ang serial connection Karon pamatud-i nga ang serial connection kay operational. Mahimo nimo kini gamit ang serial terminal program pinaagi sa pagsusi kon aduna ka bay output sa terminal human sa pag-reset sa ESP32. Ang default console baud rate sa ESP32 kay 115200.
Windows ug Linux Niini nga exampgamiton namon ang PuTTY SSH Client nga magamit alang sa Windows ug Linux. Mahimo nimong gamiton ang ubang mga serial program ug itakda ang mga parameter sa komunikasyon sama sa ubos. Pagdalagan ang terminal ug itakda ang giila nga serial port. Baud rate = 115200 (kon gikinahanglan, usba kini sa default baud rate sa chip nga gigamit), data bits = 8, stop bits = 1, ug parity = N. Sa ubos mao ang exampAng mga screenshot sa pag-set sa port ug ingon nga mga parameter sa transmission (sa mubo nga gihulagway nga 115200-8-1-N) sa Windows ug Linux. Hinumdumi nga pilion ang parehas nga serial port nga imong nahibal-an sa mga lakang sa ibabaw. Dayon ablihi ang serial port sa terminal ug susiha, kung makakita ka og bisan unsang log nga giimprinta sa ESP32. Ang mga sulod sa log magdepende sa aplikasyon nga gikarga sa ESP32, tan-awa ang Exampang Output.
Mubo nga sulat: Isira ang serial terminal human sa verification nga ang komunikasyon nagtrabaho. Kung gipadayon nimo nga bukas ang sesyon sa terminal, ang serial port dili ma-access alang sa pag-upload sa firmware sa ulahi.
macOS Aron malikayan nimo ang kasamok sa pag-instalar sa serial terminal program, ang macOS nagtanyag sa screen command. · Sama sa gihisgutan sa Check port sa Linux ug macOS, pagdagan:
ls /dev/cu.* · Kinahanglan nimong makita ang parehas nga output:
/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Ang output magkalainlain depende sa klase ug sa gidaghanon sa mga tabla nga konektado sa imong PC. Dayon pilia ang ngalan sa device sa imong board ug pagdagan (kon gikinahanglan, usba ang o115200 sa default baud rate sa chip nga gigamit):
screen /dev/cu.device_name 115200 Ilisan ang device_name sa ngalan nga makita nga nagdagan ls /dev/cu.*.
Mga Sistema sa Espressif
27 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Fig. 15: Pagbutang sa Serial Communication sa PuTTY sa Windows
Mga Sistema sa Espressif
28 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Fig. 16: Pagbutang sa Serial Communication sa PuTTY sa Linux
Mga Sistema sa Espressif
29 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
· Ang imong gipangita mao ang pipila ka log nga gipakita sa screen. Ang mga sulod sa log magdepende sa aplikasyon nga gikarga sa ESP32, tan-awa ang Exampang Output. Aron makagawas sa screen session type Ctrl-A + .
Mubo nga sulat: Ayaw kalimti ang paggawas sa sesyon sa screen pagkahuman sa pagsusi nga ang komunikasyon nagtrabaho. Kung mapakyas ka sa pagbuhat niini ug isira lang ang terminal window, ang serial port dili ma-access alang sa pag-upload sa firmware sa ulahi.
Example Output Usa ka example log gipakita sa ubos. I-reset ang pisara kon wala kay makita. ug Hun 8 2016 00:22:57
una: 0x5 (DEEPSLEEP_RESET), boot: 0x13 (SPI_FAST_FLASH_BOOT) ug 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 sa pag-compile 18:48:10
…
Kung makita nimo ang mabasa nga output sa log, kini nagpasabut nga ang serial connection nagtrabaho ug andam ka nga magpadayon sa pag-install ug sa katapusan mag-upload sa aplikasyon sa ESP32.
Mubo nga sulat: Alang sa pipila ka mga serial port wiring configurations, ang serial RTS & DTR pins kinahanglan nga ma-disable sa terminal program sa dili pa ang ESP32 mag-boot ug makahimo og serial output. Nagdepende kini sa hardware mismo, kadaghanan sa mga development board (lakip ang tanan nga Espressif boards) wala niini nga isyu. Anaa ang isyu kung ang RTS & DTR direkta nga konektado sa EN & GPIO0 pin. Tan-awa ang dokumentasyon sa esptool alang sa dugang nga mga detalye.
Kung nakaabot ka dinhi gikan sa Lakang 5. Unang mga Lakang sa ESP-IDF sa dihang nag-instalar sa s/w para sa ESP32 development, nan makapadayon ka sa Step 5. Unang Lakang sa ESP-IDF.
IDF Monitor Ang IDF Monitor kasagaran usa ka serial terminal nga programa nga nag-relay sa serial data ngadto ug gikan sa target device sa serial port. Naghatag usab kini og pipila ka mga bahin nga piho sa IDF. Ang IDF Monitor mahimong ilunsad gikan sa usa ka proyekto sa IDF pinaagi sa pagpadagan sa idf.py monitor.
Mga Shortcut sa Keyboard Para sa dali nga interaksyon sa IDF Monitor, gamita ang mga keyboard shortcut nga gihatag sa lamesa.
Mga Sistema sa Espressif
30 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
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
Deskripsyon
Paggawas sa programa Menu escape key Ipadala ang karakter sa menu mismo sa hilit
Ipadala ang exit nga karakter mismo sa hilit
I-reset ang target sa bootloader aron i-pause ang app pinaagi sa linya sa RTS
I-reset ang target board pinaagi sa RTS
Pagtukod ug pag-flash sa proyekto
Paghimo ug pag-flash sa app lamang
Hunong/ipadayon ang pag-imprinta sa output sa log sa screen
Hunong/ipadayon ang log output nga gitipigan sa file
Paghunong / pagpadayon sa mga orasamps
pag-imprinta
Ipakita ang tanang keyboard shortcut
Pindota ug sunda kini sa usa sa mga yawe nga gihatag sa ubos.
I-reset ang target, ngadto sa bootloader pinaagi sa linya sa RTS (kon konektado), aron ang board wala magdagan. Mapuslanon kung kinahanglan ka maghulat alang sa laing device nga magsugod. I-reset ang target board ug i-restart ang aplikasyon pinaagi sa linya sa RTS (kung konektado).
Gipahunong ang idf_monitor aron ipadagan ang target sa flash sa proyekto, dayon ipadayon ang idf_monitor. Bisan unsang giusab nga tinubdan files gi-compile ug dayon gi-flash. Ang target nga naka-encrypt nga flash gipadagan kung ang idf_monitor gisugdan sa argumento -E. Gipahunong ang idf_monitor aron ipadagan ang target sa flash sa app, dayon ipadayon ang idf_monitor. Susama sa flash target, apan ang nag-unang app lang ang gitukod ug gi-flash pag-usab. Ang target nga naka-encrypt-app-flash gipadagan kung ang idf_monitor gisugdan sa argumento -E. Isalikway ang tanang umaabot nga serial data samtang gi-activate. Gitugotan nga dali nga mohunong ug susihon ang output sa log nga dili mohunong sa monitor. Naghimo a file sa direktoryo sa proyekto ug ang output gisulat niana file hangtod nga kini ma-disable sa parehas nga keyboard shortcut (o IDF Monitor exit). Ang IDF Monitor mahimong mag-print sa usa ka orasamp sa sinugdanan sa matag linya. Ang panahonamp format mahimong usbon sa –timestamp-format nga argumento sa command line.
Paggawas sa programa
Interrupt running application
Gipahunong ang IDF Monitor ug gipadagan ang debugger sa proyekto sa GDB aron ma-debug ang aplikasyon sa oras sa pagdagan. Nagkinahanglan kini og :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME nga opsyon aron ma-enable.
Bisan unsang mga yawe nga gipugos, gawas sa Ctrl-] ug Ctrl-T, ipadala pinaagi sa serial port.
IDF-spesipiko nga mga bahin
Automatic Address Decoding Sa matag higayon nga ang ESP-IDF magpagawas ug hexadecimal code address sa porma nga 0x4_______, ang IDF Monitor naggamit ug addr2line_ aron pangitaon ang lokasyon sa source code ug pangitaon ang function name.
Kung ang usa ka ESP-IDF app nahagsa ug natarantar, usa ka rehistro nga dump ug backtrace ang gihimo, sama sa mosunod:
Mga Sistema sa Espressif
31 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Guru Meditation Error sa matang StoreGidili nahitabo sa core 0. Exception mao ang
wala maatiman.
Pagrehistro sa basura:
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 KASULATAN:
0x0000001d
EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
Ang IDF Monitor midugang ug dugang mga detalye sa dump:
Guru Meditation Error sa matang StoreGidili nahitabo sa core 0. Exception mao ang
wala maatiman.
Pagrehistro sa basura:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: do_something_to_crash sa /home/gus/esp/32/idf/examples/pagsugod/
hello_world/main/./hello_world_main.c:57
(gi-inline ni) inner_dont_crash sa /home/gus/esp/32/idf/examples/pagsugod/hello_
kalibutan/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 KASULATAN:
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 (gi-inline ni) 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
Aron ma-decode ang matag adres, ang IDF Monitor nagpadagan sa mosunod nga sugo sa background: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Mubo nga sulat: Ibutang ang variable sa palibot nga ESP_MONITOR_DECODE sa 0 o tawagan ang idf_monitor.py nga adunay piho nga linya sa mando
Mga Sistema sa Espressif
32 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
kapilian: idf_monitor.py –disable-address-decoding aron ma-disable ang address decoding.
Target Reset sa Koneksyon Sa default, ang IDF Monitor mag-reset sa target kung magkonektar niini. Ang pag-reset sa target chip gihimo gamit ang DTR ug RTS serial lines. Aron mapugngan ang IDF Monitor gikan sa awtomatikong pag-reset sa target sa koneksyon, tawga ang IDF Monitor gamit ang –no-reset nga opsyon (pananglitan, idf_monitor.py –no-reset).
Mubo nga sulat: Ang –no-reset nga opsyon magamit sa samang kinaiya bisan pa sa pagkonektar sa IDF Monitor ngadto sa usa ka partikular nga pantalan (pananglitan, idf.py monitor –no-reset -p [PORT]).
Ang paglansad sa GDB gamit ang GDBStub Ang GDBStub usa ka mapuslanon nga runtime debugging nga bahin nga nagdagan sa target ug nagkonektar sa host sa serial port aron makadawat mga debugging command. Gisuportahan sa GDBStub ang mga mando sama sa memorya sa pagbasa ug mga variable, pagsusi sa mga call stack frame ug uban pa. Bisan kung ang GDBStub dili kaayo magamit kaysa sa JTAG pag-debug, wala kini magkinahanglan og bisan unsang espesyal nga hardware (sama sa usa ka JTAG ngadto sa USB bridge) kay ang komunikasyon gihimo sa tibuok serial port. Ang usa ka target mahimong ma-configure aron modagan ang GDBStub sa background pinaagi sa pagbutang sa CONFIG_ESP_SYSTEM_PANIC sa GDBStub sa runtime. Ang GDBStub modagan sa background hangtod ang usa ka Ctrl+C nga mensahe ipadala sa serial port ug hinungdan nga ang GDBStub maguba (ie, hunongon ang pagpatuman) sa programa, sa ingon gitugotan ang GDBStub sa pagdumala sa mga pag-debug nga mga sugo. Dugang pa, ang panic handler mahimong ma-configure aron modagan ang GDBStub sa usa ka crash pinaagi sa pagbutang sa CONFIG_ESP_SYSTEM_PANIC sa GDBStub sa kalisang. Kung mahitabo ang pagkahagsa, ang GDBStub magpagawas ug espesyal nga pattern sa string sa serial port aron ipakita nga kini nagdagan. Sa duha ka kaso (ie, pagpadala sa Ctrl+C nga mensahe, o pagdawat sa espesyal nga string pattern), ang IDF Monitor awtomatik nga maglunsad sa GDB aron tugotan ang user sa pagpadala sa mga sugo sa pag-debug. Pagkahuman sa paggawas sa GDB, ang target gi-reset pinaagi sa serial line sa RTS. Kung kini nga linya dili konektado, ang mga tiggamit mahimo’g i-reset ang ilang target (pinaagi sa pagpindot sa buton Reset sa board).
Mubo nga sulat: Sa luyo, ang IDF Monitor nagpadagan sa mosunod nga sugo aron 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 IDF monitor mahimong gamiton isip idf.py monitor –print-filter=”xyz”, diin –print-filter mao ang parameter para sa output filtering. Ang default nga kantidad usa ka walay sulod nga pisi, nga nagpasabut nga ang tanan giimprinta.
Ang mga pagdili sa kung unsa ang i-print mahimong matino ingon usa ka serye satag>: mga butang diintag> mao ang tag string ug usa ka karakter gikan sa set {N, E, W, I, D, V, *} nga nagtumong sa lebel sa pag-log.
Kay example, PRINT_FILTER=”tag1:W” mopares ug mo-print lang sa mga output nga gisulat gamit ang ESP_LOGW(“tag1", ...) o sa ubos nga lebel sa verbosity, ie ESP_LOGE("tag1″,…). Dili espesipiko a o paggamit sa * mga default sa lebel sa Verbose.
Mubo nga sulat: Gamita ang panguna nga pag-log aron ma-disable sa pag-compile ang mga output nga dili nimo kinahanglan pinaagi sa logging library. Ang pagsala sa output nga adunay monitor sa IDF usa ka ikaduha nga solusyon nga mahimong mapuslanon alang sa pag-adjust sa mga kapilian sa pagsala nga wala’y pag-recompile sa aplikasyon.
Ang imong app tags kinahanglan dili maglangkob sa mga espasyo, asterisk *, o mga colon : aron mahiuyon sa bahin sa pagsala sa output.
Kung ang katapusan nga linya sa output sa imong app wala gisundan sa usa ka pagbalik sa karwahe, ang pagsala sa output mahimong maglibog, ie, ang monitor magsugod sa pag-imprinta sa linya ug sa ulahi nahibal-an nga ang linya dili angay isulat. Kini usa ka nahibal-an nga isyu ug mahimong malikayan pinaagi sa kanunay nga pagdugang usa ka pagbalik sa karwahe (ilabi na kung wala’y output nga nagsunod dayon pagkahuman).
Mga Sistema sa Espressif
33 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
ExampMga lagda sa Pagsala:
· * mahimong gamiton sa pagpares sa bisan unsa tags. Apan, ang string PRINT_FILTER =”*:I tag1:E” mahitungod sa tagAng 1 nag-imprinta sa mga sayup lamang, tungod kay ang lagda alang sa tagAng 1 adunay mas taas nga prayoridad kay sa lagda alang sa *.
· Ang default (walay sulod) nga lagda katumbas sa *:V tungod kay gipares sa matag tag sa lebel sa Verbose o mas ubos nagpasabot sa pagpares sa tanan.
· Gipugngan sa “*:N” dili lamang ang mga output gikan sa mga function sa pag-log, kondili ang mga print nga gihimo sa printf, ug uban pa. Aron malikayan kini, gamita ang *:E o mas taas nga lebel sa verbosity.
· Mga lagda “tag1:V", "tag1:v", "tag1:", "tag1:*", ug "tag1” ang katumbas. · Lagda “tag1:W tag1:E” katumbas sa “tag1:E" tungod kay ang bisan unsang sangputanan nga panghitabo sa parehas tag
gi-overwrite sa ngalan ang nauna. · Lagda “tag1:Ako tagAng 2:W” nag-imprinta lamang tag1 sa Info verbosity level o mas ubos ug tag2 sa Pasidaan
lebel sa verbosity o mas ubos. · Lagda “tag1:Ako tag2:W tag3:N” kay esensya katumbas sa nauna tungod kay tag3:N nagtino
nga tag3 kinahanglan dili i-imprinta. · tag3:N sa lagda "tag1:Ako tag2:W tag3:N *:V” mas makahuloganon kay wala tag3:n ang
tag3 ka mensahe ang ma-print unta; ang mga sayop alang sa tag1 ug tag2 i-imprinta sa espesipiko (o ubos) nga lebel sa verbosity ug ang tanan i-imprinta pinaagi sa default.
Usa ka Mas Komplikado nga Pagsala Example Ang mosunod nga log snippet nakuha nga walay bisan unsang mga opsyon sa pagsala:
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: image sa 0x30000 adunay invalid magic byte W (31) esp_image: image sa 0x30000 adunay invalid SPI mode 255 E (39) ang boot nga partisyon sa pabrika (568) cpu_start: Pro cpu up. I (569) heap_init: Pagsugod. RAM anaa alang sa dinamikong alokasyon: I (603) cpu_start: Pro cpu magsugod user code D (309) light_driver: [light_init, 74]: status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range malampuson alang sa range <54; 64) ug VFS ID 1 I (328) wifi: wifi driver task: 3ffdbf84, prio:23, stack:4096, core=0
Ang nakuha nga output para sa mga opsyon sa pagsala PRINT_FILTER=”wifi esp_image:E light_driver:I” gihatag sa ubos:
E (31) esp_image: hulagway sa 0x30000 adunay dili balido nga magic byte I (328) wifi: wifi driver task: 3ffdbf84, prio:23, stack:4096, core=0
Ang mga opsyon nga “PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” ipakita ang mosunod nga output:
load:0x40078000,len:13564 entry 0x40078d4c I (569) heap_init: Pagsugod. RAM anaa alang sa dinamikong alokasyon: D (309) light_driver: [light_init, 74]: status: 1, mode: 2
Nahibal-an nga mga Isyu sa IDF Monitor
Mga Isyu nga Naobserbahan sa Windows
· Ang mga arrow key, ingon man ang uban nga mga yawe, dili molihok sa GDB tungod sa mga limitasyon sa Windows Console. · Usahay, kung ang oidf.pypexit, mahimong mohunong hangtod sa 30 segundos sa dili pa magpadayon ang IDF Monitor. · Sa diha nga ang ogdbpis modagan, kini mahimong mohunong sa mubo nga panahon sa dili pa kini magsugod sa pagpakigsulti sa GDBStub.
Mga Sistema sa Espressif
34 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod sa Standard Toolchain Setup para sa Linux ug macOS
Lakang sa Pag-instalar Kini usa ka detalyado nga mapa sa dalan aron matultolan ka sa proseso sa pag-install.
Pag-set up sa Development Environment Kini ang mga lakang sa pag-set up sa ESP-IDF para sa imong ESP32. · Lakang 1. I-install ang mga Prerequisites · Lakang 2. Kuhaa ang ESP-IDF · Lakang 3. I-set up ang mga himan · Lakang 4. I-set up ang environment variables · Lakang 5. Unang Lakang sa ESP-IDF
Lakang 1. Pag-instalar sa mga Kinahanglanon Aron magamit ang ESP-IDF sa ESP32, kinahanglan nimong i-install ang pipila ka mga pakete sa software base sa imong Operating System. Kini nga giya sa pag-setup makatabang kanimo sa pag-instalar sa tanan sa Linux ug macOS based system.
Para sa Linux Users Aron mag-compile gamit ang ESP-IDF kinahanglan nimo nga makuha ang mosunod nga mga pakete. Ang mando nga modagan nagdepende kung unsang pag-apod-apod sa Linux ang imong gigamit:
· Ubuntu ug 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
Gisuportahan gihapon ang CentOS 7 apan girekomenda ang bersyon sa CentOS 8 alang sa mas maayo nga kasinatian sa tiggamit. · Arch: sudo pacman -S –kinahanglan gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Pahinumdom: · Ang bersyon sa CMake 3.16 o mas bag-o gikinahanglan para magamit sa ESP-IDF. Pagdalagan otools/idf_tools.py instalar cmakepto instalar sa usa ka angay nga bersyon kung ang imong OS nga bersyon walay usa. · Kung dili nimo makita ang imong distribusyon sa Linux sa lista sa ibabaw nan palihug susiha ang dokumentasyon niini aron mahibal-an kung unsang command ang gamiton alang sa pag-install sa package.
Alang sa macOS Users ESP-IDF gamiton ang bersyon sa Python nga gi-install nga default sa macOS. · I-install ang CMake & Ninja build: Kung naa kay HomeBrew, pwede ka magpadagan: brew install cmake ninja dfu-util Kung naa kay MacPorts, pwede ka modagan: sudo port install cmake ninja dfu-util Kung dili, konsultaha ang CMake ug Ninja home page para sa macOS installation downloads.
Mga Sistema sa Espressif
35 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
· Kusog nga girekomenda nga i-install usab ang ccache para sa mas paspas nga pagtukod. Kung ikaw adunay HomeBrew, mahimo kini pinaagi sa brew install ccache o sudo port install ccache sa MacPorts.
Mubo nga sulat: Kung ang usa ka sayup nga sama niini gipakita sa bisan unsang lakang: xcrun: sayup: dili balido nga aktibo nga dalan sa developer (/Library/Developer/CommandLineTools), nawala ang xcrun sa: /Library/Developer/CommandLineTools/usr/bin/xcrun
Unya kinahanglan nimo nga i-install ang XCode command line tool aron magpadayon. Mahimo nimong i-install kini pinaagi sa pagpadagan sa xcode-select –install.
Apple M1 Users Kon mogamit ka sa Apple M1 nga plataporma ug makakita og sayop sama niini: WARNING: directory for tool xtensa-esp32-elf version esp-2021r2-patch3-8.4.0 is present, but tool was not found ERROR: tool xtensa-esp32-elf walay install nga mga bersyon. Palihug pagdagan ang 'install.sh' aron ma-install kini.
o: zsh: dili maayo nga matang sa CPU sa executable: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Dayon kinahanglan nimo nga i-install ang Apple Rosetta 2 pinaagi sa pagdagan /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Pag-install sa Python 3 Base sa macOS Catalina 10.15 nga mga nota sa pagpagawas, ang paggamit sa Python 2.7 dili girekomenda ug ang Python 2.7 dili iapil pinaagi sa default sa umaabot nga mga bersyon sa macOS. Susiha kung unsa ang Python nga naa nimo karon: python -bersyon
Kung ang output sama sa Python 2.7.17, ang imong default nga tighubad mao ang Python 2.7. Kung mao, susiha usab kung ang Python 3 wala pa na-install sa imong kompyuter: python3 -bersyon
Kung ang mando sa ibabaw nagbalik usa ka sayup, nagpasabut nga wala ma-install ang Python 3. Sa ubos kay tapos naview sa mga lakang sa pag-instalar sa Python 3.
· Ang pag-install gamit ang HomeBrew mahimo sama sa mosunod: brew install python3
· Kung naa kay MacPorts, mahimo kang modagan: sudo port install python38
Lakang 2. Pagkuha og ESP-IDF Aron makahimo og mga aplikasyon para sa ESP32, kinahanglan nimo ang software library nga gihatag ni ESPRESIF sa ESP-IDF repository. Aron makuha ang ESP-IDF, pag-navigate sa imong direktoryo sa pag-install ug i-clone ang repository gamit ang git clone, pagsunod sa mga panudlo sa ubos nga piho sa imong operating system. Ablihi ang Terminal, ug padagana ang mosunod nga mga sugo:
Mga Sistema sa Espressif
36 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –recursive https://github.com/espressif/esp-idf.git
Ang ESP-IDF ma-download sa ~/esp/esp-idf. Konsultaha ang ESP-IDF Bersyon alang sa impormasyon mahitungod sa ESP-IDF nga bersyon sa paggamit sa usa ka gihatag nga sitwasyon.
Lakang 3. I-set up ang mga himan Gawas sa ESP-IDF, kinahanglan usab nimo nga i-install ang mga himan nga gigamit sa ESP-IDF, sama sa compiler, debugger, Python packages, ug uban pa, para sa mga proyekto nga nagsuporta sa ESP32. cd ~/esp/esp-idf ./install.sh esp32
o uban sa Fish shell cd ~/esp/esp-idf ./install.fish esp32
Ang mga sugo sa ibabaw nag-instalar sa mga himan alang sa ESP32 lamang. Kung gusto nimo nga maghimo mga proyekto alang sa daghang mga target sa chip nan kinahanglan nimo nga ilista ang tanan niini ug modagan alang sa example: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
o uban sa Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Aron ma-install ang mga himan alang sa tanan nga gisuportahan nga mga target palihug padagana ang mosunud nga mando: cd ~/esp/esp-idf ./install.sh tanan
o uban sa Fish shell cd ~/esp/esp-idf ./install.fish all
Mubo nga sulat: Alang sa mga tiggamit sa macOS, kung ang usa ka sayup nga sama niini gipakita sa bisan unsang lakang:urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: dili makuha ang local issuer certificate (_ssl.c:xxx)
Mahimo nimong ipadagan ang Install Certificates.command sa Python folder sa imong computer aron ma-install ang mga sertipiko. Para sa mga detalye, tan-awa ang Download Error While Installing ESP-IDF Tools.
Alternatibo File Mga Pag-download Ang tig-install sa mga himan nag-download sa daghang mga files gilakip sa GitHub Releases. Kung hinay ang pag-access sa GitHub nan posible nga magbutang usa ka variable sa palibot aron gusto ang server sa pag-download sa Espressifns alang sa mga pag-download sa asset sa GitHub.
Mubo nga sulat: Kini nga setting nagkontrol lamang sa tagsa-tagsa nga mga himan nga na-download gikan sa GitHub releases, kini dili makausab sa URLs gigamit sa pag-access sa bisan unsang Git repository.
Aron mas gusto ang server sa pag-download sa Espressif sa pag-instalar sa mga himan, gamita ang mosunod nga han-ay sa mga sugo sa dihang nagpadagan sa install.sh:
Mga Sistema sa Espressif
37 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Pag-customize sa agianan sa pag-instalar sa mga himan Ang mga script nga gipaila niini nga lakang nag-instalar sa mga himan sa pag-compile nga gikinahanglan sa ESP-IDF sulod sa direktoryo sa balay sa user: $HOME/.espressif sa Linux. Kung gusto nimo i-install ang mga himan sa usa ka lahi nga direktoryo, itakda ang variable sa palibot nga IDF_TOOLS_PATH sa dili pa ipadagan ang mga script sa pag-install. Siguroha nga ang imong user account adunay igong permiso sa pagbasa ug pagsulat niini nga dalan. Kung usbon ang IDF_TOOLS_PATH, siguroha nga kini gibutang sa parehas nga kantidad matag higayon nga ang Install script (install. bat, install.ps1 o install.sh) ug usa ka Export script (export.bat, export.ps1 o export.sh) ipatuman.
Lakang 4. I-set up ang environment variables Ang na-install nga mga himan wala pa idugang sa PATH environment variable. Aron mahimo ang mga himan nga magamit gikan sa command line, ang pipila ka mga variable sa palibot kinahanglan nga itakda. Naghatag ang ESP-IDF og laing script nga naghimo niana. Sa terminal diin imong gamiton ang ESP-IDF, pagdagan:
. $HOME/esp/esp-idf/export.sh
o alang sa isda (gisuportahan lamang sukad sa bersyon sa isda 3.0.0):
. $HOME/esp/esp-idf/export.fish
Matikdi ang luna tali sa nag-unang tulbok ug sa agianan! Kung nagplano ka nga mogamit kanunay sa esp-idf, mahimo ka maghimo usa ka alyas alang sa pagpatuman sa export.sh:
1. Kopyaha ug idikit ang mosunod nga sugo sa imong shellns profile (.profile, .bashrc, .zprofile, ug uban pa)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. I-refresh ang configuration pinaagi sa pagsugod pag-usab sa terminal session o pinaagi sa running source [path to profile],
kay example, tinubdan ~/.bashrc. Karon mahimo ka nga modagan get_idf aron i-set up o i-refresh ang esp-idf environment sa bisan unsang terminal session. Sa teknikal, mahimo nimong idugang ang export.sh sa imong shellns profile direkta; bisan pa, wala kini girekomenda. Ang pagbuhat sa ingon makapaaktibo sa IDF virtual environment sa matag terminal session (lakip na kadtong dili kinahanglan sa IDF), makapildi sa katuyoan sa virtual environment ug lagmit makaapekto sa ubang software.
Lakang 5. Unang Lakang sa ESP-IDF Karon kay natuman na ang tanang kinahanglanon, ang sunod nga topiko maggiya kanimo kon unsaon pagsugod sa imong unang proyekto. Kini nga giya makatabang kanimo sa unang mga lakang gamit ang ESP-IDF. Sunda kini nga giya sa pagsugod og bag-ong proyekto sa ESP32 ug paghimo, pag-flash, ug pagmonitor sa output sa device.
Mubo nga sulat: Kung wala pa nimo ma-install ang ESP-IDF, palihug adto sa Pag-install ug sunda ang panudlo aron makuha ang tanan nga software nga gikinahanglan aron magamit kini nga giya.
Pagsugod ug Proyekto Karon andam ka na sa pag-andam sa imong aplikasyon para sa ESP32. Makasugod ka sa getstarted/hello_world nga proyekto gikan sa examples nga direktoryo sa ESP-IDF.
Importante: Ang sistema sa pagtukod sa ESP-IDF wala mosuporta sa mga luna sa mga agianan paingon sa ESP-IDF o sa mga proyekto.
Kopyaha ang proyekto get-started/hello_world sa ~/esp directory:
Mga Sistema sa Espressif
38 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
cd ~/esp cp -r $IDF_PATH/examples/pagsugod/hello_world .
Mubo nga sulat: Adunay usa ka range sa example projects sa examples nga direktoryo sa ESP-IDF. Mahimo nimong kopyahon ang bisan unsang proyekto sa parehas nga paagi sama sa gipresentar sa ibabaw ug ipadagan kini. Posible usab nga magtukod og examples in-place nga dili una kopyahon.
Ikonektar ang Imong Device Karon ikonektar ang imong ESP32 board sa kompyuter ug susiha kung asa nga serial port makita ang board. Ang mga serial port adunay mosunod nga mga sumbanan sa pagngalan:
· Linux: nagsugod sa /dev/tty · macOS: nagsugod sa /dev/cu. Kung dili ka sigurado kung giunsa pagsusi ang ngalan sa serial port, palihug tan-awa ang Pag-establisar sa Serial nga Koneksyon sa ESP32 alang sa tibuuk nga mga detalye.
Mubo nga sulat: Itago ang ngalan sa port nga magamit ingon nga kinahanglan nimo kini sa sunod nga mga lakang.
I-configure ang Imong Proyekto Pag-navigate sa imong hello_world nga direktoryo, itakda ang ESP32 isip target, ug padagana ang project configuration utility menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Pagkahuman sa pag-abli sa usa ka bag-ong proyekto, kinahanglan una nimo nga itakda ang target gamit ang idf.py set-target esp32. Timan-i nga ang naglungtad nga mga pagtukod ug mga pag-configure sa proyekto, kung naa man, ma-clear ug magsugod sa kini nga proseso. Ang target mahimong ma-save sa variable sa palibot aron malaktawan kini nga lakang. Tan-awa ang Select the Target Chip: set-target para sa dugang nga impormasyon. Kung ang nangaging mga lakang nahimo sa husto, ang mosunod nga menu makita:
Fig. 17: Configuration sa proyekto - Home window Gigamit nimo kini nga menu aron i-set up ang piho nga mga variable sa proyekto, pananglitan, Wi-Fi network name ug password, ang processor speed, ug uban pa.ample midagan uban sa
Mga Sistema sa Espressif
39 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
default nga configuration.
Atensyon: Kung mogamit ka sa ESP32-DevKitC board nga adunay ESP32-SOLO-1 module, o ESP32-DevKitM-1 board nga adunay ESP32-MIN1-1(1U) module, palihug i-enable ang single core mode (CONFIG_FREERTOS_UNICORE) sa menuconfig sa dili pa mag-flash examples.
Pahinumdom: Ang mga kolor sa menu mahimong lahi sa imong terminal. Mahimo nimong usbon ang hitsura gamit ang kapilian -style. Palihug pagdagan idf.py menuconfig –help para sa dugang nga impormasyon.
Kung naggamit ka usa sa gisuportahan nga mga board sa pag-uswag, mahimo nimo mapadali ang imong pag-uswag pinaagi sa paggamit sa Board Support Package. Tan-awa ang Dugang nga mga Tip para sa dugang nga impormasyon.
Pagtukod sa Proyekto Pagtukod sa proyekto pinaagi sa pagpadagan:
idf.py pagtukod
Kini nga mando mag-compile sa aplikasyon ug sa tanan nga mga sangkap sa ESP-IDF, unya kini makamugna sa bootloader, partition table, ug mga binary sa aplikasyon.
$ idf.py build Nagdagan nga cmake sa direktoryo /path/to/hello_world/build Nagpatuman sa “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Pasidan-i ang bahin sa wala pa nasugdan nga mga bili. — Nakit-an nga Git: /usr/bin/git (nakaplagan nga bersyon “2.17.0”) — Pagtukod ug walay sulod nga aws_iot component tungod sa configuration — Component names: … — Component paths: …
… (daghang linya sa build system output)
[527/527] Paghimo hello_world.bin esptool.py v2.3.1
Kompleto ang pagtukod sa proyekto. Aron mag-flash, padagana kini nga sugo: ../../../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 run 'idf.py -p PORT flash'
Kung walay mga sayup, ang pagtukod mahuman pinaagi sa pagmugna sa firmware binary .bin files.
I-flash sa Device I-flash ang mga binary nga bag-o lang nimong gihimo (bootloader.bin, partition-table.bin ug hello_world.bin) sa imong ESP32 board pinaagi sa pagpadagan:
idf.py -p PORT [-b BAUD] flash
Ilisan ang PORT sa imong ESP32 boardns serial port name. Mahimo usab nimo usbon ang flasher baud rate pinaagi sa pag-ilis sa BAUD sa baud rate nga imong gikinahanglan. Ang default baud rate kay 460800. Para sa dugang nga impormasyon sa idf.py arguments, tan-awa ang idf.py.
Mubo nga sulat: Ang opsyon nga flash awtomatik nga nagtukod ug nag-flash sa proyekto, mao nga ang pagpadagan sa idf.py build dili kinahanglan.
Mga Sistema sa Espressif
40 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Nakasugat og mga Isyu Samtang Nag-flash? Kung gipadagan nimo ang gihatag nga mando ug nakita ang mga sayup sama sa Napakyas sa pagkonektar, mahimo’g adunay daghang mga hinungdan niini. Ang usa sa mga hinungdan mahimong mga isyu nga nasugatan sa esptool.py, ang utility nga gitawag sa build system aron i-reset ang chip, makig-uban sa ROM bootloader, ug flash firmware. Usa ka yano nga solusyon nga sulayan mao ang manual nga pag-reset nga gihulagway sa ubos, ug kung dili kini makatabang makit-an nimo ang dugang nga mga detalye bahin sa posible nga mga isyu sa Troubleshooting.
Awtomatiko nga gi-reset sa esptool.py ang ESP32 pinaagi sa pagpahayag sa mga linya sa pagkontrol sa DTR ug RTS sa USB sa serial converter chip, ie, FTDI o CP210x (alang sa dugang nga kasayuran, tan-awa ang Pagtukod og Serial Connection sa ESP32). Ang mga linya sa kontrol sa DTR ug RTS konektado sa GPIO0 ug CHIP_PU (EN) nga mga pin sa ESP32, sa ingon nagbag-o sa vol.tagAng mga lebel sa DTR ug RTS mag-boot sa ESP32 ngadto sa Firmware Download mode. Ingon usa ka example, susiha ang eskematiko alang sa ESP32 DevKitC development board.
Sa kinatibuk-an, kinahanglan nga wala ka'y problema sa opisyal nga esp-idf development boards. Bisan pa, ang esptool.py dili makahimo sa pag-reset sa imong hardware awtomatik sa mosunod nga mga kaso:
· Ang imong hardware walay mga linya sa DTR ug RTS nga konektado sa GPIO0 ug CHIP_PU · Ang mga linya sa DTR ug RTS kay lahi ang pagka-configure · Wala gayuy mga serial control lines.
Depende sa matang sa hardware nga naa nimo, mahimo usab nga mahimo nga mano-mano nga ibutang ang imong ESP32 board ngadto sa Firmware Download mode (reset).
· Para sa mga development board nga gihimo sa Espressif, kini nga impormasyon makita sa tagsa-tagsa nga mga giya sa pagsugod o mga giya sa paggamit. Kay exampug, aron manwal nga i-reset ang usa ka ESP-IDF development board, pugngi ang Boot button (GPIO0) ug pindota ang EN button (CHIP_PU).
· Para sa ubang klase sa hardware, sulayi pagbitad ang GPIO0 paubos.
Normal nga Operasyon Kung nagkidlap, imong makita ang output log nga susama sa mosunod:
… 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-100bin. 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Connecting…….._ Chip mao ang ESP32D0WDQ6 (rebisyon 0) Features: WiFi, BT, Dual Core, Coding Scheme Walay Crystal kay 40MHz MAC: 24:0atubb:c9:0.4… nagdagan… Pag-usab sa baud rate ngadto sa 460800 Gibag-o. Pag-configure sa gidak-on sa flash… Gi-compress ang 3072 bytes ngadto sa 103… Pagsulat sa 0x00008000... (100 %) Misulat og 3072 bytes (103 compressed) sa 0x00008000 sa 0.0 segundos (epektibo nga 5962.8 kbit/s)… Gi-compress ang 26096 bytes ngadto sa 15408… Pagsulat sa 0x00001000… (100 %) Misulat og 26096 bytes (15408 compressed) sa 0x00001000 sa 0.4 segundos (epektibo nga 546.7 kbit/s)… Gi-compress ang 147104 bytes ngadto sa 77364… Pagsulat sa 0x00010000… (20 %) Pagsulat sa 0x00014000… (40 %) Pagsulat sa 0x00018000… (60 %) Pagsulat sa 0x0001c000%)
(padayon sa sunod nga panid)
Mga Sistema sa Espressif
41 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
(gipadayon gikan sa miaging panid) Pagsulat sa 0x00020000… (100 %) Nagsulat 147104 bytes (77364 compressed) sa 0x00010000 sa 1.9 segundos (epektibo 615. 5 kbit/s)… Hash sa datos napamatud-an.
Pagbiya… Lisud nga pag-reset pinaagi sa RTS pin… Tapos na
Kung walay mga isyu sa katapusan sa proseso sa flash, ang board mag-reboot ug magsugod sa theohello_worldpapplication. Kung gusto nimo gamiton ang Eclipse o VS Code IDE imbes nga magpadagan sa idf.py, tan-awa ang Eclipse Plugin, VSCode Extension.
Pag-monitor sa Output Aron masusi kung ang ohello_worldpis tinuod nga nagdagan, i-type ang idf.py -p PORT monitor (Ayaw kalimti ang pag-ilis sa PORT sa imong serial port nga ngalan). Kini nga sugo naglansad sa aplikasyon sa IDF Monitor:
$ idf.py -p monitor Nagdagan ang idf_monitor sa direktoryo […]/esp/hello_world/build Pagpatuman sa “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor on 115200 —– Hunong: Ctrl+] | Menu: Ctrl+T | Tabang: Ctrl+T gisundan sa Ctrl+H –ets Jun 8 2016 00:22:57
una: 0x1 (POWERON_RESET), boot: 0x13 (SPI_FAST_FLASH_BOOT) ug Hunyo 8, 2016 00:22:57 …
Human sa pagsugod ug diagnostic logs scroll up, imong makita ang oHello world!pprinted sa aplikasyon.
… Hello kalibutan! Pag-restart sa 10 segundos… Kini ang esp32 chip nga adunay 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 2MB external flash Minimum free heap size: 298968 bytes Pag-restart sa 9 segundos… Pag-restart sa 8 segundos… Pag-restart sa 7 segundos…
Aron makagawas sa IDF monitor gamita ang shortcut Ctrl+]. Kung mapakyas ang monitor sa IDF pagkahuman sa pag-upload, o, kung imbes sa mga mensahe sa itaas, makita nimo ang mga random nga basura nga parehas sa gihatag sa ubos, ang imong board lagmit naggamit usa ka 26 MHz nga kristal. Kadaghanan sa mga disenyo sa development board naggamit sa 40 MHz, mao nga ang ESP-IDF naggamit niini nga frequency isip default value.
Kung aduna kay problema, buhata ang mosunod:
1. Paggawas sa monitor. 2. Balik sa menuconfig. 3. Adto sa Component config > Hardware Settings > Main XTAL Config > Main XTAL
frequency, unya usba ang CONFIG_XTAL_FREQ_SEL ngadto sa 26 MHz. 4. Human niana, paghimo ug pag-flash sa aplikasyon pag-usab.
Mga Sistema sa Espressif
42 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Sa kasamtangan nga bersyon sa ESP-IDF, ang nag-unang XTAL frequency nga gisuportahan sa ESP32 mao ang mosunod:
· 26 MHz · 40 MHz
Mubo nga sulat: Mahimo nimong ikombinar ang pagtukod, pagkidlap ug pagmonitor sa usa ka lakang pinaagi sa pagdagan: idf.py -p PORT flash monitor
Tan-awa usab: · IDF Monitor para sa mga dali nga shortcut ug dugang mga detalye sa paggamit sa IDF monitor. · idf.py para sa bug-os nga pakisayran sa idf.py nga mga sugo ug mga kapilian.
Kana ang tanan nga kinahanglan nimo aron makasugod sa ESP32! Karon andam ka na nga mosulay sa ubang mga examples, o diretso sa pagpalambo sa imong kaugalingong mga aplikasyon.
Importante: Pipila sa exampAng mga tawo dili mosuporta sa ESP32 tungod kay ang gikinahanglan nga hardware wala maapil sa ESP32 mao nga dili kini masuportahan. Kung magtukod ug example, palihog susiha ang README file alang sa Gisuportahan nga mga Target nga lamesa. Kung naa kini lakip ang target sa ESP32, o wala gyud ang lamesa, ang exampmagtrabaho sa ESP32.
Dugang nga mga Tip
Mga isyu sa pagtugot / dev / ttyUSB0 Uban sa pipila ka mga distribusyon sa Linux, mahimo nimong makuha ang Napakyas sa pag-abli sa port / dev / ttyUSB0 nga mensahe sa sayup kung nag-flash sa ESP32. Masulbad kini pinaagi sa pagdugang sa kasamtangang tiggamit sa dialout nga grupo.
Ang Python compatibility ESP-IDF nagsuporta sa Python 3.7 o mas bag-o. Girekomenda nga i-upgrade ang imong operating system sa usa ka bag-o nga bersyon nga makatagbaw niini nga kinahanglanon. Ang ubang mga kapilian naglakip sa pag-instalar sa Python gikan sa mga tinubdan o sa paggamit sa Python version management system sama sa pyenv.
Pagsugod sa Board Support Package Aron mapadali ang prototyping sa pipila ka development boards, mahimo nimong gamiton ang Board Support Packages (BSPs), nga naghimo sa pagsugod sa usa ka partikular nga board nga sayon sama sa pipila ka function calls. Ang BSP kasagarang nagsuporta sa tanan nga mga sangkap sa hardware nga gihatag sa development board. Gawas sa pinout definition ug initialization functions, ang usa ka BSP nagpadala ug mga drayber alang sa external components sama sa sensors, displays, audio codecs ug uban pa. Kini usa ka exampunsaon pagdugang ang ESP-WROVER-KIT BSP sa imong proyekto: idf.py add-dependency esp_wrover_kit
Dugang exampang gamay nga paggamit sa BSP makita sa BSP examples folder.
Sugyot: Pag-update sa ESP-IDF Girekomenda nga i-update ang ESP-IDF matag karon ug unya, tungod kay ang mga bag-ong bersyon nag-ayo sa mga bug ug/o naghatag ug bag-ong mga bahin. Palihug timan-i nga ang matag ESP-IDF major ug minor nga bersyon sa pagpagawas adunay kaubang panahon sa suporta, ug kung ang usa ka sanga sa pagpagawas nagkaduol na sa katapusan sa kinabuhi (EOL), ang tanang tiggamit giawhag sa pag-upgrade sa ilang mga proyekto ngadto sa mas bag-o nga ESP-IDF nga mga pagpagawas, aron sa pagpangita og dugang mahitungod sa mga panahon sa suporta, tan-awa ang ESP-IDF Bersyon.
Mga Sistema sa Espressif
43 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 1. Pagsugod
Ang pinakasimple nga paagi sa paghimo sa pag-update mao ang pagtangtang sa kasamtangan nga esp-idf folder ug pag-clone niini pag-usab, sama sa pagbuhat sa inisyal nga pag-instalar nga gihulagway sa Lakang 2. Kuhaa ang ESP-IDF. Ang laing solusyon mao ang pag-update lamang sa nausab. Ang pamaagi sa pag-update nagdepende sa bersyon sa ESP-IDF nga imong gigamit. Human sa pag-update sa ESP-IDF, ipatuman pag-usab ang Install script, kung ang bag-ong ESP-IDF nga bersyon nagkinahanglan ug lain-laing bersyon sa mga himan. Tan-awa ang mga instruksyon sa Lakang 3. I-set up ang mga himan. Kung ma-install na ang bag-ong mga himan, i-update ang palibot gamit ang Export script. Tan-awa ang mga instruksyon sa Lakang 4. I-set up ang environment variables.
May Kalabutan nga mga Dokumento · Pagtukod og Serial nga Koneksyon sa ESP32 · Eclipse Plugin · VSCode Extension · IDF Monitor
1.4 Pagtukod sa Imong Unang Proyekto
Kung na-install na nimo ang ESP-IDF ug wala gamita ang IDE, mahimo nimong tukuron ang imong una nga proyekto gikan sa linya sa mando pagkahuman sa Pagsugod sa Proyekto sa Windows o Pagsugod sa Proyekto sa Linux ug macOS.
1.5 I-uninstall ang ESP-IDF
Kung gusto nimong tangtangon ang ESP-IDF, palihug sunda ang Uninstall ESP-IDF.
Mga Sistema sa Espressif
44 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 2
Reperensya sa API
2.1 Mga Kombensiyon sa API
Kini nga dokumento naghulagway sa mga kombensiyon ug mga pangagpas nga komon sa ESP-IDF Application Programming Interfaces (APIs). Naghatag ang ESP-IDF og daghang mga klase sa interface sa programming:
· C functions, structures, enums, type definitions ug preprocessor macros nga gideklarar sa public header files sa mga sangkap sa ESPIDF. Ang lainlaing mga panid sa seksyon sa Reference sa API sa giya sa pagprograma adunay mga deskripsyon sa kini nga mga gimbuhaton, istruktura ug tipo.
· Paghimo mga function sa sistema, gitakda nang daan nga mga variable ug kapilian. Gidokumento kini sa giya sa sistema sa pagtukod. · Ang mga kapilian sa Kconfig mahimong magamit sa code ug sa sistema sa pagtukod (CMakeLists.txt) files. · Ang mga himan sa host ug ang ilang mga parameter sa command line kabahin usab sa ESP-IDF interface. Ang ESP-IDF naglangkob sa mga sangkap nga gisulat espesipiko alang sa ESP-IDF ingon man sa mga librarya sa ikatulo nga partido. Sa pipila ka mga kaso, usa ka ESP-IDF-specific wrapper ang idugang sa third-party nga librarya, nga naghatag ug interface nga mas simple o mas maayo nga gisagol sa ubang mga pasilidad sa ESP-IDF. Sa ubang mga kaso, ang orihinal nga API sa ikatulo nga partido nga librarya gipresentar sa mga nag-develop sa aplikasyon. Ang mosunod nga mga seksyon nagpatin-aw sa pipila sa mga aspeto sa ESP-IDF API ug sa ilang paggamit.
2.1.1 Sayup sa pagdumala
Kadaghanan sa mga ESP-IDF API nagbalik sa mga error code nga gipasabut sa esp_err_t type. Tan-awa ang seksyon sa Error Handling para sa dugang nga impormasyon bahin sa mga pamaagi sa pagdumala sa sayop. Ang Error Code Reference naglangkob sa lista sa mga error code nga gibalik sa ESP-IDF nga mga sangkap.
2.1.2 Mga istruktura sa pag-configure
Importante: Ang husto nga pagsugod sa mga istruktura sa pag-configure usa ka importante nga bahin sa paghimo sa aplikasyon nga compatible sa umaabot nga mga bersyon sa ESP-IDF.
Kadaghanan sa pagsugod o pag-configure nga mga gimbuhaton sa ESP-IDF nagkuha ingon usa ka argumento nga usa ka pointer sa usa ka istruktura sa pag-configure. Kay example:
45
Kapitulo 2. Reperensya sa API
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = "akong_timer"
}; esp_timer_handle_t my_timer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
Ang mga gimbuhaton sa inisyal dili gayud magtipig sa pointer sa istruktura sa pag-configure, mao nga luwas nga igahin ang istruktura sa stack.
Ang aplikasyon kinahanglan nga magsugod sa tanan nga mga natad sa istruktura. Ang mosunod dili husto:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Dili husto! Ang mga field .arg ug .name wala gisugdan */ esp_timer_create(&my_timer_args, &my_timer);
Kadaghanan sa ESP-IDF exampGigamit ang C99 nga gitudlo nga mga inisyal alang sa pagsugod sa istruktura, tungod kay naghatag kini usa ka mubu nga paagi sa pag-set sa usa ka subset sa mga uma, ug zero-initialize ang nahabilin nga mga natad:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Sakto, ang mga field .arg ug .name kay zero-initialized */
};
Ang C++ nga lengguwahe wala mosuporta sa gitudlo nga initializers syntax hangtod sa C++20, apan ang GCC compiler partially nagsuporta niini isip extension. Kung mogamit ug ESP-IDF API sa C++ code, mahimo nimong hunahunaon ang paggamit sa mosunod nga sumbanan:
esp_timer_create_args_t my_timer_args = {}; /* Ang tanang field kay zero-initialized */ my_timer_args.callback = &my_timer_callback;
Default nga mga inisyal
Alang sa pipila ka mga istruktura sa pag-configure, ang ESP-IDF naghatag og mga macro alang sa pagtakda sa mga default nga kantidad sa mga natad:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* Ang HTTPD_DEFAULT_CONFIG nagpalapad sa usa ka gitudlo nga initializer.
Karon ang tanan nga mga natad gitakda sa mga default nga kantidad. Bisan unsa nga field mahimo gihapon nga usbon: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Kini girekomendar sa paggamit sa default initializer macros sa matag higayon nga sila gihatag alang sa usa ka partikular nga configuration istruktura.
2.1.3 Pribado nga mga API
Piho nga ulohan files sa ESP-IDF adunay mga API nga gituyo nga gamiton lamang sa ESP-IDF source code, ug dili sa mga aplikasyon. Ang ingon nga header files kanunay adunay pribado o esp_private sa ilang ngalan o agianan. Ang pila ka mga sangkap, sama sa hal adunay sulud nga pribado nga mga API. Ang mga pribado nga API mahimong tangtangon o usbon sa dili magkatugma nga paagi tali sa mga menor de edad o patch nga gipagawas.
2.1.4 Mga sangkap sa exampmga proyekto
ESP-IDF exampAng mga les adunay lain-laing mga proyekto nga nagpakita sa paggamit sa ESP-IDF API. Aron maminusan ang pagdoble sa code sa examples, pipila ka komon nga mga katabang ang gihubit sa sulod nga mga sangkap nga gigamit sa daghang mga examples.
Mga Sistema sa Espressif
46 Isumite ang Feedback sa Dokumento
Ipagawas ang v5.0.9
Kapitulo 2. Reperensya sa API
Naglakip kini sa mga sangkap nga nahimutang
Mga Dokumento / Mga Kapanguhaan
![]() |
Mga Sistema sa Espressif ESP32 Dev Kitc Development Board [pdf] Giya sa Gumagamit ESP32 Dev Kitc Development Board, ESP32, Dev Kitc Development Board, Kitc Development Board, Development Board, Board |
