Guida introduttiva all'Espressif ESP32 - DevKit C e al ESP-WROVER-KIT - FreeRTOS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Guida introduttiva all'Espressif ESP32 - DevKit C e al ESP-WROVER-KIT

Importante

Questa è una versione archiviata della FreeRTOS User Guide da utilizzare con la versione FreeRTOS 202012.00. Per l'ultima versione di questo documento, consulta la FreerTOS User Guide.

Segui questo tutorial per iniziare a usare Espressif ESP32 - DevKit C dotato dei moduli ESP32 -WROOM-32, -SOLO-1 o ESP-WROVER e il. ESP32 ESP-WROVER-KIT-VB Per acquistarne uno dal nostro partner sul catalogo Partner Device, utilizza i seguenti link: AWS

Queste versioni di schede di sviluppo sono supportate su FreerTOS.

Per ulteriori informazioni sulle ultime versioni di queste schede, vedere ESP32- DevKit C V4 o ESP-WROVER-KITv4.1 sul sito Web di Espressif.

Nota

Attualmente, la porta FreerTOS ESP32 per -WROVER-KIT ed DevKit ESP C non supporta la funzionalità Symmetric multiprocessing (SMP).

Panoramica

Questo tutorial descrive le seguenti procedure:

  1. Collegamento della scheda a una macchina host

  2. Installazione del software sulla macchina host per lo sviluppo e il debug di applicazioni integrate per la scheda microcontrollore

  3. Compilazione incrociata di un'applicazione demo FreerTOS su un'immagine binaria

  4. Caricamento dell'immagine binaria dell'applicazione sulla scheda e quindi esecuzione dell'applicazione

  5. Interazione con l'applicazione in esecuzione sulla scheda tramite una connessione seriale, per scopi di monitoraggio e debug

Prerequisiti

Prima di iniziare a usare FreerTOS sulla tua scheda Espressif, devi configurare il tuo account e le autorizzazioni. AWS

Iscriviti per un Account AWS

Se non ne hai uno Account AWS, completa i seguenti passaggi per crearne uno.

Per iscriverti a un Account AWS
  1. Apri la https://portal.aws.amazon.com/billing/registrazione.

  2. Segui le istruzioni online.

    Parte della procedura di registrazione prevede la ricezione di una telefonata o di un messaggio di testo e l'immissione di un codice di verifica sulla tastiera del telefono.

    Quando ti iscrivi a un Account AWS, Utente root dell'account AWSviene creato un. L'utente root dispone dell'accesso a tutte le risorse e tutti i Servizi AWS nell'account. Come best practice di sicurezza, assegna l'accesso amministrativo a un utente e utilizza solo l'utente root per eseguire attività che richiedono l'accesso di un utente root.

AWS ti invia un'email di conferma dopo il completamento della procedura di registrazione. In qualsiasi momento, puoi visualizzare l'attività corrente del tuo account e gestirlo accedendo a https://aws.amazon.com/e scegliendo Il mio account.

Crea un utente con accesso amministrativo

Dopo esserti registrato Account AWS, proteggi Utente root dell'account AWS AWS IAM Identity Center, abilita e crea un utente amministrativo in modo da non utilizzare l'utente root per le attività quotidiane.

Proteggi i tuoi Utente root dell'account AWS
  1. Accedi AWS Management Consolecome proprietario dell'account scegliendo Utente root e inserendo il tuo indirizzo Account AWS email. Nella pagina successiva, inserisci la password.

    Per informazioni sull'accesso utilizzando un utente root, consulta la pagina Signing in as the root user della Guida per l'utente di Accedi ad AWS .

  2. Abilita l'autenticazione a più fattori (MFA) per l'utente root.

    Per istruzioni, consulta Abilitare un dispositivo MFA virtuale per l'utente Account AWS root (console) nella Guida per l'utente IAM.

Crea un utente con accesso amministrativo
  1. Abilita Centro identità IAM.

    Per istruzioni, consulta Abilitazione di AWS IAM Identity Center nella Guida per l'utente di AWS IAM Identity Center .

  2. In IAM Identity Center, assegna l'accesso amministrativo a un utente.

    Per un tutorial sull'utilizzo di IAM Identity Center directory come fonte di identità, consulta Configurare l'accesso utente con l'impostazione predefinita IAM Identity Center directory nella Guida per l'AWS IAM Identity Center utente.

Accesso come utente amministratore
  • Per accedere con l'utente IAM Identity Center, utilizza l'URL di accesso che è stato inviato al tuo indirizzo e-mail quando hai creato l'utente IAM Identity Center.

    Per informazioni sull'accesso utilizzando un utente IAM Identity Center, consulta AWS Accedere al portale di accesso nella Guida per l'Accedi ad AWS utente.

Assegna l'accesso a ulteriori utenti
  1. In IAM Identity Center, crea un set di autorizzazioni conforme alla best practice dell'applicazione di autorizzazioni con il privilegio minimo.

    Segui le istruzioni riportate nella pagina Creazione di un set di autorizzazioni nella Guida per l'utente di AWS IAM Identity Center .

  2. Assegna al gruppo prima gli utenti e poi l'accesso con autenticazione unica (Single Sign-On).

    Per istruzioni, consulta Aggiungere gruppi nella Guida per l'utente di AWS IAM Identity Center .

Per fornire l'accesso, aggiungi autorizzazioni agli utenti, gruppi o ruoli:

  • Utenti e gruppi in AWS IAM Identity Center:

    Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina Create a permission set (Creazione di un set di autorizzazioni) nella Guida per l'utente di AWS IAM Identity Center .

  • Utenti gestiti in IAM tramite un provider di identità:

    Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate nella pagina Create a role for a third-party identity provider (federation) della Guida per l'utente IAM.

  • Utenti IAM:

Nota

La versione FreerTOS 202012.00 supporta ESP-IDF v3.3. Se stai usando una versione successiva di FreerTOS, segui le istruzioni specifiche IDFv4 al punto .2 all'indirizzo. Inizia con ESP-IDF v4.2

Inizia con ESP-IDF v3.3

Questa sezione mostra come utilizzare ESP-IDF v3.3 sull'hardware Espressif. Per utilizzare ESP-IDF v4.2, vedere. Inizia con ESP-IDF v4.2

Configurazione dell'hardware di Espressif

Per ulteriori informazioni sulla configurazione dell'hardware della scheda di sviluppo ESP32 - DevKit C, vedere la ESP32- DevKit C V4 Getting Started Guide.

Per informazioni sulla configurazione dell'hardware della scheda di ESP-WROVER-KIT sviluppo, vedere la Guida introduttiva alla ESP-WROVER-KITversione 4.1.

Importante

Quando arrivi alla sezione Guida introduttiva delle guide di Espressif, fermati e segui i passaggi seguenti.

Configurazione dell'ambiente di sviluppo

Per comunicare con la tua scheda, devi scaricare e installare una toolchain.

Configurazione della toolchain

Nota

ESP-IDF v3.3 non supporta l'ultima versione del compilatore. ESP32 Se è già stata installata la versione più recente del ESP32 compilatore, è necessario disinstallarla e utilizzare la versione compatibile del compilatore inclusa nell'installazione della toolchain. Consultate i collegamenti in questa sezione. Per controllare la versione del compilatore, esegui il seguente comando.

xtensa-esp32-elf-gcc --version

Per configurare la toolchain, segui queste istruzioni per il sistema operativo della tua macchina host:

Importante

Quando raggiungi le istruzioni «Scarica ESP-IDF» riportate nella sezione Passaggi successivi, interrompi e poi torna alle istruzioni riportate in questa pagina.

Se avete seguito le istruzioni «Scarica ESP-IDF» riportate nei passaggi successivi, proprio ora o in un'occasione precedente, è necessario cancellare la variabile di IDF_PATH ambiente dal sistema prima di continuare. Questa variabile di ambiente è stata impostata automaticamente se hai seguito le istruzioni «Get ESP-IDF».

Installa CMake

Il sistema di CMake build è necessario per creare la demo e le applicazioni di test di FreerTOS per questo dispositivo. FreerTOS supporta le versioni 3.13 e successive.

È possibile scaricare l'ultima versione di from.org. CMake CMake Sono disponibili sia il codice sorgente che la distribuzione binaria.

Per maggiori dettagli sull'utilizzo CMake con FreerTOS, consulta. Utilizzo CMake con FreerTOS

Stabilire una connessione seriale

Per stabilire una connessione seriale tra la macchina host e ESP32 - DevKit C, è necessario installare i driver CP21 VCP 0x USB to UART Bridge. È possibile scaricare i driver da Silicon Labs.

Per stabilire una connessione seriale tra la macchina host e ESP32 -WROVER-KIT, è necessario installare alcuni driver di porta COM virtuale FTDI. Puoi scaricare tali driver da FTDI.

Per ulteriori informazioni, vedere Stabilire una connessione seriale con. ESP32 Dopo aver stabilito una connessione seriale, annotare la porta seriale per la connessione della scheda. Tale informazione sarà necessaria durante il processo di creazione della demo.

Scarica e configura FreerTOS

Dopo aver configurato l'ambiente, puoi scaricare FreerTOS GitHubda .Per istruzioni, consulta il file README.md sul sito web. GitHub

Configura le applicazioni demo FreerTOS

  1. Se utilizzi macOS o Linux, apri un prompt del terminale. Se utilizzi Windows, apri il. mingw32.exe MinGW è un ambiente di sviluppo minimalista per applicazioni native di Microsoft Windows.

  2. Per verificare che Python 2.7.10 o versione successiva sia installato, esegui

    python --version

    Viene visualizzata la versione installata. Se non avete installato Python 2.7.10 o versioni successive, potete installarlo dal sito Web di Python.

  3. È necessario il AWS Command Line Interface (AWS CLI) per eseguire i comandi. AWS IoT Se utilizzi Windows, usa il easy_install awscli per installarlo AWS CLI nell'ambiente mingw32.

    Se utilizzi macOS o Linux, consulta Installazione di. AWS CLI

  4. aws configureEseguili e configurali AWS CLI con l'ID della chiave di AWS accesso, la chiave di accesso segreta e la AWS regione. Per ulteriori informazioni, consultare la pagina relativa alla configurazione di AWS CLI.

  5. Usa il seguente comando per installare l' AWS SDK per Python (boto3):

    • Su Windows, nell'ambiente mingw32, esegui

      easy_install boto3
    • Su macOS o Linux, esegui

      pip install tornado nose --user

      e poi esegui

      pip install boto3 --user

FreerTOS include lo script per semplificare SetupAWS.py la configurazione della scheda Espressif a cui connettersi. AWS IoT Per configurare lo script, apri freertos/tools/aws_config_quick_start/configure.json e imposta i seguenti attributi:

afr_source_dir

Il percorso completo della directory freertos sul computer. Assicurarsi di utilizzare le barre per specificare questo percorso.

thing_name

Il nome che vuoi assegnare all'oggetto che rappresenta la AWS IoT tua scheda.

wifi_ssid

Il SSID della rete Wi-Fi.

wifi_password

La password della rete Wi-Fi.

wifi_security

Il tipo di sicurezza della rete Wi-Fi.

I seguenti sono tipi di sicurezza validi:

  • eWiFiSecurityOpen (Aperto, nessuna protezione)

  • eWiFiSecurityWEP (Sicurezza WEP)

  • eWiFiSecurityWPA (Sicurezza WPA)

  • eWiFiSecurityWPA2(WPA2 sicurezza)

Per eseguire lo script di configurazione
  1. Se utilizzi macOS o Linux, apri un prompt del terminale. Se usi Windows, apri. mingw32.exe

  2. Vai alla freertos/tools/aws_config_quick_start directory ed esegui

    python SetupAWS.py setup

Lo script svolge le seguenti funzioni:

  • Crea un oggetto, un certificato e una policy IoT

  • Collega la policy IoT al certificato e il certificato all'oggetto AWS IoT

  • Compila il aws_clientcredential.h file con l' AWS IoT endpoint, l'SSID Wi-Fi e le credenziali

  • Formatta il certificato e la chiave privata e li scrive nel file di intestazione aws_clientcredential_keys.h

    Nota

    Il certificato è codificato solo a scopo dimostrativo. Le applicazioni a livello di produzione devono archiviare questi file in un percorso sicuro.

Per ulteriori informazioni in meritoSetupAWS.py, vedere README.md nella directory. freertos/tools/aws_config_quick_start

Crea, esegui il flashing ed esegui il progetto demo FreerTOS

Puoi usare CMake per generare i file di build, Make per creare il file binario dell'applicazione e l'utilità IDF di Espressif per eseguire il flashing della scheda.

Crea FreerTOS su Linux e macOS (ESP-IDF v3.3)

Se usi Windows, vedi. Crea FreerTOS su Windows (ESP-IDF v3.3)

CMake Utilizzatelo per generare i file di compilazione, quindi utilizzate Make per creare l'applicazione.

Per generare i file di build dell'applicazione demo con CMake
  1. Cambia le directory nella cartella principale della cartella di download di FreerTOS.

  2. Usa il seguente comando per generare i file di build.

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

    Se si desidera creare l'applicazione per il debug, aggiungere il flag -DCMAKE_BUILD_TYPE=Debug al comando.

    Se si desidera generare i file compilati dell'applicazione di test, aggiungere il flag -DAFR_ENABLE_TESTS=1.

    Il codice fornito da Espressif utilizza lo stack IP leggero (IwIP) come stack di rete predefinito. Per utilizzare invece lo stack di rete FreeRTOS+TCP, aggiungi il flag al comando. –DAFR_ESP_FREERTOS_TCP CMake

    Per aggiungere la dipendenza LWip per il codice fornito non dal fornitore, aggiungi le seguenti righe al file CMakeLists.txt delle dipendenze, per CMake il tuo componente Wi-Fi personalizzato.

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
Per compilare l'applicazione con Make
  1. Passare alla directory build.

  2. Usa il comando seguente per creare l'applicazione con Make.

    make all -j4
    Nota

    È necessario generare i file compilati con il comando cmake ogni volta che si passa dal progetto aws_demos al progetto aws_tests.

Crea FreerTOS su Windows (ESP-IDF v3.3)

Su Windows, è necessario specificare un generatore di build per. CMake Altrimenti, il CMake valore predefinito è Visual Studio. Espressif consiglia ufficialmente il sistema di compilazione Ninja perché funziona in Windows, Linux e MacOS. È necessario eseguire CMake i comandi in un ambiente Windows nativo come cmd o. PowerShell L'esecuzione di CMake comandi in un ambiente Linux virtuale, ad esempio MSYS2 o WSL, non è supportata.

CMake Utilizzatelo per generare i file di compilazione, quindi utilizzate Make per creare l'applicazione.

Per generare i file di build dell'applicazione demo con CMake
  1. Cambia le directory nella cartella principale della cartella di download di FreerTOS.

  2. Usa il seguente comando per generare i file di build.

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

    Se si desidera creare l'applicazione per il debug, aggiungere il flag -DCMAKE_BUILD_TYPE=Debug al comando.

    Se si desidera generare i file compilati dell'applicazione di test, aggiungere il flag -DAFR_ENABLE_TESTS=1.

    Il codice fornito da Espressif utilizza lo stack IP leggero (IwIP) come stack di rete predefinito. Per utilizzare invece lo stack di rete FreeRTOS+TCP, aggiungi il flag al comando. –DAFR_ESP_FREERTOS_TCP CMake

    Per aggiungere la dipendenza LWip per il codice fornito non dal fornitore, aggiungi le seguenti righe al file CMakeLists.txt delle dipendenze, per CMake il tuo componente Wi-Fi personalizzato.

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
Per compilare l'applicazione
  1. Passare alla directory build.

  2. Invoca Ninja per creare l'applicazione.

    ninja

    Oppure, usa l' CMake interfaccia generica per creare l'applicazione.

    cmake --build build-directory
    Nota

    È necessario generare i file compilati con il comando cmake ogni volta che si passa dal progetto aws_demos al progetto aws_tests.

Esegui il flashing ed esegui FreerTOS (ESP-IDF v3.3)

Questa sezione mostra come utilizzare ESP-IDF v3.3 sull'hardware Espressif. Per utilizzare ESP-IDF v4.2, vedere. Inizia con ESP-IDF v4.2

Utilizza la utilità IDF di Espressif (freertos/vendors/espressif/esp-idf/tools/idf.py) per eseguire il flashing della scheda, eseguire l'applicazione e visualizzare i log.

Per cancellare il flash della scheda, vai alla freertos directory e usa il seguente comando.

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

Per eseguire il flashing del file binario dell'applicazione sulla tua scheda, usa make

make flash

È inoltre possibile utilizzare lo script IDF per eseguire il flashing della scheda:

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

Per monitorare:

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

È possibile combinare questi comandi. Per esempio:

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

Inizia con ESP-IDF v4.2

Questa sezione mostra come utilizzare ESP-IDF v4.2 sull'hardware Espressif. Per utilizzare ESP-IDF v3.3, vedere. Inizia con ESP-IDF v3.3

Nota

I comandi Linux in questo tutorial richiedono l'uso della shell Bash.

Configurazione dell'hardware di Espressif

Per informazioni sulla configurazione dell'hardware della scheda di sviluppo ESP32 - DevKit C, consultate la ESP32- Guida introduttiva di DevKit C V4.

Per informazioni sulla configurazione dell'hardware della scheda di ESP-WROVER-KIT sviluppo, vedere la Guida introduttiva alla ESP-WROVER-KIT V4.1.

Importante

Quando arrivi alla sezione Guida introduttiva delle guide di Espressif, fermati e poi torna alle istruzioni in questa pagina.

Configurazione dell'ambiente di sviluppo

Per comunicare con la tua scheda, devi scaricare e installare una toolchain.

Configurazione della toolchain

Per configurare la toolchain, segui queste istruzioni per il sistema operativo della tua macchina host:

Importante

Quando raggiungi le istruzioni «Scarica ESP-IDF» riportate nella sezione Passaggi successivi, interrompi e torna alle istruzioni riportate in questa pagina.

Completa l'installazione (Linux/macOS)

Il programma di installazione di ESP-IDF per Windows installa tutti gli strumenti necessari. Le piattaforme Linux e macOS richiedono un passaggio aggiuntivo per completare l'installazione.

  1. Aprire una finestra della riga di comando

  2. Vai alla directory di download di FreerTOS, quindi esegui lo script seguente per scaricare e installare la toolchain espressif per la tua piattaforma.

    vendors/espressif/esp-idf/install.sh
  3. Aggiungi gli strumenti della toolchain ESP-IDF al percorso del tuo terminale con il seguente comando.

    source vendors/espressif/esp-idf/export.sh

Stabilire una connessione seriale

Per stabilire una connessione seriale tra la macchina host e ESP32 - DevKit C, è necessario installare i driver CP21 VCP 0x USB to UART Bridge. È possibile scaricare i driver da Silicon Labs.

Per stabilire una connessione seriale tra la macchina host e ESP32 -WROVER-KIT, è necessario installare il driver della porta COM virtuale FTDI. È possibile scaricare questo driver da FTDI.

Per ulteriori informazioni, vedere Stabilire una connessione seriale con ESP32. Dopo aver stabilito una connessione seriale, annotare la porta seriale per la connessione della scheda. Tale informazione sarà necessaria durante il processo di creazione della demo.

Scarica e configura FreerTOS

Dopo aver configurato il tuo ambiente, puoi scaricare FreerTOS da. GitHub Per istruzioni, consultate il file README.md sul sito Web. GitHub

Configura le applicazioni demo FreerTOS

  1. Se utilizzi macOS o Linux, apri un prompt del terminale. Se usi Windows, apri. mingw32.exe (MinGW è un ambiente di sviluppo minimalista per applicazioni Microsoft Windows native.)

  2. Per verificare che Python3 sia installato, esegui

    python --version

    Viene visualizzata la versione installata. Se non avete installato Python 3.0.1 o versioni successive, potete installarlo dal sito Web di Python.

  3. È necessario il AWS Command Line Interface (AWS CLI) per eseguire i comandi. AWS IoT Se utilizzi Windows, usa il easy_install awscli per installarlo AWS CLI nell'ambiente mingw32.

    Se utilizzi macOS o Linux, consulta Installazione di. AWS CLI

  4. Esecuzione

    aws configure

    e configurali AWS CLI con l'ID della chiave di AWS accesso, la chiave di accesso segreta e la AWS regione predefinita. Per ulteriori informazioni, consultare la pagina relativa alla configurazione di AWS CLI.

  5. Usa il seguente comando per installare l' AWS SDK per Python (boto3):

    • Su Windows, nell'ambiente mingw32, esegui

      easy_install boto3
    • Su macOS o Linux, esegui

      pip install tornado nose --user

      e poi esegui

      pip install boto3 --user

FreerTOS include lo script per semplificare SetupAWS.py la configurazione della scheda Espressif a cui connettersi. AWS IoT Per configurare lo script, apri freertos/tools/aws_config_quick_start/configure.json e imposta i seguenti attributi:

afr_source_dir

Il percorso completo della directory freertos sul computer. Assicurarsi di utilizzare le barre per specificare questo percorso.

thing_name

Il nome che vuoi assegnare all'oggetto che rappresenta la AWS IoT tua scheda.

wifi_ssid

Il SSID della rete Wi-Fi.

wifi_password

La password della rete Wi-Fi.

wifi_security

Il tipo di sicurezza della rete Wi-Fi.

I seguenti sono tipi di sicurezza validi:

  • eWiFiSecurityOpen (Aperto, nessuna protezione)

  • eWiFiSecurityWEP (Sicurezza WEP)

  • eWiFiSecurityWPA (Sicurezza WPA)

  • eWiFiSecurityWPA2(WPA2 sicurezza)

Per eseguire lo script di configurazione
  1. Se utilizzi macOS o Linux, apri un prompt del terminale. Se usi Windows, apri il mingw32.exe file.

  2. Vai alla freertos/tools/aws_config_quick_start directory ed esegui

    python SetupAWS.py setup

Lo script svolge le seguenti funzioni:

  • Crea un oggetto, un certificato e una policy IoT

  • Collega la policy IoT al certificato e il certificato all'oggetto AWS IoT

  • Compila il aws_clientcredential.h file con l' AWS IoT endpoint, l'SSID Wi-Fi e le credenziali

  • Formatta il certificato e la chiave privata e li scrive nel file di intestazione aws_clientcredential_keys.h

    Nota

    Il certificato è codificato solo a scopo dimostrativo. Le applicazioni a livello di produzione devono archiviare questi file in un percorso sicuro.

Per ulteriori informazioni in meritoSetupAWS.py, vedere README.md nella directory. freertos/tools/aws_config_quick_start

Compila, esegui il flashing ed esegui il progetto demo FreerTOS utilizzando lo script idf.py

Puoi usare l'utilità IDF di Espressif per generare i file di build, creare il binario dell'applicazione e aggiornare la tua scheda.

Crea ed esegui il flashing di FreerTOS su Windows, Linux e macOS (ESP-IDF v4.2)

Usa idf.py lo script per creare il progetto ed esegui il flashing dei file binari sul tuo dispositivo.

Nota

Alcune configurazioni potrebbero richiedere l'utilizzo dell'opzione port "-p port-name" with idf.py per specificare la porta corretta, come nell'esempio seguente.

idf.py -p /dev/cu.usbserial-00101301B flash
Per creare e aggiornare il progetto
  1. Vai alla directory principale della tua cartella di download di FreerTOS.

  2. In una finestra della riga di comando, inserisci il seguente comando per aggiungere gli strumenti ESP-IDF al PATH del tuo terminale.

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux/ macOS

    source vendors/espressif/esp-idf/export.sh
  3. Configura cmake nella build directory e crea l'immagine del firmware con il seguente comando.

    idf.py -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 build

    L'output restituito dovrebbe essere simile al seguente.

    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'

    Se non ci sono errori, la build genererà i file.bin binari del firmware.

  4. Cancellate la memoria flash della scheda di sviluppo con il seguente comando.

    idf.py erase_flash
  5. Usa idf.py lo script per eseguire il flashing del file binario dell'applicazione sulla tua scheda.

    idf.py flash
  6. Monitora l'uscita dalla porta seriale della scheda con il seguente comando.

    idf.py monitor
Nota

È possibile combinare questi comandi come nell'esempio seguente.

idf.py erase_flash flash monitor
Nota

Per alcune configurazioni della macchina host, è necessario specificare la porta quando si esegue il flashing della scheda, come nell'esempio seguente.

idf.py erase_flash flash monitor -p /dev/ttyUSB1

Crea ed esegui il flashing di FreerTOS con CMake

Oltre allo idf.py script fornito dall'IDF SDK per creare ed eseguire il codice, puoi anche creare il progetto con. CMake Attualmente supporta Unix Makefiles o il sistema di build Ninja.

Per creare e aggiornare il progetto
  1. In una finestra a riga di comando, vai alla radice della tua directory di download di FreerTOS.

  2. Esegui lo script seguente per aggiungere gli strumenti ESP-IDF al PATH della tua shell.

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux/ macOS

    source vendors/espressif/esp-idf/export.sh
  3. Immettete il seguente comando per generare i file di build.

    Con 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

    Con 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. Cancella il flash e poi fai lampeggiare la lavagna.

    Con Unix Makefiles

    make -C ./YOUR_BUILD_DIRECTORY erase_flash
    make -C ./YOUR_BUILD_DIRECTORY flash

    Con Ninja

    ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
    ninja -C ./YOUR_BUILD_DIRECTORY flash

Monitoraggio dei messaggi MQTT in cloud

Puoi utilizzare il client MQTT nella AWS IoT console per monitorare i messaggi che il tuo dispositivo invia al AWS Cloud.

Per abbonarsi all'argomento MQTT con il client MQTT AWS IoT
  1. Passare alla console AWS IoT.

  2. Nel riquadro di navigazione scegliere Test per aprire il client MQTT.

  3. In Argomento sottoscrizione, digitare your-thing-name/example/topic, quindi scegliere Effettua sottoscrizione all'argomento.

Esecuzione delle demo Bluetooth Low-Energy

FreerTOS supporta la connettività Bluetooth Low Energy.

Per eseguire il progetto demo FreerTOS su Bluetooth Low Energy, è necessario eseguire l'applicazione demo FreerTOS Bluetooth Low Energy Mobile SDK su un dispositivo mobile iOS o Android.

Per configurare l'applicazione demo SDK mobile FreerTOS Bluetooth Low Energy
  1. Segui le istruzioni in Mobile SDKs for FreerTOS Bluetooth Devices per scaricare e installare l'SDK per la tua piattaforma mobile sul tuo computer host.

  2. Segui le istruzioni nell'applicazione demo FreerTOS Bluetooth Low Energy Mobile SDK per configurare l'applicazione mobile demo sul tuo dispositivo mobile.

Per istruzioni su come eseguire la demo MQTT su Bluetooth Low Energy sulla scheda, consulta l'applicazione demo MQTT su Bluetooth Low Energy.

Per istruzioni su come eseguire la demo Provisioning Wi-Fi sulla scheda, consulta l'applicazione demo Provisioning Wi-Fi.

Usare FreerTOS nel proprio progetto per CMake ESP32

Se vuoi utilizzare FreerTOS nel CMake tuo progetto, puoi configurarlo come sottodirectory e crearlo insieme alla tua applicazione. Per prima cosa, procurati una copia di FreerTOS da. GitHub Puoi anche configurarlo come sottomodulo Git con il seguente comando in modo che sia più facile aggiornarlo in futuro.

git submodule add -b release https://github.com/aws/amazon-freertos.git freertos

Se viene rilasciata una versione successiva, puoi aggiornare la tua copia locale con questi comandi.

# 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"

Se il progetto ha la seguente struttura di cartelle:

- freertos (the copy that you obtained from GitHub or the AWS IoT console) - src - main.c (your application code) - CMakeLists.txt

Quindi quello che segue è un esempio del CMakeLists.txt file di primo livello che può essere usato per creare la tua applicazione insieme a 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 )

Per creare il progetto, esegui i seguenti comandi. CMake Assicurati che il ESP32 compilatore sia nella variabile di ambiente PATH.

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

Per eseguire il flashing dell'applicazione sulla scheda, esegui il comando seguente.

cmake --build build-directory --target flash

Utilizzo di componenti di FreerTOS

Dopo l'esecuzione CMake, puoi trovare tutti i componenti disponibili nell'output di riepilogo. Dovrebbe assomigliare all'esempio seguente.

====================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: =========================================================================

È possibile fare riferimento a qualsiasi componente dall'Modules to buildelenco. Per collegarli all'applicazione, inserite lo spazio dei AFR:: nomi davanti al nome, ad esempio AFR::mqttAFR::ota, e così via.

Aggiungi componenti personalizzati a ESP-IDF

È possibile aggiungere altri componenti all'ambiente di compilazione ESP-IDF. Ad esempio, supponiamo che vogliate aggiungere un componente chiamato example_component e che il vostro progetto abbia questo aspetto

- freertos - components - example_component - include - example_component.h - src - example_component.c - CMakeLists.txt - src - main.c - CMakeLists.txt

quindi il seguente è un esempio del CMakeLists.txt file per il componente.

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)

È inoltre possibile specificare le dipendenze utilizzando la CMake funzione target_link_libraries standard. Si noti che il nome di destinazione per il componente è memorizzato nella variabile COMPONENT_TARGET, definita da 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)

Per i componenti ESP, ciò avviene impostando due variabili COMPONENT_REQUIRES e. COMPONENT_PRIV_REQUIRES Vedi Build System (CMake) nella Guida alla programmazione 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)

Quindi, nel file CMakeLists.txt di livello superiore, indicare a ESP-IDF dove trovare questi componenti. Aggiungete prima le righe seguenti in qualsiasi punto. add_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})

Questo componente è ora automaticamente collegato al codice dell'applicazione per impostazione predefinita. Dovresti essere in grado di includere i relativi file di intestazione e chiamare le funzioni che definisce.

Sovrascrivi le configurazioni per FreerTOS

Al momento non esiste un approccio ben definito per ridefinire le configurazioni al di fuori dell'albero dei sorgenti di FreerTOS. Per impostazione predefinita, CMake cercherà le directory and. freertos/vendors/espressif/boards/esp32/aws_demos/config_files/ freertos/demos/include/ Tuttavia, è possibile utilizzare una soluzione alternativa per indicare al compilatore di cercare prima altre directory. Ad esempio, puoi aggiungere un'altra cartella per le configurazioni di FreerTOS.

- freertos - freertos-configs - aws_clientcredential.h - aws_clientcredential_keys.h - iot_mqtt_agent_config.h - iot_config.h - components - src - CMakeLists.txt

I file in freertos-configs vengono copiati dalle directory freertos/vendors/espressif/boards/esp32/aws_demos/config_files/ e freertos/demos/include/. Quindi, nel CMakeLists.txt file di primo livello, aggiungi prima questa riga add_subdirectory(freertos) in modo che il compilatore cerchi prima questa directory.

include_directories(BEFORE freertos-configs)

Fornire il file sdkconfig per ESP-IDF

Nel caso in cui desideri fornire la tuasdkconfig.default, puoi impostare la CMake variabile IDF_SDKCONFIG_DEFAULTS dalla riga di comando:

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

Se non specifichi una posizione per il tuo sdkconfig.default file, FreerTOS utilizzerà il file predefinito che si trova in. freertos/vendors/espressif/boards/esp32/aws_demos/sdkconfig.defaults

Riepilogo

Se hai un progetto con un componente denominato example_component, e vuoi sovrascrivere alcune configurazioni, ecco un esempio completo del file CMakeLists.txt di livello superiore.

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)

Per ulteriori informazioni sul sistema di compilazione Espressif con CMake, consulta Build System nelle guide alle API di Espressif

Risoluzione dei problemi

  • Se utilizzi macOS e il sistema operativo non riconosce il tuo ESP-WROVER-KIT, assicurati di non avere i driver D2XX installati. Per disinstallarli, segui le istruzioni contenute in FTDI Drivers Installation Guide for macOS X (Guida per l'installazione dei driver FTDI per macOS X).

  • L'utility di monitoraggio fornita da ESP-IDF (e richiamata utilizzando make monitor) consente di decodificare gli indirizzi. Per questo motivo, può aiutarti a ottenere alcuni backtrace significativi nel caso in cui l'applicazione smetta di funzionare. Per ulteriori informazioni, consulta Automatic Address Decoding sul sito web di Espressif.

  • È anche possibile abilitare GDBstub la comunicazione con gdb senza richiedere alcun hardware JTAG speciale. Per maggiori informazioni, consulta Launching GDB with GDBStub sul sito web di Espressif.

  • Per informazioni sulla configurazione di un ambiente basato su OpenOCD se è necessario il debug basato su hardware JTAG, vedere JTAG Debugging sul sito Web di Espressif.

  • Se non pyserial può essere pip installato utilizzando macOS, scaricalo dal sito Web pyserial.

  • Se la scheda si resetta continuamente, prova a cancellare il flash inserendo il seguente comando sul terminale.

    make erase_flash
  • Se riscontri errori quando esegui idf_monitor.py, utilizza Python 2.7.

  • Le librerie richieste da ESP-IDF sono incluse in FreerTOS, quindi non è necessario scaricarle esternamente. Se la variabile di IDF_PATH ambiente è impostata, ti consigliamo di cancellarla prima di creare FreerTOS.

  • In Windows, la creazione del progetto può richiedere 3-4 minuti. Puoi utilizzare lo switch -j4 sul comando make per ridurre il tempo di creazione:

    make flash monitor -j4
  • Se il dispositivo ha problemi di connessione AWS IoT, apri il aws_clientcredential.h file e verifica che le variabili di configurazione siano definite correttamente nel file. clientcredentialMQTT_BROKER_ENDPOINT[]dovrebbe assomigliare a1234567890123-ats.iot.us-east-1.amazonaws.com.

  • Se stai seguendo la procedura descritta in Usare FreerTOS nel proprio progetto per CMake ESP32 e visualizzi errori di riferimento non definiti dal linker, in genere è dovuto alla mancanza di librerie dipendenti o demo. Per aggiungerli, aggiorna il CMakeLists.txt file (nella directory principale) usando la CMake funzione standardtarget_link_libraries.

  • ESP-IDF v4.2 supporta l'uso di xtensa-esp32-elf-gcc 8.2.0. toolchain. Se utilizzi una versione precedente della toolchain Xtensa, scarica la versione richiesta.

  • Se vedi un registro degli errori come il seguente sulle dipendenze di Python che non vengono soddisfatte per 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

    Installa le dipendenze python sulla tua piattaforma usando il seguente comando Python:

    root/vendors/espressif/esp-idf/requirements.txt

Per ulteriori informazioni sulla risoluzione dei problemi, vedere. Nozioni di base sulla risoluzione dei problemi

Debug

Codice di debug su Espressif ESP32 - DevKit C e (ESP-IDF v3.3) ESP-WROVER-KIT

Questa sezione mostra come eseguire il debug dell'hardware Espressif utilizzando ESP-IDF v3.3. Per eseguire il debug utilizzando ESP-IDF v4.2, vedere. Codice di debug su Espressif ESP32 - DevKit C e (ESP-IDF v4.2) ESP-WROVER-KIT

È necessario un cavo da JTAG a USB. Usiamo un cavo da USB a MPSSE (per esempio, il FTDI C232HM-DDHSL-0).

Configurazione ESP-C JTAG DevKit

Per il cavo FTDI C232HM-DDHSL-0, queste sono le connessioni al devKitC. ESP32

C232HM-DDHSL-0 Wire Color ESP32 Pin GPIO JTAG Signal Name

Brown (pin 5)

IO14

TMS

Yellow (pin 3)

IO12

TDI

Black (pin 10)

GND

GND

Orange (pin 2)

IO13

TCK

Verde (pin 4)

IO15

TDO

ESP-WROVER-KIT Configurazione JTAG

Per il cavo FTDI C232HM-DDHSL-0, queste sono le connessioni al -WROVER-KIT. ESP32

C232HM-DDHSL-0 Wire Color ESP32 Pin GPIO JTAG Signal Name

Brown (pin 5)

IO14

TMS

Yellow (pin 3)

IO12

TDI

Orange (pin 2)

IO13

TCK

Verde (pin 4)

IO15

TDO

Queste tabelle sono state sviluppate dalla scheda tecnica FTDI C232HM-DDHSL-0. Per ulteriori informazioni, vedere la sezione «Connessione via cavo MPSSE C232HM e dettagli meccanici» nella scheda tecnica.

Per abilitare JTAG su ESP-WROVER-KIT, posizionate i ponticelli sui pin TMS, TDO, TDI, TCK e S_TDI come mostrato qui.

Posizionamento dei ponticelli

Debug su Windows (ESP-IDF v3.3)

Per configurare il debug su Windows
  1. Collegare il lato USB di FTDI C232HM-DDHSL-0 sul tuo computer e sull'altro lato come descritto in Codice di debug su Espressif ESP32 - DevKit C e (ESP-IDF v3.3) ESP-WROVER-KIT. Il dispositivo FTDI C232HM-DDHSL-0 deve essere visualizzato in Device Manager (Gestione dispositivi) in Universal Serial Bus Controllers (Controller bus seriale universale).

  2. Nell'elenco dei dispositivi USB, fare clic con il tasto destro sul dispositivo C232HM-DDHSL-0 e selezionare Properties (Proprietà).

    Nota

    Il dispositivo potrebbe essere elencato come USB Serial Port (Porta seriale USB).

    Nella finestra proprietà, scegliere la scheda Details (Dettagli) per visualizzare le proprietà del dispositivo. Se il dispositivo non è presente nell'elenco, installate il driver Windows per FTDI C232HM-DDHSL-0.

  3. Nella scheda Dettagli, scegliete Proprietà, quindi scegliete Hardware. IDs Dovresti vedere qualcosa di simile nel campo Valore.

    FTDIBUS\COMPORT&VID_0403&PID_6014

    In questo esempio, l'ID fornitore è 0403 e l'ID prodotto è 6014.

    Verifica che IDs corrispondano al IDs pinprojects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. IDs Sono specificati in una riga che inizia con ftdi_vid_pid seguita da un ID fornitore e da un ID prodotto.

    ftdi_vid_pid 0x0403 0x6014
  4. Scaricare OpenOCD per Windows.

  5. Decomprimere il file su C:\ e aggiungere C:\openocd-esp32\bin al percorso di sistema.

  6. OpenOCD richiede libusb, che non è installato per impostazione predefinita in Windows.

    Per installare libusb

    1. Scaricare zadig.exe.

    2. Esegui zadig.exe. Nel menu, Options (Opzioni) scegliere List All Devices (Elenca tutti i dispositivi).

    3. Dal menu a discesa del metodo, scegliere C232HM-DDHSL-0.

    4. Nel campo driver di destinazione, a destra della freccia verde, selezionare WinUSB (WinUSB).

    5. Dall'elenco a discesa sotto il campo del driver di destinazione, scegli la freccia, quindi scegli Installa driver. Scegliere Replace Driver (Sostituisci driver).

  7. Apri un prompt dei comandi, accedi projects/espressif/esp32/make/aws_demos ed esegui il comando seguente.

    Per ESP32 -WROOM-32 e -WROVER ESP32

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

    Per ESP32 -SOLO-1

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

    Lasciare questo prompt dei comandi aperto.

  8. Aprire un nuovo prompt dei comandi, accedere alla directory msys32 ed eseguire mingw32.exe.

  9. Nel terminale mingw32, accedi ed esegui projects/espressif/esp32/make/aws_demos

    make flash monitor
  10. Aprire un altro terminale mingw32, passare a projects/espressif/esp32/make/aws_demos e attendere l'avvio dell'esecuzione della demo nella scheda. Quando inizia, eseguire xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf. Il programma deve arrestarsi nella funzione main.

Nota

ESP32 Supporta un massimo di due punti di interruzione.

Debug su macOS (ESP-IDF v3.3)

  1. Scaricare il driver FTDI per macOS.

  2. Scaricare OpenOCD.

  3. Estrarre il file .tar scaricato e impostare il percorso in .bash_profile su OCD_INSTALL_DIR/openocd-esp32/bin.

  4. Usa il seguente comando per l'installazione libusb su macOS.

    brew install libusb
  5. Usa il seguente comando per scaricare il driver della porta seriale.

    sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
  6. Se utilizzi una versione macOS successiva alla 10.9, usa il seguente comando per scaricare il driver FTDI Apple.

    sudo kextunload -b com.apple.driver.AppleUSBFTDI
  7. Utilizzare il comando seguente per ottenere l'ID prodotto e l'ID fornitore del cavo FTDI. Elenca i dispositivi USB collegati.

    system_profiler SPUSBDataType

    L'output di system_profiler dovrebbe essere simile al seguente.

    DEVICE: Product ID: product-ID Vendor ID: vendor-ID (Future Technology Devices International Limited)
  8. Apri il file projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. L'ID fornitore e l'ID prodotto sono specificati in una riga che inizia con ftdi_vid_pid. Modifica il valore IDs in modo che IDs corrisponda a quello dell'system_profileroutput del passaggio precedente.

  9. Aprire la finestra del terminale, passare a projects/espressif/esp32/make/aws_demos e utilizzare il comando seguente per eseguire OpenOCD:

    Per ESP32 -WROOM-32 e -WROVER: ESP32

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

    Per ESP32 -SOLO-1:

    openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
  10. Aprire un nuovo terminale e utilizzare il seguente comando per caricare il driver della porta seriale FTDI.

    sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
  11. Passare a projects/espressif/esp32/make/aws_demos ed eseguire il comando seguente:

    make flash monitor
  12. Apri un altro nuovo terminale, naviga projects/espressif/esp32/make/aws_demos ed esegui il comando seguente.

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

    Il programma deve interrompersi su main().

Debug su Linux (ESP-IDF v3.3)

  1. Scaricare OpenOCD. Estrarre il tarball e seguire le istruzioni per l'installazione del file readme.

  2. Usa il seguente comando per installare libusb su Linux.

    sudo apt-get install libusb-1.0
  3. Aprire un terminale e immettere ls -l /dev/ttyUSB* per elencare tutti i dispositivi USB collegati al computer. Questo ti aiuta a verificare se le porte USB della scheda sono riconosciute dal sistema operativo. L'output restituito dovrebbe essere simile al seguente.

    $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. Uscire ed effettuare di nuovo l'accesso e spegnere e accendere la scheda per rendere le modifiche effettive. In un prompt del terminale, elencare i dispositivi USB. Assicurati che il proprietario del gruppo sia passato da dialout aplugdev.

    $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

    L'interfaccia /dev/ttyUSBn con il numero inferiore viene utilizzato per le comunicazioni JTAG. L'altra interfaccia viene indirizzata alla ESP32 porta seriale (UART) e viene utilizzata per caricare il codice nella memoria flash ESP32 del computer.

  5. In una finestra del terminale, passare a projects/espressif/esp32/make/aws_demos e utilizzare il comando seguente per eseguire OpenOCD:

    Per ESP32 -WROOM-32 e -WROVER: ESP32

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

    Per ESP32 -SOLO-1:

    openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
  6. Apri un altro terminale, naviga ed projects/espressif/esp32/make/aws_demos esegui il seguente comando.

    make flash monitor
  7. Aprire un altro terminale, passare a projects/espressif/esp32/make/aws_demos ed eseguire il comando seguente:

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

    Il programma deve interrompersi su main().

Codice di debug su Espressif ESP32 - DevKit C e (ESP-IDF v4.2) ESP-WROVER-KIT

Questa sezione mostra come eseguire il debug dell'hardware Espressif utilizzando ESP-IDF v4.2. Per eseguire il debug utilizzando ESP-IDF v3.3, vedere. Codice di debug su Espressif ESP32 - DevKit C e (ESP-IDF v3.3) ESP-WROVER-KIT

È necessario un cavo da JTAG a USB. Usiamo un cavo da USB a MPSSE (per esempio, il FTDI C232HM-DDHSL-0).

Configurazione ESP-C JTAG DevKit

Per il cavo FTDI C232HM-DDHSL-0, queste sono le connessioni al devKitC. ESP32

C232HM-DDHSL-0 Wire Color ESP32 Pin GPIO JTAG Signal Name

Brown (pin 5)

IO14

TMS

Yellow (pin 3)

IO12

TDI

Black (pin 10)

GND

GND

Orange (pin 2)

IO13

TCK

Verde (pin 4)

IO15

TDO

ESP-WROVER-KIT Configurazione JTAG

Per il cavo FTDI C232HM-DDHSL-0, queste sono le connessioni al -WROVER-KIT. ESP32

C232HM-DDHSL-0 Wire Color ESP32 Pin GPIO JTAG Signal Name

Brown (pin 5)

IO14

TMS

Yellow (pin 3)

IO12

TDI

Orange (pin 2)

IO13

TCK

Verde (pin 4)

IO15

TDO

Queste tabelle sono state sviluppate dalla scheda tecnica FTDI C232HM-DDHSL-0. Per ulteriori informazioni, vedere la sezione «Connessione via cavo MPSSE C232HM e dettagli meccanici» nella scheda tecnica.

Per abilitare JTAG su ESP-WROVER-KIT, posizionate i ponticelli sui pin TMS, TDO, TDI, TCK e S_TDI come mostrato qui.

Posizionamento dei ponticelli

Debug su Windows (ESP-IDF v4.2)

Per configurare il debug su Windows
  1. Collegare il lato USB di FTDI C232HM-DDHSL-0 sul tuo computer e sull'altro lato come descritto in Codice di debug su Espressif ESP32 - DevKit C e (ESP-IDF v4.2) ESP-WROVER-KIT. Il dispositivo FTDI C232HM-DDHSL-0 deve essere visualizzato in Device Manager (Gestione dispositivi) in Universal Serial Bus Controllers (Controller bus seriale universale).

  2. Nell'elenco dei dispositivi USB, fare clic con il tasto destro sul dispositivo C232HM-DDHSL-0 e selezionare Properties (Proprietà).

    Nota

    Il dispositivo potrebbe essere elencato come USB Serial Port (Porta seriale USB).

    Nella finestra proprietà, scegliere la scheda Details (Dettagli) per visualizzare le proprietà del dispositivo. Se il dispositivo non è presente nell'elenco, installate il driver Windows per FTDI C232HM-DDHSL-0.

  3. Nella scheda Dettagli, scegliete Proprietà, quindi scegliete Hardware. IDs Dovresti vedere qualcosa di simile nel campo Valore.

    FTDIBUS\COMPORT&VID_0403&PID_6014

    In questo esempio, l'ID fornitore è 0403 e l'ID prodotto è 6014.

    Verifica che IDs corrispondano al IDs pinprojects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. IDs Sono specificati in una riga che inizia con ftdi_vid_pid seguita da un ID fornitore e da un ID prodotto.

    ftdi_vid_pid 0x0403 0x6014
  4. Scaricare OpenOCD per Windows.

  5. Decomprimere il file su C:\ e aggiungere C:\openocd-esp32\bin al percorso di sistema.

  6. OpenOCD richiede libusb, che non è installato per impostazione predefinita in Windows.

    Per installare libusb

    1. Scaricare zadig.exe.

    2. Esegui zadig.exe. Nel menu, Options (Opzioni) scegliere List All Devices (Elenca tutti i dispositivi).

    3. Dal menu a discesa del metodo, scegliere C232HM-DDHSL-0.

    4. Nel campo driver di destinazione, a destra della freccia verde, selezionare WinUSB (WinUSB).

    5. Dall'elenco a discesa sotto il campo del driver di destinazione, scegli la freccia, quindi scegli Installa driver. Scegliere Replace Driver (Sostituisci driver).

  7. Apri un prompt dei comandi, vai alla radice della directory di download di FreerTOS ed esegui il seguente comando.

    idf.py openocd

    Lasciare questo prompt dei comandi aperto.

  8. Apri un nuovo prompt dei comandi, vai alla radice della directory di download di FreerTOS ed esegui

    idf.py flash monitor
  9. Apri un altro prompt dei comandi, vai alla directory principale della cartella di download di FreerTOS e attendi che la demo inizi a funzionare sulla tua scheda. Quando lo fa, esegui

    idf.py gdb

    Il programma deve arrestarsi nella funzione main.

Nota

ESP32 Supporta un massimo di due punti di interruzione.

Debug su macOS (ESP-IDF v4.2)

  1. Scaricare il driver FTDI per macOS.

  2. Scaricare OpenOCD.

  3. Estrarre il file .tar scaricato e impostare il percorso in .bash_profile su OCD_INSTALL_DIR/openocd-esp32/bin.

  4. Usa il seguente comando per l'installazione libusb su macOS.

    brew install libusb
  5. Usa il seguente comando per scaricare il driver della porta seriale.

    sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
  6. Se utilizzi una versione macOS successiva alla 10.9, usa il seguente comando per scaricare il driver FTDI Apple.

    sudo kextunload -b com.apple.driver.AppleUSBFTDI
  7. Utilizzare il comando seguente per ottenere l'ID prodotto e l'ID fornitore del cavo FTDI. Elenca i dispositivi USB collegati.

    system_profiler SPUSBDataType

    L'output di system_profiler dovrebbe essere simile al seguente.

    DEVICE: Product ID: product-ID Vendor ID: vendor-ID (Future Technology Devices International Limited)
  8. Apri il file projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. L'ID fornitore e l'ID prodotto sono specificati in una riga che inizia con ftdi_vid_pid. Modifica il valore IDs in modo che IDs corrisponda a quello dell'system_profileroutput del passaggio precedente.

  9. Apri una finestra di terminale, vai alla radice della tua directory di download di FreerTOS e usa il seguente comando per eseguire OpenOCD.

    idf.py openocd

    Lascia aperta questa finestra del terminale.

  10. Apri un nuovo terminale e usa il seguente comando per caricare il driver della porta seriale FTDI.

    sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
  11. Vai alla radice della tua directory di download di FreerTOS ed esegui

    idf.py flash monitor
  12. Apri un altro nuovo terminale, vai alla radice della cartella di download di FreerTOS ed esegui

    idf.py gdb

    Il programma deve interrompersi su main.

Debug su Linux (ESP-IDF v4.2)

  1. Scaricare OpenOCD. Estrarre il tarball e seguire le istruzioni per l'installazione del file readme.

  2. Usa il seguente comando per installare libusb su Linux.

    sudo apt-get install libusb-1.0
  3. Aprire un terminale e immettere ls -l /dev/ttyUSB* per elencare tutti i dispositivi USB collegati al computer. Questo ti aiuta a verificare se le porte USB della scheda sono riconosciute dal sistema operativo. L'output restituito dovrebbe essere simile al seguente.

    $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. Uscire ed effettuare di nuovo l'accesso e spegnere e accendere la scheda per rendere le modifiche effettive. In un prompt del terminale, elencare i dispositivi USB. Assicurati che il proprietario del gruppo sia passato da dialout aplugdev.

    $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

    L'interfaccia /dev/ttyUSBn con il numero inferiore viene utilizzato per le comunicazioni JTAG. L'altra interfaccia viene indirizzata alla ESP32 porta seriale (UART) e viene utilizzata per caricare il codice nella memoria flash ESP32 del computer.

  5. In una finestra di terminale, vai alla radice della tua directory di download di FreerTOS e usa il seguente comando per eseguire OpenOCD.

    idf.py openocd
  6. Apri un altro terminale, vai alla radice della directory di download di FreerTOS ed esegui il seguente comando.

    idf.py flash monitor
  7. Apri un altro terminale, naviga nella directory principale della cartella di download di FreerTOS ed esegui il seguente comando:

    idf.py gdb

    Il programma deve interrompersi su main().