Memulai dengan Espressif ESP32 - DevKit C dan ESP-WROVER-KIT - FreeRTOS

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

Ini adalah versi arsip dari Panduan Pengguna FreeRTOS untuk digunakan dengan rilis FreerTOS 202012.00. Untuk versi terbaru dari dokumen ini, lihat Panduan Pengguna FreeRTOS.

Ikuti tutorial ini untuk memulai dengan Espressif ESP32 - DevKit C dilengkapi dengan modul ESP32 -WROOM-32, ESP32 -SOLO-1, atau ESP-WROVER dan modul. ESP-WROVER-KIT-VB Untuk membeli satu dari mitra kami di katalog Perangkat AWS Mitra, gunakan tautan berikut:

Versi papan pengembangan ini didukung di FreeRTOS.

Untuk informasi lebih lanjut tentang versi terbaru papan ini, lihat ESP32- DevKit C V4 atau ESP-WROVER-KITv4.1 di situs web Espressif.

catatan

Saat ini, port FreeRTOS ESP32 untuk -WROVER-KIT dan DevKit ESP C tidak mendukung fitur Symmetric multiprocessing (SMP).

Gambaran Umum

Tutorial ini memandu Anda melalui langkah-langkah berikut:

  1. Menghubungkan papan Anda ke mesin host

  2. Menginstal perangkat lunak pada mesin host untuk mengembangkan dan men-debug aplikasi tertanam untuk papan mikrokontroler Anda

  3. Menyusun silang aplikasi demo FreeRTOS ke gambar biner

  4. Memuat gambar biner aplikasi ke papan Anda, dan kemudian menjalankan aplikasi

  5. Berinteraksi dengan aplikasi yang berjalan di papan Anda di seluruh koneksi serial, untuk tujuan pemantauan dan debugging

Prasyarat

Sebelum Anda memulai dengan FreeRTOS di papan Espressif Anda, Anda harus mengatur akun dan izin Anda. AWS

Mendaftar untuk Akun AWS

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

Untuk mendaftar untuk Akun AWS
  1. Buka https://portal.aws.amazon.com/billing/pendaftaran.

  2. Ikuti petunjuk online.

    Bagian dari prosedur pendaftaran melibatkan menerima panggilan telepon atau pesan teks dan memasukkan kode verifikasi pada keypad telepon.

    Saat Anda mendaftar untuk sebuah Akun AWS, sebuah Pengguna root akun AWSdibuat. 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.comke/ dan memilih Akun Saya.

Buat pengguna dengan akses administratif

Setelah Anda mendaftar 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 Pengguna root akun AWS
  1. Masuk ke AWS Management Consolesebagai pemilik akun dengan memilih pengguna Root dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.

    Untuk bantuan masuk dengan menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.

  2. Mengaktifkan autentikasi multi-faktor (MFA) untuk pengguna root Anda.

    Untuk petunjuk, lihat Mengaktifkan perangkat MFA virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan Pengguna IAM.

Buat pengguna dengan akses administratif
  1. Aktifkan Pusat Identitas IAM.

    Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .

  2. Di Pusat Identitas IAM, 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 IAM di Panduan AWS IAM Identity Center Pengguna.

Masuk sebagai pengguna dengan akses administratif
  • Untuk masuk dengan pengguna Pusat Identitas IAM, gunakan URL masuk yang dikirim ke alamat email saat Anda membuat pengguna Pusat Identitas IAM.

    Untuk bantuan masuk menggunakan pengguna Pusat Identitas IAM, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.

Tetapkan akses ke pengguna tambahan
  1. Di Pusat Identitas IAM, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.

    Untuk petunjuknya, lihat Membuat set izin di Panduan AWS IAM Identity Center Pengguna.

  2. Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.

    Untuk petunjuk, lihat Menambahkan grup di Panduan AWS IAM Identity Center Pengguna.

Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:

catatan

Rilis FreeRTOS 202012.00 mendukung ESP-IDF v3.3. Jika Anda menggunakan versi FreeRTOS yang lebih baru, ikuti petunjuk khusus IDFv4 untuk .2 at. Memulai dengan ESP-IDF v4.2

Memulai dengan ESP-IDF v3.3

Bagian ini menunjukkan cara menggunakan ESP-IDF v3.3 pada perangkat keras Espressif. Untuk menggunakan ESP-IDF v4.2, lihat. Memulai dengan ESP-IDF v4.2

Siapkan perangkat keras Espressif

Untuk informasi lebih lanjut tentang menyiapkan perangkat keras papan pengembangan ESP32 - DevKit C, lihat Panduan Memulai ESP32 - DevKit C V4.

Untuk informasi tentang menyiapkan perangkat keras papan ESP-WROVER-KIT pengembangan. lihat Panduan Memulai ESP-WROVER-KIT V4.1.

penting

Saat Anda mencapai bagian Memulai panduan Espressif, hentikan, lalu ikuti langkah-langkah di bawah ini.

Siapkan lingkungan pengembangan Anda

Untuk berkomunikasi dengan papan Anda, Anda harus mengunduh dan menginstal rantai alat.

Menyiapkan rantai alat

catatan

ESP-IDF v3.3 tidak mendukung versi kompiler terbaru. ESP32 Jika Anda telah menginstal versi terbaru dari ESP32 kompiler, Anda harus menghapus instalannya dan menggunakan versi kompiler yang kompatibel yang disertakan dalam instalasi toolchain. Lihat tautan di bagian ini. Untuk memeriksa versi kompiler Anda, jalankan perintah berikut.

xtensa-esp32-elf-gcc --version

Untuk menyiapkan rantai alat, ikuti petunjuk berikut untuk sistem operasi mesin host Anda:

penting

Ketika Anda mencapai petunjuk “Dapatkan ESP-IDF” di bawah Langkah Berikutnya, berhenti, dan kemudian kembali ke petunjuk di halaman ini.

Jika Anda mengikuti petunjuk “Dapatkan ESP-IDF” di bawah Langkah Berikutnya, sekarang atau pada kesempatan sebelumnya, Anda harus menghapus variabel IDF_PATH lingkungan dari sistem Anda sebelum melanjutkan. Variabel lingkungan ini secara otomatis diatur jika Anda mengikuti instruksi “Dapatkan ESP-IDF”.

Instal CMake

Sistem CMake build diperlukan untuk membangun demo FreeRTOS dan menguji aplikasi untuk perangkat ini. FreeRTOS mendukung versi 3.13 dan yang lebih baru.

Anda dapat mengunduh versi terbaru CMake dari CMakedari.org. Distribusi sumber dan biner tersedia.

Untuk detail lebih lanjut tentang menggunakan CMake dengan FreeRTOS, lihat. Menggunakan CMake dengan FreeRTOS

Buat koneksi serial

Untuk membuat koneksi serial antara mesin host Anda dan ESP32 - DevKit C, Anda harus menginstal CP21 0x USB ke driver UART Bridge VCP. Anda dapat mengunduh driver ini dari Silicon Labs.

Untuk membuat koneksi serial antara mesin host Anda dan ESP32 -WROVER-KIT, Anda harus menginstal beberapa driver port COM virtual FTDI. Anda dapat mengunduh driver ini dari FTDI.

Untuk informasi selengkapnya, lihat Membangun Koneksi Serial dengan ESP32. Setelah Anda membuat koneksi serial, catat port serial untuk koneksi papan Anda. Anda membutuhkannya ketika Anda membangun demo.

Unduh dan konfigurasikan FreeRTOS

Setelah Anda mengatur lingkungan Anda, Anda dapat mengunduh FreeRTOS GitHubdari.Untuk instruksi, lihat file README.md di situs web. GitHub

Konfigurasikan aplikasi demo FreeRTOS

  1. Jika Anda menjalankan macOS atau Linux, buka prompt terminal. Jika Anda menjalankan Windows, buka filemingw32.exe. MinGW adalah lingkungan pengembangan minimalis untuk aplikasi Microsoft Windows asli.

  2. Untuk memverifikasi bahwa Anda telah menginstal Python 2.7.10 atau yang lebih baru, jalankan

    python --version

    Versi yang diinstal ditampilkan. Jika Anda tidak menginstal Python 2.7.10 atau yang lebih baru, Anda dapat menginstalnya dari situs web Python.

  3. Anda memerlukan AWS Command Line Interface (AWS CLI) untuk menjalankan AWS IoT perintah. Jika Anda menjalankan Windows, gunakan easy_install awscli untuk menginstal AWS CLI di lingkungan mingw32.

    Jika Anda menjalankan macOS atau Linux, lihat Menginstal file. AWS CLI

  4. Jalankan aws configure dan konfigurasikan AWS CLI dengan ID kunci AWS akses Anda, kunci akses rahasia, dan AWS Wilayah. Untuk informasi selengkapnya, lihat Mengonfigurasi AWS CLI.

  5. Gunakan perintah berikut untuk menginstal AWS SDK untuk Python (boto3):

    • Di Windows, di lingkungan mingw32, jalankan

      easy_install boto3
    • Di macOS atau Linux, jalankan

      pip install tornado nose --user

      dan kemudian lari

      pip install boto3 --user

FreeRTOS menyertakan SetupAWS.py skrip untuk membuatnya lebih mudah untuk mengatur papan Espressif Anda untuk terhubung. AWS IoT Untuk mengkonfigurasi skrip, buka freertos/tools/aws_config_quick_start/configure.json dan atur atribut berikut:

afr_source_dir

Jalur lengkap ke freertos direktori di komputer Anda. Pastikan Anda menggunakan garis miring maju untuk menentukan jalur ini.

thing_name

Nama yang ingin Anda tetapkan untuk AWS IoT hal yang mewakili papan Anda.

wifi_ssid

SSID jaringan Wi-Fi Anda.

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(Keamanan WEP)

  • eWiFiSecurityWPA(Keamanan WPA)

  • eWiFiSecurityWPA2(WPA2 keamanan)

Untuk menjalankan skrip konfigurasi
  1. Jika Anda menjalankan macOS atau Linux, buka prompt terminal. Jika Anda menjalankan Windows, bukamingw32.exe.

  2. Arahkan ke freertos/tools/aws_config_quick_start direktori dan jalankan

    python SetupAWS.py setup

Script melakukan hal berikut:

  • Membuat hal, sertifikat, dan kebijakan IoT

  • Melampirkan kebijakan IoT ke sertifikat dan sertifikat pada benda tersebut AWS IoT

  • Mengisi aws_clientcredential.h file dengan AWS IoT titik akhir, SSID Wi-Fi, dan kredensialnya

  • 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 selengkapnyaSetupAWS.py, lihat README.md di freertos/tools/aws_config_quick_start direktori.

Bangun, flash, dan jalankan proyek demo FreeRTOS

Anda dapat menggunakan CMake untuk menghasilkan file build, Make untuk membangun biner aplikasi, dan utilitas IDF Espressif untuk mem-flash board Anda.

Membangun FreeRTOS di Linux dan macOS (ESP-IDF v3.3)

Jika Anda menggunakan Windows, lihatMembangun FreeRTOS pada Windows (ESP-IDF v3.3).

Gunakan CMake untuk menghasilkan file build, lalu gunakan Make untuk membangun aplikasi.

Untuk menghasilkan file build aplikasi demo dengan CMake
  1. Ubah direktori ke root direktori unduhan FreeRTOS Anda.

  2. Gunakan perintah berikut untuk menghasilkan file build.

    cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B your-build-directory
    catatan

    Jika Anda ingin membangun aplikasi untuk debugging, tambahkan -DCMAKE_BUILD_TYPE=Debug bendera ke perintah ini.

    Jika Anda ingin membuat file build aplikasi pengujian, tambahkan -DAFR_ENABLE_TESTS=1 bendera.

    Kode yang disediakan oleh Espressif menggunakan tumpukan IP ringan (LWiP) sebagai tumpukan jaringan default. Untuk menggunakan tumpukan jaringan FreerTos+TCP sebagai gantinya, tambahkan bendera ke perintah. –DAFR_ESP_FREERTOS_TCP CMake

    Untuk menambahkan dependensi LWiP untuk kode yang disediakan non-vendor, tambahkan baris berikut ke file dependensiCMakeLists.txt, untuk CMake komponen Wi-Fi kustom Anda.

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
Untuk membangun aplikasi dengan make
  1. Ubah direktori ke build direktori.

  2. Gunakan perintah berikut untuk membangun aplikasi dengan Make.

    make all -j4
    catatan

    Anda harus membuat file build dengan cmake perintah setiap kali Anda beralih antara aws_demos proyek dan aws_tests proyek.

Membangun FreeRTOS pada Windows (ESP-IDF v3.3)

Di Windows, Anda harus menentukan generator build untuk CMake. Jika tidak, CMake default ke Visual Studio. Espressif secara resmi merekomendasikan sistem build Ninja karena berfungsi pada Windows, Linux dan macOS. Anda harus menjalankan CMake perintah di lingkungan Windows asli seperti cmd atau PowerShell. Menjalankan CMake perintah di lingkungan Linux virtual, seperti MSYS2 atau WSL, tidak didukung.

Gunakan CMake untuk menghasilkan file build, lalu gunakan Make untuk membangun aplikasi.

Untuk menghasilkan file build aplikasi demo dengan CMake
  1. Ubah direktori ke root direktori unduhan FreeRTOS Anda.

  2. Gunakan perintah berikut untuk menghasilkan file build.

    cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -GNinja -S . -B build-directory
    catatan

    Jika Anda ingin membangun aplikasi untuk debugging, tambahkan -DCMAKE_BUILD_TYPE=Debug bendera ke perintah ini.

    Jika Anda ingin membuat file build aplikasi pengujian, tambahkan -DAFR_ENABLE_TESTS=1 bendera.

    Kode yang disediakan oleh Espressif menggunakan tumpukan IP ringan (LWiP) sebagai tumpukan jaringan default. Untuk menggunakan tumpukan jaringan FreerTos+TCP sebagai gantinya, tambahkan bendera ke perintah. –DAFR_ESP_FREERTOS_TCP CMake

    Untuk menambahkan dependensi LWiP untuk kode yang disediakan non-vendor, tambahkan baris berikut ke file dependensiCMakeLists.txt, untuk CMake komponen Wi-Fi kustom Anda.

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
Untuk membangun aplikasi
  1. Ubah direktori ke build direktori.

  2. Minta Ninja untuk membangun aplikasi.

    ninja

    Atau, gunakan CMake antarmuka generik untuk membangun aplikasi.

    cmake --build build-directory
    catatan

    Anda harus membuat file build dengan cmake perintah setiap kali Anda beralih antara aws_demos proyek dan aws_tests proyek.

Flash dan jalankan FreeRTOS (ESP-IDF v3.3)

Bagian ini menunjukkan cara menggunakan ESP-IDF v3.3 pada perangkat keras Espressif. Untuk menggunakan ESP-IDF v4.2, lihat. Memulai dengan ESP-IDF v4.2

Gunakan utilitas IDF Espressif (freertos/vendors/espressif/esp-idf/tools/idf.py) untuk mem-flash papan Anda, menjalankan aplikasi, dan melihat log.

Untuk menghapus flash papan, buka freertos direktori dan gunakan perintah berikut.

./vendors/espressif/esp-idf/tools/idf.py erase_flash -B build-directory

Untuk mem-flash biner aplikasi ke papan Anda, gunakan make

make flash

Anda juga dapat menggunakan skrip IDF untuk mem-flash papan Anda:

./vendors/espressif/esp-idf/tools/idf.py flash -B build-directory

Untuk memantau:

./vendors/espressif/esp-idf/tools/idf.py monitor -p /dev/ttyUSB1 -B build-directory
catatan

Anda dapat menggabungkan perintah ini. Misalnya:

./vendors/espressif/esp-idf/tools/idf.py erase_flash flash monitor -p /dev/ttyUSB1 -B build-directory

Memulai dengan ESP-IDF v4.2

Bagian ini menunjukkan cara menggunakan ESP-IDF v4.2 pada perangkat keras Espressif. Untuk menggunakan ESP-IDF v3.3, lihat. Memulai dengan ESP-IDF v3.3

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 ESP-WROVER-KIT pengembangan, 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.

Siapkan lingkungan pengembangan Anda

Untuk berkomunikasi dengan papan Anda, Anda harus mengunduh dan menginstal rantai alat.

Menyiapkan rantai alat

Untuk menyiapkan rantai alat, ikuti petunjuk berikut untuk sistem operasi mesin host Anda:

penting

Ketika Anda mencapai petunjuk “Dapatkan ESP-IDF” di bawah Langkah Berikutnya, berhenti, dan kemudian kembali ke petunjuk di halaman ini.

Selesaikan instalasi (Linux/macOS)

Installer Windows ESP-IDF menginstal semua alat yang diperlukan. Platform Linux dan macOS memerlukan langkah tambahan untuk menyelesaikan instalasi.

  1. Buka jendela baris perintah

  2. Arahkan ke direktori unduhan FreeRTOS, lalu jalankan skrip berikut untuk mengunduh dan menginstal rantai alat espressif untuk platform Anda.

    vendors/espressif/esp-idf/install.sh
  3. Tambahkan alat toolchain ESP-IDF 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 driver CP21 0x USB ke UART Bridge VCP. Anda dapat mengunduh driver ini dari Silicon Labs.

Untuk membuat koneksi serial antara mesin host Anda dan ESP32 -WROVER-KIT, Anda harus menginstal driver port COM virtual FTDI. Anda dapat mengunduh driver ini dari FTDI.

Untuk informasi selengkapnya, lihat Membangun Koneksi Serial dengan ESP32. Setelah Anda membuat koneksi serial, catat port serial untuk koneksi papan Anda. Anda membutuhkannya ketika Anda membangun demo.

Unduh dan konfigurasikan FreeRTOS

Setelah Anda mengatur lingkungan Anda, Anda dapat mengunduh FreeRTOS dari. GitHub Untuk instruksi, lihat file README.md di situs web. GitHub

Konfigurasikan aplikasi demo FreeRTOS

  1. Jika Anda menjalankan macOS atau Linux, buka prompt terminal. Jika Anda menjalankan Windows, bukamingw32.exe. (MinGW adalah lingkungan pengembangan minimalis untuk aplikasi Microsoft Windows asli.)

  2. 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.

  3. Anda memerlukan AWS Command Line Interface (AWS CLI) untuk menjalankan AWS IoT perintah. Jika Anda menjalankan Windows, gunakan easy_install awscli untuk menginstal AWS CLI di lingkungan mingw32.

    Jika Anda menjalankan macOS atau Linux, lihat Menginstal file. AWS CLI

  4. Jalankan .

    aws configure

    dan konfigurasikan AWS CLI dengan ID kunci AWS akses Anda, kunci akses rahasia, dan AWS Wilayah default. Untuk informasi selengkapnya, lihat Mengonfigurasi AWS CLI.

  5. Gunakan perintah berikut untuk menginstal AWS SDK untuk Python (boto3):

    • Di Windows, di lingkungan mingw32, jalankan

      easy_install boto3
    • Di macOS atau Linux, jalankan

      pip install tornado nose --user

      dan kemudian lari

      pip install boto3 --user

FreeRTOS menyertakan SetupAWS.py skrip untuk membuatnya lebih mudah untuk mengatur papan Espressif Anda untuk terhubung. AWS IoT Untuk mengkonfigurasi skrip, buka freertos/tools/aws_config_quick_start/configure.json dan atur atribut berikut:

afr_source_dir

Jalur lengkap ke freertos direktori di komputer Anda. Pastikan Anda menggunakan garis miring maju untuk menentukan jalur ini.

thing_name

Nama yang ingin Anda tetapkan untuk AWS IoT hal yang mewakili papan Anda.

wifi_ssid

SSID jaringan Wi-Fi Anda.

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(Keamanan WEP)

  • eWiFiSecurityWPA(Keamanan WPA)

  • eWiFiSecurityWPA2(WPA2 keamanan)

Untuk menjalankan skrip konfigurasi
  1. Jika Anda menjalankan macOS atau Linux, buka prompt terminal. Jika Anda menjalankan Windows, buka mingw32.exe file.

  2. Arahkan ke freertos/tools/aws_config_quick_start direktori dan jalankan

    python SetupAWS.py setup

Script melakukan hal berikut:

  • Membuat hal, sertifikat, dan kebijakan IoT

  • Melampirkan kebijakan IoT ke sertifikat dan sertifikat pada benda tersebut AWS IoT

  • Mengisi aws_clientcredential.h file dengan AWS IoT titik akhir, SSID Wi-Fi, dan kredensialnya

  • 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 selengkapnyaSetupAWS.py, lihat README.md di freertos/tools/aws_config_quick_start direktori.

Bangun, flash, dan jalankan proyek demo FreeRTOS menggunakan skrip idf.py

Anda dapat menggunakan utilitas IDF Espressif untuk menghasilkan file build, membangun biner aplikasi, dan mem-flash papan Anda.

Membangun dan mem-flash FreeRTOS di Windows, Linux, dan macOS (ESP-IDF v4.2)

Gunakan idf.py skrip 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
Untuk membangun dan mem-flash proyek
  1. Arahkan ke root direktori unduhan FreeRTOS Anda.

  2. Di jendela baris perintah, masukkan perintah berikut untuk menambahkan alat ESP-IDF ke PATH terminal Anda.

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux/macOS

    source vendors/espressif/esp-idf/export.sh
  3. 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.

  4. Hapus memori flash papan pengembangan Anda dengan perintah berikut.

    idf.py erase_flash
  5. Gunakan idf.py skrip untuk mem-flash biner aplikasi ke papan Anda.

    idf.py flash
  6. 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
catatan

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 FreeRTOS dengan CMake

Selain idf.py skrip yang disediakan oleh SDK IDF untuk membangun dan menjalankan kode Anda, Anda juga dapat membangun proyek dengan. CMake Saat ini, ia mendukung Unix Makefiles atau sistem build Ninja.

Untuk membangun dan mem-flash proyek
  1. Di jendela baris perintah, arahkan ke root direktori unduhan FreeRTOS Anda.

  2. Jalankan skrip berikut untuk menambahkan alat ESP-IDF ke PATH shell Anda.

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux/macOS

    source vendors/espressif/esp-idf/export.sh
  3. 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
  4. 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

Memantau pesan MQTT di cloud

Anda dapat menggunakan klien MQTT di AWS IoT konsol untuk memantau pesan yang dikirim perangkat Anda ke Cloud. AWS

Untuk berlangganan topik MQTT dengan klien MQTT AWS IoT
  1. Navigasikan ke konsol AWS IoT tersebut.

  2. Di panel navigasi, pilih Uji untuk membuka klien MQTT.

  3. Dalam Subscription topic, masukkanyour-thing-name/example/topic, lalu pilih Subscribe to topic.

Jalankan demo Bluetooth Low Energy

FreeRTOS mendukung konektivitas Bluetooth Low Energy.

Untuk menjalankan proyek demo FreeRTOS di Bluetooth Low Energy, Anda harus menjalankan Aplikasi Demo SDK Seluler FreeRTOS Bluetooth Low Energy di perangkat seluler iOS atau Android.

Untuk mengatur aplikasi demo SDK seluler FreeRTOS Bluetooth Low Energy
  1. Ikuti instruksi di Seluler SDKs untuk FreerTOS Perangkat Bluetooth untuk mengunduh dan menginstal SDK untuk platform seluler Anda di komputer host Anda.

  2. Ikuti petunjuk di FreeRTOS Bluetooth Low Energy Mobile SDK Demo Aplikasi untuk mengatur aplikasi seluler demo di perangkat seluler Anda.

Untuk petunjuk tentang cara menjalankan demo MQTT melalui Bluetooth Low Energy di papan Anda, lihat MQTT melalui Aplikasi Demo Energi Rendah Bluetooth.

Untuk petunjuk tentang cara menjalankan demo penyediaan Wi-Fi di papan tulis Anda, lihat Aplikasi Demo Penyediaan Wi-Fi.

Menggunakan FreeRTOS dalam proyek Anda sendiri untuk CMake ESP32

Jika Anda ingin menggunakan FreeRTOS dalam proyek Anda CMake sendiri, Anda dapat mengaturnya sebagai subdirektori dan membangunnya bersama dengan aplikasi Anda. Pertama, dapatkan salinan FreeRTOS dari. GitHub Anda juga dapat mengaturnya sebagai submodul Git dengan perintah berikut sehingga lebih mudah untuk memperbarui di masa mendatang.

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

Maka berikut ini adalah contoh CMakeLists.txt file tingkat atas yang dapat digunakan untuk membangun aplikasi Anda bersama dengan FreeRTOS.

ESP-IDF v3.3
cmake_minimum_required(VERSION 3.13) project(freertos_examples) add_executable(my_app src/main.c) # Tell IDF build to link against this target. 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::mqtt)
ESP-IDF v4.2
cmake_minimum_required(VERSION 3.13) project(freertos_examples) # Pull in ESP-IDF defined CMake build infrastructure logic to configure the project, discover all the components, etc set(esp_idf_dir "${CMAKE_CURRENT_LIST_DIR}/freertos/vendors/espressif/esp-idf") include(${esp_idf_dir}/tools/cmake/idf.cmake) # Tell IDF build to link against this target. set(IDF_PROJECT_EXECUTABLE my_app) get_filename_component( IDF_EXECUTABLE_SRCS "src/main.c" ABSOLUTE )

Untuk membangun proyek, jalankan CMake perintah berikut. Pastikan ESP32 compiler berada dalam variabel lingkungan PATH.

cmake -S . -B build-directory -DCMAKE_TOOLCHAIN_FILE=freertos/tools/cmake/toolchains/xtensa-esp32.cmake -GNinja
cmake --build build

Untuk mem-flash aplikasi ke papan Anda, jalankan perintah berikut.

cmake --build build-directory --target flash

Menggunakan komponen dari FreeRTOS

Setelah berjalan CMake, Anda dapat menemukan semua komponen yang tersedia dalam output ringkasan. Seharusnya terlihat seperti contoh berikut.

====================Configuration for FreeRTOS==================== Version: 201910.00 Git version: 201910.00-388-gcb3612cb7 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: ble, ble_hal, ble_wifi_provisioning, common, crypto, defender, dev_mode_key_provisioning, freertos_plus_tcp, greengrass, https, kernel, mqtt, ota, pkcs11, pkcs11_implementation, platform, secure_sockets, serializer, shadow, tls, wifi Enabled by user: ble, ble_hal, ble_wifi_provisioning, defender, greengrass, https, mqtt, ota, pkcs11, pkcs11_implementation, platform, secure_sockets, shadow, wifi Enabled by dependency: common, crypto, demo_base, dev_mode_key_provisioning, freertos, freertos_plus_tcp, kernel, pkcs11_mbedtls, secure_sockets_freertos_plus_tcp, serializer, tls, utils 3rdparty dependencies: http_parser, jsmn, mbedtls, pkcs11, tinycbor Available demos: demo_ble, demo_ble_numeric_comparison, demo_defender, demo_greengrass_connectivity, demo_https, demo_mqtt, demo_ota, demo_shadow, demo_tcp, demo_wifi_provisioning 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::mqttAFR::ota, dan sebagainya.

Tambahkan komponen khusus ke ESP-IDF

Anda dapat menambahkan lebih banyak komponen ke lingkungan build 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

maka berikut ini adalah contoh CMakeLists.txt file untuk komponen Anda.

ESP-IDF v3.3
# include paths of this components. set(COMPONENT_ADD_INCLUDEDIRS include) # source files of this components. set(COMPONENT_SRCDIRS src) # Alternatively, use COMPONENT_SRCS to specify source files explicitly # set(COMPONENT_SRCS src/example_component.c) # add this components, this will define a CMake library target. register_component()
ESP-IDF v4.2
# Use idf_component_register to add this component, this will define a CMake library target. # Specify component sources in SRCS. # Specify component include directories in INCLUDE_DIRS. idf_component_register(SRCS "src/foo.c" INCLUDE_DIRS "include") # Standard CMake function can be used to specify dependencies. ${COMPONENT_TARGET} is defined # from esp-idf when you call register_component, by default it's idf_component_<folder_name>. target_link_libraries(${COMPONENT_TARGET} PRIVATE AFR::mqtt)

Anda juga dapat menentukan dependensi menggunakan fungsi standar CMake . target_link_libraries Perhatikan bahwa nama target untuk komponen Anda disimpan dalam variabelCOMPONENT_TARGET, yang ditentukan oleh ESP-IDF.

ESP-IDF v3.3
# add this component, this will define a CMake library target. register_component() # standard CMake function can be used to specify dependencies. ${COMPONENT_TARGET} is defined # from esp-idf when you call register_component, by default it's idf_component_<folder_name>. target_link_libraries(${COMPONENT_TARGET} PRIVATE AFR::mqtt)
ESP-IDF v4.2
# add this component, this will define a CMake library target. idf_component_register(SRCS "src/foo.c" INCLUDE_DIRS "include") # standard CMake function can be used to specify dependencies. ${COMPONENT_TARGET} is defined # from esp-idf when you call register_component, by default it's idf_component_<folder_name>. target_link_libraries(${COMPONENT_TARGET} PRIVATE AFR::mqtt)

Untuk komponen ESP, ini dilakukan dengan menetapkan dua variabel COMPONENT_REQUIRES danCOMPONENT_PRIV_REQUIRES. Lihat Membangun Sistem (CMake) di Panduan Pemrograman ESP-IDF v4.2.

ESP-IDF v3.3
# If the dependencies are from ESP-IDF, use these 2 variables. Note these need to be # set before calling register_component(). set(COMPONENT_REQUIRES log) set(COMPONENT_PRIV_REQUIRES lwip)
ESP-IDF v4.2
# If the dependencies are from ESP-IDF, use these 2 variables (REQUIRES, PRIV_REQUIRES) # in the idf_component_register call: (Refer here for information on the # idf_component_register function: https://docs.espressif.com/projects/esp-idf/en/v4.2/esp32/api-guides/build-system.html#cmake-component-register) idf_component_register(SRCS "src/foo.c" INCLUDE_DIRS "include" REQUIRES log PRIV_REQUIRES lwip)

Kemudian, di CMakeLists.txt file tingkat atas, Anda memberi tahu ESP-IDF di mana menemukan komponen ini. Tambahkan baris berikut di mana saja sebelumnyaadd_subdirectory(freertos).

ESP-IDF v3.3
# 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})
ESP-IDF v4.2
# 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 ) idf_build_component(${EXTRA_COMPONENT_DIRS})

Komponen ini sekarang secara otomatis ditautkan ke kode aplikasi Anda secara default. Anda harus dapat memasukkan file header dan memanggil fungsi yang didefinisikan.

Ganti konfigurasi untuk FreeRTOS

Saat ini tidak ada pendekatan yang terdefinisi dengan baik untuk mendefinisikan ulang konfigurasi di luar pohon sumber FreerTos. Secara default, CMake akan mencari freertos/demos/include/ direktori freertos/vendors/espressif/boards/esp32/aws_demos/config_files/ dan. Namun, Anda dapat menggunakan solusi untuk memberi tahu kompiler agar mencari direktori lain terlebih dahulu. Misalnya, Anda dapat menambahkan folder lain untuk konfigurasi FreeRTOS.

- 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 freertos/demos/include/ direktori freertos/vendors/espressif/boards/esp32/aws_demos/config_files/ dan. Kemudian, di 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, FreeRTOS akan menggunakan file default yang terletak di. freertos/vendors/espressif/boards/esp32/aws_demos/sdkconfig.defaults

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.

ESP-IDF v3.3
cmake_minimum_required(VERSION 3.13) project(freertos_examples) add_executable(my_app 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::mqtt)
ESP-IDF v4.2
cmake_minimum_required(VERSION 3.13) project(freertos_examples) # Pull in ESP-IDF defined CMake build infrastructure logic to configure the project, discover all the components, etc set(esp_idf_dir "${CMAKE_CURRENT_LIST_DIR}/freertos/vendors/espressif/esp-idf") include(${esp_idf_dir}/tools/cmake/idf.cmake) # Tell IDF build to link against this target. set(IDF_PROJECT_EXECUTABLE my_app) get_filename_component( IDF_EXECUTABLE_SRCS "src/main.c" ABSOLUTE ) # Add some extra components. IDF_EXTRA_COMPONENT_DIRS is an variable used by ESP-IDF # to collect extra components. get_filename_component( EXTRA_COMPONENT_DIRS "components/foo" ABSOLUTE ) idf_build_component(${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::mqtt)

Untuk informasi selengkapnya tentang sistem build Espressif dengan CMake, lihat Membangun Sistem di Panduan API Espressif

Pemecahan Masalah

  • Jika Anda menjalankan macOS dan sistem operasi tidak mengenali Anda ESP-WROVER-KIT, pastikan Anda tidak menginstal driver D2XX. Untuk menghapus instalannya, ikuti petunjuk di Panduan Instalasi Driver FTDI untuk macOS X.

  • Utilitas monitor yang disediakan oleh ESP-IDF (dan dipanggil menggunakanmake 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 perangkat keras JTAG khusus. Untuk informasi selengkapnya, lihat Meluncurkan GDB dengan GDBStub di situs web Espressif.

  • Untuk informasi tentang pengaturan lingkungan berbasis OpenOCD jika debugging berbasis perangkat keras JTAG diperlukan, lihat JTAG Debugging di situs web Espressif.

  • Jika tidak pyserial dapat pip 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 menjalankanidf_monitor.py, gunakan Python 2.7.

  • Pustaka yang diperlukan dari ESP-IDF disertakan dalam FreeRTOS, jadi tidak perlu mengunduhnya secara eksternal. Jika variabel IDF_PATH lingkungan disetel, kami sarankan Anda menghapusnya sebelum Anda membangun FreeRTOS.

  • Di Windows, dibutuhkan waktu 3-4 menit untuk membangun proyek. Anda dapat menggunakan -j4 sakelar pada make perintah untuk mengurangi waktu pembuatan:

    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 FreeRTOS dalam proyek Anda sendiri untuk CMake 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-IDF v4.2.

    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 Pemecahan masalah memulai.

Debugging

Kode debugging pada Espressif ESP32 - DevKit C dan ESP-WROVER-KIT (ESP-IDF v3.3)

Bagian ini menunjukkan cara men-debug perangkat keras Espressif menggunakan ESP-IDF v3.3. Untuk men-debug menggunakan ESP-IDF v4.2, lihat. Kode debugging pada Espressif ESP32 - DevKit C dan ESP-WROVER-KIT (ESP-IDF v4.2)

Anda memerlukan kabel JTAG ke USB. Kami menggunakan kabel USB ke MPSSE (misalnya, FTDI C232HM-DDHSL-0).

Pengaturan ESP- DevKit C JTAG

Untuk kabel FTDI C232HM-DDHSL-0, ini adalah koneksi ke DevKitc. ESP32

Warna Kawat C232HM-DDHSL-0 ESP32 Pin GPIO Nama Sinyal JTAG

Coklat (pin 5)

IO14

TMS

Kuning (pin 3)

IO12

TDI

Hitam (pin 10)

GND

GND

Oranye (pin 2)

IO13

TCK

Hijau (pin 4)

IO15

TDO

ESP-WROVER-KIT Pengaturan JTAG

Untuk kabel FTDI C232HM-DDHSL-0, ini adalah koneksi ke -WROVER-KIT. ESP32

Warna Kawat C232HM-DDHSL-0 ESP32 Pin GPIO Nama Sinyal JTAG

Coklat (pin 5)

IO14

TMS

Kuning (pin 3)

IO12

TDI

Oranye (pin 2)

IO13

TCK

Hijau (pin 4)

IO15

TDO

Tabel ini dikembangkan dari lembar data FTDI C232HM-DDHSL-0. Untuk informasi lebih lanjut, lihat bagian “Koneksi Kabel MPSSE C232HM dan Detail Mekanik di lembar data.

Untuk mengaktifkan JTAG pada ESP-WROVER-KIT, tempatkan jumper pada pin TMS, TDO, TDI, TCK, dan S_TDI seperti yang ditunjukkan di sini.

Penempatan jumper

Debugging pada Windows (ESP-IDF v3.3)

Untuk mengatur debugging pada Windows
  1. Hubungkan sisi USB FTDI C232HM-DDHSL-0 ke komputer Anda dan sisi lain seperti yang dijelaskan dalam. Kode debugging pada Espressif ESP32 - DevKit C dan ESP-WROVER-KIT (ESP-IDF v3.3) Perangkat FTDI C232HM-DDHSL-0 akan muncul di Device Manager di bawah Universal Serial Bus Controllers.

  2. Di bawah daftar perangkat bus serial universal, klik kanan perangkat C232HM-DDHSL-0, dan pilih Properties.

    catatan

    Perangkat mungkin terdaftar sebagai Port Serial USB.

    Di jendela properti, pilih tab Detail untuk melihat properti perangkat. Jika perangkat tidak terdaftar, instal driver Windows untuk FTDI C232HM-DDHSL-0.

  3. 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 inprojects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. IDs Ini ditentukan dalam baris yang dimulai dengan ftdi_vid_pid diikuti oleh ID vendor dan ID produk.

    ftdi_vid_pid 0x0403 0x6014
  4. Unduh OpenOCD untuk Windows.

  5. Buka zip file ke C:\ dan tambahkan C:\openocd-esp32\bin ke jalur sistem Anda.

  6. OpenOCD membutuhkan libusb, yang tidak diinstal secara default pada Windows.

    Untuk menginstal libusb

    1. Unduh zadig.exe.

    2. Jalankan zadig.exe. Dari menu Opsi, pilih Daftar Semua Perangkat.

    3. Dari menu drop-down, pilih C232HM-DDHSL-0.

    4. Di bidang driver target, di sebelah kanan panah hijau, pilih WinUSB.

    5. Dari daftar dropdown di bawah bidang driver target, pilih panah, lalu pilih Install Driver. Pilih Ganti Driver.

  7. Buka command prompt, navigasikan ke projects/espressif/esp32/make/aws_demos dan jalankan perintah berikut.

    Untuk ESP32 -WROOM-32 dan -WROVER ESP32

    openocd.exe -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg

    Untuk ESP32 -SOLO-1

    openocd.exe -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg

    Biarkan command prompt ini terbuka.

  8. Buka prompt perintah baru, arahkan ke msys32 direktori Anda, dan jalankanmingw32.exe.

  9. Di terminal mingw32, navigasikan ke projects/espressif/esp32/make/aws_demos dan jalankan

    make flash monitor
  10. Buka terminal mingw32 lain, arahkan ke projects/espressif/esp32/make/aws_demos dan tunggu hingga demo mulai berjalan di papan Anda. Ketika itu terjadi, jalankanxtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf. Program harus berhenti dalam main fungsi.

catatan

ESP32 Mendukung maksimal dua break point.

Debugging di macOS (ESP-IDF v3.3)

  1. Unduh driver FTDI untuk macOS.

  2. Unduh OpenOCD.

  3. Ekstrak file.tar yang diunduh dan atur jalurnya .bash_profile keOCD_INSTALL_DIR/openocd-esp32/bin.

  4. Gunakan perintah berikut untuk menginstal libusb di macOS.

    brew install libusb
  5. Gunakan perintah berikut untuk membongkar driver port serial.

    sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
  6. 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
  7. Gunakan perintah berikut untuk mendapatkan ID produk dan ID vendor kabel FTDI. Ini mencantumkan perangkat USB 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)
  8. 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 dari system_profiler output pada langkah sebelumnya.

  9. Buka jendela terminal, navigasikan keprojects/espressif/esp32/make/aws_demos, dan gunakan perintah berikut untuk menjalankan OpenOCD.

    Untuk ESP32 -WROOM-32 dan -WROVER: ESP32

    openocd -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg

    Untuk ESP32 -SOLO-1:

    openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
  10. Buka terminal baru, dan gunakan perintah berikut untuk memuat driver port serial FTDI.

    sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
  11. Arahkan keprojects/espressif/esp32/make/aws_demos, dan jalankan perintah berikut.

    make flash monitor
  12. Buka terminal baru lainnya, arahkan keprojects/espressif/esp32/make/aws_demos, dan jalankan perintah berikut.

    xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf

    Program harus berhenti dimain().

Debugging di Linux (ESP-IDF v3.3)

  1. Unduh OpenOCD. Ekstrak tarball dan ikuti petunjuk penginstalan di file readme.

  2. Gunakan perintah berikut untuk menginstal libusb di Linux.

    sudo apt-get install libusb-1.0
  3. Buka terminal dan masukkan ls -l /dev/ttyUSB* untuk mencantumkan semua perangkat USB yang terhubung ke komputer Anda. Ini membantu Anda memeriksa apakah port USB 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
  4. Masuk dan kemudian masuk dan putar daya ke papan untuk membuat perubahan berlaku. Dalam prompt terminal, daftarkan perangkat USB. 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/ttyUSBnAntarmuka dengan angka yang lebih rendah digunakan untuk komunikasi JTAG. Antarmuka lainnya dirutekan ke ESP32 port serial (UART) dan digunakan untuk mengunggah kode ke memori flash ESP32.

  5. Di jendela terminal, navigasikan keprojects/espressif/esp32/make/aws_demos, dan gunakan perintah berikut untuk menjalankan OpenOCD.

    Untuk ESP32 -WROOM-32 dan -WROVER: ESP32

    openocd -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg

    Untuk ESP32 -SOLO-1:

    openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
  6. Buka terminal lain, arahkan keprojects/espressif/esp32/make/aws_demos, dan jalankan perintah berikut.

    make flash monitor
  7. Buka terminal lain, navigasikan keprojects/espressif/esp32/make/aws_demos, dan jalankan perintah berikut:

    xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf

    Program harus berhentimain().

Kode debugging pada Espressif ESP32 - DevKit C dan ESP-WROVER-KIT (ESP-IDF v4.2)

Bagian ini menunjukkan cara men-debug perangkat keras Espressif menggunakan ESP-IDF v4.2. Untuk men-debug menggunakan ESP-IDF v3.3, lihat. Kode debugging pada Espressif ESP32 - DevKit C dan ESP-WROVER-KIT (ESP-IDF v3.3)

Anda memerlukan kabel JTAG ke USB. Kami menggunakan kabel USB ke MPSSE (misalnya, FTDI C232HM-DDHSL-0).

Pengaturan ESP- DevKit C JTAG

Untuk kabel FTDI C232HM-DDHSL-0, ini adalah koneksi ke DevKitc. ESP32

Warna Kawat C232HM-DDHSL-0 ESP32 Pin GPIO Nama Sinyal JTAG

Coklat (pin 5)

IO14

TMS

Kuning (pin 3)

IO12

TDI

Hitam (pin 10)

GND

GND

Oranye (pin 2)

IO13

TCK

Hijau (pin 4)

IO15

TDO

ESP-WROVER-KIT Pengaturan JTAG

Untuk kabel FTDI C232HM-DDHSL-0, ini adalah koneksi ke -WROVER-KIT. ESP32

Warna Kawat C232HM-DDHSL-0 ESP32 Pin GPIO Nama Sinyal JTAG

Coklat (pin 5)

IO14

TMS

Kuning (pin 3)

IO12

TDI

Oranye (pin 2)

IO13

TCK

Hijau (pin 4)

IO15

TDO

Tabel ini dikembangkan dari lembar data FTDI C232HM-DDHSL-0. Untuk informasi lebih lanjut, lihat bagian “Koneksi Kabel MPSSE C232HM dan Detail Mekanik di lembar data.

Untuk mengaktifkan JTAG pada ESP-WROVER-KIT, tempatkan jumper pada pin TMS, TDO, TDI, TCK, dan S_TDI seperti yang ditunjukkan di sini.

Penempatan jumper

Debugging pada Windows (ESP-IDF v4.2)

Untuk mengatur debugging pada Windows
  1. Hubungkan sisi USB FTDI C232HM-DDHSL-0 ke komputer Anda dan sisi lain seperti yang dijelaskan dalam. Kode debugging pada Espressif ESP32 - DevKit C dan ESP-WROVER-KIT (ESP-IDF v4.2) Perangkat FTDI C232HM-DDHSL-0 akan muncul di Device Manager di bawah Universal Serial Bus Controllers.

  2. Di bawah daftar perangkat bus serial universal, klik kanan perangkat C232HM-DDHSL-0, dan pilih Properties.

    catatan

    Perangkat mungkin terdaftar sebagai Port Serial USB.

    Di jendela properti, pilih tab Detail untuk melihat properti perangkat. Jika perangkat tidak terdaftar, instal driver Windows untuk FTDI C232HM-DDHSL-0.

  3. 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 inprojects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. IDs Ini ditentukan dalam baris yang dimulai dengan ftdi_vid_pid diikuti oleh ID vendor dan ID produk.

    ftdi_vid_pid 0x0403 0x6014
  4. Unduh OpenOCD untuk Windows.

  5. Buka zip file ke C:\ dan tambahkan C:\openocd-esp32\bin ke jalur sistem Anda.

  6. OpenOCD membutuhkan libusb, yang tidak diinstal secara default pada Windows.

    Untuk menginstal libusb

    1. Unduh zadig.exe.

    2. Jalankan zadig.exe. Dari menu Opsi, pilih Daftar Semua Perangkat.

    3. Dari menu drop-down, pilih C232HM-DDHSL-0.

    4. Di bidang driver target, di sebelah kanan panah hijau, pilih WinUSB.

    5. Dari daftar dropdown di bawah bidang driver target, pilih panah, lalu pilih Install Driver. Pilih Ganti Driver.

  7. Buka prompt perintah, arahkan ke root direktori unduhan FreeRTOS Anda, dan jalankan perintah berikut.

    idf.py openocd

    Biarkan command prompt ini terbuka.

  8. Buka prompt perintah baru, arahkan ke root direktori unduhan FreeRTOS Anda, dan jalankan

    idf.py flash monitor
  9. Buka prompt perintah lain, arahkan ke root direktori unduhan FreeRTOS Anda, dan tunggu hingga demo mulai berjalan di papan Anda. Ketika itu terjadi, jalankan

    idf.py gdb

    Program harus berhenti dalam main fungsi.

catatan

ESP32 Mendukung maksimal dua break point.

Debugging di macOS (ESP-IDF v4.2)

  1. Unduh driver FTDI untuk macOS.

  2. Unduh OpenOCD.

  3. Ekstrak file.tar yang diunduh dan atur jalurnya .bash_profile keOCD_INSTALL_DIR/openocd-esp32/bin.

  4. Gunakan perintah berikut untuk menginstal libusb di macOS.

    brew install libusb
  5. Gunakan perintah berikut untuk membongkar driver port serial.

    sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
  6. 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
  7. Gunakan perintah berikut untuk mendapatkan ID produk dan ID vendor kabel FTDI. Ini mencantumkan perangkat USB 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)
  8. 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 dari system_profiler output pada langkah sebelumnya.

  9. Buka jendela terminal, arahkan ke root direktori unduhan FreeRTOS Anda, dan gunakan perintah berikut untuk menjalankan OpenOCD.

    idf.py openocd

    Biarkan jendela terminal ini terbuka.

  10. Buka terminal baru, dan gunakan perintah berikut untuk memuat driver port serial FTDI.

    sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
  11. Arahkan ke root direktori unduhan FreeRTOS Anda, dan jalankan

    idf.py flash monitor
  12. Buka terminal baru lainnya, arahkan ke root direktori unduhan FreeRTOS Anda, dan jalankan

    idf.py gdb

    Program harus berhenti dimain.

Debugging di Linux (ESP-IDF v4.2)

  1. Unduh OpenOCD. Ekstrak tarball dan ikuti petunjuk penginstalan di file readme.

  2. Gunakan perintah berikut untuk menginstal libusb di Linux.

    sudo apt-get install libusb-1.0
  3. Buka terminal dan masukkan ls -l /dev/ttyUSB* untuk mencantumkan semua perangkat USB yang terhubung ke komputer Anda. Ini membantu Anda memeriksa apakah port USB 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
  4. Masuk dan kemudian masuk dan putar daya ke papan untuk membuat perubahan berlaku. Dalam prompt terminal, daftarkan perangkat USB. 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/ttyUSBnAntarmuka dengan angka yang lebih rendah digunakan untuk komunikasi JTAG. Antarmuka lainnya dirutekan ke ESP32 port serial (UART) dan digunakan untuk mengunggah kode ke memori flash ESP32.

  5. Di jendela terminal, arahkan ke root direktori unduhan FreeRTOS Anda, dan gunakan perintah berikut untuk menjalankan OpenOCD.

    idf.py openocd
  6. Buka terminal lain, arahkan ke root direktori unduhan FreeRTOS Anda, dan jalankan perintah berikut.

    idf.py flash monitor
  7. Buka terminal lain, navigasikan root direktori unduhan FreeRTOS Anda, dan jalankan perintah berikut:

    idf.py gdb

    Program harus berhentimain().