Commencer à utiliser l'Espressif ESP32 - DevKit C et le ESP-WROVER-KIT - FreeRTOS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Commencer à utiliser l'Espressif ESP32 - DevKit C et le ESP-WROVER-KIT

Important

Il s'agit d'une version archivée du guide de l'utilisateur de FreeRTOS à utiliser avec la version 202012.00 de FreeRTOS. Pour obtenir la dernière version de ce document, consultez le guide de l'utilisateur de FreeRTOS.

Suivez ce tutoriel pour démarrer avec l'Espressif ESP32 - DevKit C équipé des modules ESP32 -WROOM-32, ESP32 -SOLO-1 ou ESP-WROVER et du. ESP-WROVER-KIT-VB Pour en acheter un auprès de notre partenaire sur le catalogue des appareils AWS partenaires, cliquez sur les liens suivants :

Ces versions des cartes de développement sont prises en charge sur FreeRTOS.

Pour plus d'informations sur les dernières versions de ces cartes, consultez ESP32- DevKit C V4 ou ESP-WROVER-KITv4.1 sur le site Web d'Espressif.

Note

Actuellement, le port FreeRTOS ESP32 pour -WROVER-KIT et DevKit ESP C ne prend pas en charge la fonctionnalité de multitraitement symétrique (SMP).

Présentation

Ce didacticiel vous guide à travers les étapes suivantes :

  1. Connexion de votre carte à une machine hôte

  2. Installation d'un logiciel sur la machine hôte pour le développement et le débogage d'applications intégrées pour votre carte microcontrôleur

  3. Compilation croisée d'une application de démonstration FreeRTOS vers une image binaire

  4. Chargement de l'image binaire de l'application sur votre tableau, puis exécution de l'application

  5. Interaction avec l'application exécutée sur votre carte par le biais d'une connexion série, à des fins de surveillance et de débogage

Prérequis

Avant de commencer à utiliser FreeRTOS sur votre tableau Espressif, vous devez configurer votre compte et vos autorisations. AWS

Inscrivez-vous pour un Compte AWS

Si vous n'en avez pas Compte AWS, procédez comme suit pour en créer un.

Pour vous inscrire à un Compte AWS
  1. Ouvrez l'https://portal.aws.amazon.com/billing/inscription.

  2. Suivez les instructions en ligne.

    Une partie de la procédure d'inscription consiste à recevoir un appel téléphonique ou un message texte et à saisir un code de vérification sur le clavier du téléphone.

    Lorsque vous vous inscrivez à un Compte AWS, un Utilisateur racine d'un compte AWSest créé. Par défaut, seul l’utilisateur racine a accès à l’ensemble des Services AWS et des ressources de ce compte. La meilleure pratique de sécurité consiste à attribuer un accès administratif à un utilisateur, et à utiliser uniquement l’utilisateur racine pour effectuer les tâches nécessitant un accès utilisateur racine.

AWS vous envoie un e-mail de confirmation une fois le processus d'inscription terminé. À tout moment, vous pouvez consulter l'activité actuelle de votre compte et gérer votre compte en accédant à https://aws.amazon.com/et en choisissant Mon compte.

Création d’un utilisateur doté d’un accès administratif

Une fois que vous vous êtes inscrit à un utilisateur administratif Compte AWS, que vous Utilisateur racine d'un compte AWS l'avez sécurisé AWS IAM Identity Center, que vous l'avez activé et que vous en avez créé un, afin de ne pas utiliser l'utilisateur root pour les tâches quotidiennes.

Sécurisez votre Utilisateur racine d'un compte AWS
  1. Connectez-vous en AWS Management Consoletant que propriétaire du compte en choisissant Utilisateur root et en saisissant votre adresse Compte AWS e-mail. Sur la page suivante, saisissez votre mot de passe.

    Pour obtenir de l’aide pour vous connecter en utilisant l’utilisateur racine, consultez Connexion en tant qu’utilisateur racine dans le Guide de l’utilisateur Connexion à AWS .

  2. Activez l’authentification multifactorielle (MFA) pour votre utilisateur racine.

    Pour obtenir des instructions, voir Activer un périphérique MFA virtuel pour votre utilisateur Compte AWS root (console) dans le guide de l'utilisateur IAM.

Création d’un utilisateur doté d’un accès administratif
  1. Activez IAM Identity Center.

    Pour obtenir des instructions, consultez Activation d’ AWS IAM Identity Center dans le Guide de l’utilisateur AWS IAM Identity Center .

  2. Dans IAM Identity Center, octroyez un accès administratif à un utilisateur.

    Pour un didacticiel sur l'utilisation du Répertoire IAM Identity Center comme source d'identité, voir Configurer l'accès utilisateur par défaut Répertoire IAM Identity Center dans le Guide de AWS IAM Identity Center l'utilisateur.

Connexion en tant qu’utilisateur doté d’un accès administratif
  • Pour vous connecter avec votre utilisateur IAM Identity Center, utilisez l’URL de connexion qui a été envoyée à votre adresse e-mail lorsque vous avez créé l’utilisateur IAM Identity Center.

    Pour obtenir de l'aide pour vous connecter en utilisant un utilisateur d'IAM Identity Center, consultez la section Connexion au portail AWS d'accès dans le guide de l'Connexion à AWS utilisateur.

Attribution d’un accès à d’autres utilisateurs
  1. Dans IAM Identity Center, créez un ensemble d’autorisations qui respecte la bonne pratique consistant à appliquer les autorisations de moindre privilège.

    Pour obtenir des instructions, consultez Création d’un ensemble d’autorisations dans le Guide de l’utilisateur AWS IAM Identity Center .

  2. Attribuez des utilisateurs à un groupe, puis attribuez un accès par authentification unique au groupe.

    Pour obtenir des instructions, consultez Ajout de groupes dans le Guide de l’utilisateur AWS IAM Identity Center .

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :

Note

La version 202012.00 de FreeRTOS est compatible avec ESP-IDF v3.3. Si vous utilisez une version ultérieure de FreeRTOS, suivez les instructions spécifiques IDFv4 à 2.2 at. Commencez avec l'ESP-IDF v4.2

Commencez avec ESP-IDF v3.3

Cette section explique comment utiliser ESP-IDF v3.3 sur du matériel Espressif. Pour utiliser ESP-IDF v4.2, voir. Commencez avec l'ESP-IDF v4.2

Configurer le matériel Espressif

Pour plus d'informations sur la configuration matérielle de la carte de développement ESP32 - DevKit C, consultez le Guide de démarrage ESP32 - DevKit C V4.

Pour plus d'informations sur la configuration du matériel de la carte de ESP-WROVER-KIT développement, consultez le guide de démarrage de la ESP-WROVER-KITversion 4.1.

Important

Lorsque vous atteignez la section Get Started des guides Espressif, arrêtez-vous, puis suivez les étapes ci-dessous.

Configurer votre environnement de développement.

Pour communiquer avec votre tableau, vous devez télécharger et installer une chaîne d'outils.

Configuration de la chaîne d'outils

Note

ESP-IDF v3.3 ne prend pas en charge la dernière version du compilateur. ESP32 Si vous avez déjà installé la dernière version du ESP32 compilateur, vous devez la désinstaller et utiliser la version compatible du compilateur incluse dans l'installation de la chaîne d'outils. Consultez les liens de cette section. Pour vérifier la version de votre compilateur, exécutez la commande suivante.

xtensa-esp32-elf-gcc --version

Pour configurer la chaîne d'outils, suivez ces instructions pour le système d'exploitation de votre machine hôte :

Important

Lorsque vous atteignez les instructions « Get ESP-IDF » sous Prochaines étapes, arrêtez-vous, puis revenez aux instructions de cette page.

Si vous avez suivi les instructions « Get ESP-IDF » figurant dans la section Prochaines étapes, vous devez effacer la variable d'IDF_PATHenvironnement de votre système avant de continuer. Cette variable d'environnement était automatiquement définie si vous suiviez les instructions « Get ESP-IDF ».

Installer CMake

Le système de CMake compilation est nécessaire pour créer les applications de démonstration et de test FreeRTOS pour cet appareil. FreeRTOS prend en charge les versions 3.13 et ultérieures.

Vous pouvez télécharger la dernière version CMake de CMake.org. Les distributions source et binaire sont à votre disposition.

Pour plus de détails sur l'utilisation CMake de FreeRTOS, consultez. Utilisation CMake avec FreeRTOS

Établir une connexion série

Pour établir une connexion série entre votre machine hôte et le ESP32 DevKit -C, vous devez installer les pilotes CP21 VCP 0x USB to UART Bridge. Vous pouvez télécharger ces pilotes à partir de Silicon Labs.

Pour établir une connexion série entre votre machine hôte et le ESP32 -WROVER-KIT, vous devez installer certains pilotes de port COM virtuel FTDI. Vous pouvez télécharger ces pilotes à partir de FTDI.

Pour plus d'informations, voir Etablissement d'une connexion série avec ESP32. Une fois que vous avez établi une connexion série, notez le port série pour la connexion de votre carte. Vous en aurez besoin pour créer la démonstration.

Téléchargez et configurez FreeRTOS

Après avoir configuré votre environnement, vous pouvez télécharger FreeRTOS sur le site Web. Pour obtenir des instructions, consultez le fichier GitHubREADME.md sur le site Web. GitHub

Configuration des applications de démonstration FreeRTOS

  1. Si vous utilisez macOS ou Linux, ouvrez une invite du terminal. Si vous utilisez Windows, ouvrez lemingw32.exe. MinGW est un environnement de développement minimaliste pour les applications Microsoft Windows natives.

  2. Pour vérifier que Python 2.7.10 ou version ultérieure est installé, exécutez

    python --version

    La version installée s'affiche. Si Python 2.7.10 ou version ultérieure n'est pas installé, vous pouvez l'installer depuis le site Web de Python.

  3. Vous avez besoin du AWS Command Line Interface (AWS CLI) pour exécuter AWS IoT des commandes. Si vous utilisez Windows, utilisez le easy_install awscli pour l'installer AWS CLI dans l'environnement mingw32.

    Si vous utilisez macOS ou Linux, reportez-vous à la section Installation du AWS CLI.

  4. Exécutez aws configure et configurez le AWS CLI avec votre identifiant de clé d' AWS accès, votre clé d'accès secrète et votre AWS région. Pour plus d’informations, consultez Configuration de l’ AWS CLI.

  5. Utilisez la commande suivante pour installer le AWS SDK pour Python (boto3) :

    • Sous Windows, dans l'environnement mingw32, exécutez

      easy_install boto3
    • Sur macOS ou Linux, exécutez

      pip install tornado nose --user

      puis exécutez

      pip install boto3 --user

FreeRTOS inclut SetupAWS.py le script pour faciliter la configuration de votre carte Espressif à laquelle vous connecter. AWS IoT Pour configurer le script, ouvrez freertos/tools/aws_config_quick_start/configure.json et définissez les attributs suivants :

afr_source_dir

Chemin d’accès complet vers l'annuaire freertos sur votre ordinateur. Assurez-vous d'utiliser des barres obliques pour spécifier ce chemin.

thing_name

Le nom que vous souhaitez attribuer à l' AWS IoT élément qui représente votre tableau.

wifi_ssid

SSID de votre réseau Wi-Fi.

wifi_password

Mot de passe de votre réseau Wi-Fi.

wifi_security

Type de sécurité de votre réseau Wi-Fi.

Les types de sécurité suivants sont valides :

  • eWiFiSecurityOpen (Ouvrir, aucune sécurité)

  • eWiFiSecurityWEP (Sécurité WEP)

  • eWiFiSecurityWPA (Sécurité WPA)

  • eWiFiSecurityWPA2(WPA2 sécurité)

Pour exécuter le script de configuration
  1. Si vous utilisez macOS ou Linux, ouvrez une invite du terminal. Si vous utilisez Windows, ouvrez-lemingw32.exe.

  2. Accédez au freertos/tools/aws_config_quick_start répertoire et exécutez

    python SetupAWS.py setup

Le script effectue les opérations suivantes :

  • Crée un objet IoT, un certificat et une stratégie.

  • Attache la stratégie IoT au certificat et le certificat à l'objet AWS IoT .

  • Remplit le aws_clientcredential.h fichier avec votre AWS IoT terminal, votre SSID Wi-Fi et vos informations d'identification

  • Met en forme votre certificat et votre clé privée, et les écrit dans le fichier d'en-tête aws_clientcredential_keys.h.

    Note

    Le certificat est codé en dur à des fins de démonstration uniquement. Les applications de niveau production doivent stocker ces fichiers dans un emplacement sécurisé.

Pour plus d'informations à ce sujetSetupAWS.py, consultez le README.md dans le freertos/tools/aws_config_quick_start répertoire.

Créez, flashez et exécutez le projet de démonstration FreeRTOS

Vous pouvez utiliser CMake pour générer les fichiers de construction, Make pour créer le binaire de l'application et l'utilitaire IDF d'Espressif pour flasher votre carte.

Créez FreeRTOS sur Linux et macOS (ESP-IDF v3.3)

Si vous utilisez Windows, consultezCréez FreeRTOS sous Windows (ESP-IDF v3.3).

CMake Utilisez-le pour générer les fichiers de compilation, puis utilisez Make pour créer l'application.

Pour générer les fichiers de build de l'application de démonstration avec CMake
  1. Remplacez les répertoires par la racine de votre répertoire de téléchargement FreeRTOS.

  2. Utilisez la commande suivante pour générer les fichiers de compilation.

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

    Si vous souhaitez générer l'application pour le débogage, ajoutez l'indicateur -DCMAKE_BUILD_TYPE=Debug à cette commande.

    Si vous souhaitez générer les fichiers de génération d'application test, ajoutez l'indicateur -DAFR_ENABLE_TESTS=1.

    Le code fourni par Espressif utilise la pile IP légère (lwIP) comme pile réseau par défaut. Pour utiliser la pile réseau FreeRTOS+TCP à la place, ajoutez l'indicateur à la –DAFR_ESP_FREERTOS_TCP commande. CMake

    Pour ajouter la dépendance LWip pour le code fourni par un fournisseur autre que le fournisseur, ajoutez les lignes suivantes CMake au fichier de dépendanceCMakeLists.txt, pour votre composant Wi-Fi personnalisé.

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
Pour générer l'application avec Make
  1. Placez-vous dans le répertoire build.

  2. Utilisez la commande suivante pour créer l'application avec Make.

    make all -j4
    Note

    Vous devez générer les fichiers de création avec la commande cmake chaque fois que vous passez du projet aws_demos au projet aws_tests et vice versa.

Créez FreeRTOS sous Windows (ESP-IDF v3.3)

Sous Windows, vous devez spécifier un générateur de build pour CMake. Sinon, c'est Visual Studio CMake par défaut. Espressif recommande officiellement le système de build Ninja, car il fonctionne sous Windows, Linux et MacOS. Vous devez exécuter CMake des commandes dans un environnement Windows natif tel que cmd ou PowerShell. L'exécution de CMake commandes dans un environnement Linux virtuel, tel que MSYS2 WSL, n'est pas prise en charge.

CMake Utilisez-le pour générer les fichiers de compilation, puis utilisez Make pour créer l'application.

Pour générer les fichiers de build de l'application de démonstration avec CMake
  1. Remplacez les répertoires par la racine de votre répertoire de téléchargement FreeRTOS.

  2. Utilisez la commande suivante pour générer les fichiers de compilation.

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

    Si vous souhaitez générer l'application pour le débogage, ajoutez l'indicateur -DCMAKE_BUILD_TYPE=Debug à cette commande.

    Si vous souhaitez générer les fichiers de génération d'application test, ajoutez l'indicateur -DAFR_ENABLE_TESTS=1.

    Le code fourni par Espressif utilise la pile IP légère (lwIP) comme pile réseau par défaut. Pour utiliser la pile réseau FreeRTOS+TCP à la place, ajoutez l'indicateur à la –DAFR_ESP_FREERTOS_TCP commande. CMake

    Pour ajouter la dépendance LWip pour le code fourni par un fournisseur autre que le fournisseur, ajoutez les lignes suivantes CMake au fichier de dépendanceCMakeLists.txt, pour votre composant Wi-Fi personnalisé.

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
Pour générer l'application
  1. Placez-vous dans le répertoire build.

  2. Invoquez Ninja pour créer l'application.

    ninja

    Vous pouvez également utiliser l' CMake interface générique pour créer l'application.

    cmake --build build-directory
    Note

    Vous devez générer les fichiers de création avec la commande cmake chaque fois que vous passez du projet aws_demos au projet aws_tests et vice versa.

Flashez et exécutez FreeRTOS (ESP-IDF v3.3)

Cette section explique comment utiliser ESP-IDF v3.3 sur du matériel Espressif. Pour utiliser ESP-IDF v4.2, voir. Commencez avec l'ESP-IDF v4.2

Utilisez l'utilitaire IDF d'Espressif (freertos/vendors/espressif/esp-idf/tools/idf.py) pour flasher votre carte, exécuter l'application et consulter les journaux.

Pour effacer le flash du tableau, allez freertos dans le répertoire et utilisez la commande suivante.

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

Pour flasher le binaire de l'application sur votre tableau, utilisez make

make flash

Vous pouvez également utiliser le script IDF pour flasher votre carte :

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

Pour surveiller :

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

Vous pouvez combiner ces commandes. Par exemple :

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

Commencez avec l'ESP-IDF v4.2

Cette section explique comment utiliser ESP-IDF v4.2 sur du matériel Espressif. Pour utiliser ESP-IDF v3.3, voir. Commencez avec ESP-IDF v3.3

Note

Les commandes Linux de ce didacticiel nécessitent que vous utilisiez le shell Bash.

Configurer le matériel Espressif

Pour plus d'informations sur la configuration matérielle de la carte de développement ESP32 - DevKit C, consultez le Guide de démarrage ESP32 - DevKit C V4.

Pour plus d'informations sur la configuration du matériel de la carte de ESP-WROVER-KIT développement, consultez le guide de démarrage de la ESP-WROVER-KIT version 4.1.

Important

Lorsque vous atteignez la section Get Started des guides Espressif, arrêtez-vous, puis revenez aux instructions de cette page.

Configurer votre environnement de développement.

Pour communiquer avec votre tableau, vous devez télécharger et installer une chaîne d'outils.

Configuration de la chaîne d'outils

Pour configurer la chaîne d'outils, suivez ces instructions pour le système d'exploitation de votre machine hôte :

Important

Lorsque vous atteignez les instructions « Get ESP-IDF » sous Prochaines étapes, arrêtez-vous, puis revenez aux instructions de cette page.

Terminez l'installation (Linux/macOS)

Le programme d'installation Windows ESP-IDF installe tous les outils nécessaires. Les plateformes Linux et macOS nécessitent une étape supplémentaire pour terminer l'installation.

  1. Ouvrez une fenêtre de ligne de commande

  2. Accédez au répertoire de téléchargement de FreeRTOS, puis exécutez le script suivant pour télécharger et installer la chaîne d'outils espressif pour votre plateforme.

    vendors/espressif/esp-idf/install.sh
  3. Ajoutez les outils de la chaîne d'outils ESP-IDF au chemin de votre terminal à l'aide de la commande suivante.

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

Établir une connexion série

Pour établir une connexion série entre votre machine hôte et le ESP32 DevKit -C, vous devez installer les pilotes CP21 VCP 0x USB to UART Bridge. Vous pouvez télécharger ces pilotes à partir de Silicon Labs.

Pour établir une connexion série entre votre machine hôte et le ESP32 -WROVER-KIT, vous devez installer le pilote de port COM virtuel FTDI. Vous pouvez télécharger ce pilote depuis FTDI.

Pour plus d'informations, voir Etablissement d'une connexion série avec ESP32. Une fois que vous avez établi une connexion série, notez le port série pour la connexion de votre carte. Vous en aurez besoin pour créer la démonstration.

Téléchargez et configurez FreeRTOS

Après avoir configuré votre environnement, vous pouvez télécharger FreeRTOS depuis. GitHub Pour obtenir des instructions, consultez le fichier README.md sur le site Web. GitHub

Configuration des applications de démonstration FreeRTOS

  1. Si vous utilisez macOS ou Linux, ouvrez une invite du terminal. Si vous utilisez Windows, ouvrez-lemingw32.exe. (MinGW est un environnement de développement minimaliste pour les applications Microsoft Windows natives.)

  2. Pour vérifier que Python3 est installé, exécutez

    python --version

    La version installée s'affiche. Si Python 3.0.1 ou version ultérieure n'est pas installé, vous pouvez l'installer depuis le site Web de Python.

  3. Vous avez besoin du AWS Command Line Interface (AWS CLI) pour exécuter AWS IoT des commandes. Si vous utilisez Windows, utilisez le easy_install awscli pour l'installer AWS CLI dans l'environnement mingw32.

    Si vous utilisez macOS ou Linux, reportez-vous à la section Installation du AWS CLI.

  4. Exécuter

    aws configure

    et configurez le AWS CLI avec votre identifiant de clé d' AWS accès, votre clé d'accès secrète et votre AWS région par défaut. Pour plus d’informations, consultez Configuration de l’ AWS CLI.

  5. Utilisez la commande suivante pour installer le AWS SDK pour Python (boto3) :

    • Sous Windows, dans l'environnement mingw32, exécutez

      easy_install boto3
    • Sur macOS ou Linux, exécutez

      pip install tornado nose --user

      puis exécutez

      pip install boto3 --user

FreeRTOS inclut SetupAWS.py le script pour faciliter la configuration de votre carte Espressif à laquelle vous connecter. AWS IoT Pour configurer le script, ouvrez freertos/tools/aws_config_quick_start/configure.json et définissez les attributs suivants :

afr_source_dir

Chemin d’accès complet vers l'annuaire freertos sur votre ordinateur. Assurez-vous d'utiliser des barres obliques pour spécifier ce chemin.

thing_name

Le nom que vous souhaitez attribuer à l' AWS IoT élément qui représente votre tableau.

wifi_ssid

SSID de votre réseau Wi-Fi.

wifi_password

Mot de passe de votre réseau Wi-Fi.

wifi_security

Type de sécurité de votre réseau Wi-Fi.

Les types de sécurité suivants sont valides :

  • eWiFiSecurityOpen (Ouvrir, aucune sécurité)

  • eWiFiSecurityWEP (Sécurité WEP)

  • eWiFiSecurityWPA (Sécurité WPA)

  • eWiFiSecurityWPA2(WPA2 sécurité)

Pour exécuter le script de configuration
  1. Si vous utilisez macOS ou Linux, ouvrez une invite du terminal. Si vous utilisez Windows, ouvrez le mingw32.exe fichier.

  2. Accédez au freertos/tools/aws_config_quick_start répertoire et exécutez

    python SetupAWS.py setup

Le script effectue les opérations suivantes :

  • Crée un objet IoT, un certificat et une stratégie.

  • Attache la stratégie IoT au certificat et le certificat à l'objet AWS IoT .

  • Remplit le aws_clientcredential.h fichier avec votre AWS IoT terminal, votre SSID Wi-Fi et vos informations d'identification

  • Met en forme votre certificat et votre clé privée, et les écrit dans le fichier d'en-tête aws_clientcredential_keys.h.

    Note

    Le certificat est codé en dur à des fins de démonstration uniquement. Les applications de niveau production doivent stocker ces fichiers dans un emplacement sécurisé.

Pour plus d'informations à ce sujetSetupAWS.py, consultez le README.md dans le freertos/tools/aws_config_quick_start répertoire.

Créez, flashez et exécutez le projet de démonstration FreeRTOS à l'aide du script idf.py

Vous pouvez utiliser l'utilitaire IDF d'Espressif pour générer les fichiers de compilation, créer le binaire de l'application et flasher votre tableau.

Créez et flashez des FreeRTOS sous Windows, Linux et macOS (ESP-IDF v4.2)

Utilisez le idf.py script pour créer le projet et flasher les fichiers binaires sur votre appareil.

Note

Certaines configurations peuvent nécessiter que vous utilisiez l'option port "-p port-name" with idf.py pour spécifier le port correct, comme dans l'exemple suivant.

idf.py -p /dev/cu.usbserial-00101301B flash
Pour créer et flasher le projet
  1. Accédez à la racine de votre répertoire de téléchargement de FreeRTOS.

  2. Dans une fenêtre de ligne de commande, entrez la commande suivante pour ajouter les outils ESP-IDF au PATH de votre terminal.

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux/ macOS

    source vendors/espressif/esp-idf/export.sh
  3. Configurez cmake dans le build répertoire et créez l'image du microprogramme à l'aide de la commande suivante.

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

    Vous devriez voir une sortie semblable à la suivante.

    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'

    S'il n'y a aucune erreur, la compilation générera les fichiers binaires .bin du microprogramme.

  4. Effacez la mémoire flash de votre carte de développement à l'aide de la commande suivante.

    idf.py erase_flash
  5. Utilisez le idf.py script pour flasher le binaire de l'application sur votre tableau.

    idf.py flash
  6. Surveillez la sortie du port série de votre carte à l'aide de la commande suivante.

    idf.py monitor
Note

Vous pouvez combiner ces commandes comme dans l'exemple suivant.

idf.py erase_flash flash monitor
Note

Pour certaines configurations de machine hôte, vous devez spécifier le port lorsque vous flashez la carte, comme dans l'exemple suivant.

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

Créez et flashez des FreeRTOS avec CMake

Outre le idf.py script fourni par le SDK IDF pour créer et exécuter votre code, vous pouvez également créer le projet avec CMake. Actuellement, il prend en charge les Makefiles Unix ou le système de construction Ninja.

Pour créer et flasher le projet
  1. Dans une fenêtre de ligne de commande, naviguez jusqu'à la racine du répertoire de téléchargement de FreeRTOS.

  2. Exécutez le script suivant pour ajouter les outils ESP-IDF au PATH de votre shell.

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux/ macOS

    source vendors/espressif/esp-idf/export.sh
  3. Entrez la commande suivante pour générer les fichiers de compilation.

    Avec 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

    Avec 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. Effacez le flash, puis faites clignoter le tableau.

    Avec Unix Makefiles

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

    Avec Ninja

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

Surveillance des messages MQTT dans le cloud

Vous pouvez utiliser le client MQTT de la AWS IoT console pour surveiller les messages que votre appareil envoie au AWS Cloud.

Pour vous abonner à la rubrique MQTT avec le client AWS IoT MQTT
  1. Accédez à la console AWS IoT.

  2. Dans le volet de navigation, sélectionnez Test (Tester) pour ouvrir le client MQTT.

  3. Dans le champ Rubrique d'abonnement, saisissez your-thing-name/example/topic, puis choisissez S'abonner à la rubrique.

Exécuter les démonstrations Bluetooth Low Energy

FreeRTOS prend en charge la connectivité Bluetooth Low Energy.

Pour exécuter le projet de démonstration FreeRTOS via Bluetooth Low Energy, vous devez exécuter l'application de démonstration du SDK mobile FreeRTOS Bluetooth Low Energy sur un appareil mobile iOS ou Android.

Pour configurer l'application de démonstration du SDK mobile FreeRTOS Bluetooth Low Energy
  1. Suivez les instructions de la section Appareils Bluetooth Mobile SDKs for FreeRTOS pour télécharger et installer le SDK pour votre plateforme mobile sur votre ordinateur hôte.

  2. Suivez les instructions de l'application de démonstration FreeRTOS Bluetooth Low Energy Mobile SDK pour configurer l'application mobile de démonstration sur votre appareil mobile.

Pour obtenir des instructions sur l'exécution de la démonstration MQTT sur Bluetooth Low Energy sur votre carte, veuillez consulter Application de démonstration MQTT sur Bluetooth Low Energy.

Pour obtenir des instructions sur la façon d'exécuter la démonstration de mise en service Wi-Fi sur votre carte, consultez l'application de démonstration de la mise en service Wi-Fi.

Utiliser FreeRTOS dans votre propre projet pour CMake ESP32

Si vous souhaitez utiliser FreeRTOS dans votre CMake propre projet, vous pouvez le configurer en tant que sous-répertoire et le créer avec votre application. Tout d'abord, procurez-vous une copie de FreeRTOS auprès de. GitHub Vous pouvez également le configurer en tant que sous-module Git à l'aide de la commande suivante afin de faciliter sa mise à jour à l'avenir.

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

Si une version ultérieure est publiée, vous pouvez mettre à jour votre copie locale à l'aide de ces commandes.

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

Si votre projet possède la structure de répertoire suivante :

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

Voici un exemple de CMakeLists.txt fichier de premier niveau qui peut être utilisé pour créer votre application avec 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 )

Pour créer le projet, exécutez les CMake commandes suivantes. Assurez-vous que le ESP32 compilateur se trouve dans la variable d'environnement PATH.

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

Pour flasher l'application sur votre carte, exécutez la commande suivante.

cmake --build build-directory --target flash

Utilisation de composants de FreeRTOS

Après l'exécution CMake, vous pouvez trouver tous les composants disponibles dans le résultat récapitulatif. Cela devrait ressembler à l'exemple suivant.

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

Vous pouvez référencer n'importe quel composant de la Modules to build liste. Pour les lier à votre application, placez l'AFR::espace de noms devant le nom, par exemple, AFR::mqttAFR::ota, et ainsi de suite.

Ajout de composants personnalisés à ESP-IDF

Vous pouvez ajouter d'autres composants à l'environnement de génération ESP-IDF. Par exemple, en supposant que vous souhaitiez ajouter un composant appeléexample_component, et que votre projet ressemble à ceci

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

alors voici un exemple de CMakeLists.txt fichier pour votre composant.

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)

Vous pouvez également spécifier les dépendances à l'aide de la CMake fonction standardtarget_link_libraries. Notez que le nom cible de votre composant est stocké dans la variable COMPONENT_TARGET, définie par 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)

Pour les composants ESP, cela se fait en définissant deux variables COMPONENT_REQUIRES etCOMPONENT_PRIV_REQUIRES. Voir Build System (CMake) dans le guide de programmation 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)

Ensuite, dans le fichier CMakeLists.txt de niveau supérieur, vous indiquez à ESP-IDF où trouver ces composants. Ajoutez les lignes suivantes n'importe où auparavantadd_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})

Ce composant est désormais automatiquement lié à votre code d'application par défaut. Vous devriez pouvoir inclure ses fichiers d'en-tête et appeler les fonctions qu'il définit.

Remplacer les configurations pour FreeRTOS

Il n'existe actuellement aucune approche bien définie pour redéfinir les configurations en dehors de l'arborescence des sources FreeRTOS. Par défaut, CMake recherchera les freertos/demos/include/ répertoires freertos/vendors/espressif/boards/esp32/aws_demos/config_files/ et. Cependant, vous pouvez utiliser une solution de contournement pour demander au compilateur de rechercher d'autres répertoires en premier. Par exemple, vous pouvez ajouter un autre dossier pour les configurations FreeRTOS.

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

Les fichiers sous freertos-configs sont copiés à partir des répertoires freertos/vendors/espressif/boards/esp32/aws_demos/config_files/ et freertos/demos/include/. Ensuite, dans votre CMakeLists.txt fichier de premier niveau, ajoutez cette ligne avant add_subdirectory(freertos) afin que le compilateur recherche d'abord ce répertoire.

include_directories(BEFORE freertos-configs)

Utilisation de votre propre sdkconfig pour ESP-IDF

Si vous souhaitez fournir la vôtresdkconfig.default, vous pouvez définir la CMake variable IDF_SDKCONFIG_DEFAULTS depuis la ligne de commande :

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

Si vous ne spécifiez pas d'emplacement pour votre propre sdkconfig.default fichier, FreeRTOS utilisera le fichier par défaut situé dans. freertos/vendors/espressif/boards/esp32/aws_demos/sdkconfig.defaults

Récapitulatif

Si vous gérez un projet incluant un composant appelé example_component et que vous voulez remplacer certaines configurations, voici un exemple complet du fichier CMakeLists.txt de niveau supérieur.

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)

Pour plus d'informations sur le système de génération Espressif avec CMake, voir Système de génération dans les guides de l'API Espressif

Résolution des problèmes

  • Si vous utilisez macOS et que le système d'exploitation ne vous reconnaît pas ESP-WROVER-KIT, assurez-vous que les pilotes D2XX ne sont pas installés. Pour les désinstaller, suivez les instructions fournies dans le manuel FTDI Drivers Installation Guide for macOS X.

  • L'utilitaire de surveillance fourni par ESP-IDF (et appelé avec make monitor) permet de décoder les adresses. Pour cette raison, cela peut vous aider à obtenir des traces significatives au cas où l'application cesserait de fonctionner. Pour plus d'informations, consultez la section Décodage automatique des adresses sur le site Web d'Espressif.

  • Il est également possible d'activer GDBstub la communication avec gdb sans nécessiter de matériel JTAG spécial. Pour plus d'informations, consultez Lancer GDB avec GDBStub sur le site Web d'Espressif.

  • Pour plus d'informations sur la configuration d'un environnement basé sur OpenOCD si le débogage matériel JTAG est requis, consultez la section Débogage JTAG sur le site Web d'Espressif.

  • S'il ne pyserial peut pas être installé pip sur macOS, téléchargez-le sur le site Web de pyserial.

  • Si la carte se réinitialise continuellement, essayez d'effacer le flash en saisissant la commande suivante sur le terminal.

    make erase_flash
  • Si vous voyez des erreurs lorsque vous exécutez idf_monitor.py, utilisez Python 2.7.

  • Les bibliothèques requises d'ESP-IDF sont incluses dans FreeRTOS, il n'est donc pas nécessaire de les télécharger en externe. Si la variable d'IDF_PATHenvironnement est définie, nous vous recommandons de l'effacer avant de créer FreeRTOS.

  • Sur Windows, la génération du projet peut prendre entre 3 et 4 minutes. Vous pouvez utiliser le commutateur -j4 sur la commande make pour réduire le temps de génération :

    make flash monitor -j4
  • Si votre appareil ne parvient pas à se connecter AWS IoT, ouvrez le aws_clientcredential.h fichier et vérifiez que les variables de configuration sont correctement définies dans le fichier. clientcredentialMQTT_BROKER_ENDPOINT[]devrait ressembler à1234567890123-ats.iot.us-east-1.amazonaws.com.

  • Si vous suivez les étapes décrites dans Utiliser FreeRTOS dans votre propre projet pour CMake ESP32 et que vous constatez des erreurs de référence non définies dans l'éditeur de liens, c’est généralement en raison de l’absence de bibliothèques ou de démos dépendantes. Pour les ajouter, mettez à jour le CMakeLists.txt fichier (sous le répertoire racine) à l'aide de la CMake fonction standardtarget_link_libraries.

  • ESP-IDF v4.2 prend en charge l'utilisation du xtensa-esp32-elf-gcc 8.2.0. chaîne d'outils. Si vous utilisez une version antérieure de la chaîne d'outils Xtensa, téléchargez la version requise.

  • Si vous voyez un journal d'erreurs comme le suivant concernant les dépendances de python qui ne sont pas respectées pour 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

    Installez les dépendances Python sur votre plateforme à l'aide de la commande Python suivante :

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

Pour plus d'informations sur la résolution des problèmes, consultezRésolution des problèmes de mise en route.

Débogage

Code de débogage sur Espressif ESP32 - DevKit C et ESP-WROVER-KIT (ESP-IDF v3.3)

Cette section explique comment déboguer le matériel Espressif à l'aide d'ESP-IDF v3.3. Pour effectuer un débogage à l'aide d'ESP-IDF v4.2, voir. Code de débogage sur Espressif ESP32 - DevKit C et ESP-WROVER-KIT (ESP-IDF v4.2)

Vous avez besoin d'un câble JTAG vers USB. Nous utilisons un câble USB vers MPSSE (par exemple, FTDI C232HM-DDHSL-0).

Configuration du JTAG ESP- DevKit C

Pour le câble FTDI C232HM-DDHSL-0, voici les connexions au DevKitC. ESP32

Couleur du câble C232HM-DDHSL-0 ESP32 Broche GPIO Nom du signal JTAG

Marron (broche 5)

IO14

TMS

Jaune (broche 3)

IO12

TDI

Noir (broche 10)

GND

GND

Orange (broche 2)

IO13

TCK

Vert (broche 4)

IO15

TDO

ESP-WROVER-KIT Configuration du JTAG

Pour le câble FTDI C232HM-DDHSL-0, voici les connexions au -WROVER-KIT. ESP32

Couleur du câble C232HM-DDHSL-0 ESP32 Broche GPIO Nom du signal JTAG

Marron (broche 5)

IO14

TMS

Jaune (broche 3)

IO12

TDI

Orange (broche 2)

IO13

TCK

Vert (broche 4)

IO15

TDO

Ces tableaux ont été développés à partir de la fiche technique FTDI C232HM-DDHSL-0. Pour plus d'informations, consultez la section « Connexion du câble C232HM MPSSE et détails mécaniques » de la fiche technique.

Pour activer le JTAG sur le ESP-WROVER-KIT, placez des jumpers sur les broches TMS, TDO, TDI, TCK et S_TDI, comme indiqué ici.

Placement du pull

Débogage sous Windows (ESP-IDF v3.3)

Pour configurer le débogage sous Windows
  1. Connectez le côté USB du FTDI C232HM-DDHSL-0 à votre ordinateur et l'autre côté comme décrit dans Code de débogage sur Espressif ESP32 - DevKit C et ESP-WROVER-KIT (ESP-IDF v3.3). L'appareil FTDI C232HM-DDHSL-0 doit apparaître dans le Device Manager (Gestionnaire de périphériques) sous Universal Serial Bus Controllers (Contrôleurs USB).

  2. Sous la liste des appareils bus série, cliquez avec le bouton droit sur l'appareil C232HM-DDHSL-0 , puis choisissez Propriétés.

    Note

    L'appareil peut être répertorié Port série USB.

    Dans la fenêtre de propriétés, choisissez l'onglet Détails pour afficher les propriétés de l'appareil. Si le périphérique n'est pas répertorié, installez le pilote Windows pour FTDI C232HM-DDHSL-0.

  3. Dans l'onglet Détails, choisissez Propriété, puis Matériel IDs. Vous devriez voir quelque chose comme ça dans le champ Valeur.

    FTDIBUS\COMPORT&VID_0403&PID_6014

    Dans cet exemple, l'ID du fournisseur est 0403 et celui du produit est 6014.

    Vérifiez qu'ils IDs correspondent IDs à l'entréeprojects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. Ils IDs sont spécifiés dans une ligne commençant par ftdi_vid_pid un identifiant de fournisseur et un identifiant de produit.

    ftdi_vid_pid 0x0403 0x6014
  4. Téléchargez OpenOCD for Windows.

  5. Décompressez le fichier sur C:\ et ajoutez C:\openocd-esp32\bin à votre chemin système.

  6. OpenOCD nécessite libusb, qui n'est pas installé par défaut sur Windows.

    Pour installer libusb

    1. Téléchargez zadig.exe.

    2. Exécutez zadig.exe. Dans le menu Options, choisissez List All Devices (Afficher tous les périphériques).

    3. Dans le menu déroulant, choisissezC232HM-DDHSL-0.

    4. Dans le champ du pilote cible, à droite de la flèche verte, choisissez WinUSB.

    5. Dans la liste déroulante située sous le champ du pilote cible, cliquez sur la flèche, puis choisissez Installer le pilote. Choisissez Replace Driver (Remplacer le pilote).

  7. Ouvrez une invite de commande, naviguez jusqu'à la commande suivante projects/espressif/esp32/make/aws_demos et exécutez-la.

    Pour ESP32 -WROOM-32 et -WROVER ESP32

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

    Pour ESP32 -SOLO-1

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

    Laissez l'invite de commande ouverte.

  8. Ouvrez une nouvelle invite de commande, accédez à votre répertoire msys32 et exécutez mingw32.exe.

  9. Dans le terminal mingw32, naviguez vers projects/espressif/esp32/make/aws_demos et exécutez

    make flash monitor
  10. Ouvrez un autre terminal mingw32, accédez à projects/espressif/esp32/make/aws_demos et attendez que la démonstration commence à être exécutée sur votre carte. Lorsque c'est le cas, exécutez xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf. Le programme doit s'arrêter dans la fonction main.

Note

Le ESP32 supporte un maximum de deux points de rupture.

Débogage sur macOS (ESP-IDF v3.3)

  1. Téléchargez le pilote FTDI pour macOS.

  2. Téléchargez OpenOCD.

  3. Extrayez le fichier .tar téléchargé et définissez le chemin d'accès dans .bash_profile sur OCD_INSTALL_DIR/openocd-esp32/bin.

  4. Utilisez la commande suivante pour effectuer l'installation libusb sur macOS.

    brew install libusb
  5. Utilisez la commande suivante pour décharger le pilote du port série.

    sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
  6. Si vous utilisez une version de macOS ultérieure à 10.9, utilisez la commande suivante pour décharger le pilote Apple FTDI.

    sudo kextunload -b com.apple.driver.AppleUSBFTDI
  7. Utilisez la commande suivante pour obtenir l'ID produit et l'ID fournisseur du câble FTDI. Il répertorie les périphériques USB connectés.

    system_profiler SPUSBDataType

    Le résultat de system_profiler doit ressembler à ce qui suit.

    DEVICE: Product ID: product-ID Vendor ID: vendor-ID (Future Technology Devices International Limited)
  8. Ouvrez le fichier projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. Les ID de fournisseur de produit de votre appareil sont spécifiés dans une ligne qui commence par ftdi_vid_pid. Modifiez le IDs pour qu'il IDs corresponde à celui de la system_profiler sortie de l'étape précédente.

  9. Ouvrez une fenêtre de terminal, accédez à projects/espressif/esp32/make/aws_demos et utilisez la commande suivante pour exécuter OpenOCD.

    Pour ESP32 -WROOM-32 et -WROVER : ESP32

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

    Pour ESP32 -SOLO-1 :

    openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
  10. Ouvrez un nouveau terminal et utilisez la commande suivante pour charger le pilote du port série FTDI.

    sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
  11. Accédez à projects/espressif/esp32/make/aws_demos et exécutez la commande suivante.

    make flash monitor
  12. Ouvrez un autre nouveau terminal, naviguez jusqu'à projects/espressif/esp32/make/aws_demos et exécutez la commande suivante.

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

    Le programme doit s'arrêter à main().

Débogage sous Linux (ESP-IDF v3.3)

  1. Téléchargez OpenOCD. Extrayez le fichier tarball et suivez les instructions d'installation du fichier readme.

  2. Utilisez la commande suivante pour installer libusb sous Linux.

    sudo apt-get install libusb-1.0
  3. Ouvrez un terminal et saisissez ls -l /dev/ttyUSB*pour afficher tous les périphériques USB reliés à votre ordinateur. Cela vous permet de vérifier si les ports USB de la carte sont reconnus par le système d'exploitation. Vous devriez voir une sortie semblable à la suivante.

    $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. Déconnectez-vous, puis connectez-vous et répétez l'alimentation de la carte pour que les modifications prennent effet. Dans une invite de terminal, affichez la liste des périphériques USB. Assurez-vous que le propriétaire du groupe est passé de dialout àplugdev.

    $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'interface /dev/ttyUSBn avec le nombre inférieur est utilisée pour la communication JTAG. L'autre interface est routée vers le ESP32 port série (UART) et est utilisée pour télécharger du code sur la mémoire flash ESP32 du.

  5. Dans une fenêtre de terminal, accédez à projects/espressif/esp32/make/aws_demos et utilisez la commande suivante pour exécuter OpenOCD.

    Pour ESP32 -WROOM-32 et -WROVER : ESP32

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

    Pour ESP32 -SOLO-1 :

    openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
  6. Ouvrez un autre terminal, naviguez jusqu'à projects/espressif/esp32/make/aws_demos et exécutez la commande suivante.

    make flash monitor
  7. Ouvrez un autre terminal, accédez à projects/espressif/esp32/make/aws_demos et exécutez la commande suivante :

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

    Le programme doit s'arrêter à main().

Code de débogage sur Espressif ESP32 - DevKit C et ESP-WROVER-KIT (ESP-IDF v4.2)

Cette section explique comment déboguer le matériel Espressif à l'aide d'ESP-IDF v4.2. Pour effectuer un débogage à l'aide d'ESP-IDF v3.3, voir. Code de débogage sur Espressif ESP32 - DevKit C et ESP-WROVER-KIT (ESP-IDF v3.3)

Vous avez besoin d'un câble JTAG vers USB. Nous utilisons un câble USB vers MPSSE (par exemple, FTDI C232HM-DDHSL-0).

Configuration du JTAG ESP- DevKit C

Pour le câble FTDI C232HM-DDHSL-0, voici les connexions au DevKitC. ESP32

Couleur du câble C232HM-DDHSL-0 ESP32 Broche GPIO Nom du signal JTAG

Marron (broche 5)

IO14

TMS

Jaune (broche 3)

IO12

TDI

Noir (broche 10)

GND

GND

Orange (broche 2)

IO13

TCK

Vert (broche 4)

IO15

TDO

ESP-WROVER-KIT Configuration du JTAG

Pour le câble FTDI C232HM-DDHSL-0, voici les connexions au -WROVER-KIT. ESP32

Couleur du câble C232HM-DDHSL-0 ESP32 Broche GPIO Nom du signal JTAG

Marron (broche 5)

IO14

TMS

Jaune (broche 3)

IO12

TDI

Orange (broche 2)

IO13

TCK

Vert (broche 4)

IO15

TDO

Ces tableaux ont été développés à partir de la fiche technique FTDI C232HM-DDHSL-0. Pour plus d'informations, consultez la section « Connexion du câble C232HM MPSSE et détails mécaniques » de la fiche technique.

Pour activer le JTAG sur le ESP-WROVER-KIT, placez des jumpers sur les broches TMS, TDO, TDI, TCK et S_TDI, comme indiqué ici.

Placement du pull

Débogage sous Windows (ESP-IDF v4.2)

Pour configurer le débogage sous Windows
  1. Connectez le côté USB du FTDI C232HM-DDHSL-0 à votre ordinateur et l'autre côté comme décrit dans Code de débogage sur Espressif ESP32 - DevKit C et ESP-WROVER-KIT (ESP-IDF v4.2). L'appareil FTDI C232HM-DDHSL-0 doit apparaître dans le Device Manager (Gestionnaire de périphériques) sous Universal Serial Bus Controllers (Contrôleurs USB).

  2. Sous la liste des appareils bus série, cliquez avec le bouton droit sur l'appareil C232HM-DDHSL-0 , puis choisissez Propriétés.

    Note

    L'appareil peut être répertorié Port série USB.

    Dans la fenêtre de propriétés, choisissez l'onglet Détails pour afficher les propriétés de l'appareil. Si le périphérique n'est pas répertorié, installez le pilote Windows pour FTDI C232HM-DDHSL-0.

  3. Dans l'onglet Détails, choisissez Propriété, puis Matériel IDs. Vous devriez voir quelque chose comme ça dans le champ Valeur.

    FTDIBUS\COMPORT&VID_0403&PID_6014

    Dans cet exemple, l'ID du fournisseur est 0403 et celui du produit est 6014.

    Vérifiez qu'ils IDs correspondent IDs à l'entréeprojects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. Ils IDs sont spécifiés dans une ligne commençant par ftdi_vid_pid un identifiant de fournisseur et un identifiant de produit.

    ftdi_vid_pid 0x0403 0x6014
  4. Téléchargez OpenOCD for Windows.

  5. Décompressez le fichier sur C:\ et ajoutez C:\openocd-esp32\bin à votre chemin système.

  6. OpenOCD nécessite libusb, qui n'est pas installé par défaut sur Windows.

    Pour installer libusb

    1. Téléchargez zadig.exe.

    2. Exécutez zadig.exe. Dans le menu Options, choisissez List All Devices (Afficher tous les périphériques).

    3. Dans le menu déroulant, choisissezC232HM-DDHSL-0.

    4. Dans le champ du pilote cible, à droite de la flèche verte, choisissez WinUSB.

    5. Dans la liste déroulante située sous le champ du pilote cible, cliquez sur la flèche, puis choisissez Installer le pilote. Choisissez Replace Driver (Remplacer le pilote).

  7. Ouvrez une invite de commande, naviguez jusqu'à la racine de votre répertoire de téléchargement de FreeRTOS et exécutez la commande suivante.

    idf.py openocd

    Laissez l'invite de commande ouverte.

  8. Ouvrez une nouvelle invite de commande, naviguez jusqu'à la racine de votre répertoire de téléchargement de FreeRTOS et exécutez

    idf.py flash monitor
  9. Ouvrez une autre invite de commande, naviguez jusqu'à la racine de votre répertoire de téléchargement de FreeRTOS et attendez que la démo commence à s'exécuter sur votre forum. Quand c'est le cas, courez

    idf.py gdb

    Le programme doit s'arrêter dans la fonction main.

Note

Le ESP32 supporte un maximum de deux points de rupture.

Débogage sur macOS (ESP-IDF v4.2)

  1. Téléchargez le pilote FTDI pour macOS.

  2. Téléchargez OpenOCD.

  3. Extrayez le fichier .tar téléchargé et définissez le chemin d'accès dans .bash_profile sur OCD_INSTALL_DIR/openocd-esp32/bin.

  4. Utilisez la commande suivante pour effectuer l'installation libusb sur macOS.

    brew install libusb
  5. Utilisez la commande suivante pour décharger le pilote du port série.

    sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
  6. Si vous utilisez une version de macOS ultérieure à 10.9, utilisez la commande suivante pour décharger le pilote Apple FTDI.

    sudo kextunload -b com.apple.driver.AppleUSBFTDI
  7. Utilisez la commande suivante pour obtenir l'ID produit et l'ID fournisseur du câble FTDI. Il répertorie les périphériques USB connectés.

    system_profiler SPUSBDataType

    Le résultat de system_profiler doit ressembler à ce qui suit.

    DEVICE: Product ID: product-ID Vendor ID: vendor-ID (Future Technology Devices International Limited)
  8. Ouvrez le fichier projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. Les ID de fournisseur de produit de votre appareil sont spécifiés dans une ligne qui commence par ftdi_vid_pid. Modifiez le IDs pour qu'il IDs corresponde à celui de la system_profiler sortie de l'étape précédente.

  9. Ouvrez une fenêtre de terminal, naviguez jusqu'à la racine de votre répertoire de téléchargement de FreeRTOS et utilisez la commande suivante pour exécuter OpenOCD.

    idf.py openocd

    Laissez cette fenêtre de terminal ouverte.

  10. Ouvrez un nouveau terminal et utilisez la commande suivante pour charger le pilote du port série FTDI.

    sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
  11. Naviguez jusqu'à la racine de votre répertoire de téléchargement de FreeRTOS et lancez

    idf.py flash monitor
  12. Ouvrez un autre nouveau terminal, naviguez jusqu'à la racine de votre répertoire de téléchargement de FreeRTOS et lancez

    idf.py gdb

    Le programme doit s'arrêter à main.

Débogage sous Linux (ESP-IDF v4.2)

  1. Téléchargez OpenOCD. Extrayez le fichier tarball et suivez les instructions d'installation du fichier readme.

  2. Utilisez la commande suivante pour installer libusb sous Linux.

    sudo apt-get install libusb-1.0
  3. Ouvrez un terminal et saisissez ls -l /dev/ttyUSB*pour afficher tous les périphériques USB reliés à votre ordinateur. Cela vous permet de vérifier si les ports USB de la carte sont reconnus par le système d'exploitation. Vous devriez voir une sortie semblable à la suivante.

    $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. Déconnectez-vous, puis connectez-vous et répétez l'alimentation de la carte pour que les modifications prennent effet. Dans une invite de terminal, affichez la liste des périphériques USB. Assurez-vous que le propriétaire du groupe est passé de dialout àplugdev.

    $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'interface /dev/ttyUSBn avec le nombre inférieur est utilisée pour la communication JTAG. L'autre interface est routée vers le ESP32 port série (UART) et est utilisée pour télécharger du code sur la mémoire flash ESP32 du.

  5. Dans une fenêtre de terminal, naviguez jusqu'à la racine de votre répertoire de téléchargement de FreeRTOS et utilisez la commande suivante pour exécuter OpenOCD.

    idf.py openocd
  6. Ouvrez un autre terminal, naviguez jusqu'à la racine du répertoire de téléchargement de FreeRTOS et exécutez la commande suivante.

    idf.py flash monitor
  7. Ouvrez un autre terminal, naviguez à la racine du répertoire de téléchargement de FreeRTOS et exécutez la commande suivante :

    idf.py gdb

    Le programme doit s'arrêter à main().