ESP32 Dev Kitc մշակման տախտակ
Ապրանքի մասին տեղեկատվություն
Տեխնիկական պայմաններ
- Արտադրանք՝ ESP32
- Ծրագրավորման ուղեցույց՝ ESP-IDF
- Թողարկման տարբերակ՝ v5.0.9
- Արտադրող՝ Espressif Systems
- Թողարկման ամսաթիվ՝ 16 թվականի մայիսի 2025
Ապրանքի օգտագործման հրահանգներ
1. Սկսեք
ESP32-ի հետ աշխատելը սկսելուց առաջ ծանոթացեք
հետևյալը.
1.1 Ներածություն
Իմացեք ծրագրի հիմնական գործառույթների և հնարավորությունների մասին
ESP32.
1.2 Ինչ Ձեզ անհրաժեշտ է
Համոզվեք, որ ունեք անհրաժեշտ սարքավորումները և ծրագրային ապահովումը.
- Սարքավորումներ: Ստուգեք անհրաժեշտ սարքավորումների ցանկը
բաղադրիչները. - Ծրագրային ապահովում: Տեղադրեք անհրաժեշտ ծրագրակազմը
բաղադրիչները.
1.3 Տեղադրում
Հետևեք այս քայլերին՝ IDE-ն տեղադրելու և կարգավորելու համար
միջավայր:
- IDE: Տեղադրեք խորհուրդ տրվող IDE-ն՝
ESP32-ի ծրագրավորում - Ձեռքով տեղադրում. Ձեռքով կարգավորել՝
անհրաժեշտության դեպքում միջավայրը։
1.4 Կառուցեք ձեր առաջին նախագիծը
Ստեղծեք և կառուցեք ձեր նախնական նախագիծը՝ օգտագործելով ESP32-ը։
1.5 ESP-IDF-ի հեռացում
Անհրաժեշտության դեպքում, սովորեք, թե ինչպես հեռացնել ESP-IDF-ը ձեր սարքից։
համակարգ.
2. API հղում
Մանրամասն տեղեկությունների համար դիմեք API փաստաթղթերին։
կիրառման արձանագրություններ, սխալների մշակում և կարգավորում
կառույցները։
Հաճախակի տրվող հարցեր (ՀՏՀ)
Հարց. Ինչպե՞ս կարող եմ լուծել ESP32-ի հետ կապված տարածված խնդիրները:
Ա. Տեսեք ծրագրավորման ուղեցույցի խնդիրների լուծման բաժինը
կամ այցելեք արտադրողի մոտ webկայք աջակցության ռեսուրսների համար:
Հարց. Կարո՞ղ եմ ESP-IDF-ը օգտագործել այլ միկրոկառավարիչների հետ։
Ա. ESP-IDF-ը հատուկ նախագծված է ESP32-ի համար, բայց կարող եք գտնել
համատեղելիություն այլ Espressif միկրոկառավարիչների հետ։
ESP32
ESP-IDF ծրագրավորման ուղեցույց
Թողարկման ամսաթիվ՝ v5.0.9, Espressif Systems, մայիսի 16, 2025թ.
Բովանդակություն
Բովանդակություն
i
1 Սկսեք
3
1.1 Ներածություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Ինչ է ձեզ անհրաժեշտ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Սարքավորումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Ծրագրային ապահովում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Տեղադրում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Ձեռքով տեղադրում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Կառուցեք ձեր առաջին նախագիծը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 ESP-IDF-ի ապամոնտաժում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 API հղում
45
2.1 API կոնվենցիաներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Սխալների մշակում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Կոնֆիգուրացիայի կառուցվածքներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 Մասնավոր API-ներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 Բաղադրիչներ նախկինի մեջampնախագծեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 API կայունություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Կիրառման արձանագրություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.1 ASIO նավահանգիստ: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 ESP HTTP հաճախորդ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 ESP տեղական կառավարում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 ESP սերիական ենթակա կապ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 ESP x509 վկայագրերի փաթեթ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 HTTP սերվեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 HTTPS սերվեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 ICMP Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 mDNS ծառայություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 IP ցանցային շերտ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 Bluetooth API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® Common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® ցածր էներգիայի . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 Կառավարիչ և HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 NimBLE-ի վրա հիմնված հոսթ API-ներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Սխալի կոդերի հղումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 Ցանցային API-ներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776 թ
2.5.2 Էթերնեթըրն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 Թել . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP ցանցային շերտ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Կիրառական շերտ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Արտաքին սարքերի API։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Անալոգ-թվային փոխարկիչի (ADC) միանվագ ռեժիմի դրայվեր։ . . . . . . . . . . . . . . . . 977 2.6.2 Անալոգ-թվային փոխարկիչի (ADC) անընդհատ ռեժիմի դրայվեր։ . . . . . . . . . . . . . . 986 2.6.3 Անալոգ-թվային փոխարկիչի (ADC) կարգաբերման դրայվեր։ . . . . . . . . . . . . . . . . . . 993 2.6.4 Ժամացույցի ծառ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Թվային-անալոգային փոխարկիչ (DAC): . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO և RTC GPIO։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Ընդհանուր նշանակության ժամանակաչափ (GPTimer): . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Ինտեգրված միացում (I2C): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Միջ-IC ձայն (I2S): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED կառավարում (LEDC): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Շարժիչի կառավարման իմպուլսի լայնության մոդուլյատոր (MCPWM): . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Իմպուլսի հաշվիչ (PCNT): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Հեռակառավարման փոխանցիչ-ընդունիչ (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD քաշքշուկի պահանջներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC հոսթի դրայվեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI հոսթի դրայվեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO քարտի ենթակա դրայվեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Սիգմա-Դելտա մոդուլյացիա (SDM): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI գլխավոր դրայվեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI ստրուկ դրայվեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Անվտանգ տարր) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Սենսորային հպում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Երկլար ավտոմոբիլային միջերես (TWAI): . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Համընդհանուր ասինխրոն ընդունիչ/հաղորդիչ (UART): . . . . . . . . . . . . . . . . . 1317 2.7 Նախագծի կոնֆիգուրացիա։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Ներածություն։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Նախագծի կարգավորման ցանկ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 sdkconfig.defaults-ի օգտագործումը։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig ձևաչափման կանոններ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kconfig-ի տարբերակների հետադարձ համատեղելիություն։ . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Կարգավորման տարբերակների հղում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Նախապատրաստման API։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Հաղորդակցություն ըստ արձանագրության։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Միասնական մատակարարում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Wi-Fi-ի մատակարարում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Պահեստավորման API։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileՀամակարգի աջակցություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Արտադրական օգտակար ծրագիր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS բաժանման գեներատորի ծրագիր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC դրայվեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 ՍՊԻՖՍ Fileհամակարգ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Վիրտուալ fileհամակարգի բաղադրիչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Մաշվածության հավասարեցման API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Հավելվածի պատկերի ձևաչափ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Հավելվածի մակարդակի հետևում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Ֆունկցիայի կանչ արտաքին սթեքով . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Չիպի վերանայում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Կոնսոլ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse մենեջեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Սխալի կոդեր և օժանդակ ֆունկցիաներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Իրադարձությունների ցիկլի գրադարան . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Overview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Լրացուցիչ հնարավորություններ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Հիփ հիշողության բաշխում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Հիփ հիշողության կարգաբերում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Բարձր թույլտվության ժամանակաչափ (ESP ժամանակաչափ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Ներքին և անկայուն API-ներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Միջպրոցեսորային կանչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Ընդհատումների բաշխում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Գրանցման գրադարան . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Տարբեր համակարգային API-ներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Անլար թարմացումներ (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Արդյունավետության մոնիտոր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Էներգիայի կառավարում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX թելերի աջակցություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Պատահական թվերի գեներացիա . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC հնարավորություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Համակարգի ժամանակ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 Հիմեմների բաշխման API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP համապրոցեսորային ծրագրավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Հսկող շներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 Սարքավորումների տեղեկանք
2167
3.1 Չիպերի շարքերի համեմատություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 Առնչվող փաստաթղթեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 API ուղեցույցներ
2171
4.1 Կիրառական մակարդակի հետևման գրադարան . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 Ավարտview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171 թ
4.1.2 Գործողության ռեժիմներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 Կարգավորման տարբերակներ և կախվածություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 Ինչպես օգտագործել այս գրադարանը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 Ծրագրի գործարկման հոսք . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 Առաջին վայրկյաններtagէլեկտրոնային բեռնիչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 Երկրորդ սtagէլեկտրոնային բեռնիչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 Ծրագրի մեկնարկ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 Ավարտview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184 թ
4.4 Bluetooth® ցածր էներգիայի . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 Ավարտview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186 թ
4.4.2 Սկսել . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240 թ
4.5 Բեռնման համակարգիչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Բեռնման համակարգի համատեղելիություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 Գրանցամատյանի մակարդակ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 Գործարանային կարգավորումների վերականգնում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 Փորձարկման ծրագրային ապահովումից բեռնում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 Հետ շրջվել . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 Հսկիչ շուն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 Բեռնման համակարգի չափսը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 Արագ բեռնում Deep Sleep ռեժիմից . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 Պատվերով բեռնիչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 Կառուցման համակարգ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 Ավարտview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288 թ
4.6.2 Կառուցման համակարգի օգտագործումը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 Նախկինample նախագիծը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 նախագծի CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 CMakeLists բաղադրիչ Fileներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Բաղադրիչների կոնֆիգուրացիա . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Բաղադրիչների պահանջներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Նախագծի գերակա մասեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Միայն կոնֆիգուրացիայի բաղադրիչներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 CMake-ի վրիպազերծում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Example բաղադրիչ CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 sdkconfig-ի հատուկ լռելյայն կարգավորումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Bootloader-ի կառուցում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Մաքուր CMake բաղադրիչների գրում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Երրորդ կողմի CMake նախագծերի օգտագործում բաղադրիչներով . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Նախապես կառուցված գրադարանների օգտագործումը բաղադրիչներով . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 ESP-IDF-ի օգտագործումը CMake-ի պատվերով նախագծերում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake կառուցման համակարգի API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Գլոբբինգ և աստիճանական կառուցումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Համակարգի մետատվյալների կառուցում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 ESP-IDF GNU Make համակարգից միգրացիա . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Հիմնական տվյալների հավաքագրում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Ավելի քանview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Կարգավորումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Պահպանել միջուկի կրկնօրինակը ֆլեշ կրիչում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Տպել միջուկի ֆայլը UART-ի վրա . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 ROM ֆունկցիաներ հետադարձ հետքերով . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Փոփոխականների ֆայլի ներմուծում պահանջարկի դեպքում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Espcoredump.py-ի գործարկում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Խորը քնի արթնացման ստաբներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Արթնացման ստաբների կանոններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Կետի իրականացում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Կոդի բեռնում RTC հիշողության մեջ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Տվյալների բեռնում RTC հիշողության մեջ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC ստուգում արթնացման ստաբների համար . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Բացառիկampլե . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Սխալների մշակում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Ավելիview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Սխալի կոդեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Սխալի կոդերի փոխակերպումը սխալի հաղորդագրությունների . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK մակրո . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_WITHOUT_ABORT մակրո . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR մակրո . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR մակրո . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE մակրո . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE մակրո . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 ՍՏՈՒԳԵԼ ՄԱԿՐՈՍՆԵՐԸ Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Սխալների մշակման կաղապարներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Ավելի քանview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Ներածություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 ESP-WIFI-MESH հասկացություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Ցանցի կառուցում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Ցանցի կառավարում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Տվյալների փոխանցում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Ալիքների փոխարկում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 Արդյունավետություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Լրացուցիչ նշումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Իրադարձությունների մշակում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet և IP իրադարձություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Ցանցային իրադարձություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth իրադարձություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Ավելի քանview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Խուճապի կառավարիչ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Գրանցամատյանի արտանետում և հետադարձ հետագծում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB ստաբ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog-ի ժամկետի ավարտ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Գուրուի մեդիտացիայի սխալներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Այլ ճակատագրական սխալներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Ֆլեշ կոդավորում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Ներածություն։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Համապատասխան eFuse-ներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Ֆլեշ կոդավորման գործընթաց։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Ֆլեշ կոդավորման կարգավորում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Հնարավոր խափանումներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 ֆլեշ կոդավորման կարգավիճակը։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Տվյալների ընթերցում և գրառում կոդավորված ֆլեշ կրիչում։ . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Կոդավորված ֆլեշի թարմացում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Ֆլեշ կոդավորման անջատում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Հիմնական կետեր ֆլեշ կոդավորման մասին։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Ֆլեշ կոդավորման սահմանափակումները։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Ֆլեշ կոդավորում և անվտանգ բեռնում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Լրացուցիչ հնարավորություններ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Տեխնիկական մանրամասներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Սարքավորումների աբստրակցիա։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Ճարտարապետություն։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (ցածր մակարդակի) շերտ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Սարքավորումների աբստրակցիայի շերտ): . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Բարձր մակարդակի ընդհատումներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Ընդհատման մակարդակներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Նշումներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Վրիպազերծում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Ներածություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Ինչպե՞ս է այն աշխատում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 J-ի ընտրությունTAG Ադապտեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 OpenOCD-ի կարգավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ESP32 Target-ի կարգավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Վրիպազերծիչի գործարկում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Վրիպազերծում Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 OpenOCD-ի կառուցում աղբյուրներից . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Հուշումներ և առանձնահատկություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Առնչվող փաստաթղթեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Ավելի քանview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Արագ մեկնարկ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Աջակցվող API-ներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS առաջադրանք . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 աջակցություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip-ի հատուկ փոփոխություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 Արդյունավետության օպտիմալացում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Հիշողության տեսակներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (տվյալների օպերատիվ հիշողություն) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (հրահանգների օպերատիվ հիշողություն) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (կոդը կատարվում է ֆլեշ կրիչից) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (ֆլեշ հիշողության մեջ պահված տվյալներ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC դանդաղ հիշողություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC արագ հիշողություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA կարողունակության պահանջ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA բուֆեր սթեքում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 Բաց թեմա . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 OpenThread կույտի ռեժիմները . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Ինչպես գրել OpenThread ծրագիր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 OpenThread սահմանային ռաութերը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Բաժանման աղյուսակներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Ավելի քանview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Ներկառուցված բաժանման աղյուսակներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Երկուական բաժանման աղյուսակի ստեղծում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Բաժանման չափի ստուգում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Բաժանման աղյուսակի թարմացում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Բաժանման գործիք (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Արդյունավետություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Ինչպես օպտիմալացնել արդյունավետությունը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Ուղեցույցներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Մասնակի կարգաբերում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Լրիվ կարգաբերում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Առանց կարգաբերման . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY նախնականացման տվյալներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API հղում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Անվտանգ բեռնում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Անվտանգ բեռնման գործընթացի ավարտview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Ստեղներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Բեռնման համակարգի չափսը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Ինչպես միացնել անվտանգ բեռնումը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Վերաբեռնվող ծրագրային բեռնիչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Անվտանգ բեռնման ստորագրման բանալու ստեղծում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Պատկերների հեռակա ստորագրում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Անվտանգ բեռնման լավագույն փորձը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Տեխնիկական մանրամասներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Անվտանգ բեռնում և ֆլեշ կոդավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Ստորագրված հավելվածի ստուգում առանց սարքավորման անվտանգ բեռնման . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.24.13 Լրացուցիչ հնարավորություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Անվտանգ բեռնում V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Նախապատմություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Առաջադեմtagես . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Անվտանգ բեռնման V2 գործընթաց . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Ստորագրության բլոկի ձևաչափ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Անվտանգ լրացում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Ստորագրության բլոկի ստուգում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Պատկերի ստուգում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Բեռնման համակարգի չափսը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 eFuse-ի օգտագործումը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Ինչպես միացնել անվտանգ բեռնումը, տարբերակ 2: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Սահմանափակումներ անվտանգ բեռնման միացումից հետո . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Անվտանգ բեռնման ստորագրման բանալու ստեղծում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 Պատկերների հեռակա ստորագրում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Անվտանգ բեռնման լավագույն փորձը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Տեխնիկական մանրամասներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Անվտանգ բեռնում և ֆլեշ կոդավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Ստորագրված հավելվածի ստուգում առանց սարքավորման անվտանգ բեռնման . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.18 Լրացուցիչ հնարավորություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Արտաքին օպերատիվ հիշողության աջակցություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Ներածություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Սարքավորումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Արտաքին օպերատիվ հիշողության կարգավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Սահմանափակումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Սկզբնավորման ձախողում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Չիպի վերանայումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Ավելի քանview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Native API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Ստանդարտ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF ինտերֆեյս – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF Docker պատկեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows տեղադրիչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF բաղադրիչների կառավարիչ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Ներբեռնվող գործիքներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Միավորային թեստավորում ESP32-ում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Նորմալ թեստային դեպքեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Բազմասարքային փորձարկման դեպքեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 ԲազմասարքայինtagԷլեկտրոնային փորձարկման դեպքեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Տարբեր թիրախների փորձարկումներ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Շենքի միավորի փորձարկման հավելված։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Միավորային թեստեր վարելը։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Քեշի փոխհատուցմամբ ժամանակաչափով ժամանակի կոդ։ . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Մոկեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Միավորային թեստավորում Linux-ում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Ներդրված ծրագրային ապահովման թեստեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF միավորի թեստեր Linux հոսթի վրա։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wi-Fi դրայվեր։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 Wi-Fi-ի հնարավորությունների ցանկ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Ինչպես գրել Wi-Fi հավելված։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi API սխալի կոդ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi API պարամետրերի նախնականացում։ . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wi-Fi ծրագրավորման մոդել։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 Wi-Fi իրադարձության նկարագրություն։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi կայանի ընդհանուր սցենար։ . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP ընդհանուր սցենար։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi սկանավորում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi կայանի միացման սցենար։ . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi կայանը միանում է, երբ հայտնաբերվում են բազմաթիվ մուտքի կետեր։ . . . . . . . . . . . . 2543 4.31.12 Wi-Fi-ի վերամիացում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi Beacon-ի ժամանակի սպառում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 Wi-Fi կարգավորում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Անլար ցանցի կառավարում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Ռադիո ռեսուրսների չափում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Արագ BSS անցում։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi էներգախնայողության ռեժիմ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wi-Fi թողունակություն։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
4.31.21 Wi-Fi 80211 Փաթեթների ուղարկում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi ստուգիչի ռեժիմ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi բազմակի անտենաներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Wi-Fi ալիքի վիճակի տեղեկատվություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Wi-Fi ալիքի վիճակի տեղեկատվություն կարգավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Wi-Fi հատված . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS գրանցված . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Wi-Fi բուֆերի օգտագործում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Ինչպես բարելավել Wi-Fi-ի աշխատանքը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi մենյուի կարգավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Խնդիրների լուծում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Wi-Fi անվտանգություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 Wi-Fi անվտանգության առանձնահատկություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Պաշտպանված կառավարման շրջանակներ (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Անձնական . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Ավելի քանview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 ESP32-ի համար աջակցվող համակեցության սցենար . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Համակեցության մեխանիզմ և քաղաքականություն . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Ինչպես օգտագործել համակեցության գործառույթը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Անվերարտադրելի կառուցվածքների պատճառները . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 ESP-IDF-ում վերարտադրելի կառուցվածքների միացում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Ինչպես են իրականացվում վերարտադրելի կառուցվածքները . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Վերարտադրելի կառուցվածքներ և վրիպազերծում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Գործոններ, որոնք դեռևս ազդում են վերարտադրելի կառուցվածքների վրա . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578
5 միգրացիայի ուղեցույցներ
2579
5.1 ESP-IDF 5.x միգրացիայի ուղեցույց . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 Միգրացիա 4.4-ից դեպի 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 Գրադարաններ և շրջանակներ
2611
6.1 Ամպային շրջանակներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 AWS Ինտերնետային իրերի . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 Ալիյուն IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611 թ
6.1.6 Joylink IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 Tencent-ի Ինտերնետային Բաներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun Ինտերնետային իրերի . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 Էքսպրեսիոն շրջանակներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Espressif աուդիո մշակման շրջանակ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Espressif DSP գրադարան . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 ESP-WIFI-MESH մշակման շրջանակ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 ESP-IoT-լուծում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 ESP-Արձանագրություններ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
viii
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
7 ներդրումների ուղեցույց
2615
7.1 Ինչպես ներդրում կատարել . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 Նվիրատվություն կատարելուց առաջ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 Քաշման հարցման գործընթաց . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 Իրավական մաս . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 Առնչվող փաստաթղթեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Espressif IoT մշակման շրջանակի ոճի ուղեցույց . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.2 ESP-IDF նախագծի համար նախնական հաստատման կեռիկի տեղադրում . . . . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Կոդի փաստաթղթավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 Ex-ի ստեղծումamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629 թ
7.5.5 API փաստաթղթավորման ձևանմուշ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 Մասնակցի համաձայնագիր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 Հեղինակային իրավունքի վերնագրի ուղեցույց . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 ESP-IDF թեստեր Pytest ուղեցույցով . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 ESP-IDF տարբերակներ
2645
8.1 Թողարկումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 Ո՞ր տարբերակից պետք է սկսեմ։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 Տարբերակման սխեմա . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 Աջակցության ժամանակահատվածներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 Ընթացիկ տարբերակի ստուգում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Git-ի աշխատանքային հոսք . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 ESP-IDF-ի թարմացում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 Թարմացում կայուն տարբերակի . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 Նախնական թողարկման տարբերակի թարմացում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 Թարմացում գլխավոր մասնաճյուղին . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 Թարմացում թողարկման ճյուղին . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 Ռեսուրսներ
2651
9.1 ՊլատֆորմIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 Ի՞նչ է PlatformIO-ն։ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 Տեղադրում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 Կարգավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 Ուսուցողական նյութեր . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 Նախագիծ Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Հաջորդ քայլերը . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Օգտակար հղումներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Հեղինակային իրավունքներ և լիցենզիաներ
2653
10.1 Ծրագրային ապահովման հեղինակային իրավունքներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Ծրագրային ապահովման բաղադրիչներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Փաստաթղթավորում . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 ROM-ի ելակետային կոդի հեղինակային իրավունքներ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Xtensa libhal MIT լիցենզիա. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655 թ
10.4 TinyBasic Plus MIT լիցենզիա: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655 թ
10.5 TJpgDec լիցենզիա . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 Մոտ
2657
12 լեզուների միջև անցում
2659
Ցուցանիշ
2661
Ցուցանիշ
2661
ix
x
Բովանդակություն
Սա Espressif IoT Development Framework-ի (esp-idf) փաստաթղթերն են: ESP-IDF-ը ESP32, ESP32-S և ESP32-C շարքի SoC-ների պաշտոնական մշակման շրջանակն է: Այս փաստաթուղթը նկարագրում է ESP-IDF-ի օգտագործումը ESP32 SoC-ի հետ:
Սկսեք
API հղում
API ուղեցույցներ
Էսպրեսիվ համակարգեր
1. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Բովանդակություն
Էսպրեսիվ համակարգեր
2. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1
Սկսեք
Այս փաստաթուղթը նախատեսված է ձեզ օգնելու կարգավորել Espressif-ի ESP32 չիպի վրա հիմնված սարքավորումների համար ծրագրային ապահովման մշակման միջավայրը։ Դրանից հետո՝ պարզ օրինակampԱյստեղ դուք կցույց տաք, թե ինչպես օգտագործել ESP-IDF-ը (Espressif IoT Development Framework)՝ ընտրացանկի կարգավորման, ապա՝ ESP32 տախտակի վրա ներկառուցված ծրագիրը կառուցելու և տեղադրելու համար։
Նշում. Սա ESP-IDF-ի կայուն տարբերակի v5.0.9 փաստաթղթավորումն է: Հասանելի են նաև ESP-IDF-ի այլ տարբերակներ:
1.1 Ներածություն
ESP32-ը չիպի վրա հիմնված համակարգ է, որը ներառում է հետևյալ հնարավորությունները՝ · Wi-Fi (2.4 GHz հաճախականության տիրույթ) · Bluetooth · Երկու բարձր արդյունավետությամբ Xtensa® 32-բիթ LX6 պրոցեսորային միջուկներ · Գերցածր էներգիայի համապրոցեսոր · Բազմաթիվ ծայրամասային սարքեր
40 նմ տեխնոլոգիայով հագեցած ESP32-ը ապահովում է ամուր, բարձր ինտեգրված հարթակ, որը օգնում է բավարարել էներգիայի արդյունավետ օգտագործման, կոմպակտ դիզայնի, անվտանգության, բարձր արդյունավետության և հուսալիության շարունակական պահանջները: Espressif-ը տրամադրում է հիմնական ապարատային և ծրագրային ռեսուրսներ՝ օգնելու համար մշակողներին իրականացնել իրենց գաղափարները՝ օգտագործելով ESP32 շարքի սարքավորումները: Espressif-ի ծրագրային ապահովման մշակման շրջանակը նախատեսված է իրերի ինտերնետի (IoT) հավելվածների մշակման համար՝ Wi-Fi-ով, Bluetooth-ով, էներգիայի կառավարմամբ և մի շարք այլ համակարգային հնարավորություններով:
1.2 Ինչ Ձեզ անհրաժեշտ է
1.2.1 Սարքավորում
· ESP32 քարտ: · USB մալուխ – USB A / micro USB B: · Windows, Linux կամ macOS օպերացիոն համակարգով համակարգիչ:
Նշում. Ներկայումս որոշ մշակման տախտակներ օգտագործում են USB Type C միակցիչներ: Համոզվեք, որ ունեք ճիշտ մալուխը՝ ձեր տախտակը միացնելու համար:
Եթե դուք ունեք ստորև թվարկված ESP32 պաշտոնական մշակման տախտակներից մեկը, կարող եք սեղմել հղման վրա՝ սարքավորումների մասին ավելին իմանալու համար։
3
Գլուխ 1. Սկսել
ESP32-DevKitS(-R)
Այս օգտագործողի ուղեցույցը տեղեկատվություն է տրամադրում ESP32-DevKitS(-R)-ի մասին, որը Espressif-ի կողմից արտադրված ESP32-DevKitS(-R)-ի վրա հիմնված լուսամփոփային քարտ է: ESP32-DevKitS(-R)-ը երկու տախտակների անվանումների համադրություն է՝ ESP32-DevKitS և ESP32-DevKitS-R: S-ը նշանակում է զսպանակներ, իսկ R-ը՝ WROVER:
ESP32-DevKitS
ESP32-DevKitS-R
Փաստաթուղթը բաղկացած է հետևյալ հիմնական բաժիններից՝ · Սկսնակների համար. Տրամադրում է ամբողջական տեղեկատվությունview ESP32-DevKitS(-R)-ի և սարքավորումների/ծրագրային ապահովման տեղադրման հրահանգներ՝ սկսելու համար: · Սարքավորումների հղում. Տրամադրում է ավելի մանրամասն տեղեկություններ ESP32-DevKitS(-R)ns սարքավորումների մասին: · Առնչվող փաստաթղթեր. Տալիս է հղումներ դեպի առնչվող փաստաթղթեր:
Սկսնակների համար Այս բաժինը նկարագրում է, թե ինչպես սկսել ESP32-DevKitS(-R)-ի հետ աշխատանքը։ Այն սկսվում է ESP32-DevKitS(-R)-ի մասին մի քանի ներածական բաժիններով, ապա «Ինչպես տեղադրել տախտակը» բաժինը հրահանգներ է տալիս, թե ինչպես միացնել մոդուլը ESP32-DevKitS(-R)-ի վրա, պատրաստել այն և տեղադրել ներկառուցված ծրագիրը դրա վրա։
Ավարտվել էview ESP32-DevKitS(-R)-ը Espressifns-ի ֆլեշ քարտ է, որը հատուկ նախագծված է ESP32-ի համար: Այն կարող է օգտագործվել ESP32 մոդուլը ֆլեշելու համար՝ առանց մոդուլը սնուցման աղբյուրին և ազդանշանային գծերին միացնելու: Մոդուլը տեղադրելուց հետո ESP32-DevKitS(-R)-ը կարող է նաև օգտագործվել որպես մինի մշակման քարտ, ինչպես ESP32-DevKitC-ն:
ESP32-DevKitS և ESP32-DevKitS-R տախտակները տարբերվում են միայն զսպանակավոր քորոցների դասավորությամբ՝ հետևյալ ESP32 մոդուլներին համապատասխանելու համար։
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB և IPEX) ESP32-WROVER-B (PCB և IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Վերոնշյալ մոդուլների մասին տեղեկությունների համար, խնդրում ենք դիմել ESP32 շարքի մոդուլներին։
Բաղադրիչների նկարագրությունը
Էսպրեսիվ համակարգեր
4. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Նկ. 1: ESP32-DevKitS – առջևի մաս
Էսպրեսիվ համակարգեր
Նկ. 2: ESP32-DevKitS-R – առջևի 5
Ներկայացրեք փաստաթղթի հետադարձ կապ
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Հիմնական բաղադրիչների զսպանակային քորոցներ 2.54 մմ էգ գլխիկներ
USB-ից UART կամուրջ LDO միկրո-USB միակցիչ/միկրո USB պորտ EN կոճակ Բեռնման կոճակ
LED- ի միացում
Նկարագրություն Սեղմեք մոդուլը ներս։ Մոդուլները կտեղավորվեն մոդուլի ամրացված անցքերի մեջ։ Այս էգ գլխիկները միացված են այս տախտակի վրա տեղադրված մոդուլի գլխիկներին։ Էգ գլխիկների նկարագրության համար, խնդրում ենք դիմել գլխիկի բլոկներին։ Միաչիպ USB-ից UART կամուրջը ապահովում է մինչև 3 Մբ/վ փոխանցման արագություն։
5V-ից մինչև 3.3V ցածր լարման անկումtagէլեկտրոնային կարգավորիչ (LDO):
USB միջերես։ Սնուցման աղբյուր՝ ինչպես նաև համակարգչի և մակետի միջև կապի միջերես։
Վերականգնել կոճակը:
Ներբեռնել կոճակ: Boot կոճակը սեղմած պահելը և EN կոճակը սեղմելը գործարկում է Firmware Download ռեժիմը՝ սերիական միացքի միջոցով firmware-ը ներբեռնելու համար:
Միանում է, երբ USB-ն կամ սնուցման աղբյուրը միացված է տախտակին։
Ինչպես թարմացնել տախտակը։ ESP32-DevKitS(-R)-ը միացնելուց առաջ համոզվեք, որ այն լավ վիճակում է՝ առանց որևէ ակնհայտ վնասի։
Անհրաժեշտ սարքավորումներ · Ձեր ընտրությամբ ESP32 մոդուլ · USB 2.0 մալուխ (Standard-A-ից մինչև Micro-B) · Windows, Linux կամ macOS օպերացիոն համակարգով համակարգիչ
Սարքավորումների տեղադրում։ Խնդրում ենք ձեր ընտրած մոդուլը տեղադրել ձեր ESP32-DevKitS(-R)-ի վրա՝ հետևելով հետևյալ քայլերին։
· Զգուշորեն տեղադրեք ձեր մոդուլը ESP32-DevKitS(-R) տախտակի վրա: Համոզվեք, որ ձեր մոդուլի վրա ամրացված անցքերը համընկնում են տախտակի վրա գտնվող զսպանակավոր ամրակների հետ:
· Սեղմեք մոդուլը տախտակի մեջ, մինչև այն կտտացնի։ · Ստուգեք, թե արդյոք բոլոր զսպանակավոր քորոցները տեղադրված են ամրակաձև անցքերի մեջ։ Եթե կան որոշ անհամապատասխան զսպանակավոր քորոցներ,
տեղադրեք դրանք ամրացված անցքերի մեջ պինցետով։
Softwareրագրակազմի կարգավորում
Նախընտրելի մեթոդ ESP-IDF մշակման շրջանակը ապահովում է ESP32-DevKitS(-R)-ում բինար ֆայլերը տեղադրելու նախընտրելի եղանակ։ Խնդրում ենք անցնել «Սկսել» բաժին, որտեղ «Տեղադրում» բաժինը արագ կօգնի ձեզ կարգավորել մշակման միջավայրը, ապա տեղադրել ծրագրի օրինակը։ampթողեք ձեր ESP32-DevKitS(-R)-ի վրա։
Այլընտրանքային մեթոդ։ Որպես այլընտրանք, Windows օգտատերերը կարող են ֆլեշավորել երկուական ֆայլերը՝ օգտագործելով Flash Download Tool-ը։ Պարզապես ներբեռնեք այն, բացեք zip ֆայլը և հետևեք doc թղթապանակի ներսում գտնվող հրահանգներին։
Նշում. 1. Երկուական ֆայլը ֆլեշավորելու համար files, ESP32-ը պետք է կարգավորվի Firmware Download ռեժիմում: Սա կարող է արվել կամ flash գործիքի ավտոմատ միջոցով, կամ Boot կոճակը սեղմած պահելով և EN կոճակը սեղմելով: 2. Երկուական ֆայլը flashing-ից հետո files, Flash Download Tool-ը վերագործարկում է ձեր ESP32 մոդուլը և լռելյայնորեն գործարկում է flashed հավելվածը։
Տախտակի չափսեր, պարունակություն և փաթեթավորում
Էսպրեսիվ համակարգեր
6. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել Նկար 3. ESP32-DevKitS տախտակի չափերը – հետևի մաս
Էսպրեսիվ համակարգեր
Նկ. 4: ESP32-DevKitS-R պլատի չափսերը՝ հետևի 7
Ներկայացրեք փաստաթղթի հետադարձ կապ
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Մանրածախ պատվերներ Եթե պատվիրեք մի քանիampՕրինակ, յուրաքանչյուր ESP32-DevKitS(-R) գալիս է առանձին փաթեթավորմամբ՝ կա՛մ հակաստատիկ տոպրակի մեջ, կա՛մ ցանկացած փաթեթավորմամբ՝ կախված մանրածախ վաճառողից: Մանրածախ պատվերների համար այցելեք https://www.espressif.com/en/contact-us/get-s կայքը:amples.
Մեծածախ պատվերներ Եթե մեծածախ պատվիրում եք, տախտակները գալիս են մեծ ստվարաթղթե տուփերի մեջ: Մեծածախ պատվերների համար այցելեք https://www.espressif.com/en/contact-us/sales-questions կայքը:
Սարքավորումների տեղեկանք
Բլոկային դիագրամ Ստորև բերված բլոկ-դիագրամը ցույց է տալիս ESP32-DevKitS(-R)-ի բաղադրիչները և դրանց փոխկապակցվածությունները։
Նկ. 5: ESP32-DevKitS(-R) (սեղմեք՝ մեծացնելու համար)
Սնուցման տարբերակներ։ Պլատային սնուցում մատակարարելու երեք փոխադարձաբար բացառող եղանակ կա՝ · Micro USB միացք, ստանդարտ սնուցման աղբյուր · 5V և GND գլխային միացումներ · 3V3 և GND գլխային միացումներ
Խորհուրդ է տրվում օգտագործել առաջին տարբերակը՝ միկրո USB միակցիչ։
Էսպրեսիվ համակարգեր
.
Պիտակի ազդանշան
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
շարունակվում է հաջորդ էջում
8. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Աղյուսակ 1-ը շարունակվում է նախորդ էջից
.
Պիտակի ազդանշան
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
Արտաքին 5V
R1 GND GND
R2 23
GPIO23
R3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
R6 21
GPIO21
R7 GND GND
R8 19
GPIO19
R9 18
GPIO18
R10 5
GPIO5
R11 17
GPIO17
R12 16
GPIO16
R13 4
GPIO4
R14 0
GPIO0
R15 2
GPIO2
R16 15
GPIO15
R17 D1 SD_DATA1
R18 D0 SD_DATA0
R19 CLK SD_CLK
Վերնագրի բլոկներ Վերնագրի բլոկների պատկերի համար, խնդրում ենք դիմել բաղադրիչների նկարագրությանը։
Առնչվող փաստաթղթեր
· ESP32-DevKitS(-R) սխեմաներ (PDF) · ESP32 տվյալների թերթիկ (PDF) · ESP32-WROOM-32 տվյալների թերթիկ (PDF) · ESP32-WROOM-32D և ESP32-WROOM-32U տվյալների թերթիկ (PDF) · ESP32-SOLO-1 տվյալների թերթիկ (PDF) · ESP32-WROVER տվյալների թերթիկ (PDF) · ESP32-WROVER-B տվյալների թերթիկ (PDF) · ESP արտադրանքի ընտրիչ
ESP32-DevKitM-1
Այս օգտագործողի ուղեցույցը կօգնի ձեզ սկսել ESP32-DevKitM-1-ի հետ աշխատելը և կտրամադրի նաև ավելի մանրամասն տեղեկատվություն։
ESP32-DevKitM-1-ը Espressif-ի կողմից արտադրված ESP32-MINI-1(1U)-ի վրա հիմնված մշակման տախտակ է: Մուտքի/ելքի միացումների մեծ մասը բաժանված է երկու կողմերից միացումների գլխագրերի՝ հեշտ ինտերֆեյսի համար: Օգտատերերը կարող են կամ միացնել ծայրամասային սարքերը միացնող լարերով, կամ տեղադրել ESP32-DevKitM-1-ը հացի տախտակի վրա:
Էսպրեսիվ համակարգեր
9. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
ESP32-DevKitM-1 – առջև
ESP32-DevKitM-1 – իզոմետրիկ
Փաստաթուղթը բաղկացած է հետևյալ հիմնական բաժիններից՝ · Սկսնակների համար. Տրամադրում է ամբողջական տեղեկատվությունview ESP32-DevKitM-1-ի և սարքավորումների/ծրագրային ապահովման տեղադրման հրահանգների՝ սկսելու համար: · Սարքավորումների հղում. Տրամադրում է ավելի մանրամասն տեղեկատվություն ESP32-DevKitM-1ns սարքավորումների մասին: · Առնչվող փաստաթղթեր. Տալիս է հղումներ դեպի առնչվող փաստաթղթեր:
Սկսնակների համար Այս բաժինը նկարագրում է, թե ինչպես սկսել ESP32-DevKitM-1-ի հետ աշխատելը: Այն սկսվում է ESP32-DevKitM-1-ի մասին մի քանի ներածական բաժիններով, այնուհետև «Ծրագրի մշակում սկսել» բաժինը տրամադրում է հրահանգներ, թե ինչպես կատարել նախնական սարքավորումների տեղադրումը, ապա ինչպես տեղադրել ներկառուցված ծրագիրը ESP32-DevKitM-1-ի վրա:
Ավարտվել էview Սա փոքր և հարմար զարգացման տախտակ է, որն ունի.
· ESP32-MINI-1 կամ ESP32-MINI-1U մոդուլ · USB-ից սերիական ծրագրավորման ինտերֆեյս, որը նաև ապահովում է միկրոսխեմայի սնուցումը · միացման գլխիկներ · կոճակներ՝ Firmware Download ռեժիմի վերագործարկման և ակտիվացման համար · մի քանի այլ բաղադրիչներ
Բովանդակություն և փաթեթավորում
Մանրածախ պատվերներ Եթե պատվիրեք մի քանիampԱյսպիսով, յուրաքանչյուր ESP32-DevKitM-1 գալիս է անհատական փաթեթավորմամբ՝ կա՛մ հակաստատիկ տոպրակի մեջ, կա՛մ ցանկացած փաթեթավորմամբ՝ կախված ձեր վաճառողից։
Մանրածախ պատվերների համար այցելեք https://www.espressif.com/en/contact-us/get-s կայքը։amples.
Մեծածախ պատվերներ Եթե մեծածախ պատվիրում եք, տախտակները գալիս են մեծ ստվարաթղթե տուփերի մեջ: Մեծածախ պատվերների համար այցելեք https://www.espressif.com/en/contact-us/sales-questions կայքը:
Բաղադրիչների նկարագրությունը Հետևյալ նկարը և ստորև բերված աղյուսակը նկարագրում են ESP32-DevKitM-1 տախտակի հիմնական բաղադրիչները, ինտերֆեյսները և կառավարման տարրերը: Որպես օրինակ մենք վերցնում ենք ESP32-MINI-1 մոդուլով տախտակը:ample հետեւյալ բաժիններում.
Էսպրեսիվ համակարգեր
10. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Նկ. 6: ESP32-DevKitM-1 – առջևի մաս
Հիմնական բաղադրիչ՝ ներկառուցված մոդուլ
5 Վ-ից մինչև 3.3 Վ LDO բեռնման կոճակ
Վերականգնման կոճակ
USB-ից UART կամուրջ 3.3 V միացման LED
I/O միակցիչ
Նկարագրություն
ESP32-MINI-1 մոդուլ կամ ESP32-MINI-1U մոդուլ: ESP32-MINI-1-ը գալիս է ներկառուցված PCB անտենայով: ESP32-MINI-1U-ն գալիս է արտաքին անտենայի միակցիչով: Երկու մոդուլներն էլ ունեն 4 ՄԲ ֆլեշ հիշողություն չիպի մեջ: Մանրամասների համար տե՛ս ESP32-MINI-1 և ESP32-MINI-1U տվյալների թերթիկը:
Էլեկտրաէներգիայի կարգավորիչը փոխակերպում է 5 Վ-ը 3.3 Վ-ի:
Ներբեռնել կոճակ: Boot կոճակը սեղմած պահելը և Reset կոճակը սեղմելը գործարկում է Firmware Download ռեժիմը՝ սերիական միացքի միջոցով firmware-ը ներբեռնելու համար:
Վերականգնել կոճակը
USB ինտերֆեյս: Էլեկտրամատակարարում տախտակի համար, ինչպես նաև համակարգչի և ESP32 չիպի միջև կապի միջերեսը:
Մեկ USB-UART կամուրջ չիպը ապահովում է փոխանցման արագություն մինչև 3 Մբիթ/վրկ:
Միանում է, երբ USB-ն միացված է տախտակին: Մանրամասների համար, խնդրում ենք տեսնել սխեմաները «Առնչվող փաստաթղթերում»: Բոլոր հասանելի GPIO միացումները (բացառությամբ ֆլեշ կրիչի SPI ավտոբուսի) բաժանված են տախտակի վրա գտնվող միացումների վերնագրերին: Օգտատերերը կարող են ծրագրավորել ESP32 չիպը՝ բազմաթիվ գործառույթներ միացնելու համար:
Սկսեք ծրագրերի մշակումը։ Նախքան ESP32-DevKitM-1-ը միացնելը, համոզվեք, որ այն լավ վիճակում է՝ առանց որևէ ակնհայտ վնասի։
Անհրաժեշտ սարքավորումներ՝ ESP32-DevKitM-1, USB 2.0 մալուխ (Standard-A-ից մինչև Micro-B), Windows, Linux կամ macOS օպերացիոն համակարգով համակարգիչ
Ծրագրային ապահովման կարգավորում Խնդրում ենք անցնել «Սկսել» բաժին, որտեղ «Տեղադրում» բաժինը կօգնի ձեզ արագ կարգավորել մշակման միջավայրը, ապա ներբեռնել ծրագրի օրինակը։ampմտեք ձեր ESP32-DevKitM-1-ի վրա:
Էսպրեսիվ համակարգեր
11. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Ուշադրություն. 2021 թվականի դեկտեմբերի 2-ից առաջ արտադրված ESP32-DevKitM-1 տախտակները ունեն տեղադրված մեկ միջուկանի մոդուլ: Որպեսզի ստուգեք, թե որ մոդուլն ունեք, խնդրում ենք ստուգել մոդուլի նշման տեղեկատվությունը PCN-2021-021-ում: Եթե ձեր տախտակն ունի տեղադրված մեկ միջուկանի մոդուլ, խնդրում ենք միացնել մեկ միջուկանի ռեժիմը (CONFIG_FREERTOS_UNICORE) menuconfig-ում՝ նախքան ձեր ծրագրերը տեղադրելը:
Սարքավորումների հղման բլոկ-սխեմա։ Ստորև բերված բլոկ-սխեման ցույց է տալիս ESP32-DevKitM-1-ի բաղադրիչները և դրանց փոխկապակցվածությունները։
Նկ. 7: ESP32-DevKitM-1
Սնուցման աղբյուրի ընտրություն։ Պլատային սնուցում մատակարարելու երեք փոխադարձաբար բացառիկ եղանակ կա՝ · Micro USB միացք, ստանդարտ սնուցման աղբյուր · 5V և GND գլխավոր միացումներ · 3V3 և GND գլխավոր միացումներ
Զգուշացում. · Սնուցման աղբյուրը պետք է ապահովվի վերը նշված տարբերակներից միայն մեկով, հակառակ դեպքում կարող են վնասվել տախտակը և/կամ սնուցման աղբյուրը: · Խորհուրդ է տրվում սնուցում ստանալ միկրո USB միացքով:
Ստորև բերված աղյուսակում ներկայացված են տախտակի երկու կողմերում գտնվող ցողունների անունները և գործառույթը: Ծայրամասային ցողունների կոնֆիգուրացիաների համար խնդրում ենք դիմել ESP32 տվյալների թերթիկին:
Ոչ
Անուն
Տեսակ
1
GND
P
2
3V3
P
Ֆունկցիա՝ Հողային 3.3 Վ էլեկտրամատակարարում
շարունակվում է հաջորդ էջում
Էսպրեսիվ համակարգեր
12. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Աղյուսակ 2-ը շարունակվում է նախորդ էջից
Ոչ
Անուն
Տեսակ
Գործառույթ
3
I36
I
GPIO36, ADC1_CH0, RTC_GPIO0
4
I37
I
GPIO37, ADC1_CH1, RTC_GPIO1
5
I38
I
GPIO38, ADC1_CH2, RTC_GPIO2
6
I39
I
GPIO39, ADC1_CH3, RTC_GPIO3
7
RST
I
Վերականգնել; Բարձր՝ միացնել; Ցածր՝ անջատված է
8
I34
I
GPIO34, ADC1_CH6, RTC_GPIO4
9
I35
I
GPIO35, ADC1_CH7, RTC_GPIO5
10
IO32
I/O
GPIO32, XTAL_32K_P (32.768 կՀց բյուրեղային օսցիլյատորի մուտք),
ADC1_CH4, TOUCH9, RTC_GPIO9
11
IO33
I/O
GPIO33, XTAL_32K_N (32.768 կՀց բյուրեղյա տատանվող ելք),
ADC1_CH5, TOUCH8, RTC_GPIO8
12
IO25
I/O
GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
13
IO26
I/O
GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
14
IO27
I/O
GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
15
IO14
I/O
GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,
HS2_CLK, SD_CLK, EMAC_TXD2
16
5V
P
5 Վ էլեկտրամատակարարում
17
IO12
I/O
GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,
HS2_DATA2, SD_DATA2, EMAC_TXD3
18
IO13
I/O
GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,
HS2_DATA3, SD_DATA3, EMAC_RX_ER
19
IO15
I/O
GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,
HS2_CMD, SD_CMD, EMAC_RXD3
20
IO2
I/O
GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,
HS2_DATA0, SD_DATA0
21
IO0
I/O
GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,
EMAC_TX_CLK
22
IO4
I/O
GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,
HS2_DATA1, SD_DATA1, EMAC_TX_ER
23
IO9
I/O
GPIO9, HS1_DATA2, U1RXD, SD_DATA2
24
IO10
I/O
GPIO10, HS1_DATA3, U1TXD, SD_DATA3
25
IO5
I/O
GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK
26
IO18
I/O
GPIO18, HS1_DATA7, VSPICLK
27
IO23
I/O
GPIO23, HS1_STROBE, VSPID
28
IO19
I/O
GPIO19, VSPIQ, U0CTS, EMAC_TXD0
29
IO22
I/O
GPIO22, VSPIWP, U0RTS, EMAC_TXD1
30
IO21
I/O
GPIO21, VSPIHD, EMAC_TX_EN
31
TXD0
I/O
GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
32
RXD0
I/O
GPIO3, U0RXD, CLK_OUT2
Սարքավորումների վերանայման մանրամասներ Նախորդ տարբերակներ հասանելի չեն։
Առնչվող փաստաթղթեր
· ESP32-MINI-1 և ESP32-MINI-1U տվյալների թերթիկ (PDF) · ESP32-DevKitM-1 սխեմատիկ պատկերներ (PDF) · ESP32-DevKitM-1 տպատախտակի դասավորություն (PDF) · ESP32-DevKitM-1 դասավորություն (DXF) – Դուք կարող եք view այն Autodesk-ի հետ Viewառցանց · ESP32 տվյալների թերթիկ (PDF) · ESP արտադրանքի ընտրիչ
Տախտակի այլ նախագծային փաստաթղթերի համար խնդրում ենք կապվել մեզ հետ sales@espressif.com հասցեով։
Էսպրեսիվ համակարգեր
13. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
1.2.2 ծրագրային ապահովում
ESP-IDF-ը ESP32-ի վրա օգտագործելը սկսելու համար տեղադրեք հետևյալ ծրագրակազմը՝ · Toolchain՝ ESP32-ի կոդը կազմելու համար · Build tools – CMake և Ninja՝ ESP32-ի համար լիարժեք հավելված կառուցելու համար · ESP-IDF, որը էապես պարունակում է API (ծրագրային գրադարաններ և սկզբնական կոդ) ESP32-ի համար և սկրիպտներ՝ Toolchain-ը գործարկելու համար
1.3 Տեղադրում
Բոլոր անհրաժեշտ ծրագրակազմը տեղադրելու համար մենք առաջարկում ենք մի քանի տարբեր եղանակներ այս խնդիրը հեշտացնելու համար: Ընտրեք առկա տարբերակներից մեկը:
1.3.1 IDE
Նշում. Մենք խորհուրդ ենք տալիս տեղադրել ESP-IDF-ը ձեր նախընտրած IDE-ի միջոցով։
· Eclipse հավելված · VSCode ընդլայնում
1.3.2 Ձեռքով տեղադրում
Ձեռքով ընթացակարգի համար, խնդրում ենք ընտրել ձեր օպերացիոն համակարգին համապատասխան։
Էսպրեսիվ համակարգեր
14. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Windows-ի համար Toolchain-ի ստանդարտ կարգավորում
Ներածություն ESP-IDF-ը պահանջում է որոշ նախնական գործիքների տեղադրում, որպեսզի դուք կարողանաք կառուցել ներկառուցված ծրագրեր աջակցվող չիպերի համար: Նախապայման գործիքների թվում են Python, Git, խաչաձև կոմպիլյատորներ, CMake և Ninja կառուցման գործիքներ: Այս «Սկսել» ձեռնարկի համար մենք օգտագործելու ենք հրամանի տողը, բայց ESP-IDF-ը տեղադրելուց հետո կարող եք օգտագործել Eclipse Plugin կամ այլ գրաֆիկական IDE՝ CMake աջակցությամբ: Նշում. Սահմանափակումներ. – ESP-IDF-ի և ESP-IDF գործիքների տեղադրման ուղին չպետք է լինի ավելի քան 90 նիշ: Չափազանց երկար տեղադրման ուղին կարող է հանգեցնել կառուցման ձախողման: – Python-ի կամ ESP-IDF-ի տեղադրման ուղին չպետք է պարունակի սպիտակ բացատներ կամ փակագծեր: – Python-ի կամ ESP-IDF-ի տեղադրման ուղին չպետք է պարունակի հատուկ նիշեր (ոչ ASCII), եթե օպերացիոն համակարգը կարգավորված չէ oUnicode UTF-8p աջակցությամբ: Համակարգի ադմինիստրատորը կարող է միացնել աջակցությունը կառավարման վահանակի միջոցով: – Փոխել ամսաթվի, ժամի կամ թվերի ձևաչափերը: – Վարչական ներդիր: – Փոխել համակարգի տեղայնացումը: – Նշեք oBeta: Օգտագործեք Unicode UTF-8 համաշխարհային լեզուների աջակցության համար: – Լավ արեք և վերագործարկեք համակարգիչը:
ESP-IDF գործիքների տեղադրիչ։ ESP-IDFns-ի նախապայմանները տեղադրելու ամենահեշտ ձևը ESP-IDF գործիքների տեղադրիչներից մեկը ներբեռնելն է։
Windows Installer-ի ներբեռնում
Ի՞նչ է առցանց և անցանց տեղադրողի օգտագործման դեպքը։ Առցանց տեղադրողը շատ փոքր է և թույլ է տալիս տեղադրել ESP-IDF-ի բոլոր հասանելի տարբերակները։ Տեղադրիչը տեղադրման գործընթացի ընթացքում կներբեռնի միայն անհրաժեշտ կախվածությունները, այդ թվում՝ Git For Windows-ը։ Տեղադրիչը պահպանում է ներբեռնված ֆայլերը։ files-ը քեշի %userpro գրացուցակում էfile%. էսպրեսիֆ
Անցանց տեղադրիչը չի պահանջում որևէ ցանցային կապ: Տեղադրիչը պարունակում է բոլոր անհրաժեշտ կախվածությունները, այդ թվում՝ Git For Windows-ը:
Տեղադրման բաղադրիչները Տեղադրիչը տեղադրում է հետևյալ բաղադրիչները՝
· Ներդրված Python · Խաչաձև կոմպիլյատորներ · OpenOCD · CMake և Ninja կառուցման գործիքներ · ESP-IDF
Տեղադրիչը նաև թույլ է տալիս վերօգտագործել առկա գրացուցակը ESP-IDF-ի միջոցով: Առաջարկվող գրացուցակն է %userpro-ն:file%Desktopesp-idf որտեղ %userprofile%-ը ձեր տնային տեղեկատուն է։
Էսպրեսիվ համակարգեր
15. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
ESP-IDF միջավայրի գործարկում Տեղադրման գործընթացի ավարտին կարող եք ստուգել «Գործարկել ESP-IDF PowerShell Environment» կամ «Գործարկել ESP-IDF Command Prompt (cmd.exe)» տարբերակները: Տեղադրիչը կգործարկի ESP-IDF միջավայրը ընտրված հուշման մեջ: Գործարկեք ESP-IDF PowerShell Environment-ը:
Նկ. 8. ESP-IDF գործիքների կարգավորման վարպետի ավարտը՝ ESP-IDF PowerShell Environment-ը գործարկելով
Գործարկեք ESP-IDF հրամանի տողը (cmd.exe):
Հրամանի տողի օգտագործումը։ Սկսելու մնացած քայլերի համար մենք օգտագործելու ենք Windows-ի հրամանի տողը։ ESP-IDF գործիքների տեղադրիչը նաև ստեղծում է կարճ հղում «Սկիզբ» ցանկում՝ ESP-IDF հրամանի տողը գործարկելու համար։ Այս կարճ հղումը գործարկում է հրամանի տողը (cmd.exe) և գործարկում export.bat սկրիպտը՝ միջավայրի փոփոխականները (PATH, IDF_PATH և այլն) կարգավորելու համար։ Այս հրամանի տողի ներսում հասանելի են բոլոր տեղադրված գործիքները։ Նկատի ունեցեք, որ այս կարճ հղումը հատուկ է ESP-IDF գործիքների տեղադրիչում ընտրված ESP-IDF գրացուցակին։ Եթե համակարգչում ունեք մի քանի ESP-IDF գրացուցակներ (օրինակ՝ampօրինակ՝ ESP-IDF-ի տարբեր տարբերակների հետ աշխատելու համար), դրանք օգտագործելու երկու տարբերակ ունեք.
1. Ստեղծեք ESP-IDF գործիքների տեղադրողի կողմից ստեղծված կարճ ճանապարհի պատճենը և փոխեք նոր կարճ ճանապարհի աշխատանքային գրացուցակը այն ESP-IDF գրացուցակով, որը ցանկանում եք օգտագործել։
2. Այլընտրանքորեն, կարող եք գործարկել cmd.exe-ը, այնուհետև անցնել ESP-IDF գրացուցակ, որը ցանկանում եք օգտագործել, և գործարկել export.bat-ը: Նկատի ունեցեք, որ նախորդ տարբերակից տարբերվող այս եղանակը պահանջում է, որ Python-ը և Git-ը ներկա լինեն PATH-ում: Եթե սխալներ եք ստանում Python-ի կամ Git-ի չգտնվելու հետ կապված, օգտագործեք առաջին տարբերակը:
ESP-IDF-ի առաջին քայլերը։ Քանի որ բոլոր պահանջները բավարարված են, հաջորդ թեման ձեզ կուղեկցի, թե ինչպես սկսել ձեր առաջին նախագիծը։
Էսպրեսիվ համակարգեր
16. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել Նկար 9. ESP-IDF PowerShell
Նկ. 10. ESP-IDF գործիքների տեղադրման վարպետի ավարտը՝ Run ESP-IDF հրամանի տողը (cmd.exe) օգտագործելով
Էսպրեսիվ համակարգեր
17. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Նկ. 11: ESP-IDF հրամանի տող
Էսպրեսիվ համակարգեր
18. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Այս ուղեցույցը կօգնի ձեզ ESP-IDF-ն օգտագործելու առաջին քայլերում: Հետևեք այս ուղեցույցին՝ ESP32-ի վրա նոր նախագիծ սկսելու և սարքի ելքային հզորությունը կառուցելու, թարմացնելու և վերահսկելու համար: Նշում. Եթե դեռ չեք տեղադրել ESP-IDF-ը, խնդրում ենք անցնել «Տեղադրում» բաժին և հետևել հրահանգներին՝ այս ուղեցույցն օգտագործելու համար անհրաժեշտ բոլոր ծրագրերը ստանալու համար:
Սկսել նախագիծ։ Այժմ դուք պատրաստ եք պատրաստել ձեր ESP32 դիմումը։ Կարող եք սկսել getstarted/hello_world նախագծից։amples տեղեկատու ESP-IDF-ում:
Կարևոր է. ESP-IDF կառուցման համակարգը չի աջակցում բացատներ ո՛չ ESP-IDF-ին, ո՛չ էլ նախագծերին տանող ուղիներում։
Պատճենեք նախագիծը get-started/hello_world ֆայլը ~/esp գրացուցակում՝ cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
Նշում. Կա մի շարք նախկիններample նախագծերը նախկինումamples գրացուցակ ESP-IDF-ում: Դուք կարող եք պատճենել ցանկացած նախագիծ այնպես, ինչպես ներկայացված է վերևում և գործարկել այն: Հնարավոր է նաև կառուցել նախկինampֆայլերը տեղում են՝ առանց դրանք նախապես պատճենելու։
Միացրեք ձեր սարքը։ Հիմա միացրեք ձեր ESP32 քարտը համակարգչին և ստուգեք, թե որ հաջորդական միացքի տակ է այն երևում։ Windows-ում հաջորդական միացքների անունները սկսվում են COM-ով։ Եթե համոզված չեք, թե ինչպես ստուգել հաջորդական միացքի անունը, խնդրում ենք դիմել ESP32-ի հետ հաջորդական միացման հաստատմանը՝ լրացուցիչ տեղեկությունների համար։
Նշում. Պահպանեք նավահանգստի անունը, քանի որ այն ձեզ անհրաժեշտ կլինի հաջորդ քայլերում:
Կարգավորեք ձեր նախագիծը։ Անցեք ձեր hello_world գրացուցակ, սահմանեք ESP32-ը որպես թիրախ և գործարկեք նախագծի կարգավորման օգտակար ծրագիրը menuconfig.
Windows-ի CD %userprofile%esphello_world idf.py սահմանել-նպատակակետը esp32 idf.py մենյուի կարգավորում
Նոր նախագիծ բացելուց հետո, դուք նախ պետք է սահմանեք նպատակակետը idf.py set-target esp32-ով: Նկատի ունեցեք, որ նախագծում առկա կառուցվածքները և կոնֆիգուրացիաները, եթե կան, կմաքրվեն և կսկսվեն այս գործընթացում: Նպատակակետը կարող է պահպանվել միջավայրի փոփոխականում՝ այս քայլը բաց թողնելու համար: Լրացուցիչ տեղեկությունների համար տե՛ս «Ընտրեք թիրախային չիպը. set-target» բաժինը: Եթե նախորդ քայլերը ճիշտ են կատարվել, կհայտնվի հետևյալ ընտրացանկը. Դուք օգտագործում եք այս ընտրացանկը նախագծին հատուկ փոփոխականներ կարգավորելու համար, օրինակ՝ Wi-Fi ցանցի անունը և գաղտնաբառը, պրոցեսորի արագությունը և այլն: Նախագիծը menuconfig-ով կարգավորելը կարող է բաց թողնվել ohello_wordp-ի համար, քանի որ սա...ample-ն աշխատում է լռելյայն կարգավորումներով։
Ուշադրություն. Եթե օգտագործում եք ESP32-DevKitC քարտը ESP32-SOLO-1 մոդուլի հետ կամ ESP32-DevKitM-1 քարտը ESP32-MIN1-1(1U) մոդուլի հետ, խնդրում ենք միացնել միամիջուկային ռեժիմը (CONFIG_FREERTOS_UNICORE) menuconfig-ում՝ ex-ը թարթելուց առաջ։amples.
Էսպրեսիվ համակարգեր
19. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Նկ. 12: Նախագծի կարգավորում – Գլխավոր պատուհան
Նշում. Ձեր տերմինալում մենյուի գույները կարող են տարբեր լինել: Դուք կարող եք փոխել տեսքը –style տարբերակի միջոցով: Խնդրում ենք գործարկել idf.py menuconfig –help հրամանը՝ լրացուցիչ տեղեկությունների համար:
Եթե դուք օգտագործում եք աջակցվող մշակման տախտակներից մեկը, կարող եք արագացնել ձեր մշակումը՝ օգտագործելով տախտակի աջակցության փաթեթը: Լրացուցիչ տեղեկությունների համար տե՛ս «Լրացուցիչ խորհուրդներ» բաժինը:
Կառուցեք նախագիծը։ Կառուցեք նախագիծը՝ գործարկելով հետևյալը.
idf.py կառուցել
Այս հրամանը կկազմի հավելվածը և ESP-IDF-ի բոլոր բաղադրիչները, այնուհետև այն կստեղծի bootloader-ը, բաժանման աղյուսակը և հավելվածի երկուականները:
$ idf.py build cmake-ի գործարկում /path/to/hello_world/build գրացուցակում Կատարվում է “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Զգուշացում չսկզբնորոշված արժեքների մասին։ — Գտնվել է Git: /usr/bin/git (գտնվել է “2.17.0” տարբերակը) — Կառուցվում է դատարկ aws_iot բաղադրիչ՝ կարգավորման պատճառով — Բաղադրիչների անուններ՝ … — Բաղադրիչների ուղիներ՝ …
… (կառուցման համակարգի ելքի ավելի շատ տողեր)
[527/527] hello_world.bin esptool.py v2.3.1 ֆայլի ստեղծում
Նախագծի կառուցումն ավարտված է։ Ֆլեշը տեղադրելու համար գործարկեք այս հրամանը՝ ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin կամ գործարկեք 'idf.py -p PORT flash' հրամանը։
Եթե սխալներ չլինեն, կառուցումը կավարտվի` ստեղծելով որոնվածը երկուական .bin files.
Էսպրեսիվ համակարգեր
20. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Տեղադրեք ձեր նոր կառուցած երկուական ֆայլերը (bootloader.bin, partition-table.bin և hello_world.bin) ձեր ESP32 տախտակի վրա՝ գործարկելով հետևյալ հրամանը՝ idf.py -p PORT [-b BAUD] flash հրամանը:
Փոխարինեք PORT-ը ձեր ESP32 քարտի սերիական պորտի անունով։ Կարող եք նաև փոխել flasher baud rate-ը՝ BAUD-ը փոխարինելով ձեզ անհրաժեշտ baud rate-ով։ Լռելյայն baud rate-ը 460800 է։ idf.py արգումենտների վերաբերյալ լրացուցիչ տեղեկությունների համար տե՛ս idf.py։
Նշում. «flash» ընտրանքը ավտոմատ կերպով կառուցում և թարմացնում է նախագիծը, ուստի idf.py build-ը գործարկելը անհրաժեշտ չէ:
Խնդիրներ հանդիպե՞լ եք ֆլեշավորման ժամանակ: Եթե գործարկում եք տրված հրամանը և տեսնում եք սխալներ, ինչպիսիք են՝ «Չհաջողվեց միանալ» (Failed to connectp), դրա համար կարող են լինել մի քանի պատճառներ: Պատճառներից մեկը կարող է լինել esptool.py ծրագրի հետ կապված խնդիրները, որը կոմունալ ծրագիր է, որը կանչվում է կառուցման համակարգի կողմից չիպը վերագործարկելու, ROM բեռնիչի հետ փոխազդելու և ներկառուցված ծրագիրը ֆլեշելու համար: Մեկ պարզ լուծում, որը կարող եք փորձել, ձեռքով վերագործարկումն է, որը նկարագրված է ստորև, և եթե այն չի օգնում, կարող եք ավելի մանրամասն տեղեկություններ գտնել հնարավոր խնդիրների մասին «Խնդիրների լուծում» բաժնում:
esptool.py-ը ավտոմատ կերպով վերագործարկում է ESP32-ը՝ հաստատելով USB-ից սերիական փոխարկիչի չիպի DTR և RTS կառավարման գծերը, այսինքն՝ FTDI կամ CP210x (ավելի շատ տեղեկությունների համար տե՛ս «Սերիական կապի հաստատում ESP32-ի հետ» բաժինը): DTR և RTS կառավարման գծերը, իրենց հերթին, միացված են ESP32-ի GPIO0 և CHIP_PU (EN) կոնտակտներին, այդպիսով փոփոխություններ կատարելով ծավալում:tagDTR-ի և RTS-ի մակարդակները կբեռնեն ESP32-ը Firmware Download ռեժիմով։ampՕրինակ, ստուգեք ESP32 DevKitC մշակման տախտակի սխեման։
Ընդհանուր առմամբ, դուք չպետք է խնդիրներ ունենաք esp-idf-ի պաշտոնական մշակման տախտակների հետ։ Այնուամենայնիվ, esptool.py-ն չի կարող ավտոմատ կերպով վերագործարկել ձեր սարքավորումները հետևյալ դեպքերում՝
· Ձեր սարքավորումը չունի DTR և RTS գծեր, որոնք միացված են GPIO0-ին և CHIP_PU-ին · DTR և RTS գծերը տարբեր կերպ են կարգավորված · Նման սերիական կառավարման գծեր ընդհանրապես չկան
Կախված ձեր ունեցած սարքավորումների տեսակից, հնարավոր է նաև ձեռքով ձեր ESP32 տախտակը դնել Firmware Download ռեժիմի (վերագործարկման):
· Espressif-ի կողմից արտադրված մշակման տախտակների համար այս տեղեկատվությունը կարելի է գտնել համապատասխան մեկնարկի ուղեցույցներում կամ օգտագործողի ուղեցույցներում: Օրինակ՝ampՕրինակ՝ ESP-IDF մշակման քարտը ձեռքով վերագործարկելու համար սեղմեք Boot կոճակը (GPIO0) և EN կոճակը (CHIP_PU):
· Այլ տեսակի սարքավորումների համար փորձեք GPIO0-ը ներքև քաշել։
Սովորական գործողություն։ Երբ թարթում եք, կտեսնեք հետևյալին նման ելքային գրանցամատյանը։
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Սերիական պորտ /dev/ttyUSB0 Միանում է…….._ Չիպը ESP32D0WDQ6 է (վերանայված 0) Հատկանիշներ՝ WiFi, BT, երկմիջուկ, կոդավորման սխեմա Ոչ մեկը Բյուրեղը 40MHz է MAC: 24:0a:c4:05:b9:14 Բեռնվում է ստաբը… Ստաբը գործարկվում է… Ստաբը գործարկվում է… Բաուդի արագությունը փոխվում է 460800-ի Փոփոխված է:
(շարունակությունը հաջորդ էջում)
Էսպրեսիվ համակարգեր
21. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
(շարունակությունը նախորդ էջից) Ֆլեշ կրիչի չափը կարգավորելը… Սեղմված է 3072 բայթը մինչև 103… Գրում 0x00008000-ով… (100%) Գրվել է 3072 բայթ (103 սեղմված) 0x00008000-ով 0.0 վայրկյանում (արդյունավետ 5962.8 կբիթ/վրկ)… Տվյալների հեշը ստուգվել է։ Սեղմված է 26096 բայթը մինչև 15408… Գրում 0x00001000-ով… (100%) Գրվել է 26096 բայթ (15408 սեղմված) 0x00001000-ով 0.4 վայրկյանում (արդյունավետ 546.7 կբիթ/վրկ)… Տվյալների հեշը ստուգվել է։ Սեղմված 147104 բայթ՝ 77364… Գրում է 0x00010000-ում… (20%) Գրում է 0x00014000-ում… (40%) Գրում է 0x00018000-ում… (60%) Գրում է 0x0001c000-ում… (80%) Գրում է 0x00020000-ում… (100%) Գրվել է 147104 բայթ (77364 սեղմված) 0x00010000-ում 1.9 վայրկյանում (արդյունավետ 615.5 կբիթ/վրկ)… Տվյալների հեշը ստուգված է։
Հեռանում է… Կոշտ վերակայում RTS փինով… Կատարված է
Եթե ֆլեշ գործընթացի ավարտին խնդիրներ չառաջանան, տախտակը կվերագործարկվի և կմեկնարկի theohello_worldpapplication-ը։ Եթե ցանկանում եք օգտագործել Eclipse կամ VS Code IDE-ն idf.py-ն գործարկելու փոխարեն, ստուգեք Eclipse Plugin, VSCode Extension-ը։
Վերահսկեք ելքը։ Ստուգելու համար, թե արդյոք ohello_worldpis-ը իսկապես աշխատում է, մուտքագրեք idf.py -p PORT monitor (Մի մոռացեք PORT-ը փոխարինել ձեր սերիական պորտի անունով):
Այս հրամանը գործարկում է IDF Monitor հավելվածը.
$ idf.py -p monitor idf_monitor-ի գործարկում […]/esp/hello_world/build գրացուցակում «python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf»… հրամանի կատարում — idf_monitor միացված է 115200 —– Ելք՝ Ctrl+] | Մենյու՝ Ctrl+T | Օգնություն՝ Ctrl+T, որին հաջորդում է Ctrl+H –ets Հունիս 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) և այլն՝ 2016 թվականի հունիսի 8, ժամը 00:22:57 …
Գործարկման և ախտորոշման գրանցամատյանները վերև գլորելուց հետո դուք պետք է տեսնեք ծրագրի կողմից տպված oHello world! գրառումը։
… Բարև աշխարհ։ Վերագործարկում 10 վայրկյանից… Սա esp32 չիպ է՝ 2 պրոցեսորային միջուկով, WiFi/BT/BLE, սիլիկոնային տարբերակ 1, 2 ՄԲ արտաքին ֆլեշ։ Ազատ հիշողության նվազագույն չափը՝ 298968 բայթ։ Վերագործարկում 9 վայրկյանից… Վերագործարկում 8 վայրկյանից… Վերագործարկում 7 վայրկյանից…
IDF մոնիտորից դուրս գալու համար օգտագործեք Ctrl+] դյուրանցումը:
Էսպրեսիվ համակարգեր
22. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Եթե IDF մոնիտորը խափանվում է վերբեռնումից կարճ ժամանակ անց, կամ եթե վերը նշված հաղորդագրությունների փոխարեն տեսնում եք ստորև նշվածին նման պատահական աղբ, ապա ձեր տախտակը, հավանաբար, օգտագործում է 26 ՄՀց բյուրեղ։ Մշակման տախտակների մեծ մասը օգտագործում է 40 ՄՀց, ուստի ESP-IDF-ն այս հաճախականությունն օգտագործում է որպես լռելյայն արժեք։
Եթե նման խնդիր ունեք, կատարեք հետևյալը՝ 1. Դուրս եկեք մոնիտորից։ 2. Վերադարձեք menuconfig։ 3. Անցեք Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency, այնուհետև փոխեք CONFIG_XTAL_FREQ_SEL-ը 26 ՄՀց-ի։ 4. Դրանից հետո կրկին հավաքեք և թարմացրեք ծրագիրը։
ESP-IDF-ի ներկայիս տարբերակում ESP32-ի կողմից աջակցվող հիմնական XTAL հաճախականությունները հետևյալն են՝
· 26 ՄՀց · 40 ՄՀց
Նշում. Դուք կարող եք համատեղել կառուցումը, ֆլեշավորումը և մոնիթորինգը մեկ քայլով՝ գործարկելով հետևյալ հրամանը՝ idf.py -p PORT flash monitor
Տես նաև՝ · IDF Monitor՝ հարմար կարճուղիների և IDF monitor-ի օգտագործման վերաբերյալ լրացուցիչ մանրամասների համար: · idf.py՝ idf.py հրամանների և տարբերակների ամբողջական տեղեկանքի համար:
Սա այն ամենն է, ինչ ձեզ անհրաժեշտ է ESP32-ով սկսելու համար։ Հիմա դուք պատրաստ եք փորձել այլ տարբերակներ։amples, կամ անմիջապես անցեք ձեր սեփական հավելվածների մշակմանը։
Կարևոր է. Նախկիններից մի քանիսըampՖայլերը չեն աջակցում ESP32-ին, քանի որ անհրաժեշտ սարքավորումները ներառված չեն ESP32-ում, ուստի դրանք չեն կարող աջակցվել: Եթե կառուցում եք նախկինampլե, խնդրում եմ ստուգեք README-ը file Աջակցվող թիրախների աղյուսակի համար։ Եթե սա առկա է, ներառյալ ESP32 թիրախը, կամ աղյուսակը ընդհանրապես գոյություն չունի, օրինակ՝ampկաշխատի ESP32-ի վրա։
Լրացուցիչ խորհուրդներ
Թույլտվությունների խնդիրներ /dev/ttyUSB0 Linux-ի որոշ բաշխումներում ESP32-ը թարմացնելիս կարող եք ստանալ «Չհաջողվեց բացել /dev/ttyUSB0 պորտը» սխալի հաղորդագրությունը: Սա կարելի է լուծել՝ ներկայիս օգտատիրոջը dialout խմբում ավելացնելով:
Python-ի համատեղելիություն։ ESP-IDF-ն աջակցում է Python 3.7 կամ ավելի նոր տարբերակին։ Խորհուրդ է տրվում թարմացնել ձեր օպերացիոն համակարգը այս պահանջը բավարարող վերջին տարբերակով։ Այլ տարբերակներից են Python-ի տեղադրումը աղբյուրներից կամ Python-ի տարբերակների կառավարման համակարգի, ինչպիսին է pyenv-ն, օգտագործումը։
Սկսեք տախտակի աջակցության փաթեթից։ Որոշ մշակման տախտակների վրա նախատիպերի ստեղծումը արագացնելու համար կարող եք օգտագործել տախտակի աջակցության փաթեթներ (BSP), որոնք որոշակի տախտակի նախնականացումը դարձնում են այնքան հեշտ, որքան մի քանի ֆունկցիաների կանչերը։
Էսպրեսիվ համակարգեր
23. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
BSP-ն սովորաբար աջակցում է մշակման տախտակի վրա տրամադրված բոլոր ապարատային բաղադրիչները: Բացի pinout սահմանումից և նախնականացման գործառույթներից, BSP-ն մատակարարվում է արտաքին բաղադրիչների, ինչպիսիք են սենսորները, էկրանները, աուդիո կոդեկները և այլն, դրայվերներով: BSP-ները տարածվում են IDF Component Manager-ի միջոցով, ուստի դրանք կարելի է գտնել IDF Component Registry-ում: Ահա օրինակ՝ampԻնչպես ձեր նախագծին ավելացնել ESP-WROVER-KIT BSP-ն՝ idf.py add-dependency esp_wrover_kit
Ավելի շատ նախկինampBSP-ի օգտագործման մասին ավելի քիչ տեղեկություններ կարելի է գտնել BSP-ում։amples թղթապանակ:
Առնչվող փաստաթղթեր Նախադպրոցական օգտատերերի համար, ովքեր ցանկանում են հարմարեցնել տեղադրման գործընթացը. · Windows-ում ESP-IDF գործիքների թարմացում · ESP32-ի միջոցով սերիական կապի հաստատում · Eclipse Plugin · VSCode ընդլայնում · IDF Monitor
ESP-IDF գործիքների թարմացում Windows-ում
Տեղադրեք ESP-IDF գործիքները սկրիպտի միջոցով։ Windows-ի հրամանի տողից անցեք այն պանակին, որտեղ տեղադրված է ESPIDF-ը։ Այնուհետև գործարկեք՝
install.bat
Powershell-ի համար անցեք այն գրացուցակին, որտեղ տեղադրված է ESP-IDF-ը: Այնուհետև գործարկեք՝
install.ps1
Սա կներբեռնի և կտեղադրի ESP-IDF-ն օգտագործելու համար անհրաժեշտ գործիքները: Եթե գործիքի որոշակի տարբերակն արդեն տեղադրված է, ապա որևէ գործողություն չի ձեռնարկվի: Գործիքները ներբեռնվում և տեղադրվում են ESP-IDF գործիքների տեղադրման գործընթացում նշված գրացուցակում: Ըստ լռելյայնի, սա C:Usersusername.espressif է:
Ավելացրեք ESP-IDF գործիքներ PATH-ին՝ օգտագործելով արտահանման սկրիպտ։ ESP-IDF գործիքների տեղադրիչը ստեղծում է «Սկիզբ» ընտրացանկի կարճուղի oESP-IDF հրամանի տողի համար։ Այս կարճուղին բացում է հրամանի տողի պատուհան, որտեղ բոլոր գործիքներն արդեն իսկ գտնվում են։
հասանելի է։ Որոշ դեպքերում, դուք կարող եք աշխատել ESP-IDF-ի հետ հրամանի տողի պատուհանում, որը չի գործարկվել այդ կարճ ստեղնով։ Եթե դա այդպես է, հետևեք ստորև նշված հրահանգներին՝ PATH-ին ESP-IDF գործիքներ ավելացնելու համար։ Հրամանի տողում, որտեղ դուք պետք է օգտագործեք ESP-IDF, անցեք այն գրացուցակին, որտեղ տեղադրված է ESP-IDF-ը, այնուհետև գործարկեք export.bat հրամանը։
cd %userprofile%espesp-idf export.bat
Այլընտրանքորեն, Powershell-ում, որտեղ անհրաժեշտ է օգտագործել ESP-IDF, անցեք այն գրացուցակին, որտեղ տեղադրված է ESP-IDF-ը, այնուհետև կատարեք export.ps1 հրամանը։
cd ~/esp/esp-idf export.ps1
Երբ սա արվի, գործիքները հասանելի կլինեն այս հրամանի տողում։
Սերիական միացում հաստատեք ESP32-ի հետ։ Այս բաժինը ներկայացնում է ESP32-ի և համակարգչի միջև սերիական միացում հաստատելու ուղեցույց։
Էսպրեսիվ համակարգեր
24. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Միացրեք ESP32-ը համակարգչին։ Միացրեք ESP32 պլատան համակարգչին USB մալուխի միջոցով։ Եթե սարքի դրայվերը ավտոմատ կերպով չի տեղադրվում, գտեք ձեր ESP32 պլատի (կամ արտաքին փոխարկիչի դոնգլի) USB-ից սերիական փոխարկիչ չիպը, փնտրեք դրայվերներ ինտերնետում և տեղադրեք դրանք։ Ստորև ներկայացված է Espressif-ի կողմից արտադրված ESP32 պլատների մեծ մասի վրա տեղադրված USB-ից սերիական փոխարկիչ չիպերի ցանկը՝ դրայվերների հղումներով։
· CP210x: CP210x USB-ից UART Bridge VCP դրայվերներ · FTDI: FTDI Virtual COM Port դրայվերներ Խնդրում ենք ստուգել քարտի օգտագործողի ուղեցույցը՝ օգտագործվող USB-ից սերիական փոխարկիչի կոնկրետ չիպի համար: Վերը նշված դրայվերները հիմնականում հղման համար են: Սովորական պայմաններում դրայվերները պետք է միացված լինեն օպերացիոն համակարգին և ավտոմատ կերպով տեղադրվեն քարտը համակարգչին միացնելուց հետո:
Ստուգեք Windows-ի միացքը։ Ստուգեք նույնականացված COM միացքների ցանկը Windows Device Manager-ում։ Անջատեք ESP32-ը և նորից միացրեք այն՝ ստուգելու համար, թե որ միացքն է անհետանում ցանկից և հետո նորից երևում։ Ստորև բերված նկարները ցույց են տալիս ESP32 DevKitC-ի և ESP32 WROVER KIT-ի սերիական միացքը։
Նկ. 13. ESP32-DevKitC-ի USB-ից UART կամուրջը Windows Device Manager-ում
Ստուգեք միացքը Linux-ում և macOS-ում։ Ձեր ESP32 քարտի (կամ արտաքին փոխարկիչի դոնգլի) սերիական միացքի սարքի անունը ստուգելու համար երկու անգամ գործարկեք այս հրամանը՝ նախ՝ անջատված քարտով/դոնգլով, ապա՝ միացված։ Երկրորդ անգամ հայտնվող միացքը ձեզ անհրաժեշտն է՝ Linux։
ls /dev/tty*
macOS
Էսպրեսիվ համակարգեր
25. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Նկ. 14. ESP-WROVER-KIT-ի երկու USB սերիական միացքները Windows Device Manager-ում
Էսպրեսիվ համակարգեր
26. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
ls /dev/cu.* Նշում. macOS օգտատերեր. եթե չեք տեսնում սերիական միացքը, ապա ստուգեք, որ տեղադրված են USB/սերիական դրայվերները: Տես «ESP32-ը համակարգչին միացնելը» բաժինը՝ դրայվերների հղումների համար: macOS High Sierra (10.13) դեպքում, հնարավոր է, որ անհրաժեշտ լինի նաև հստակորեն թույլատրել դրայվերների բեռնումը: Բացեք «Համակարգի կարգավորումներ» -> «Անվտանգություն և գաղտնիություն» -> «Ընդհանուր» բաժինը և ստուգեք, թե արդյոք այստեղ ցուցադրվում է հաղորդագրություն oSystem Software-ի մասին՝ մշակողի lp-ից, որտեղ մշակողի անունը Silicon Labs կամ FTDI է:
Linux-ում dialout խմբում օգտատիրոջ ավելացում։ Այժմ գրանցված օգտատերը պետք է ունենա USB-ի միջոցով սերիական միացքի կարդալու և գրելու թույլտվություն։ Linux-ի մեծ մասում դա արվում է օգտատիրոջը dialout խմբում ավելացնելով հետևյալ հրամանով՝
sudo usermod -a -G զանգահարեք $USER
Arch Linux-ում դա արվում է՝ օգտվողին uucp խմբին ավելացնելով հետևյալ հրամանով.
sudo usermod -a -G uucp $USER
Համոզվեք, որ նորից մուտք եք գործել՝ սերիական միացքի համար կարդալու և գրելու թույլտվությունները միացնելու համար:
Ստուգեք սերիական կապը։ Այժմ ստուգեք, որ սերիական կապը գործում է։ Դուք կարող եք դա անել սերիական տերմինալի ծրագրի միջոցով՝ ստուգելով, թե արդյոք ESP32-ը վերագործարկելուց հետո տերմինալում որևէ ելքային ազդանշան եք ստանում։ ESP32-ի վրա լռելյայն կոնսոլի բոդ արագությունը 115200 է։
Windows-ը և Linux-ը այս դեպքումampԱյսպիսով, մենք կօգտագործենք PuTTY SSH Client-ը, որը հասանելի է և՛ Windows-ի, և՛ Linux-ի համար: Կարող եք օգտագործել այլ սերիական ծրագրեր և սահմանել կապի պարամետրերը, ինչպես ստորև նշված է: Գործարկեք տերմինալը և սահմանեք նույնականացված սերիական միացքը: Բաուդի արագությունը = 115200 (անհրաժեշտության դեպքում փոխեք այն օգտագործվող չիպի լռելյայն բոդի արագության), տվյալների բիթերը = 8, կանգառի բիթերը = 1, և հավասարությունը = N: Ստորև բերված են օրինակներ:ampWindows-ում և Linux-ում պորտի և նման փոխանցման պարամետրերի կարգավորման էկրանի նկարներ (կարճ նկարագրված է որպես 115200-8-1-N): Հիշե՛ք ընտրել հենց նույն սերիական պորտը, որը նշել եք վերը նշված քայլերում: Այնուհետև բացեք սերիական պորտը տերմինալում և ստուգեք, թե արդյոք տեսնում եք ESP32-ի կողմից տպված որևէ գրանցամատյան: Գրանցամատյանի պարունակությունը կախված կլինի ESP32-ին բեռնված ծրագրից, տե՛ս օրինակը:ampլ Արդյունքը։
Նշում. Կապի աշխատանքը ստուգելուց հետո փակեք սերիական տերմինալը: Եթե տերմինալի սեսիան բաց պահեք, սերիական միացքը հետագայում անհասանելի կլինի ներկառուցված ծրագիրը վերբեռնելու համար:
macOS Սերիական տերմինալի ծրագիր տեղադրելու անհարմարությունից խուսափելու համար macOS-ը առաջարկում է էկրանի հրամանը։ · Ինչպես քննարկվել է Linux-ի և macOS-ի վրա պորտի ստուգում բաժնում, գործարկեք հետևյալը՝
ls /dev/cu.* · Դուք պետք է տեսնեք նմանատիպ արդյունք՝
/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Արդյունքը կտարբերվի՝ կախված ձեր համակարգչին միացված տախտակների տեսակից և քանակից: Այնուհետև ընտրեք ձեր տախտակի սարքի անունը և գործարկեք (անհրաժեշտության դեպքում փոխեք o115200pto-ն՝ օգտագործելով չիպի լռելյայն բոդ արագությունը):
screen /dev/cu.device_name 115200 Փոխարինեք սարքի_անունը ls /dev/cu.* հրամանը գործարկելիս գտնված անվամբ։
Էսպրեսիվ համակարգեր
27. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Նկ. 15. Սերիական կապի կարգավորումը PuTTY-ում Windows-ում
Էսպրեսիվ համակարգեր
28. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Նկ. 16. Սերիական կապի կարգավորումը PuTTY-ում Linux-ում
Էսպրեսիվ համակարգեր
29. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
· Դուք փնտրում եք էկրանին ցուցադրվող որոշ գրանցամատյան։ Գրանցամատյանի պարունակությունը կախված կլինի ESP32-ին բեռնված ծրագրից, տե՛ս օրինակը։ample Output: Էկրանի սեսիայից դուրս գալու համար սեղմեք Ctrl-A + :
Նշում. Կապի աշխատանքը ստուգելուց հետո մի մոռացեք դուրս գալ էկրանի սեսիայից: Եթե դա չհաջողվի անել և պարզապես փակեք տերմինալի պատուհանը, հաջորդական միացքը հետագայում անհասանելի կլինի ներկառուցված ծրագիրը վերբեռնելու համար:
Example Output An exampԳրանցամատյանը ներկայացված է ստորև։ Վերագործարկեք տախտակը, եթե ոչինչ չեք տեսնում։ ets Հունիս 8 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) և այլն՝ 2016 թվականի հունիսի 8, 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: կոմպիլյացիայի ժամանակը՝ 18:48:10
…
Եթե տեսնում եք ընթեռնելի գրանցամատյանի արդյունքը, դա նշանակում է, որ սերիական միացումը աշխատում է, և դուք պատրաստ եք շարունակել տեղադրումը և վերջապես ծրագրի վերբեռնումը ESP32-ում։
Նշում. Որոշ սերիական միացքների միացման կոնֆիգուրացիաների դեպքում, սերիական RTS և DTR միացումները պետք է անջատվեն տերմինալի ծրագրում, նախքան ESP32-ը կբեռնվի և սերիական ելք կարտադրի: Սա կախված է հենց սարքավորումից, մշակման տախտակների մեծ մասը (ներառյալ բոլոր Espressif տախտակները) այս խնդիրը չունեն: Խնդիրն առկա է, եթե RTS-ը և DTR-ը միացված են անմիջապես EN և GPIO0 միացումներին: Ավելի մանրամասն տեղեկությունների համար տե՛ս esptool-ի փաստաթղթերը:
Եթե այստեղ եք հասել 5-րդ քայլից՝ ESP-IDF-ի վրա առաջին քայլերը ESP32 մշակման համար ծրագիր տեղադրելիս, ապա կարող եք շարունակել 5-րդ քայլից՝ ESP-IDF-ի վրա առաջին քայլերը։
IDF Monitor-ը հիմնականում սերիական տերմինալի ծրագիր է, որը փոխանցում է սերիական տվյալները թիրախային սարքի սերիական պորտից և դեպի այն։ Այն նաև տրամադրում է IDF-ին հատուկ որոշ գործառույթներ։ IDF Monitor-ը կարող է գործարկվել IDF նախագծից՝ գործարկելով idf.py monitor-ը։
Ստեղնաշարի կարճուղիներ IDF Monitor-ի հետ հեշտ փոխազդեցության համար օգտագործեք աղյուսակում տրված ստեղնաշարի կարճուղիները։
Էսպրեսիվ համակարգեր
30. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Ստեղնաշարի կարճ ստեղներ Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (կամ A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (կամ I)
· Ctrl+H (կամ H)
· Ctrl+X (կամ X)
Ctrl+C
Գործողություն
Նկարագրություն
Ծրագրից դուրս գալ Մենյուի Escape ստեղնը Մենյուի նիշը ուղարկել հեռակառավարիչին
Ուղարկեք ելքի նիշը հեռակառավարիչին
Վերագործարկեք թիրախը bootloader-ում՝ RTS տողի միջոցով ծրագիրը դադարեցնելու համար
Վերագործարկեք նպատակային տախտակը RTS-ի միջոցով
Կառուցեք և թարմացրեք նախագիծը
Միայն հավելվածի ստեղծում և ֆլեշավորում
Էկրանին գրանցամատյանի տպագրության դադարեցում/վերսկսում
Կանգնեցնել/վերսկսել գրանցամատյանի արդյունքը պահվել է file
Կանգառի/վերսկսման ժամանակըamps
տպագրություն
Ցուցադրել ստեղնաշարի բոլոր դյուրանցումները
Սեղմեք և հետևեք ստորև նշված կոճակներից մեկին։
Վերագործարկում է թիրախային սարքը bootloader-ի մեջ RTS գծի միջոցով (եթե միացված է), որպեսզի պլանշետը ոչինչ չաշխատի։ Օգտակար է, երբ անհրաժեշտ է սպասել մեկ այլ սարքի մեկնարկին։ Վերագործարկում է թիրախային սարքը և վերագործարկում ծրագիրը RTS գծի միջոցով (եթե միացված է)։
Դադարեցնում է idf_monitor-ը՝ նախագծի ֆլեշ թիրախը գործարկելու համար, ապա վերսկսում է idf_monitor-ը։ Ցանկացած փոփոխված աղբյուր files-ը վերակազմավորվում և այնուհետև վերաֆլացվում են: Target encrypted-flash-ը գործարկվում է, եթե idf_monitor-ը մեկնարկվել է -E արգումենտով: Դադարեցնում է idf_monitor-ը՝ app-flash թիրախը գործարկելու համար, ապա վերսկսում է idf_monitor-ը: Նման է flash թիրախին, բայց միայն հիմնական հավելվածն է կառուցվում և վերաֆլացվում: Target encrypted-app-flash-ը գործարկվում է, եթե idf_monitor-ը մեկնարկվել է -E արգումենտով: Ակտիվացված վիճակում անտեսում է բոլոր մուտքային սերիական տվյալները: Թույլ է տալիս արագ դադարեցնել և ուսումնասիրել գրանցամատյանի ելքը՝ առանց մոնիտորի աշխատանքը դադարեցնելու: Ստեղծում է file նախագծի գրացուցակում, և արդյունքը գրվում է այնտեղ file մինչև սա անջատվի նույն ստեղնաշարի կարճ ստեղնով (կամ IDF Monitor-ը փակվի): IDF Monitor-ը կարող է տպել ժամանակաչափըamp յուրաքանչյուր տողի սկզբում։ Ժամանակըamp ձևաչափը կարող է փոխվել –times-ի կողմիցamp-format հրամանի տողի արգումենտ։
Դուրս եկեք ծրագրից
Ընդհատել ծրագրի աշխատանքը
Դադարեցնում է IDF Monitor-ը և գործարկում GDB նախագծի վրիպազերծիչը՝ ծրագիրը գործարկման ժամանակ վրիպազերծելու համար: Սա պահանջում է, որ :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME տարբերակը միացված լինի:
Ctrl-] և Ctrl-T-ից բացի սեղմված բոլոր ստեղները կուղարկվեն սերիական միացքի միջոցով։
IDF-ին հատուկ առանձնահատկություններ
Հասցեի ավտոմատ վերծանում։ Երբ ESP-IDF-ը արտածում է 0x4________ ձևի տասնվեցական կոդի հասցե, IDF Monitor-ը օգտագործում է addr2line_ ֆունկցիան՝ սկզբնական կոդում դրա տեղը փնտրելու և ֆունկցիայի անունը գտնելու համար։
Եթե ESP-IDF հավելվածը խափանվում է և խուճապի է մատնվում, ստեղծվում է ռեգիստրի դամփ և հետադարձ հետք, ինչպիսիք են հետևյալը՝
Էսպրեսիվ համակարգեր
31. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Գուրու մեդիտացիայի StoreProhibited տիպի սխալ տեղի ունեցավ 0 միջուկի վրա։ Բացառություն էր
չմշակված։
Գրանցամատյանի աղբարկղ՝
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 Բացառիկ:
0x0000001d
EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitor-ը լրացուցիչ մանրամասներ է ավելացնում տվյալների բազային.
Գուրու մեդիտացիայի StoreProhibited տիպի սխալ տեղի ունեցավ 0 միջուկի վրա։ Բացառություն էր
չմշակված։
Գրանցամատյանի աղբարկղ՝
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: do_something_to_crash /home/gus/esp/32/idf/ex հասցեումampսկսել/սկսել/
hello_world/main/./hello_world_main.c:57
(ներդրված է) inner_dont_crash-ի կողմից /home/gus/esp/32/idf/ex հասցեումamples/get-start/hello_
աշխարհ/գլխավոր/./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 Բացառիկ:
0x0000001d
EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (ներդրված է) inner_dont_crash-ի կողմից /home/gus/esp/32/idf/ex հասցեումamples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash /home/gus/esp/32/idf/ex հասցեումamples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: չի վթարի ենթարկվում /home/gus/esp/32/idf/ex հասցեումamples/get-started/hello_world/main/./hello_world_main.c:42 0x400dbf82: app_main /home/gus/esp/32/idf/ex հասցեումamples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254 հասցեում
Յուրաքանչյուր հասցեն վերծանելու համար IDF Monitor-ը ֆոնային ռեժիմում կատարում է հետևյալ հրամանը՝ xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Նշում. Սահմանեք ESP_MONITOR_DECODE միջավայրի փոփոխականը 0-ի կամ կանչեք idf_monitor.py-ը որոշակի հրամանի տողով։
Էսպրեսիվ համակարգեր
32. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
տարբերակ՝ idf_monitor.py –disable-address-decoding՝ հասցեի վերծանումը անջատելու համար։
Նպատակակետի վերականգնում միացման ժամանակ։ Ըստ լռելյայնի, IDF Monitor-ը կվերականգնի նպատակակետը միանալու ժամանակ։ Նպատակակետային չիպի վերականգնումը կատարվում է DTR և RTS հաջորդական գծերի միջոցով։ Որպեսզի IDF Monitor-ը ավտոմատ կերպով չվերականգնի նպատակակետը միացման ժամանակ, զանգահարեք IDF Monitor-ին՝ օգտագործելով –no-reset տարբերակը (օրինակ՝ idf_monitor.py –no-reset):
Նշում. –no-reset տարբերակը նույն վարքագիծն է կիրառում նույնիսկ IDF Monitor-ը որոշակի պորտին միացնելիս (օրինակ՝ idf.py monitor –no-reset -p [PORT]):
GDB-ի գործարկումը GDBStub-ի միջոցով։ GDBStub-ը օգտակար կատարողականի վրիպազերծման գործառույթ է, որը գործարկվում է թիրախի վրա և միանում է հոսթին սերիական միացքի միջոցով՝ վրիպազերծման հրամաններ ստանալու համար։ GDBStub-ը աջակցում է այնպիսի հրամաններ, ինչպիսիք են հիշողության և փոփոխականների ընթերցումը, կանչերի կույտի շրջանակների ուսումնասիրությունը և այլն։ Չնայած GDBStub-ը պակաս բազմակողմանի է, քան J-ն։TAG կարգաբերում, այն չի պահանջում որևէ հատուկ սարքավորում (օրինակ՝ JTAG USB կամրջի վրա), քանի որ կապը կատարվում է ամբողջությամբ սերիական միացքի միջոցով: Նպատակակետը կարող է կարգավորվել GDBStub-ը ֆոնային ռեժիմում աշխատեցնելու համար՝ CONFIG_ESP_SYSTEM_PANIC-ը գործարկման ժամանակ GDBStub-ի դիրքում դնելով: GDBStub-ը կաշխատի ֆոնային ռեժիմում մինչև սերիական միացքի միջոցով Ctrl+C հաղորդագրություն ուղարկվի, որը կհանգեցնի ծրագրի խափանմանը (այսինքն՝ կկանգնեցնի կատարումը), այդպիսով թույլ տալով GDBStub-ին մշակել վրիպազերծման հրամանները: Ավելին, խուճապի մշակիչը կարող է կարգավորվել GDBStub-ը գործարկելու համար վթարի դեպքում՝ CONFIG_ESP_SYSTEM_PANIC-ը խուճապի ժամանակ GDBStub-ի դիրքում դնելով: Վթարի դեպքում GDBStub-ը սերիական միացքի վրա կարտադրի հատուկ տողային ձևանմուշ՝ նշելու համար, որ այն աշխատում է: Երկու դեպքում էլ (այսինքն՝ Ctrl+C հաղորդագրությունը ուղարկելիս կամ հատուկ տողային ձևանմուշը ստանալիս), IDF Monitor-ը ավտոմատ կերպով կգործարկի GDB-ն՝ թույլ տալով օգտատիրոջը ուղարկել վրիպազերծման հրամաններ: GDB-ն դուրս գալուց հետո նպատակակետը վերագործարկվում է RTS սերիական գծի միջոցով: Եթե այս գիծը միացված չէ, օգտատերերը կարող են վերագործարկել իրենց նպատակակետը (սեղմելով տախտակի վերագործարկման կոճակը):
Նշում. ֆոնային ռեժիմում IDF Monitor-ը կատարում է հետևյալ հրամանը՝ GDB-ն գործարկելու համար.
xtensa-esp32-elf-gdb -ex “set serial baud BAUD” -ex “target remote PORT” -ex interrupt build/PROJECT.elf :idf_target:`Բարև NAME չիպ`
Արդյունքի ֆիլտրացում IDF մոնիտորը կարող է կանչվել որպես idf.py monitor –print-filter=”xyz”, որտեղ –print-filter-ը արդյունքի ֆիլտրացման պարամետրն է: Լռելյայն արժեքը դատարկ տող է, ինչը նշանակում է, որ ամեն ինչ տպագրվում է:
Տպելու սահմանափակումները կարող են նշվել որպես մի շարքtag>: իրեր, որտեղtag> է tag լարային և {N, E, W, I, D, V, *} բազմության նիշ է, որը վերաբերում է գրանցման մակարդակին։
Նախampլեյ, PRINT_FILTER=”tag1:W»-ը համապատասխանում և տպում է միայն ESP_LOGW(“)-ով գրված ելքերը։tag1”, …) կամ ավելի ցածր մանրամասնության մակարդակով, օրինակ՝ ESP_LOGE(“tag1″, …)։ Չի նշում կամ * օգտագործելով՝ լռելյայնորեն սահմանվում է մանրամասն մակարդակ։
Նշում. Օգտագործեք առաջնային գրանցումը՝ կազմման ժամանակ այն ելքային տվյալները անջատելու համար, որոնք ձեզ անհրաժեշտ չեն գրանցումների գրադարանի միջոցով: IDF monitor-ի միջոցով ելքային ֆիլտրացումը երկրորդական լուծում է, որը կարող է օգտակար լինել ֆիլտրման տարբերակները կարգավորելու համար՝ առանց ծրագիրը վերակազմավորելու:
Ձեր հավելվածը tags չպետք է պարունակի բացատներ, աստղանիշներ * կամ երկու կետ։ : համատեղելի է ելքային ֆիլտրման գործառույթի հետ։
Եթե ձեր հավելվածում ելքային տողի վերջին տողին չի հաջորդում վերադարձի նշանը, ելքային ֆիլտրացումը կարող է խճճվել, այսինքն՝ մոնիտորը սկսում է տպել տողը և ավելի ուշ պարզում է, որ տողը չպետք է գրվեր։ Սա հայտնի խնդիր է և կարող է խուսափել՝ միշտ ավելացնելով վերադարձի նշան (հատկապես, երբ դրանից անմիջապես հետո ելք չկա)։
Էսպրեսիվ համակարգեր
33. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
ExampՖիլտրման կանոնների ցանկ՝
· * կարող է օգտագործվել ցանկացածին համապատասխանեցնելու համար tagsՍակայն, PRINT_FILTER=”*:I տողը tag1:E»՝ կապված tag1-ը տպում է միայն սխալներ, քանի որ կանոնը tag1-ը *-ի համար կանոնի համեմատ ավելի բարձր առաջնահերթություն ունի։
· Լռելյայն (դատարկ) կանոնը համարժեք է *:V-ին, քանի որ բոլորի համապատասխանությունը tag Verbose մակարդակում կամ ավելի ցածր մակարդակում նշանակում է ամեն ինչ համապատասխանեցնել։
· «*:N»-ը ճնշում է ոչ միայն գրանցման ֆունկցիաների ելքային տվյալները, այլև printf-ի և այլնի կողմից կատարված տպագրությունները: Դրանից խուսափելու համար օգտագործեք *:E կամ ավելի բարձր մանրամասնության մակարդակ:
· Կանոններtag1:V”, “tag1:v”, “tag1:”, “tag1:*», և «tag1»-ը համարժեք են։ · Կանոն «tag1:W tag1:E»-ն համարժեք է «tag1:E», քանի որ նույնի ցանկացած հետևանքային դեպք tag
անունը վերագրում է նախորդը։ · Կանոն «tag1: I tagՄիայն 2:W” տպագրություն tag1՝ տեղեկատվության մանրամասնության մակարդակում կամ ավելի ցածր, և tag2-ը նախազգուշացման կետում
շատախոսության մակարդակ կամ ավելի ցածր։ · Կանոն «tag1: I tag2:W tag3:N»-ը էապես համարժեք է նախորդին, քանի որ tag3:N-ը նշում է
որ tag3-ը չպետք է տպագրվի։ · tag3:N կանոնում «tag1: I tag2:W tag3:N *:V»-ն ավելի իմաստալից է, քանի որ առանց tag3:N-ը
tagՀնարավոր էր տպագրվել 3 հաղորդագրություն։ Սխալները tag1 և tag2-ը կտպագրվի նշված (կամ ավելի ցածր) մանրամասնության մակարդակով, իսկ մնացած ամեն ինչ կտպագրվի լռելյայն։
Ավելի բարդ ֆիլտրացման օրինակampՀետևյալ գրանցամատյանի հատվածը ստացվել է առանց որևէ զտման տարբերակի։
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: 0x30000-ի դեպքում պատկերը ունի անվավեր կախարդական բայթ W (31) esp_image: 0x30000-ի դեպքում պատկերը ունի անվավեր SPI ռեժիմ 255 E (39) boot: Գործարանային հավելվածի բաժանումը չի բեռնավորվում I (568) cpu_start: Pro պրոցեսորը գործարկվում է։ I (569) heap_init: Նախաձեռնվում է։ RAM-ը հասանելի է դինամիկ բաշխման համար։ I (603) cpu_start: Pro պրոցեսորի գործարկման օգտատիրոջ կոդ D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range-ը հաջողությամբ գործարկվել է <54 միջակայքի համար։ 64) և VFS ID 1 I (328) wifi: wifi դրայվերի առաջադրանք՝ 3ffdbf84, prio:23, stack:4096, core=0
Ստորև բերված է PRINT_FILTER=”wifi esp_image:E light_driver:I” ֆիլտրման տարբերակների համար ստացված արդյունքը։
E (31) esp_image: 0x30000-ի դեպքում պատկերը պարունակում է անվավեր կախարդական բայթ I (328) wifi: wifi դրայվերի առաջադրանք՝ 3ffdbf84, prio:23, stack:4096, core=0
«PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” տարբերակները ցույց են տալիս հետևյալ արդյունքը՝
load:0x40078000,len:13564 entry 0x40078d4c I (569) heap_init: Նախաձեռնվում է։ RAM-ը հասանելի է դինամիկ բաշխման համար։ D (309) light_driver: [light_init, 74]:status: 1, mode: 2
IDF Monitor-ի հետ կապված հայտնի խնդիրներ
Windows-ում նկատված խնդիրներ
· Սլաքների ստեղները, ինչպես նաև որոշ այլ ստեղներ, չեն աշխատում GDB-ում՝ Windows Console-ի սահմանափակումների պատճառով։ · Երբեմն, երբ oidf.pype-ը դուրս է գալիս, այն կարող է կանգ առնել մինչև 30 վայրկյան, նախքան IDF Monitor-ի վերսկսումը։ · Երբ ogdbpis-ը գործարկվում է, այն կարող է կարճ ժամանակով կանգ առնել, նախքան GDBStub-ի հետ կապ հաստատելը։
Էսպրեսիվ համակարգեր
34. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել Linux-ի և macOS-ի համար ստանդարտ գործիքաշարի կարգավորումը
Քայլ առ քայլ տեղադրում Սա մանրամասն ուղեցույց է տեղադրման գործընթացի համար։
Մշակման միջավայրի կարգավորում Սրանք ձեր ESP32-ի համար ESP-IDF-ը կարգավորելու քայլերն են։ · Քայլ 1. Նախապայմանների տեղադրում · Քայլ 2. ESP-IDF-ի ստացում · Քայլ 3. Գործիքների կարգավորում · Քայլ 4. Միջավայրի փոփոխականների կարգավորում · Քայլ 5. ESP-IDF-ի առաջին քայլերը
Քայլ 1. Նախապայմանների տեղադրում։ ESP-IDF-ը ESP32-ի հետ օգտագործելու համար անհրաժեշտ է տեղադրել ձեր օպերացիոն համակարգին համապատասխանող որոշ ծրագրային փաթեթներ։ Այս տեղադրման ուղեցույցը կօգնի ձեզ Linux և macOS համակարգերում ամեն ինչ տեղադրել։
Linux օգտատերերի համար ESP-IDF-ի միջոցով կոմպիլյացիա անելու համար ձեզ անհրաժեշտ է ստանալ հետևյալ փաթեթները: Գործարկվող հրամանը կախված է նրանից, թե Linux-ի որ բաշխումն եք օգտագործում.
· Ubuntu և Debian: sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 և 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7-ը դեռևս աջակցվում է, բայց CentOS 8-րդ տարբերակը խորհուրդ է տրվում ավելի լավ օգտագործողի փորձի համար։ · Arch: sudo pacman -S –անհրաժեշտ gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Նշում. · ESP-IDF-ի հետ օգտագործելու համար անհրաժեշտ է CMake 3.16 կամ ավելի նոր տարբերակը: Եթե ձեր օպերացիոն համակարգի տարբերակները չունեն համապատասխան տարբերակ, գործարկեք otools/idf_tools.py install cmakepto հրամանը՝ համապատասխան տարբերակը տեղադրելու համար: · Եթե վերը նշված ցանկում չեք տեսնում ձեր Linux բաշխումը, խնդրում ենք ստուգել դրա փաստաթղթերը՝ պարզելու համար, թե որ հրամանն օգտագործել փաթեթի տեղադրման համար:
MacOS օգտատերերի համար ESP-IDF-ը կօգտագործի Python-ի տարբերակը, որը լռելյայն տեղադրված է macOS-ի վրա։ · Տեղադրեք CMake & Ninja build-ը. Եթե ունեք HomeBrew, կարող եք գործարկել. brew install cmake ninja dfu-util: Եթե ունեք MacPorts, կարող եք գործարկել. sudo port install cmake ninja dfu-util: Հակառակ դեպքում, macOS տեղադրման ներբեռնումների համար դիմեք CMake և Ninja գլխավոր էջերին։
Էսպրեսիվ համակարգեր
35. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
· Ավելի արագ կառուցման համար խորհուրդ է տրվում տեղադրել նաև ccache-ը: Եթե ունեք HomeBrew, դա կարելի է անել brew install ccache-ի կամ sudo port install ccache-ի միջոցով MacPort-ների վրա:
Նշում. Եթե որևէ քայլի ընթացքում նման սխալ է հայտնվում՝ xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Այնուհետև շարունակելու համար անհրաժեշտ է տեղադրել XCode հրամանի տողի գործիքները: Կարող եք տեղադրել դրանք՝ գործարկելով xcode-select –install հրամանը:
Apple M1 օգտատերեր Եթե օգտագործում եք Apple M1 հարթակ և տեսնում եք այսպիսի սխալ. WARNING: xtensa-esp32-elf գործիքի esp-2021r2-patch3-8.4.0 տարբերակի դիրեկտորիան առկա է, բայց գործիքը չի գտնվել ERROR: xtensa-esp32-elf գործիքը տեղադրված տարբերակներ չունի: Խնդրում ենք գործարկել 'install.sh'-ը՝ այն տեղադրելու համար:
կամ՝ zsh: կատարվող ֆայլում CPU-ի տեսակը սխալ է՝ ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Այնուհետև դուք պետք է տեղադրեք Apple Rosetta 2-ը՝ գործարկելով /usr/sbin/softwareupdate –install-rosetta –agree-to-license հրամանը։
Python 3-ի տեղադրումը՝ macOS Catalina 10.15 թողարկման նշումների համաձայն, Python 2.7-ի օգտագործումը խորհուրդ չի տրվում, և Python 2.7-ը լռելյայնորեն չի ներառվի macOS-ի ապագա տարբերակներում: Ստուգեք, թե որ Python-ն ունեք ներկայումս՝ python –version
Եթե արդյունքը նման է Python 2.7.17-ին, ապա ձեր լռելյայն մեկնաբանը Python 2.7-ն է։ Եթե այո, ստուգեք նաև, թե արդյոք Python 3-ը արդեն տեղադրված չէ ձեր համակարգչում՝ python3 –version
Եթե վերը նշված հրամանը վերադարձնում է սխալ, դա նշանակում է, որ Python 3-ը տեղադրված չէ: Ստորև բերված է վերը նշվածը:view Python 3-ը տեղադրելու քայլերից մեկը։
· HomeBrew-ով տեղադրումը կարող է իրականացվել հետևյալ կերպ՝ brew install python3
· Եթե դուք ունեք MacPorts, կարող եք գործարկել՝ sudo port install python38
Քայլ 2. Ստանալ ESP-IDF-ը։ ESP32-ի համար հավելվածներ կառուցելու համար ձեզ անհրաժեշտ են Espressif-ի կողմից ESP-IDF պահոցում տրամադրված ծրագրային գրադարանները։ ESP-IDF-ը ստանալու համար անցեք ձեր տեղադրման գրացուցակ և կլոնավորեք պահոցը git clone-ով՝ հետևելով ստորև նշված հրահանգներին, որոնք հատուկ են ձեր օպերացիոն համակարգին։ Բացեք տերմինալը և գործարկեք հետևյալ հրամանները՝
Էսպրեսիվ համակարգեր
36. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –ռեկուրսիվ https://github.com/espressif/esp-idf.git
ESP-IDF-ը կներբեռնվի ~/esp/esp-idf: Խորհրդակցեք ESP-IDF տարբերակների մասին տեղեկությունների համար, թե որ ESP-IDF տարբերակը օգտագործել տվյալ իրավիճակում:
Քայլ 3. Գործիքների տեղադրումը Բացի ESP-IDF-ից, դուք պետք է նաև տեղադրեք ESP-IDF-ի կողմից օգտագործվող գործիքները, ինչպիսիք են կոմպիլյատորը, վրիպազերծիչը, Python փաթեթները և այլն, ESP32-ը աջակցող նախագծերի համար: cd ~/esp/esp-idf ./install.sh esp32
կամ Fish shell cd ~/esp/esp-idf ./install.fish esp32-ով
Վերոնշյալ հրամանները գործիքներ են տեղադրում միայն ESP32-ի համար։ Եթե մտադիր եք նախագծեր մշակել ավելի շատ չիպերի թիրախների համար, ապա պետք է թվարկեք դրանք բոլորը և գործարկեք, օրինակ՝ample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
կամ Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2-ով
Բոլոր աջակցվող թիրախների համար գործիքներ տեղադրելու համար խնդրում ենք գործարկել հետևյալ հրամանը՝ cd ~/esp/esp-idf ./install.sh all
կամ Fish shell cd ~/esp/esp-idf ./install.fish all-ով
Նշում. macOS օգտատերերի համար, եթե որևէ քայլի ընթացքում նման սխալ է ցուցադրվում.urlբացման սխալ [SSL: CERTIFICATE_VERIFY_FAILED] վկայագրի ստուգումը ձախողվեց. հնարավոր չէ ստանալ տեղական թողարկողի վկայագիրը (_ssl.c:xxx)
Վկայականներ տեղադրելու համար կարող եք գործարկել Install Certificates.command-ը ձեր համակարգչի Python թղթապանակում: Մանրամասների համար տե՛ս «Ներբեռնման սխալ ESP-IDF գործիքների տեղադրման ընթացքում» բաժինը:
Այլընտրանք File Ներբեռնումներ Գործիքների տեղադրիչը ներբեռնում է մի շարք files-ը կցված է GitHub Releases-ին։ Եթե GitHub-ին մուտք գործելը դանդաղ է, ապա հնարավոր է միջավայրի փոփոխական սահմանել՝ GitHub ակտիվների ներբեռնումների համար Espressifns ներբեռնման սերվերը նախընտրելու համար։
Նշում. Այս կարգավորումը վերահսկում է միայն GitHub թողարկումներից ներբեռնված առանձին գործիքները, այն չի փոխում URLs-ը օգտագործվում է ցանկացած Git պահոց մուտք գործելու համար։
Գործիքներ տեղադրելիս Espressif ներբեռնման սերվերը նախընտրելու համար install.sh-ը գործարկելիս օգտագործեք հրամանների հետևյալ հաջորդականությունը.
Էսպրեսիվ համակարգեր
37. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Գործիքների տեղադրման ուղու հարմարեցում Այս քայլում ներկայացված սկրիպտները տեղադրում են ESP-IDF-ի կողմից պահանջվող կոմպիլյացիոն գործիքները օգտատիրոջ տնային գրացուցակում՝ $HOME/.espressif Linux-ում: Եթե ցանկանում եք գործիքները տեղադրել այլ գրացուցակում, տեղադրման սկրիպտները գործարկելուց առաջ սահմանեք IDF_TOOLS_PATH միջավայրի փոփոխականը: Համոզվեք, որ ձեր օգտատիրոջ հաշիվն ունի բավարար թույլտվություններ այս ուղին կարդալու և գրելու համար: IDF_TOOLS_PATH-ը փոխելու դեպքում համոզվեք, որ այն նույն արժեքին է դրված ամեն անգամ, երբ կատարվում են տեղադրման սկրիպտը (install.bat, install.ps1 կամ install.sh) և արտահանման սկրիպտը (export.bat, export.ps1 կամ export.sh):
Քայլ 4. Կարգավորեք միջավայրի փոփոխականները։ Տեղադրված գործիքները դեռ չեն ավելացվել PATH միջավայրի փոփոխականին։ Որպեսզի գործիքները օգտագործելի լինեն հրամանի տողից, պետք է սահմանվեն որոշ միջավայրի փոփոխականներ։ ESP-IDF-ը տրամադրում է մեկ այլ սկրիպտ, որը դա անում է։ Տերմինալում, որտեղ դուք պատրաստվում եք օգտագործել ESP-IDF-ը, գործարկեք՝
. $HOME/esp/esp-idf/export.sh
կամ ձկների համար (աջակցվում է միայն ձկների 3.0.0 տարբերակից սկսած):
$HOME/esp/esp-idf/export.fish
Ուշադրություն դարձրեք առաջատար կետի և ուղու միջև եղած տարածությանը։ Եթե պատրաստվում եք հաճախ օգտագործել esp-idf-ը, կարող եք ստեղծել կեղծանուն export.sh հրամանը կատարելու համար։
1. Պատճենեք և տեղադրեք հետևյալ հրամանը ձեր shellns pro-ումfile (.profile, .bashrc, .zprofileև այլն)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Թարմացրեք կարգավորումը՝ վերագործարկելով տերմինալի սեսիան կամ գործարկելով source [path to pro] հրամանը։file],
նախկինի համարample, source ~/.bashrc: Այժմ դուք կարող եք գործարկել get_idf-ը՝ esp-idf միջավայրը ցանկացած տերմինալի սեսիայում կարգավորելու կամ թարմացնելու համար: Տեխնիկապես, դուք կարող եք export.sh ավելացնել ձեր shellns pro-ին:file ուղղակիորեն, սակայն դա խորհուրդ չի տրվում: Դա անելով՝ IDF վիրտուալ միջավայրը ակտիվանում է յուրաքանչյուր տերմինալի սեսիայում (ներառյալ այն սեսիաները, որտեղ IDF-ը անհրաժեշտ չէ), խաթարելով վիրտուալ միջավայրի նպատակը և, հավանաբար, ազդելով այլ ծրագրային ապահովման վրա:
Քայլ 5. ESP-IDF-ի վրա առաջին քայլերը։ Քանի որ բոլոր պահանջները բավարարված են, հաջորդ թեման ձեզ կուղեկցի, թե ինչպես սկսել ձեր առաջին նախագիծը։ Այս ուղեցույցը կօգնի ձեզ ESP-IDF-ն օգտագործելու առաջին քայլերում։ Հետևեք այս ուղեցույցին՝ ESP32-ի վրա նոր նախագիծ սկսելու և սարքի ելքային տվյալները կառուցելու, թարմացնելու և վերահսկելու համար։
Նշում. Եթե դեռ չեք տեղադրել ESP-IDF-ը, խնդրում ենք անցնել տեղադրման բաժին և հետևել հրահանգներին՝ այս ուղեցույցն օգտագործելու համար անհրաժեշտ բոլոր ծրագրակազմը ստանալու համար։
Սկսել նախագիծ։ Այժմ դուք պատրաստ եք պատրաստել ձեր ESP32 դիմումը։ Կարող եք սկսել getstarted/hello_world նախագծից։amples տեղեկատու ESP-IDF-ում:
Կարևոր է. ESP-IDF կառուցման համակարգը չի աջակցում բացատներ ո՛չ ESP-IDF-ին, ո՛չ էլ նախագծերին տանող ուղիներում։
Պատճենեք get-started/hello_world նախագիծը ~/esp գրացուցակում։
Էսպրեսիվ համակարգեր
38. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world.
Նշում. Կա մի շարք նախկիններample նախագծերը նախկինումamples գրացուցակ ESP-IDF-ում: Դուք կարող եք պատճենել ցանկացած նախագիծ այնպես, ինչպես ներկայացված է վերևում և գործարկել այն: Հնարավոր է նաև կառուցել նախկինampֆայլերը տեղում են՝ առանց դրանք նախապես պատճենելու։
Միացրեք ձեր սարքը։ Հիմա միացրեք ձեր ESP32 քարտը համակարգչին և ստուգեք, թե որ հաջորդական միացքի տակ է այն երևում։ Հաջորդական միացքները ունեն հետևյալ անվանակոչման ձևերը՝
· Linux՝ սկսած /dev/tty-ից · macOS՝ սկսած /dev/cu-ից: Եթե համոզված չեք, թե ինչպես ստուգել հաջորդական միացքի անունը, խնդրում ենք դիմել «Սերիական միացում հաստատել ESP32-ի միջոցով» բաժնին՝ լրացուցիչ տեղեկությունների համար:
Նշում. Պահպանեք նավահանգստի անունը, քանի որ այն ձեզ անհրաժեշտ կլինի հաջորդ քայլերում:
Կարգավորեք ձեր նախագիծը։ Անցեք ձեր hello_world գրացուցակ, սահմանեք ESP32-ը որպես թիրախ և գործարկեք նախագծի կարգավորման օգտակար ծրագիրը՝ menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Նոր նախագիծ բացելուց հետո նախ պետք է սահմանեք նպատակակետը՝ օգտագործելով idf.py set-target esp32 հրամանը: Նկատի ունեցեք, որ նախագծում առկա կառուցվածքներն ու կոնֆիգուրացիաները, եթե այդպիսիք կան, կմաքրվեն և կսկիծանվեն այս գործընթացում: Նպատակակետը կարող է պահպանվել միջավայրի փոփոխականում՝ այս քայլը բաց թողնելու համար: Լրացուցիչ տեղեկությունների համար տե՛ս «Ընտրեք թիրախային չիպը. set-target» բաժինը: Եթե նախորդ քայլերը ճիշտ են կատարվել, կհայտնվի հետևյալ ընտրացանկը.
Նկ. 17: Նախագծի կարգավորում – Հիմնական պատուհան Դուք օգտագործում եք այս ցանկը՝ նախագծին հատուկ փոփոխականներ կարգավորելու համար, օրինակ՝ Wi-Fi ցանցի անունն ու գաղտնաբառը, պրոցեսորի արագությունը և այլն: Նախագիծը menuconfig-ով կարգավորելը կարող է բաց թողնվել hello_worldp-ի համար, քանի որ սա օրինակ է:ampԼե վազում է հետ
Էսպրեսիվ համակարգեր
39. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
լռելյայն կոնֆիգուրացիա:
Ուշադրություն. Եթե օգտագործում եք ESP32-DevKitC քարտը ESP32-SOLO-1 մոդուլի հետ կամ ESP32-DevKitM-1 քարտը ESP32-MIN1-1(1U) մոդուլի հետ, խնդրում ենք միացնել միամիջուկային ռեժիմը (CONFIG_FREERTOS_UNICORE) menuconfig-ում՝ ex-ը թարթելուց առաջ։amples.
Նշում. Ձեր տերմինալում մենյուի գույները կարող են տարբեր լինել: Դուք կարող եք փոխել տեսքը –style տարբերակի միջոցով: Խնդրում ենք գործարկել idf.py menuconfig –help հրամանը՝ լրացուցիչ տեղեկությունների համար:
Եթե դուք օգտագործում եք աջակցվող մշակման տախտակներից մեկը, կարող եք արագացնել ձեր մշակումը՝ օգտագործելով տախտակի աջակցության փաթեթը: Լրացուցիչ տեղեկությունների համար տե՛ս «Լրացուցիչ խորհուրդներ» բաժինը:
Կառուցեք նախագիծը։ Կառուցեք նախագիծը՝ գործարկելով հետևյալը.
idf.py կառուցել
Այս հրամանը կկազմի հավելվածը և ESP-IDF-ի բոլոր բաղադրիչները, այնուհետև այն կստեղծի bootloader-ը, բաժանման աղյուսակը և հավելվածի երկուականները:
$ idf.py build cmake-ի գործարկում /path/to/hello_world/build գրացուցակում Կատարվում է “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Զգուշացում չսկզբնորոշված արժեքների մասին։ — Գտնվել է Git: /usr/bin/git (գտնվել է “2.17.0” տարբերակը) — Կառուցվում է դատարկ aws_iot բաղադրիչ՝ կարգավորման պատճառով — Բաղադրիչների անուններ՝ … — Բաղադրիչների ուղիներ՝ …
… (կառուցման համակարգի ելքի ավելի շատ տողեր)
[527/527] hello_world.bin esptool.py v2.3.1 ֆայլի ստեղծում
Նախագծի կառուցումն ավարտված է։ Ֆլեշը տեղադրելու համար գործարկեք այս հրամանը՝ ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin կամ գործարկեք 'idf.py -p PORT flash' հրամանը։
Եթե սխալներ չլինեն, կառուցումը կավարտվի` ստեղծելով որոնվածը երկուական .bin files.
Ֆլեշացրեք սարքի վրա։ Ֆլեշացրեք ձեր նոր կառուցած երկուական ֆայլերը (bootloader.bin, partition-table.bin և hello_world.bin) ձեր ESP32 տախտակի վրա՝ կատարելով հետևյալը.
idf.py -p PORT [-b BAUD] ֆլեշ
Փոխարինեք PORT-ը ձեր ESP32 քարտի սերիական պորտի անունով։ Կարող եք նաև փոխել flasher baud rate-ը՝ BAUD-ը փոխարինելով ձեզ անհրաժեշտ baud rate-ով։ Լռելյայն baud rate-ը 460800 է։ idf.py արգումենտների վերաբերյալ լրացուցիչ տեղեկությունների համար տե՛ս idf.py։
Նշում. «flash» ընտրանքը ավտոմատ կերպով կառուցում և թարմացնում է նախագիծը, ուստի idf.py build-ը գործարկելը անհրաժեշտ չէ:
Էսպրեսիվ համակարգեր
40. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Խնդիրներ հանդիպե՞լ եք ֆլեշավորման ժամանակ: Եթե գործարկում եք տրված հրամանը և տեսնում եք սխալներ, ինչպիսիք են՝ «Չհաջողվեց միանալ» (Failed to connectp), դրա համար կարող են լինել մի քանի պատճառներ: Պատճառներից մեկը կարող է լինել esptool.py ծրագրի հետ կապված խնդիրները, որը կոմունալ ծրագիր է, որը կանչվում է կառուցման համակարգի կողմից չիպը վերագործարկելու, ROM բեռնիչի հետ փոխազդելու և ներկառուցված ծրագիրը ֆլեշելու համար: Մեկ պարզ լուծում, որը կարող եք փորձել, ձեռքով վերագործարկումն է, որը նկարագրված է ստորև, և եթե այն չի օգնում, կարող եք ավելի մանրամասն տեղեկություններ գտնել հնարավոր խնդիրների մասին «Խնդիրների լուծում» բաժնում:
esptool.py-ը ավտոմատ կերպով վերագործարկում է ESP32-ը՝ հաստատելով USB-ից սերիական փոխարկիչի չիպի DTR և RTS կառավարման գծերը, այսինքն՝ FTDI կամ CP210x (ավելի շատ տեղեկությունների համար տե՛ս «Սերիական կապի հաստատում ESP32-ի հետ» բաժինը): DTR և RTS կառավարման գծերը, իրենց հերթին, միացված են ESP32-ի GPIO0 և CHIP_PU (EN) կոնտակտներին, այդպիսով փոփոխություններ կատարելով ծավալում:tagDTR-ի և RTS-ի մակարդակները կբեռնեն ESP32-ը Firmware Download ռեժիմով։ampՕրինակ, ստուգեք ESP32 DevKitC մշակման տախտակի սխեման։
Ընդհանուր առմամբ, դուք չպետք է խնդիրներ ունենաք esp-idf-ի պաշտոնական մշակման տախտակների հետ։ Այնուամենայնիվ, esptool.py-ն չի կարող ավտոմատ կերպով վերագործարկել ձեր սարքավորումները հետևյալ դեպքերում՝
· Ձեր սարքավորումը չունի DTR և RTS գծեր, որոնք միացված են GPIO0-ին և CHIP_PU-ին · DTR և RTS գծերը տարբեր կերպ են կարգավորված · Նման սերիական կառավարման գծեր ընդհանրապես չկան
Կախված ձեր ունեցած սարքավորումների տեսակից, հնարավոր է նաև ձեռքով ձեր ESP32 տախտակը դնել Firmware Download ռեժիմի (վերագործարկման):
· Espressif-ի կողմից արտադրված մշակման տախտակների համար այս տեղեկատվությունը կարելի է գտնել համապատասխան մեկնարկի ուղեցույցներում կամ օգտագործողի ուղեցույցներում: Օրինակ՝ampՕրինակ՝ ESP-IDF մշակման քարտը ձեռքով վերագործարկելու համար սեղմեք Boot կոճակը (GPIO0) և EN կոճակը (CHIP_PU):
· Այլ տեսակի սարքավորումների համար փորձեք GPIO0-ը ներքև քաշել։
Սովորական գործողություն։ Երբ թարթում եք, կտեսնեք հետևյալին նման ելքային գրանցամատյանը։
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Սերիական պորտ /dev/ttyUSB0 Միանում է…….._ Չիպը ESP32D0WDQ6 է (վերանայված 0) Հատկանիշներ՝ WiFi, BT, երկմիջուկ, կոդավորման սխեմա Ոչ մեկը Բյուրեղը 40MHz է MAC: 24:0a:c4:05:b9:14 Բեռնվում է ստաբը… Ստաբը գործարկվում է… Ստաբը գործարկվում է… Բաուդի արագությունը փոխվում է 460800-ի Փոփոխված է: Ֆլեշ կրիչի չափը կարգավորվում է… Սեղմված է 3072 բայթը մինչև 103… Գրում 0x00008000-ով… (100%) Գրվել է 3072 բայթ (103 սեղմված) 0x00008000-ով 0.0 վայրկյանում (արդյունավետ 5962.8 կբիթ/վրկ)… Տվյալների հեշը ստուգվել է։ Սեղմված է 26096 բայթը մինչև 15408… Գրում 0x00001000-ով… (100%) Գրվել է 26096 բայթ (15408 սեղմված) 0x00001000-ով 0.4 վայրկյանում (արդյունավետ 546.7 կբիթ/վրկ)… Տվյալների հեշը ստուգվել է։ Սեղմված 147104 բայթ՝ 77364… Գրում է 0x00010000-ում… (20%) Գրում է 0x00014000-ում… (40%) Գրում է 0x00018000-ում… (60%) Գրում է 0x0001c000-ում… (80%)
(շարունակությունը հաջորդ էջում)
Էսպրեսիվ համակարգեր
41. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
(շարունակությունը նախորդ էջից) 0x00020000-ով գրառում… (100%) 147104 բայթ (77364 սեղմված) գրվել է 0x00010000-ով 1.9 վայրկյանում (արդյունավետ 615.5 կբիթ/վրկ)… Տվյալների հեշը ստուգված է։
Հեռանում է… Կոշտ վերակայում RTS փինով… Կատարված է
Եթե ֆլեշ գործընթացի ավարտին խնդիրներ չառաջանան, տախտակը կվերագործարկվի և կմեկնարկի theohello_worldpapplication-ը։ Եթե ցանկանում եք օգտագործել Eclipse կամ VS Code IDE-ն idf.py-ն գործարկելու փոխարեն, ստուգեք Eclipse Plugin, VSCode Extension-ը։
Վերահսկել արդյունքը։ Ստուգելու համար, թե արդյոք ohello_worldpis-ը իսկապես աշխատում է, մուտքագրեք idf.py -p PORT monitor (Մի մոռացեք PORT-ը փոխարինել ձեր սերիական պորտի անունով)։ Այս հրամանը գործարկում է IDF Monitor ծրագիրը։
$ idf.py -p monitor idf_monitor-ի գործարկում […]/esp/hello_world/build գրացուցակում «python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf»… հրամանի կատարում — idf_monitor միացված է 115200 —– Ելք՝ Ctrl+] | Մենյու՝ Ctrl+T | Օգնություն՝ Ctrl+T, որին հաջորդում է Ctrl+H –ets Հունիս 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) և այլն՝ 2016 թվականի հունիսի 8, ժամը 00:22:57 …
Գործարկման և ախտորոշման գրանցամատյանները վերև գլորելուց հետո դուք պետք է տեսնեք ծրագրի կողմից տպված oHello world! գրառումը։
… Բարև աշխարհ։ Վերագործարկում 10 վայրկյանից… Սա esp32 չիպ է՝ 2 պրոցեսորային միջուկով, WiFi/BT/BLE, սիլիկոնային տարբերակ 1, 2 ՄԲ արտաքին ֆլեշ։ Ազատ հիշողության նվազագույն չափը՝ 298968 բայթ։ Վերագործարկում 9 վայրկյանից… Վերագործարկում 8 վայրկյանից… Վերագործարկում 7 վայրկյանից…
IDF մոնիտորից դուրս գալու համար օգտագործեք Ctrl+ ստեղները։ Եթե IDF մոնիտորը վերբեռնումից կարճ ժամանակ անց ձախողվի, կամ եթե վերևում նշված հաղորդագրությունների փոխարեն տեսնեք ստորև նշվածին նման պատահական աղբ, ապա ձեր տախտակը, հավանաբար, օգտագործում է 26 ՄՀց բյուրեղ։ Մշակման տախտակների մեծ մասը օգտագործում է 40 ՄՀց, ուստի ESP-IDF-ն այս հաճախականությունն օգտագործում է որպես լռելյայն արժեք։
Եթե նման խնդիր ունեք, կատարեք հետևյալը.
1. Դուրս եկեք մոնիտորից։ 2. Վերադարձեք կարգավորումների ընտրացանկին։ 3. Անցեք բաղադրիչների կարգավորում > սարքավորումների կարգավորումներ > գլխավոր XTAL կարգավորում > գլխավոր XTAL
հաճախականությունը, այնուհետև փոխեք CONFIG_XTAL_FREQ_SEL-ը 26 ՄՀց-ի։ 4. Դրանից հետո կրկին կառուցեք և տեղադրեք ծրագիրը։
Էսպրեսիվ համակարգեր
42. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
ESP-IDF-ի ներկայիս տարբերակում ESP32-ի կողմից աջակցվող հիմնական XTAL հաճախականությունները հետևյալն են՝
· 26 ՄՀց · 40 ՄՀց
Նշում. Դուք կարող եք համատեղել կառուցումը, ֆլեշավորումը և մոնիթորինգը մեկ քայլով՝ գործարկելով հետևյալ հրամանը՝ idf.py -p PORT flash monitor
Տես նաև՝ · IDF Monitor՝ հարմար կարճուղիների և IDF monitor-ի օգտագործման վերաբերյալ լրացուցիչ մանրամասների համար: · idf.py՝ idf.py հրամանների և տարբերակների ամբողջական տեղեկանքի համար:
Սա այն ամենն է, ինչ ձեզ անհրաժեշտ է ESP32-ով սկսելու համար։ Հիմա դուք պատրաստ եք փորձել այլ տարբերակներ։amples, կամ անմիջապես անցեք ձեր սեփական հավելվածների մշակմանը։
Կարևոր է. Նախկիններից մի քանիսըampՖայլերը չեն աջակցում ESP32-ին, քանի որ անհրաժեշտ սարքավորումները ներառված չեն ESP32-ում, ուստի դրանք չեն կարող աջակցվել: Եթե կառուցում եք նախկինampլե, խնդրում եմ ստուգեք README-ը file Աջակցվող թիրախների աղյուսակի համար։ Եթե սա առկա է, ներառյալ ESP32 թիրախը, կամ աղյուսակը ընդհանրապես գոյություն չունի, օրինակ՝ampկաշխատի ESP32-ի վրա։
Լրացուցիչ խորհուրդներ
Թույլտվությունների խնդիրներ /dev/ttyUSB0 Linux-ի որոշ բաշխումներում ESP32-ը թարմացնելիս կարող եք ստանալ «Չհաջողվեց բացել /dev/ttyUSB0 պորտը» սխալի հաղորդագրությունը: Սա կարելի է լուծել՝ ներկայիս օգտատիրոջը dialout խմբում ավելացնելով:
Python-ի համատեղելիություն։ ESP-IDF-ն աջակցում է Python 3.7 կամ ավելի նոր տարբերակին։ Խորհուրդ է տրվում թարմացնել ձեր օպերացիոն համակարգը այս պահանջը բավարարող վերջին տարբերակով։ Այլ տարբերակներից են Python-ի տեղադրումը աղբյուրներից կամ Python-ի տարբերակների կառավարման համակարգի, ինչպիսին է pyenv-ն, օգտագործումը։
Սկսեք տախտակի աջակցության փաթեթից։ Որոշ մշակման տախտակների վրա նախատիպերի ստեղծումը արագացնելու համար կարող եք օգտագործել տախտակի աջակցության փաթեթներ (BSP), որոնք որոշակի տախտակի նախնականացումը դարձնում են այնքան հեշտ, որքան մի քանի ֆունկցիաների կանչեր։ BSP-ն սովորաբար աջակցում է մշակման տախտակի վրա տրամադրված բոլոր ապարատային բաղադրիչները։ Բացի pinout սահմանումից և նախնականացման գործառույթներից, BSP-ն մատակարարվում է արտաքին բաղադրիչների, ինչպիսիք են սենսորները, էկրանները, աուդիո կոդեկները և այլն, դրայվերներով։ BSP-ները տարածվում են IDF Component Manager-ի միջոցով, ուստի դրանք կարելի է գտնել IDF Component Registry-ում։ Ահա օրինակ։ampԻնչպես ձեր նախագծին ավելացնել ESP-WROVER-KIT BSP-ն՝ idf.py add-dependency esp_wrover_kit
Ավելի շատ նախկինampBSP-ի օգտագործման մասին ավելի քիչ տեղեկություններ կարելի է գտնել BSP-ում։amples թղթապանակ:
Խորհուրդ. ESP-IDF-ի թարմացում։ Խորհուրդ է տրվում ժամանակ առ ժամանակ թարմացնել ESP-IDF-ը, քանի որ նոր տարբերակները շտկում են սխալները և/կամ ապահովում նոր հնարավորություններ։ Խնդրում ենք նկատի ունենալ, որ ESP-IDF-ի յուրաքանչյուր հիմնական և երկրորդական թողարկման տարբերակ ունի համապատասխան աջակցության ժամանակահատված, և երբ մեկ թողարկման ճյուղը մոտենում է կյանքի ավարտին (EOL), բոլոր օգտատերերին խրախուսվում է թարմացնել իրենց նախագծերը ESP-IDF-ի ավելի նոր թողարկումներով։ Աջակցության ժամանակահատվածների մասին ավելին իմանալու համար տե՛ս ESP-IDF տարբերակները։
Էսպրեսիվ համակարգեր
43. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 1. Սկսել
Թարմացումը կատարելու ամենապարզ ձևը գոյություն ունեցող esp-idf թղթապանակը ջնջելն ու այն կրկին կլոնավորելն է, կարծես կատարում եք 2-րդ քայլում նկարագրված նախնական տեղադրումը: Ստացեք ESP-IDF: Մեկ այլ լուծում է թարմացնել միայն այն, ինչ փոխվել է: Թարմացման ընթացակարգը կախված է ձեր օգտագործած ESP-IDF-ի տարբերակից: ESP-IDF-ը թարմացնելուց հետո կրկին գործարկեք Install սկրիպտը, եթե ESP-IDF-ի նոր տարբերակը պահանջում է գործիքների տարբեր տարբերակներ: Տեսեք 3-րդ քայլի հրահանգները: Կարգավորեք գործիքները: Երբ նոր գործիքները տեղադրվեն, թարմացրեք միջավայրը՝ օգտագործելով Export սկրիպտը: Տեսեք 4-րդ քայլի հրահանգները: Կարգավորեք միջավայրի փոփոխականները:
Առնչվող փաստաթղթեր · Սերիական միացման հաստատում ESP32-ի միջոցով · Eclipse Plugin · VSCode Extension · IDF Monitor
1.4 Կառուցեք ձեր առաջին նախագիծը
Եթե արդեն տեղադրված է ESP-IDF-ը և չեք օգտագործում IDE, կարող եք կառուցել ձեր առաջին նախագիծը հրամանի տողից՝ հետևելով «Սկսել նախագիծ Windows-ում» կամ «Սկսել նախագիծ Linux-ում և macOS-ում» հրամաններին։
1.5 ESP-IDF-ի հեռացում
Եթե ցանկանում եք հեռացնել ESP-IDF-ը, խնդրում ենք հետևել «Uninstall ESP-IDF»-ը։
Էսպրեսիվ համակարգեր
44. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 2
API հղում
2.1 API կոնվենցիաներ
Այս փաստաթուղթը նկարագրում է ESP-IDF կիրառական ծրագրավորման ինտերֆեյսների (API) համար ընդհանուր կոնվենցիաներն ու ենթադրությունները: ESP-IDF-ը տրամադրում է ծրագրավորման մի քանի տեսակի ինտերֆեյսներ.
· C ֆունկցիաներ, կառուցվածքներ, թվարկումներ, տիպերի սահմանումներ և նախնական մշակիչի մակրոներ, որոնք հայտարարված են հանրային վերնագրում fileESPIDF բաղադրիչների մի քանիսը։ Ծրագրավորման ուղեցույցի API հղումներ բաժնի տարբեր էջերում կան այս ֆունկցիաների, կառուցվածքների և տեսակների նկարագրությունները։
· Կառուցեք համակարգի ֆունկցիաներ, նախապես սահմանված փոփոխականներ և ընտրանքներ: Սրանք փաստաթղթավորված են համակարգի կառուցման ուղեցույցում: · Kconfig ընտրանքները կարող են օգտագործվել կոդում և կառուցման համակարգում (CMakeLists.txt): fileներ. · Հոսթի գործիքները և դրանց հրամանի տողի պարամետրերը նույնպես ESP-IDF ինտերֆեյսի մաս են կազմում: ESP-IDF-ը բաղկացած է ESP-IDF-ի, ինչպես նաև երրորդ կողմի գրադարանների համար հատուկ գրված բաղադրիչներից: Որոշ դեպքերում, ESP-IDF-ին հատուկ փաթաթան ավելացվում է երրորդ կողմի գրադարանին, ապահովելով ինտերֆեյս, որը կամ ավելի պարզ է, կամ ավելի լավ է ինտեգրված ESP-IDF-ի մնացած հարմարությունների հետ: Այլ դեպքերում, երրորդ կողմի գրադարանի սկզբնական API-ն ներկայացվում է հավելվածների մշակողներին: Հետևյալ բաժինները բացատրում են ESP-IDF API-ների որոշ ասպեկտներ և դրանց օգտագործումը:
2.1.1 Սխալների մշակում
ESP-IDF API-ների մեծ մասը վերադարձնում է esp_err_t տիպի սխալի կոդեր: Սխալների մշակման մոտեցումների մասին լրացուցիչ տեղեկությունների համար տե՛ս «Սխալների մշակում» բաժինը: Սխալի կոդի հղումը պարունակում է ESP-IDF բաղադրիչների կողմից վերադարձված սխալի կոդերի ցանկը:
2.1.2 Կազմաձևման կառուցվածքներ
Կարևոր է. Կարգավորման կառուցվածքների ճիշտ նախնականացումը կարևոր մասն է ESP-IDF-ի ապագա տարբերակների հետ ծրագիրը համատեղելի դարձնելու համար։
ESP-IDF-ում նախնականացման կամ կոնֆիգուրացիայի ֆունկցիաների մեծ մասը որպես արգումենտ ընդունում է կոնֆիգուրացիայի կառուցվածքի ցուցիչ։ Օրինակ՝ampլե:
45
Գլուխ 2. API հղումներ
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = “իմ_ժամացույցը”
}; esp_timer_handle_t իմ_ժամացույցը; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
Սկզբնականացման ֆունկցիաները երբեք չեն պահպանում կոնֆիգուրացիայի կառուցվածքի ցուցիչը, ուստի կառուցվածքը կույտի վրա անվտանգ է տեղաբաշխել։
Ծրագիրը պետք է նախնականացնի կառուցվածքի բոլոր դաշտերը: Հետևյալը սխալ է.
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Սխալ է! .arg և .name դաշտերը չեն նախնականացվել */ esp_timer_create(&my_timer_args, &my_timer);
ESP-IDF-ի մեծ մասըampԿառուցվածքի սկզբնականացման համար օգտագործվում են C99 նշանակված սկզբնականացուցիչներ, քանի որ դրանք ապահովում են դաշտերի ենթաբազմություն սահմանելու և մնացած դաշտերը զրոյական սկզբնականացնելու հակիրճ միջոց։
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Ճիշտ է, .arg և .name դաշտերը զրոյական նախնական արժեք ունեն */
};
C++ լեզուն չի աջակցում նշանակված նախնականացուցիչների սինտաքսին մինչև C++20-ը, սակայն GCC կոմպիլյատորը մասամբ աջակցում է այն որպես ընդլայնում: C++ կոդում ESP-IDF API-ներ օգտագործելիս կարող եք օգտագործել հետևյալ ձևանմուշը.
esp_timer_create_args_t my_timer_args = {}; /* Բոլոր դաշտերը զրոյական նախնական արժեքով են */ my_timer_args.callback = &my_timer_callback;
Լռելյայն նախնականացուցիչներ
Որոշ կոնֆիգուրացիոն կառուցվածքների համար ESP-IDF-ը տրամադրում է մակրոներ դաշտերի լռելյայն արժեքները սահմանելու համար.
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG-ը ընդարձակվում է դեպի նշանակված նախնականացուցիչ։
Այժմ բոլոր դաշտերը սահմանված են լռելյայն արժեքներով։ Ցանկացած դաշտ դեռ կարող է փոփոխվել՝ */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Խորհուրդ է տրվում օգտագործել լռելյայն սկզբնականացնող մակրոները, երբ դրանք տրամադրվում են որոշակի կոնֆիգուրացիայի կառուցվածքի համար։
2.1.3 Մասնավոր API-ներ
Որոշակի վերնագիր fileESP-IDF-ում s-երը պարունակում են API-ներ, որոնք նախատեսված են միայն ESP-IDF-ի սկզբնական կոդում օգտագործելու համար, և ոչ թե ծրագրերի կողմից։ Նման վերնագիրը files-երը հաճախ իրենց անվանման կամ ուղու մեջ պարունակում են private կամ esp_private: Որոշակի բաղադրիչներ, ինչպիսիք են hal-ը, պարունակում են միայն private API-ներ: Private API-ները կարող են հեռացվել կամ փոփոխվել անհամատեղելի ձևով՝ փոքր կամ թարմացված թողարկումների միջև:
2.1.4 Բաղադրիչներ նախկինի մեջampնախագծերը
ESP-IDF exampֆայլերը պարունակում են ESP-IDF API-ների օգտագործումը ցուցադրող բազմազան նախագծեր: Նախկինում կոդի կրկնօրինակումը նվազեցնելու համարampԱյսպիսով, մի քանի տարածված օգնականներ սահմանված են բաղադրիչների ներսում, որոնք օգտագործվում են բազմաթիվ ex-ների կողմից։amples.
Էսպրեսիվ համակարգեր
46. Ուղարկել փաստաթղթի վերաբերյալ կարծիք
Թողարկում v5.0.9
Գլուխ 2. API հղումներ
Սա ներառում է տեղակայված բաղադրիչները
Փաստաթղթեր / ռեսուրսներ
![]() |
Espressif Systems ESP32 Dev Kitc մշակման տախտակ [pdf] Օգտագործողի ուղեցույց ESP32 Dev Kitc մշակման խորհուրդ, ESP32, Dev Kitc մշակման խորհուրդ, Kitc մշակման խորհուրդ, զարգացման խորհուրդ, խորհուրդ |
