STM32CubeIDE Tutoriel de démarrage

Table des Matières

STM32CubeIDE software

Afin d'améliorer la facilité d'utilisation de la gamme de microcontrôleurs STM32, riche en fonctionnalités et économe en énergie, ST a ajouté en 2019 un outil de développement STM32 multifonctionnel et gratuit à l'écosystème logiciel STM32Cube : le STM32CubeIDE.

Pour fonctionner aussi bien que les outils commerciaux d'environnement de développement intégré (IDE), STM32CubeIDE tire pleinement parti de la technologie d'Atollic®, un fournisseur d'outils de développement embarqués acquis par STMicroelectronics en 2017. Utilisant des conditions de licence ouvertes conformes aux normes de l'industrie, ce logiciel IDE ajoute des fonctionnalités spécifiques au STM32 afin de simplifier et d'accélérer les conceptions embarquées basées sur le STM32, notamment de puissants outils de configuration de microcontrôleurs STM32CubeMX et de gestion de projets.

En intégrant STM32CubeMX à STM32CubeIDE, ST a créé un environnement de développement plus puissant. L'écosystème complet STM32Cube comprend également le graveur de code STM32CubeProgrammer et la famille de moniteurs d'exécution de code STM32CubeMonitor, ainsi que de nombreux progiciels MCU autonomes.

Qu'est-ce que STM32CubeIDE ?

STM32CubeIDE est un outil de développement logiciel officiel gratuit de ST, basé sur le framework Eclipse®/CDT, la chaîne d'outils de compilation GCC et l'outil de débogage GDB, qui prend en charge l'ajout de plug-ins fonctionnels tiers. Parallèlement, STM32CubeIDE intègre certaines des fonctionnalités de STM32CubeMX et STM32CubeProgrammer.

Avec STM32CubeIDE, les développeurs peuvent tout faire, depuis la sélection des puces, la configuration des projets et la génération de code jusqu'à l'édition, la compilation, le débogage et la gravure du code.

STM32Cube software ecosystem
STM32Cube software ecosystem

Fonctionnalités de STM32CubeIDE

1. Intégrer STM32CubeMX :

  • Sélection du microcontrôleur STM32
  • Affectation des broches, horloges, configuration IP et middleware
  • Création de projet et génération du code d'initialisation

2. Basé sur Eclipse/CDT, prise en charge des plug-ins Eclipse, utilisation de la chaîne d'outils ARM et du débogueur GDB dans GNU C/C++.

3. Autres fonctions de débogage avancées :

  • Cœurs de processeur, registres IP et vues de mémoire
  • Affichage des variables en temps réel
  • Analyse du système et suivi en direct (SWV)
  • Outil d'analyse des erreurs CPU

4. Prise en charge des sondes de débogage ST-LINK et J-Link

5. Prise en charge de l'importation de projets depuis TrueSTUDIO et AC6 (SW4STM32)

6. Prise en charge des systèmes d'exploitation : Windows, Linux et MacOS

Télécharger STM32CubeIDE

Espace de travail STM32CubeIDE

STM32CubeIDE est un framework basé sur Eclipse qui hérite de certaines fonctionnalités d'Eclipse peu familières aux utilisateurs, telles que les vues en perspective, les espaces de travail, etc.

Espace de travail : STM32CubeIDE gère les projets via un espace de travail. Lorsque vous ouvrez STM32Cube, un nouvel espace de travail par défaut est créé. Le projet nouveau ou importé appartiendra à cet espace de travail. Les projets d'un même espace de travail ont la même configuration au niveau de l'IDE (définie dans Fenêtre→Préférences), comme les paramètres d'affichage et de style d'édition. Du point de vue du système de fichiers, un espace de travail est un dossier qui contient plusieurs dossiers de projet et un dossier nommé « .metadata », qui contient des informations sur tous les projets de cet espace de travail. Le dossier « metadata » contient des informations sur tous les projets de l'espace de travail. Le dossier « .metadata » contient les informations de tous les projets de l'espace de travail. L'utilisateur peut passer d'un espace de travail à l'autre via le menu Fichier→Changer d'espace de travail.

Perspective : une perspective est une série de fenêtres liées à un certain type de fonction. Les perspectives couramment utilisées sont la perspective d'édition C/C++, la perspective de débogage et la perspective de configuration CubeMX.

STM32CubeIDE Perspective
STM32CubeIDE Perspective

La perspective d'édition C/C++ comprend le gestionnaire de projet, la fenêtre d'édition, la fenêtre de structure, etc. Le gestionnaire de projet vous permet d'afficher et de manipuler tous les projets de l'espace de travail actuel. Double-cliquez pour ouvrir un fichier dans le projet. Le contenu du fichier s'affiche dans la fenêtre d'édition, où vous pouvez le modifier. La fenêtre de structure, située à l'extrême droite, répertorie toutes les fonctions, variables et macros définies dans le fichier actuellement ouvert.

Le menu Afficher la vue de la fenêtre vous permet d'ouvrir et de fermer les fenêtres qui doivent être affichées dans la perspective d'édition C/C++.

Vous pouvez passer d'une vue à l'autre à l'aide des icônes situées en haut à droite. Par exemple, en cliquant sur l'icône du robot d'indexation, vous pouvez passer à la vue de débogage. En cliquant sur le bouton Déboguer dans la barre d'outils sous la vue Édition C/C++, vous passez automatiquement à la vue Débogage après avoir lancé le débogage.

Comment utiliser STM32CubeIDE ?

1. Gestion de projet

Créer un nouveau projet

Avec STM32CubeIDE, les utilisateurs peuvent démarrer un nouveau projet de différentes manières. L'écran d'accueil de STM32CubeIDE répertorie les raccourcis permettant de créer/importer un projet, correspondant aux quatre scénarios ci-dessous. Les fonctions correspondantes peuvent également être mises en œuvre via les options Nouveau et Importer du menu Fichier.

  1. Créer un nouveau projet STM32 à partir de zéro
  2. Il existe déjà un fichier de configuration STM32CubeMX (*.ioc) et vous souhaitez créer un nouveau projet STM32 basé sur ce fichier ioc.
  3. Je dispose déjà d'un projet SW4STM32 ou TrueSTUDIO et je souhaite le convertir en projet STM32CubeIDE.
  4. Créer un nouveau projet basé sur les routines de la bibliothèque STM32Cube
STM32CubeIDE New Project
STM32CubeIDE New Project

Structure du projet STM32CubeIDE

STM32CubeIDE dispose de deux structures de projet, comme illustré dans la figure suivante.

STM32CubeIDE project structure diagram
STM32CubeIDE project structure diagram

Les microcontrôleurs monocœur sont des structures plates.

Pour les microcontrôleurs à architecture double cœur ou les microcontrôleurs de sécurité, tels que les séries STM32H7, STM32L5 et STM32MP1, le projet STM32CubeIDE est une structure hiérarchique. Prenons l'exemple du STM32H7 : après avoir créé ou importé un projet STM32H7, vous verrez une structure de projet à trois niveaux dans la barre Project Explorer : le niveau supérieur est le projet « racine », puis il y a deux projets « enfants » correspondant respectivement aux cœurs CM7 et CM4. La couche supérieure est le projet « racine », puis il y a deux projets « enfants » correspondant aux noyaux CM7 et CM4, et les fichiers du projet se trouvent sous les projets « enfants ». Ces deux projets « enfants » CM7 et CM4 sont les véritables projets compilables et débuggables, tandis que le projet « racine » n'est qu'un « conteneur » qui contient les projets « enfants » CM7 et CM4. Les documents AN5361, AN5394, AN5360 et AN5564 décrivent comment créer, importer, compiler et déboguer respectivement des projets STM32H7 dual-core, STM32L5, STM32MP1 et STM32WL dans STM32CubeIDE.

Gestion de la bibliothèque de micrologiciels

STM32CubeIDE intègre certaines des fonctionnalités de STM32CubeMX, vous permettant de générer un nouveau projet en sélectionnant directement le modèle de puce/carte de développement ou en sélectionnant une routine. Le pilote et le code de routine nécessaires pour générer un projet avec STM32CubeIDE proviennent des bibliothèques de micrologiciels de chaque famille STM32.

Dans Aide→Gérer les packages logiciels embarqués, toutes les bibliothèques de micrologiciels STM32 et autres plug-ins peuvent être gérés (installation/suppression de bibliothèques de micrologiciels).

Le bouton Installer maintenant permet à STM32CubeIDE de télécharger et d'installer automatiquement à partir du réseau, et le bouton À partir du local vous permet d'installer des bibliothèques de micrologiciels pré-téléchargées.

Le bouton Supprimer maintenant vous permet de supprimer la bibliothèque de micrologiciels sélectionnée.

STM32CubeIDE firmware library
STM32CubeIDE firmware library

Sous l'onglet STM32Cube Firmware Updater de la fenêtre Window Preferences, vous pouvez définir le chemin d'accès à l'installation de la bibliothèque de micrologiciels et la manière de la mettre à jour.

STM32CubeIDE Firmware Preferences Setting
STM32CubeIDE Firmware Preferences Setting

Configuration réseau

Par défaut, STM3CubeIDE tentera de se connecter au réseau lors de l'ouverture et de la création d'un nouveau projet. Vous pouvez également choisir le « Mode hors ligne » pour empêcher STM32CubeIDE de se connecter au réseau. Cependant, vous devez installer les bibliothèques de micrologiciels pré-téléchargées via le bouton « À partir du local » dans la fenêtre « Gestionnaire de progiciels embarqués » de l'image précédente, sinon le code ne sera pas généré automatiquement pour le nouveau projet STM32.

Cliquez sur le bouton « Vérifier la connexion » pour vérifier l'état actuel de la connexion réseau. Si un x rouge apparaît à la fin de la vérification, cela signifie qu'il y a un problème avec la configuration réseau et que nous devons aller à la page « Connexion réseau » pour la définir.

En plus de la détection de l'état du réseau actif précédente, si le téléchargement du micrologiciel échoue, veuillez également vérifier si la configuration réseau de STM32CubeIDE est correcte.

Les étapes de configuration sont illustrées dans la figure suivante :
1. Allez dans le menu Fenêtre Préférences et sélectionnez l'onglet Connexions réseau
générales 2. Sélectionnez la méthode Manuelle
3. Sélectionnez HTTP et double-cliquez pour ouvrir la fenêtre d'édition afin de définir les paramètres de connexion réseau.

STM32CubeIDE Network Configuration
STM32CubeIDE Network Configuration

Ouvrir/Fermer/Supprimer/Changer/Exporter des projets STM32CubeIDE

Dans la fenêtre Explorateur de projets, vous pouvez voir tous les projets de l'espace de travail actuel. Les utilisateurs peuvent ouvrir/fermer/supprimer/importer/exporter/renommer n'importe quel projet dans cette fenêtre.

2. Compilation du code

Paramétrage et compilation des propriétés

Sélectionnez un projet dans l'Explorateur de projets, cliquez dessus avec le bouton droit de la souris et accédez au menu des propriétés, où vous pouvez configurer les éléments de compilation.

Une fois la configuration terminée, le projet est prêt à être compilé. Vous pouvez lancer la compilation de trois manières
différentes :- Méthode 1 : sélectionnez le projet, cliquez dessus avec le bouton droit de la souris et sélectionnez « Build Project » (Compiler le projet)
. – Méthode 2 : sélectionnez le projet, accédez-y à partir du menu Project (Projet), puis sélectionnez « Build Project » (Compiler le projet)
. – Méthode 3 : sélectionnez le projet et cliquez sur l'icône Build (Compiler) dans la barre d'outils.

STM32CubeIDE project property configuration
STM32CubeIDE project property configuration

Améliorer la vitesse de compilation

En activant la compilation parallèle, vous pouvez améliorer la vitesse de compilation de STM32Cube IDE.
Sélectionnez le projet, cliquez dessus avec le bouton droit de la souris et accédez au menu Propriétés, sélectionnez « C/C++ Build », puis sous l'onglet Comportement, cochez la case « Activer la compilation parallèle ».

STM32CubeIDE CC++ Build parallel compile
STM32CubeIDE CC++ Build parallel compile

Outils auxiliaires pour la compilation

Une fois le projet compilé, la fenêtre « Build Analyzer » affiche l'utilisation de toutes les régions et sections de mémoire définies dans le fichier de liaison, y compris l'adresse de chargement, l'adresse d'exécution, le nombre d'octets occupés, le nombre d'octets restants, etc.

La fenêtre « Static Stack Analyzer » affiche l'utilisation de la pile statique.

STM32CubeIDE fournit également une fonctionnalité Headless Build, qui vous permet de compiler à partir de la ligne de commande sans ouvrir l'interface graphique CubeIDE.

3. Débogage et gravure du code

Configuration de débogage et d'exécution

Une fois que le projet STM32CubeIDE a été compilé sans erreur, il est prêt pour le débogage et le téléchargement.

Dans la barre d'outils de la perspective C/C++, trois boutons sont liés au téléchargement et au débogage : Debug, Run et External Tools.

Le petit triangle à côté du bouton « Déboguer » ouvre le menu Configurations de débogage qui permet de configurer les paramètres de débogage, tels que la sélection du débogueur, les paramètres de connexion GDB, les paramètres ST-LINK, les paramètres du chargeur Flash externe, etc., et de lancer le débogage.

Le bouton « Exécuter » vous permet de télécharger le programme sans lancer le débogage.

Le bouton « External Tools » vous permet d'appeler des outils de ligne de commande externes.

STM32CubeIDE Code Debugging
STM32CubeIDE Code Debugging

Commencer le débogage

STM32CubeIDE utilise GDB pour le débogage, prend en charge les débogueurs STLink et SEGGER J-Link, et permet la connexion au microcontrôleur cible via l'interface SWD ou JTAG.

Une fois le projet STM32CubeIDE compilé, le débogage peut être lancé directement en cliquant sur l'icône du robot dans la barre d'outils ou en sélectionnant le menu Exécuter–>Déboguer.

STM32CubeIDE Start Debugging
STM32CubeIDE Start Debugging

Si c'est la première fois que vous déboguez le projet actuel, STM32CubeIDE compilera d'abord le projet, puis ouvrira la fenêtre de configuration du débogage. La fenêtre de configuration du débogage contient des options pour la sélection de l'interface de débogage, les paramètres STLink, les paramètres de réinitialisation et les paramètres du chargeur flash externe, etc. Les utilisateurs peuvent vérifier ou modifier les configurations. Après avoir confirmé que toutes les configurations sont correctes, vous pouvez cliquer sur OK pour lancer le débogage.

STM32CubeIDE téléchargera alors d'abord le programme vers le microcontrôleur, puis lancera l'exécution à partir de l'entrée du programme spécifiée dans le fichier de liaison (*.ld). Le programme commence l'exécution à partir de Reset_Handler par défaut et s'arrête à la première ligne de la fonction principale, en attendant la prochaine instruction de débogage.

Opérations de débogage de base

Après avoir lancé le débogage, STM32CubeIDE passe automatiquement à la vue de débogage, et les boutons de débogage sont répertoriés dans la barre d'outils de la vue de débogage. Comme illustré dans la figure ci-dessous.

Basic debugging operation of STM32CubeIDE
Basic debugging operation of STM32CubeIDE

4. Utilisation des plugins

STM32CubeIDE prend également en charge les plugins Eclipse. Il existe deux méthodes pour les installer :

  1. Installation via « Eclipse Marketplace » dans le menu Aide ;
  2. Installation via « Installer un nouveau logiciel » dans le menu « Aide ».
STM32CubeIDE plugins Installing
STM32CubeIDE plugins Installing

Exemple de programmation STM32CubeIDE

Découvrons le processus de développement logiciel à l'aide de STM32CubeIDE à travers une routine de clignotement LED.

La routine utilise la carte de développement NUCLEO-H743ZI et crée un nouveau projet à partir de zéro via STM32CubeIDE. Le projet implémente ensuite une fonction simple : la LED1 intégrée clignote automatiquement à des intervalles de 500 ms.

Voici ce que nous pouvons apprendre de cet exemple de programmation :

  • Créer un nouveau projet STM32CubeIDE
  • Configurer la puce STM32
  • Ajouter le code utilisateur et compiler
  • Définir les paramètres de débogage
  • Déboguer le code (afficher les variables et les registres)
  • Définir des points d'arrêt

Tout d'abord, sélectionnez Fichier–>Nouveau–>Projet STM32. STM32CubeIDE ouvrira la fenêtre de sélection du microcontrôleur. Dans cette fenêtre, vous pouvez sélectionner un modèle de puce spécifique, ou vous pouvez sélectionner une carte de développement ST ou une routine spécifique. Ici, nous saisissons STM32H743ZI dans la zone de recherche. Vous pouvez sélectionner directement cette puce, puis cliquer sur Suivant.

Create STM32CubeIDE New Project and Select STM MCU model
Create STM32CubeIDE New Project and Select STM MCU model

Dans la fenêtre contextuelle suivante, vous devez définir le nom, le type et l'emplacement du projet à enregistrer. Par défaut, le nouveau projet sera enregistré dans l'espace de travail actuel, mais vous pouvez également décocher « Utiliser l'emplacement par défaut » et personnaliser l'emplacement du projet comme indiqué ci-dessous. Notez que si vous essayez de placer deux projets sous le même chemin d'accès, vous risquez d'obtenir une erreur lors du processus de création ultérieur. Vous pouvez donc ajouter le nom du projet au chemin d'accès afin de distinguer les différents projets.

Une fois la configuration terminée, cliquez sur Terminer et STM32CubeIDE créera un projet pour nous et ouvrira l'interface de configuration de la puce, qui est la même que STM32CubeMX.

Pendant ce temps, une fenêtre contextuelle peut s'afficher pour vous demander d'ouvrir la perspective de configuration CubeMX. Cliquez sur Oui et vous avez terminé.

STM32CubeMX Configuration Perspective
STM32CubeMX Configuration Perspective

La prochaine étape consiste à configurer l'horloge, le GPIO, les périphériques, le middleware, etc. conformément aux exigences fonctionnelles dans l'écran de configuration de la puce. Dans cette routine, nous n'utilisons que PB0, qui sert de sortie pour contrôler LED1, il suffit donc de le configurer. L'horloge utilise simplement la configuration par défaut.

Dans la vue Pinout, la broche à configurer peut être trouvée rapidement sur le schéma du boîtier de la puce à l'aide de la barre de recherche.

Sélectionnez la broche, cliquez dessus avec le bouton droit de la souris et sélectionnez la fonction GPIO_Output.

Ensuite, allez dans la vue Système, cliquez sur le module GPIO, et vous pourrez voir la broche PB0 que vous venez de configurer. Cette fenêtre vous permet également de continuer à ajuster d'autres paramètres de PB0, tels que le pull-up/down, la vitesse, etc. Il est également possible de définir une étiquette utilisateur LDE1 pour celle-ci, ce qui facilite la référence dans le code.

Configure GPIOs on Create STM32CubeIDE
Configure GPIOs on Create STM32CubeIDE

Une fois la configuration terminée, sélectionnez Project–>Generate Code pour régénérer le code. À ce stade, STM32Cube passe à la vue C/C++ et vous pouvez alors ajouter le fichier utilisateur ou apporter des modifications à un fichier C.

Ici, nous ajoutons un morceau de code qui inverse PB0. Notez que tout le code ajouté par l'utilisateur doit être placé entre les déclarations « USER CODE BEGIN xxx » et « USER CODE END xxx ». De cette façon, lorsque le code est régénéré, cette partie du code ne sera pas perdue.

Une fois le code ajouté, cliquez sur « Build » pour lancer la compilation.

Generate Code and Compile Project
Generate Code and Compile Project

Si la compilation est terminée et qu'aucune erreur n'est signalée, vous pouvez cliquer sur Déboguer pour lancer le débogage.

La première fois que vous lancez le débogage, une fenêtre de configuration des paramètres de débogage s'affiche. Assurez-vous que tous les paramètres sont corrects, cliquez sur OK, et STM32CubeIDE passera automatiquement de l'interface d'édition à l'interface de débogage. Comme le montre la figure ci-dessous.

Dans l'interface de débogage, vous pouvez déboguer étape par étape à l'aide des boutons d'action de la barre d'outils.

Double-cliquez sur la barre de marqueur la plus à gauche d'une ligne de code pour ajouter un point d'arrêt à cette ligne de code.

Plusieurs fenêtres de débogage s'ouvrent sur le côté droit, notamment : variables locales, points d'arrêt, variables globales et registres, etc. Ces fenêtres peuvent être ouvertes ou fermées dans le menu Fenêtre–>Afficher la vue.

STM32CubeIDE Debug Code
STM32CubeIDE Debug Code

STM32CubeIDE vs STM32CubeMX

STM32Cube IDE est un environnement de développement intégré (IDE) destiné au développement d'applications sur les microcontrôleurs STM32. Basé sur la plateforme Eclipse, STM32Cube IDE intègre STM32CubeMX, des débogueurs, des éditeurs, des compilateurs et d'autres outils, offrant ainsi aux développeurs un environnement complet. STM32Cube IDE offre des fonctionnalités de débogage, de contrôle de version, d'édition de code et de compilation, permettant aux développeurs de mener à bien l'ensemble du processus de développement dans une interface unifiée.

STM32CubeMX est un outil de configuration graphique conçu pour initialiser les microcontrôleurs STM32 et générer du code d'initialisation. Il offre une interface intuitive permettant aux utilisateurs de sélectionner des modèles de microcontrôleurs, de configurer des périphériques, des mappages de broches et de générer le code d'initialisation correspondant. STM32CubeMX peut également générer des fichiers de configuration FreeRTOS, configurer l'arborescence d'horloge et définir les priorités d'interruption. Le code généré peut être intégré dans divers environnements de développement intégrés (IDE) tels que Keil ou IAR pour le développement d'applications supplémentaires.

FeatureSTM32CubeMXSTM32Cube IDE
PurposeConfiguration tool for STM32 MCUsFull IDE for application development
FunctionalityInitializes MCUs, configures peripherals, generates codeCode writing, debugging, building, and compiling
PlatformStandalone, integrates with Keil, IARBuilt on Eclipse, integrates CubeMX, debugging tools
Code GenerationGenerates initialization code for external IDEsDevelops and compiles applications directly
User InterfaceGraphical interface for configurationFull IDE with editing and debugging tools
Use CaseSet up peripherals and generate base codeWrite, build, and debug applications

Questions fréquentes sur STM32CubeIDE

STM32CubeIDE peut-il générer des fichiers BIN ou HEX après la compilation ?

Par défaut, STM32CubeIDE génère des fichiers ELF après compilation. Cependant, il prend également en charge la génération de fichiers HEX ou BIN. Le processus de configuration est le suivant : Allez dans le menu principal Project > Properties > C/C++ Buildet ouvrez les paramètres où vous pouvez configurer le format de sortie.

generating BIN or HEX files by STM32CubeIDE
Generating BIN or HEX files by STM32CubeIDE

Oui, tout à fait. STM32CubeIDE intègre en effet STM32CubeMX en tant que module dans son environnement de développement. Lors de la création d'un nouveau projet dans CubeIDE, STM32CubeMX est automatiquement invoqué pour permettre aux utilisateurs d'effectuer des configurations d'initialisation graphiques.

Plusieurs raisons peuvent expliquer pourquoi STM32CubeIDE ne génère pas de code :

  • Assurez-vous que STM32CubeMX est correctement intégré et invoqué lors de la création du projet.
  • Vérifiez que vous avez correctement configuré le microcontrôleur et ses périphériques dans STM32CubeMX avant d'essayer de générer le code.
  • Vérifiez les paramètres dans la Project > Properties , en particulier les options de génération de code.
  • Assurez-vous qu'il n'y a pas d'erreurs ou de configurations manquantes qui pourraient empêcher la génération de code.

Abonnez-vous

Rejoignez notre liste d’abonnés pour obtenir mensuel blog des mises à jour, des nouvelles technologies, des études de cas. Nous n’enverrons jamais de spam, et vous pouvez vous désinscrire à tout moment.

À Propos De L'Auteur

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Besoin D'Aide?

Retour en haut

Instant Quote