Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan Espressif ESP32 - DevKit C dan - - ESP WROVER KIT
penting
Integrasi referensi ini di-host di RTOS repositori Bebas Amazon yang tidak digunakan lagi. Kami menyarankan Anda mulai di sini ketika Anda membuat proyek baru. Jika Anda sudah memiliki RTOS proyek Gratis yang ada berdasarkan repositori Amazon-Free RTOS yang sekarang tidak digunakan lagi, lihat. Panduan Migrasi Repositori RTOS Github Bebas Amazon
catatan
Untuk mengeksplorasi cara mengintegrasikan pustaka dan demo RTOS modular gratis dalam IDF proyek Espressif Anda sendiri, lihat integrasi referensi unggulan
Ikuti tutorial ini untuk memulai dengan Espressif ESP32 - DevKit C dilengkapi dengan - WROOM -32, ESP32 - SOLO -1, atau ESP32 - WROVER modul dan ESP - - -VB. ESP WROVER KIT Untuk membeli satu dari mitra kami di AWS Katalog Perangkat Mitra, gunakan tautan berikut:
Versi papan pengembangan ini didukung secara GratisRTOS.
Untuk informasi lebih lanjut tentang versi terbaru papan ini, lihat ESP32- DevKit C V4 atau - ESPWROVER- KIT v4.1
catatan
Saat ini, RTOS port Gratis untuk ESP32 - WROVER - KIT dan ESP DevKit C tidak mendukung fitur Symmetric multiprocessing (SMP).
Gambaran Umum
Tutorial ini memandu Anda melalui langkah-langkah berikut:
-
Menghubungkan papan Anda ke mesin host.
-
Menginstal perangkat lunak pada mesin host untuk mengembangkan dan men-debug aplikasi tertanam untuk papan mikrokontroler Anda.
-
Menyusun silang aplikasi RTOS demo Gratis ke gambar biner.
-
Memuat gambar biner aplikasi ke papan Anda, dan kemudian menjalankan aplikasi.
-
Berinteraksi dengan aplikasi yang berjalan di papan Anda di seluruh koneksi serial, untuk tujuan pemantauan dan debugging.
Prasyarat
Sebelum Anda memulai dengan Gratis RTOS di papan Espressif Anda, Anda harus mengatur AWS akun dan izin.
Mendaftar untuk Akun AWS
Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.
Untuk mendaftar untuk Akun AWS
Buka https://portal.aws.amazon.com/billing/pendaftaran.
Ikuti petunjuk online.
Bagian dari prosedur pendaftaran melibatkan tindakan menerima panggilan telepon dan memasukkan kode verifikasi di keypad telepon.
Ketika Anda mendaftar untuk Akun AWS, sebuah Pengguna root akun AWSdiciptakan. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan tugas yang memerlukan akses pengguna root.
AWS mengirimi Anda email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk https://aws.amazon.com.rproxy.goskope.comke/
Buat pengguna dengan akses administratif
Setelah Anda mendaftar untuk Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.
Amankan Anda Pengguna root akun AWS
-
Masuk ke AWS Management Console
sebagai pemilik akun dengan memilih pengguna Root dan memasukkan Anda Akun AWS alamat email. Di laman berikutnya, masukkan kata sandi. Untuk bantuan masuk menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.
-
Aktifkan otentikasi multi-faktor (MFA) untuk pengguna root Anda.
Untuk petunjuk, lihat Mengaktifkan MFA perangkat virtual untuk Akun AWS root user (konsol) di Panduan IAM Pengguna.
Buat pengguna dengan akses administratif
-
Aktifkan Pusat IAM Identitas.
Untuk petunjuk, lihat Mengaktifkan AWS IAM Identity Centerdi AWS IAM Identity Center Panduan Pengguna.
-
Di Pusat IAM Identitas, berikan akses administratif ke pengguna.
Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAMdi AWS IAM Identity Center Panduan Pengguna.
Masuk sebagai pengguna dengan akses administratif
-
Untuk masuk dengan pengguna Pusat IAM Identitas, gunakan login URL yang dikirim ke alamat email saat Anda membuat pengguna Pusat IAM Identitas.
Untuk bantuan masuk menggunakan pengguna Pusat IAM Identitas, lihat Masuk ke AWS akses portal di AWS Sign-In Panduan Pengguna.
Tetapkan akses ke pengguna tambahan
-
Di Pusat IAM Identitas, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.
Untuk petunjuk, lihat Membuat set izin di AWS IAM Identity Center Panduan Pengguna.
-
Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.
Untuk petunjuk, lihat Menambahkan grup di AWS IAM Identity Center Panduan Pengguna.
Untuk memberikan akses, menambahkan izin ke pengguna, grup, atau peran Anda:
-
Pengguna dan grup di AWS IAM Identity Center:
Buat rangkaian izin. Ikuti petunjuk di Buat set izin di AWS IAM Identity Center Panduan Pengguna.
-
Pengguna yang dikelola IAM melalui penyedia identitas:
Buat peran untuk federasi identitas. Ikuti petunjuk dalam Membuat peran untuk penyedia identitas pihak ketiga (federasi) di Panduan IAM Pengguna.
-
IAMpengguna:
-
Buat peran yang dapat diambil pengguna Anda. Ikuti petunjuk dalam Membuat peran bagi IAM pengguna di Panduan IAM Pengguna.
-
(Tidak disarankan) Pasang kebijakan langsung ke pengguna atau tambahkan pengguna ke grup pengguna. Ikuti petunjuk di Menambahkan izin ke pengguna (konsol) di Panduan IAM Pengguna.
-
Memulai
catatan
Perintah Linux dalam tutorial ini mengharuskan Anda menggunakan shell Bash.
-
Siapkan perangkat keras Espressif.
-
Untuk informasi tentang menyiapkan perangkat keras papan pengembangan ESP32 - DevKit C, lihat Panduan Memulai ESP32 - DevKit C V4
. -
Untuk informasi tentang menyiapkan perangkat keras papan KIT pengembangan ESP WROVER - -, lihat Panduan Memulai ESP WROVER - - KIT V4.1
.
penting
Ketika Anda mencapai bagian Memulai dari panduan Espressif, berhenti, dan kemudian kembali ke instruksi di halaman ini.
-
-
Unduh Amazon Gratis RTOS dari GitHub
. (Untuk instruksi, lihat READMEfile.md .) -
Siapkan lingkungan pengembangan Anda.
Untuk berkomunikasi dengan papan Anda, Anda harus menginstal rantai alat. Espressif menyediakan ESP - IDF untuk mengembangkan perangkat lunak untuk papan mereka. Karena ESP - IDF memiliki versi RTOS Kernel Gratis sendiri yang terintegrasi sebagai komponen, Amazon Free RTOS menyertakan versi khusus dari ESP - IDF v4.2 yang memiliki RTOS Kernel Gratis dihapus. Ini memperbaiki masalah dengan file duplikat saat Anda mengkompilasi. Untuk menggunakan versi kustom dari ESP - IDF v4.2 disertakan dengan Amazon FreeRTOS, ikuti petunjuk di bawah ini untuk sistem operasi mesin host Anda.
Windows
-
Unduh ESP - IDF Universal Online Installer
untuk Windows. -
Jalankan Pemasang Online Universal.
-
Ketika Anda sampai ke langkah Unduh atau gunakan ESP - IDF, pilih Gunakan IDF direktori yang ada ESP dan atur Pilih IDF direktori yang ada ESP ke
.freertos
/vendors/espressif/esp-idf -
Selesaikan instalasi.
macOS
-
Ikuti petunjuk dalam Pengaturan Standar prasyarat Toolchain (- ESP IDF v4.2
) untuk macOS. penting
Ketika Anda mencapai instruksi “Dapatkan ESP -IDF" di bawah Langkah Berikutnya, berhenti, dan kemudian kembali ke instruksi di halaman ini.
-
Buka jendela baris perintah.
-
Arahkan ke direktori RTOS Unduhan gratis, lalu jalankan skrip berikut untuk mengunduh dan menginstal rantai alat espressif untuk platform Anda.
vendors/espressif/esp-idf/install.sh
-
Tambahkan alat ESP - IDF toolchain ke jalur terminal Anda dengan perintah berikut.
source vendors/espressif/esp-idf/export.sh
Linux
-
Ikuti petunjuk dalam Pengaturan Standar prasyarat Toolchain (ESP- IDF
v4.2) untuk Linux. penting
Ketika Anda mencapai instruksi “Dapatkan ESP -IDF" di bawah Langkah Berikutnya, berhenti, dan kemudian kembali ke instruksi di halaman ini.
-
Buka jendela baris perintah.
-
Arahkan ke direktori RTOS Unduhan gratis, lalu jalankan skrip berikut untuk mengunduh dan menginstal rantai alat Espressif untuk platform Anda.
vendors/espressif/esp-idf/install.sh
-
Tambahkan alat ESP - IDF toolchain ke jalur terminal Anda dengan perintah berikut.
source vendors/espressif/esp-idf/export.sh
-
-
Buat koneksi serial.
-
Untuk membuat koneksi serial antara mesin host Anda dan ESP32 - DevKit C, Anda harus menginstal VCP driver CP21 0x USB ke UART Bridge. Anda dapat mengunduh driver ini dari Silicon Labs
. Untuk membuat koneksi serial antara mesin host Anda dan ESP32 - WROVER -KIT, Anda harus menginstal driver COM port FTDI virtual. Anda dapat mengunduh driver ini dari FTDI
. -
Ikuti langkah-langkah untuk Membuat Koneksi Serial dengan ESP32
. -
Setelah Anda membuat koneksi serial, catat port serial untuk koneksi papan Anda. Anda membutuhkannya untuk mem-flash demo.
-
Konfigurasikan aplikasi RTOS demo Gratis
Untuk tutorial ini, file RTOS konfigurasi Gratis terletak di
. (Misalnya, jika freertos
/vendors/espressif/boards/board-name
/aws_demos/config_files/FreeRTOSConfig.hAFR_BOARD espressif.esp32_devkitc
dipilih, file konfigurasi terletak di
.) freertos
/vendors/espressif/boards/esp32/aws_demos/config_files/FreeRTOSConfig.h
-
Jika Anda menjalankan macOS atau Linux, buka prompt terminal. Jika Anda menjalankan Windows, buka aplikasi "ESP- IDF 4.xCMD" (jika Anda menyertakan opsi ini saat Anda menginstal ESP - IDF toolchain), atau aplikasi “Command Prompt” sebaliknya.
-
Untuk memverifikasi bahwa Anda telah menginstal Python3, jalankan
python --version
Versi yang diinstal ditampilkan. Jika Anda tidak menginstal Python 3.0.1 atau yang lebih baru, Anda dapat menginstalnya dari situs web Python.
-
Anda membutuhkan AWS Command Line Interface (CLI) untuk dijalankan AWS IoT perintah. Jika Anda menjalankan Windows, gunakan
easy_install awscli
perintah untuk menginstal AWS CLIdi aplikasi “Command” atau "ESP- IDF 4.xCMD”.Jika Anda menjalankan macOS atau Linux, lihat Menginstal AWS CLI.
-
Jalankan .
aws configure
dan konfigurasikan AWS CLIdengan Anda AWS ID kunci akses, kunci akses rahasia, dan default AWS Wilayah. Untuk informasi selengkapnya, lihat Mengonfigurasi AWS CLI.
-
Gunakan perintah berikut untuk menginstal AWS SDKuntuk Python (boto3):
-
Di Windows, di aplikasi “Command” atau "ESP- IDF 4.x CMD “, jalankan
pip install boto3 --user
catatan
Lihat dokumentasi Boto3
untuk detailnya. -
Di macOS atau Linux, jalankan
pip install tornado nose --user
dan kemudian lari
pip install boto3 --user
Gratis RTOS termasuk
SetupAWS.py
skrip untuk membuatnya lebih mudah untuk mengatur papan Espressif Anda untuk terhubung AWS IoT. Untuk mengkonfigurasi skrip, buka
dan atur atribut berikut:freertos
/tools/aws_config_quick_start/configure.jsonafr_source_dir
-
Jalur lengkap ke
direktori di komputer Anda. Pastikan Anda menggunakan garis miring maju untuk menentukan jalur ini.freertos
thing_name
-
Nama yang ingin Anda tetapkan ke AWS IoT Hal yang mewakili dewan Anda.
wifi_ssid
-
Jaringan Wi-Fi Anda. SSID
wifi_password
-
Kata sandi untuk jaringan Wi-Fi Anda.
wifi_security
-
Jenis keamanan untuk jaringan Wi-Fi Anda.
Berikut ini adalah jenis keamanan yang valid:
-
eWiFiSecurityOpen
(Terbuka, tidak ada keamanan) -
eWiFiSecurityWEP
(WEPkeamanan) -
eWiFiSecurityWPA
(WPAkeamanan) -
eWiFiSecurityWPA2
(WPA2keamanan)
-
-
-
Jalankan skrip konfigurasi.
-
Jika Anda menjalankan macOS atau Linux, buka prompt terminal. Jika Anda menjalankan Windows, buka aplikasi "ESP- IDF 4.xCMD" atau “Command”.
-
Arahkan ke
direktori dan jalankanfreertos
/tools/aws_config_quick_startpython SetupAWS.py setup
Script melakukan hal berikut:
-
Membuat hal IoT, sertifikat, dan kebijakan.
-
Melampirkan kebijakan IoT ke sertifikat dan sertifikat ke AWS IoT hal.
-
Mengisi
aws_clientcredential.h
file dengan AWS IoT titik akhir, Wi-FiSSID, dan kredensil. -
Memformat sertifikat dan kunci pribadi Anda dan menuliskannya ke file
aws_clientcredential_keys.h
header.
catatan
Sertifikat di-hardcode hanya untuk tujuan demonstrasi. Aplikasi tingkat produksi harus menyimpan file-file ini di lokasi yang aman.
Untuk informasi selengkapnya
SetupAWS.py
, lihatREADME.md
di
direktori.freertos
/tools/aws_config_quick_start -
-
Memantau MQTT pesan di cloud
Sebelum Anda menjalankan proyek RTOS demo Gratis, Anda dapat mengatur MQTT klien di AWS IoT konsol untuk memantau pesan yang dikirim perangkat Anda ke AWS Awan.
Untuk berlangganan MQTT topik dengan AWS IoT MQTTklien
-
Arahkan ke AWS IoT konsol
. -
Di panel navigasi, pilih Uji, lalu pilih MQTT Test Client.
-
Dalam Subscription topic, masukkan
, lalu pilih Subscribe to topic.your-thing-name
/example/topic
Ketika proyek demo berhasil berjalan di perangkat Anda, Anda melihat “Hello World!” dikirim beberapa kali ke topik yang Anda berlangganan.
Bangun, flash, dan jalankan proyek RTOS demo Gratis menggunakan skrip idf.py
Anda dapat menggunakan IDF utilitas Espressif (idf.py
) untuk membangun proyek dan mem-flash binari ke perangkat Anda.
catatan
Beberapa pengaturan mungkin mengharuskan Anda menggunakan opsi "-p port-name"
port idf.py
untuk menentukan port yang benar, seperti pada contoh berikut.
idf.py -p /dev/cu.usbserial-00101301B flash
Bangun dan flash Gratis RTOS di Windows, Linux, dan macOS (ESP- IDF v4.2)
-
Arahkan ke root direktori RTOS unduhan Gratis Anda.
-
Di jendela baris perintah, masukkan perintah berikut untuk menambahkan ESP - IDF alat ke terminal AndaPATH.
- Windows (aplikasi “Perintah”)
-
vendors\espressif\esp-idf\export.bat
- Windows (” ESP - IDF 4.x CMD "aplikasi)
-
(Ini sudah dilakukan saat Anda membuka aplikasi.)
- Linux/macOS
-
source vendors/espressif/esp-idf/export.sh
-
Konfigurasikan cmake di
build
direktori dan buat gambar firmware dengan perintah berikut.idf.py -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 build
Anda akan melihat output seperti berikut.
Running cmake in directory /path/to/hello_world/build Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"... Warn about uninitialized values. -- Found Git: /usr/bin/git (found version "2.17.0") -- Building empty aws_iot component due to configuration -- Component names: ... -- Component paths: ... ... (more lines of build system output) [527/527] Generating hello-world.bin esptool.py v2.3.1 Project build complete. To flash, run this command: ../../../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 or run 'idf.py -p PORT flash'
Jika tidak ada kesalahan, build akan menghasilkan file biner firmware .bin.
-
Hapus memori flash papan pengembangan Anda dengan perintah berikut.
idf.py erase_flash
-
Gunakan
idf.py
skrip untuk mem-flash biner aplikasi ke papan Anda.idf.py flash
-
Pantau output dari port serial papan Anda dengan perintah berikut.
idf.py monitor
catatan
Anda dapat menggabungkan perintah-perintah ini seperti pada contoh berikut.
idf.py erase_flash flash monitor
Untuk pengaturan mesin host tertentu, Anda harus menentukan port saat Anda mem-flash papan seperti pada contoh berikut.
idf.py erase_flash flash monitor -p /dev/ttyUSB1
Membangun dan Flash Gratis RTOS dengan CMake
Selain idf.py
skrip yang disediakan oleh IDF SDK untuk membangun dan menjalankan kode Anda, Anda juga dapat membangun proyek denganCMake. Saat ini, ia mendukung Unix Makefiles atau sistem build Ninja.
Untuk membangun dan mem-flash proyek
-
Di jendela baris perintah, arahkan ke root direktori RTOS unduhan gratis Anda.
-
Jalankan skrip berikut untuk menambahkan ESP - IDF alat ke shell AndaPATH.
- Windows
-
vendors\espressif\esp-idf\export.bat
- Linux/macOS
-
source vendors/espressif/esp-idf/export.sh
-
Masukkan perintah berikut untuk menghasilkan file build.
- Dengan Unix Makefiles
-
cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0
- Dengan Ninja
-
cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja
-
Bangun proyek.
- Dengan Unix Makefiles
-
make -C ./YOUR_BUILD_DIRECTORY -j8
- Dengan Ninja
-
ninja -C ./YOUR_BUILD_DIRECTORY -j8
-
Hapus flash dan kemudian flash papan.
- Dengan Unix Makefiles
-
make -C ./YOUR_BUILD_DIRECTORY erase_flash
make -C ./YOUR_BUILD_DIRECTORY flash
- Dengan Ninja
-
ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
ninja -C ./YOUR_BUILD_DIRECTORY flash
Jalankan demo Bluetooth Low Energy
Gratis RTOS mendukung Perpustakaan Bluetooth Rendah Energi konektivitas.
Untuk menjalankan proyek RTOS demo Gratis di Bluetooth Low Energy, Anda harus menjalankan Aplikasi SDK Demo Seluler RTOS Bluetooth Rendah Energi Gratis di perangkat seluler iOS atau Android.
Untuk mengatur aplikasi SDK demo seluler RTOS Bluetooth Rendah Energi Gratis
-
Ikuti petunjuk SDK Seluler untuk perangkat Bluetooth FreeRTOS untuk mengunduh dan menginstal platform seluler SDK untuk Anda di komputer host Anda.
-
Ikuti petunjuk Aplikasi demo SDK Seluler Energi Rendah FreeRTOS Bluetooth untuk menyiapkan aplikasi seluler demo di perangkat seluler Anda.
Untuk petunjuk tentang cara menjalankan demo Bluetooth Low Energy MQTT melalui papan tulis Anda, lihatMQTT melalui Bluetooth Energi Rendah.
Untuk petunjuk tentang cara menjalankan demo penyediaan Wi-Fi di papan tulis Anda, lihat. Penyediaan Wi-Fi
Menggunakan Gratis RTOS dalam CMake proyek Anda sendiri untuk ESP32
Jika Anda ingin menggunakan Free RTOS dalam CMake proyek Anda sendiri, Anda dapat mengaturnya sebagai subdirektori dan membangunnya bersama dengan aplikasi Anda. Pertama, dapatkan salinan Free RTOS from GitHub
git submodule add -b release https://github.com/aws/amazon-freertos.git freertos
Jika versi yang lebih baru dirilis, Anda dapat memperbarui salinan lokal Anda dengan perintah ini.
# Pull the latest changes from the remote tracking branch. git submodule update --remote -- freertos
# Commit the submodule change because it is pointing to a different revision now. git add freertos
git commit -m "Update FreeRTOS to a new release"
Jika proyek Anda memiliki struktur direktori berikut:
- freertos (the copy that you obtained from GitHub or the AWS IoT console) - src - main.c (your application code) - CMakeLists.txt
Kemudian berikut ini adalah contoh CMakeLists.txt
file tingkat atas yang dapat digunakan untuk membangun aplikasi Anda bersama dengan FreeRTOS.
cmake_minimum_required(VERSION 3.13) project(freertos_examples) # Tell IDF build to link against this target. set(IDF_EXECUTABLE_SRCS "<complete_path>/src/main.c") set(IDF_PROJECT_EXECUTABLE my_app) # Add FreeRTOS as a subdirectory. AFR_BOARD tells which board to target. set(AFR_BOARD espressif.esp32_devkitc CACHE INTERNAL "") add_subdirectory(freertos) # Link against the mqtt library so that we can use it. Dependencies are transitively # linked. target_link_libraries(my_app PRIVATE AFR::core_mqtt)
Untuk membangun proyek, jalankan CMake perintah berikut. Pastikan ESP32 compiler berada dalam variabel PATH lingkungan.
cmake -S . -B build-directory -DCMAKE_TOOLCHAIN_FILE=freertos/tools/cmake/toolchains/xtensa-esp32.cmake -GNinja
cmake --build build-directory
Untuk mem-flash aplikasi ke papan Anda, jalankan perintah berikut.
cmake --build build-directory --target flash
Menggunakan komponen dari Free RTOS
Setelah berjalanCMake, Anda dapat menemukan semua komponen yang tersedia dalam output ringkasan. Seharusnya terlihat seperti contoh berikut.
====================Configuration for FreeRTOS==================== Version: 202107.00 Git version: 202107.00-g79ad6defb Target microcontroller: vendor: Espressif board: ESP32-DevKitC description: Development board produced by Espressif that comes in two variants either with ESP-WROOM-32 or ESP32-WROVER module family: ESP32 data ram size: 520KB program memory size: 4MB Host platform: OS: Linux-4.15.0-66-generic Toolchain: xtensa-esp32 Toolchain path: /opt/xtensa-esp32-elf CMake generator: Ninja FreeRTOS modules: Modules to build: backoff_algorithm, common, common_io, core_http, core_http_demo_dependencies, core_json, core_mqtt, core_mqtt_agent, core_mqtt_agent_demo_dependencies, core_mqtt_demo_dependencies, crypto, defender, dev_mode_key_ provisioning, device_defender, device_defender_demo_ dependencies, device_shadow, device_shadow_demo_dependencies, freertos_cli_plus_uart, freertos_plus_cli, greengrass, http_demo_helpers, https, jobs, jobs_demo_dependencies, kernel, logging, mqtt, mqtt_agent_interface, mqtt_demo_ helpers, mqtt_subscription_manager, ota, ota_demo_ dependencies, ota_demo_version, pkcs11, pkcs11_helpers, pkcs11_implementation, pkcs11_utils, platform, secure_sockets, serializer, shadow, tls, transport_interface_secure_sockets, wifi Enabled by user: common_io, core_http_demo_dependencies, core_json, core_mqtt_agent_demo_dependencies, core_mqtt_demo_ dependencies, defender, device_defender, device_defender_demo_ dependencies, device_shadow, device_shadow_demo_dependencies, freertos_cli_plus_uart, freertos_plus_cli, greengrass, https, jobs, jobs_demo_dependencies, logging, ota_demo_dependencies, pkcs11, pkcs11_helpers, pkcs11_implementation, pkcs11_utils, platform, secure_sockets, shadow, wifi Enabled by dependency: backoff_algorithm, common, core_http, core_mqtt, core_mqtt_agent, crypto, demo_base, dev_mode_key_provisioning, freertos, http_demo_helpers, kernel, mqtt, mqtt_agent_ interface, mqtt_demo_helpers, mqtt_subscription_manager, ota, ota_demo_version, pkcs11_mbedtls, serializer, tls, transport_interface_secure_sockets, utils 3rdparty dependencies: jsmn, mbedtls, pkcs11, tinycbor Available demos: demo_cli_uart, demo_core_http, demo_core_mqtt, demo_core_mqtt_ agent, demo_device_defender, demo_device_shadow, demo_greengrass_connectivity, demo_jobs, demo_ota_core_http, demo_ota_core_mqtt, demo_tcp Available tests: =========================================================================
Anda dapat mereferensikan komponen apa pun dari Modules to build
daftar. Untuk menautkannya ke aplikasi Anda, letakkan AFR::
namespace di depan nama, misalnya,, AFR::core_mqtt
AFR::ota
, dan sebagainya.
Tambahkan komponen khusus menggunakan ESP - IDF
Anda dapat menambahkan lebih banyak komponen saat menggunakan ESP -IDF. Misalnya, dengan asumsi Anda ingin menambahkan komponen yang dipanggilexample_component
, dan proyek Anda terlihat seperti ini:
- freertos - components - example_component - include - example_component.h - src - example_component.c - CMakeLists.txt - src - main.c - CMakeLists.txt
Berikut ini adalah contoh CMakeLists.txt
file untuk komponen Anda.
add_library(
example_component
src/example_component.c
) target_include_directories(example_component
PUBLIC include)
Kemudian, di CMakeLists.txt
file tingkat atas, tambahkan komponen dengan memasukkan baris berikut setelahnyaadd_subdirectory(freertos)
.
add_subdirectory(
component/example_component
)
Kemudian, modifikasi target_link_libraries
untuk menyertakan komponen Anda.
target_link_libraries(my_app PRIVATE AFR::core_mqtt PRIVATE
example_component
)
Komponen ini sekarang secara otomatis ditautkan ke kode aplikasi Anda secara default. Anda sekarang dapat menyertakan file header dan memanggil fungsi yang didefinisikan.
Ganti konfigurasi secara Gratis RTOS
Saat ini tidak ada pendekatan yang terdefinisi dengan baik untuk mendefinisikan ulang konfigurasi di luar pohon sumber Gratis. RTOS Secara default, CMake akan mencari
direktori freertos
/demos/include/
dan. Namun, Anda dapat menggunakan solusi untuk memberi tahu kompiler agar mencari direktori lain terlebih dahulu. Misalnya, Anda dapat menambahkan folder lain untuk RTOS konfigurasi Gratis.freertos
/vendors/espressif/boards/esp32/aws_demos/config_files/
- freertos - freertos-configs - aws_clientcredential.h - aws_clientcredential_keys.h - iot_mqtt_agent_config.h - iot_config.h - components - src - CMakeLists.txt
File di bawah freertos-configs
disalin dari
direktori freertos
/demos/include/
dan. Kemudian, di freertos
/vendors/espressif/boards/esp32/aws_demos/config_files/CMakeLists.txt
file tingkat atas Anda, tambahkan baris ini sebelumnya add_subdirectory(freertos)
sehingga kompiler akan mencari direktori ini terlebih dahulu.
include_directories(BEFORE freertos-configs)
Menyediakan sdkconfig Anda sendiri untuk - ESP IDF
Jika Anda ingin menyediakan sendirisdkconfig.default
, Anda dapat mengatur CMake variabelIDF_SDKCONFIG_DEFAULTS
, dari baris perintah:
cmake -S . -B build-directory -DIDF_SDKCONFIG_DEFAULTS=path_to_your_sdkconfig_defaults -DCMAKE_TOOLCHAIN_FILE=freertos/tools/cmake/toolchains/xtensa-esp32.cmake -GNinja
Jika Anda tidak menentukan lokasi untuk sdkconfig.default
file Anda sendiri, Free RTOS menggunakan file default yang terletak di
.freertos
/vendors/espressif/boards/esp32/aws_demos/sdkconfig.defaults
Untuk informasi selengkapnya, lihat Konfigurasi Proyek
Ringkasan
Jika Anda memiliki proyek dengan komponen yang disebutexample_component
, dan Anda ingin mengganti beberapa konfigurasi, berikut adalah contoh lengkap dari file tingkat CMakeLists.txt
atas.
cmake_minimum_required(VERSION 3.13) project(freertos_examples) set(IDF_PROJECT_EXECUTABLE my_app) set(IDF_EXECUTABLE_SRCS "src/main.c") # Tell IDF build to link against this target. set(IDF_PROJECT_EXECUTABLE my_app) # Add some extra components. IDF_EXTRA_COMPONENT_DIRS is a variable used by ESP-IDF # to collect extra components. get_filename_component( EXTRA_COMPONENT_DIRS "components/example_component" ABSOLUTE ) list(APPEND IDF_EXTRA_COMPONENT_DIRS ${EXTRA_COMPONENT_DIRS}) # Override the configurations for FreeRTOS. include_directories(BEFORE freertos-configs) # Add FreeRTOS as a subdirectory. AFR_BOARD tells which board to target. set(AFR_BOARD espressif.esp32_devkitc CACHE INTERNAL "") add_subdirectory(freertos) # Link against the mqtt library so that we can use it. Dependencies are transitively # linked. target_link_libraries(my_app PRIVATE AFR::core_mqtt)
Pemecahan Masalah
-
Jika Anda menjalankan macOS dan sistem operasi tidak mengenali ESP - WROVER -KIT, pastikan Anda tidak menginstal driver D2XX. Untuk menghapus instalannya, ikuti petunjuk di Panduan Instalasi FTDI Driver untuk macOS X
. -
Utilitas monitor yang disediakan oleh ESP - IDF (dan dipanggil menggunakan make monitor) membantu Anda memecahkan kode alamat. Untuk alasan ini, ini dapat membantu Anda mendapatkan beberapa backtrace yang berarti jika aplikasi berhenti bekerja. Untuk informasi selengkapnya, lihat Penguraian Kode Alamat Otomatis di situs
web Espressif. -
Dimungkinkan juga GDBstub untuk mengaktifkan komunikasi dengan gdb tanpa memerlukan JTAG perangkat keras khusus. Untuk informasi lebih lanjut, lihat Peluncuran GDB dengan GDBStub
di situs web Espressif. -
Untuk informasi tentang menyiapkan lingkungan OCD berbasis Terbuka jika diperlukan debugging JTAG berbasis perangkat keras, lihat Debugging di situs web JTAGEspressif
. -
Jika tidak
pyserial
dapatpip
diinstal menggunakan macOS, unduh dari situs web pyserial. -
Jika papan direset terus menerus, coba hapus lampu kilat dengan memasukkan perintah berikut di terminal.
make erase_flash
-
Jika Anda melihat kesalahan saat menjalankan
idf_monitor.py
, gunakan Python 2.7. -
Perpustakaan yang diperlukan dari ESP - IDF termasuk dalam GratisRTOS, jadi tidak perlu mengunduhnya secara eksternal. Jika variabel
IDF_PATH
lingkungan disetel, kami sarankan Anda menghapusnya sebelum Anda membangun GratisRTOS. -
Di Windows, dibutuhkan waktu 3-4 menit untuk membangun proyek. Untuk mengurangi waktu pembuatan, Anda dapat menggunakan
-j4
sakelar pada perintah make.make flash monitor -j4
-
Jika perangkat Anda mengalami masalah saat terhubung AWS IoT, buka
aws_clientcredential.h
file, dan verifikasi bahwa variabel konfigurasi didefinisikan dengan benar dalam file.clientcredentialMQTT_BROKER_ENDPOINT[]
Seharusnya terlihat seperti1234567890123-ats.iot.us-east-1.amazonaws.com
. -
Jika Anda mengikuti langkah-langkah Menggunakan Gratis RTOS dalam CMake proyek Anda sendiri untuk ESP32 dan Anda melihat kesalahan referensi yang tidak ditentukan dari tautan, biasanya karena pustaka atau demo dependen yang hilang. Untuk menambahkannya, perbarui
CMakeLists.txt
file (di bawah direktori root) menggunakan CMake fungsi standartarget_link_libraries
. -
ESP- IDF v4.2 mendukung penggunaan xtensa\ -esp32\ -elf\ -gcc 8\ .2\ .0\. rantai alat. Jika Anda menggunakan versi sebelumnya dari rantai alat Xtensa, unduh versi yang diperlukan.
-
Jika Anda melihat log kesalahan seperti berikut tentang dependensi python yang tidak terpenuhi untuk ESP - v4.2: IDF
The following Python requirements are not satisfied: click>=5.0 pyserial>=3.0 future>=0.15.2 pyparsing>=2.0.3,<2.4.0 pyelftools>=0.22 gdbgui==0.13.2.0 pygdbmi<=0.9.0.2 reedsolo>=1.5.3,<=1.5.4 bitstring>=3.1.6 ecdsa>=0.16.0 Please follow the instructions found in the "Set up the tools" section of ESP-IDF Getting Started Guide
Instal dependensi python di platform Anda menggunakan perintah Python berikut:
root/vendors/espressif/esp-idf/requirements.txt
Untuk informasi pemecahan masalah selengkapnya, lihat Memulai masalah saat memulai.
Debugging
Kode debugging pada Espressif ESP32 - DevKit C dan - - KIT (ESPWROVER- v4.2) ESP IDF
Bagian ini menunjukkan cara men-debug perangkat keras Espressif menggunakan ESP - v4.2. IDF Anda membutuhkan JTAG USB kabel. Kami menggunakan MPSSE kabel USB to (misalnya, FTDIC232HM
- ESP- JTAG Pengaturan DevKit C
-
Untuk kabel FTDI C232HM- DDHSL -0, ini adalah koneksi ke DevKitc. ESP32
| C232HM-DDHSL-0 Wire Color | ESP32 GPIO Pin | JTAG Signal Name | | ------------------------- | -------------- | ---------------- | | Brown (pin 5) | IO14 | TMS | | Yellow (pin 3) | IO12 | TDI | | Black (pin 10) | GND | GND | | Orange (pin 2) | IO13 | TCK | | Green (pin 4) | IO15 | TDO |
- ESP- WROVER - KIT JTAG Pengaturan
-
Untuk kabel FTDI C232HM- DDHSL -0, ini adalah koneksi ke - -. ESP32 WROVER KIT
| C232HM-DDHSL-0 Wire Color | ESP32 GPIO Pin | JTAG Signal Name | | ------------------------- | -------------- | ---------------- | | Brown (pin 5) | IO14 | TMS | | Yellow (pin 3) | IO12 | TDI | | Orange (pin 2) | IO13 | TCK | | Green (pin 4) | IO15 | TDO |
Tabel ini dikembangkan dari lembar data FTDIC232HM
- -0. DDHSL Untuk informasi lebih lanjut, lihat bagian “Koneksi MPSSE Kabel C232HM dan Detail Mekanik di lembar data. Untuk mengaktifkan JTAG ESP - WROVER -KIT, tempatkan jumper pada TDI pinTMS,,, TDO TDITCK, dan S_ seperti yang ditunjukkan di sini.
- Debugging pada Windows (ESP- IDF v4.2)
-
Untuk mengatur debugging pada Windows
-
Hubungkan USB sisi FTDI C232HM- DDHSL -0 ke komputer Anda dan sisi lain seperti yang dijelaskan dalam. Kode debugging pada Espressif ESP32 - DevKit C dan - - KIT (ESPWROVER- v4.2) ESP IDF Perangkat FTDI C232HM- DDHSL -0 akan muncul di Device Manager di bawah Universal Serial Bus Controllers.
-
Di bawah daftar perangkat bus serial universal, klik kanan perangkat C232HM- DDHSL -0, lalu pilih Properties.
catatan
Perangkat mungkin terdaftar sebagai Port USB Serial.
Untuk melihat properti perangkat, di jendela properti, pilih tab Detail. Jika perangkat tidak terdaftar, instal driver Windows untuk FTDI C232HM
- -0. DDHSL -
Pada tab Detail, pilih Properti, lalu pilih Hardware IDs. Anda akan melihat sesuatu seperti ini di bidang Nilai.
FTDIBUS\COMPORT&VID_0403&PID_6014
Dalam contoh ini, ID vendor adalah 0403 dan ID produk adalah 6014.
Verifikasi ini IDs cocok dengan IDs in
projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg
. IDsIni ditentukan dalam baris yang dimulai denganftdi_vid_pid
diikuti oleh ID vendor dan ID produk.ftdi_vid_pid 0x0403 0x6014
-
Unduh Open OCD untuk Windows
. -
Buka zip file ke
C:\
dan tambahkanC:\openocd-esp32\bin
ke jalur sistem Anda. -
Open OCD membutuhkan libusb, yang tidak diinstal secara default pada Windows. Untuk menginstal libusb:
-
Unduh zadig.exe
. -
Jalankan
zadig.exe
. Dari menu Opsi, pilih Daftar Semua Perangkat. -
Dari menu tarik-turun, pilih C232HM - -0. DDHSL
-
Di bidang driver target, di sebelah kanan panah hijau, pilih Win USB.
-
Untuk daftar di bawah bidang driver target, pilih panah, lalu pilih Install Driver. Pilih Ganti Driver.
-
-
Buka prompt perintah, arahkan ke root direktori RTOS Download Gratis Anda, dan jalankan perintah berikut.
idf.py openocd
Biarkan command prompt ini terbuka.
-
Buka prompt perintah baru, arahkan ke root direktori RTOS unduhan Gratis Anda, dan jalankan
idf.py flash monitor
-
Buka prompt perintah lain, arahkan ke root direktori RTOS unduhan Gratis Anda, dan tunggu hingga demo mulai berjalan di papan Anda. Ketika itu terjadi, jalankan
idf.py gdb
Program harus berhenti dalam
main
fungsi.catatan
ESP32Mendukung maksimal dua break point.
-
- Debugging di macOS ESP (- v4.2) IDF
-
-
Unduh FTDIdriver untuk macOS
. -
Unduh Buka OCD
. -
Ekstrak file.tar yang diunduh dan atur jalurnya
.bash_profile
keOCD_INSTALL_DIR/openocd-esp32/bin
. -
Gunakan perintah berikut untuk menginstal
libusb
di macOS.brew install libusb
-
Gunakan perintah berikut untuk membongkar driver port serial.
sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
-
Gunakan perintah berikut untuk membongkar driver port serial.
sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
-
Jika Anda menjalankan versi macOS lebih lambat dari 10.9, gunakan perintah berikut untuk membongkar driver Apple. FTDI
sudo kextunload -b com.apple.driver.AppleUSBFTDI
-
Gunakan perintah berikut untuk mendapatkan ID produk dan ID vendor FTDI kabel. Ini mencantumkan USB perangkat yang terpasang.
system_profiler SPUSBDataType
Output dari
system_profiler
akan terlihat seperti berikut ini.DEVICE: Product ID: product-ID Vendor ID: vendor-ID (Future Technology Devices International Limited)
-
Buka file
projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg
. ID vendor dan ID produk untuk perangkat Anda ditentukan dalam baris yang dimulai denganftdi_vid_pid
. Ubah IDs untuk mencocokkan IDs darisystem_profiler
output pada langkah sebelumnya. -
Buka jendela terminal, arahkan ke root direktori RTOS Unduhan Gratis Anda, dan gunakan perintah berikut untuk menjalankan BukaOCD.
idf.py openocd
Biarkan jendela terminal ini terbuka.
-
Buka terminal baru, dan gunakan perintah berikut untuk memuat driver port FTDI serial.
sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
-
Arahkan ke root direktori RTOS unduhan Gratis Anda, dan jalankan
idf.py flash monitor
-
Buka terminal baru lainnya, arahkan ke root direktori RTOS unduhan Gratis Anda, dan jalankan
idf.py gdb
Program harus berhenti di
main
.
-
- Debugging di Linux (ESP- IDF v4.2)
-
-
Unduh Buka OCD
. Ekstrak tarball dan ikuti petunjuk penginstalan di file readme. -
Gunakan perintah berikut untuk menginstal libusb di Linux.
sudo apt-get install libusb-1.0
-
Buka terminal dan masukkan ls -l /dev/ttyUSB* untuk mencantumkan semua USB perangkat yang terhubung ke komputer Anda. Ini membantu Anda memeriksa apakah USB port papan dikenali oleh sistem operasi. Anda akan melihat output seperti berikut.
$ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Jul 10 19:04 /dev/ttyUSB1
-
Masuk dan kemudian masuk dan putar daya ke papan untuk membuat perubahan berlaku. Dalam prompt terminal, daftarkan USB perangkat. Pastikan pemilik grup telah berubah dari
dialout
keplugdev
.$ls -l /dev/ttyUSB* crw-rw---- 1 root plugdev 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root plugdev 188, 1 Jul 10 19:04 /dev/ttyUSB1
/dev/ttyUSBn
Antarmuka dengan angka yang lebih rendah digunakan untuk JTAG komunikasi. Antarmuka lainnya dirutekan ke ESP32 port serial (UART) dan digunakan untuk mengunggah kode ke ESP32 memori flash. -
Di jendela terminal, arahkan ke root direktori RTOS Unduhan Gratis Anda, dan gunakan perintah berikut untuk menjalankan BukaOCD.
idf.py openocd
-
Buka terminal lain, arahkan ke root direktori RTOS Unduhan Gratis Anda, dan jalankan perintah berikut.
idf.py flash monitor
-
Buka terminal lain, navigasikan root direktori RTOS Unduhan Gratis Anda, dan jalankan perintah berikut:
idf.py gdb
Program harus berhenti
main()
.
-