STM32CubeIDE Débuter avec l’IDE Getting started with STM32 : STM32 step by step Tutorial: Getting started with an ST development board using STM32CubeIDE → Article qui montre comment utiliser STM32CubeIDE pour créer un projet simple puis le compiler et le déboguer (→ SWO, Virtual COM) Désactiver la recherche de mise à jour Les mises à jour de STM32CubeIDE occasionnent de gros volumes de téléchargement, ce qui est problématique au lycée vu la bande passante de notre connexion ADSL… Pour éviter ces mises à jour, il suffit de les désactiver dans les préférences de STM32CubeIDE : Installer un “MCU Firmware Package” en offline Chaque série de la ligne STM32 dispose de sa propre plateforme de développement. Cette plateforme de développement se nomme un “MCU Firmware Package”. Pour développer dans STM32CubeIDE un projet sur un micro-contrôleur de la série STM32, il faut au préalable installer ce MCU Firmware Package. Ceci peut se faire automatiquement lors de la sélection du micro-contrôleur ou de la carte cible lors de la création d’un nouveau projet dans STM32CubeIDE mais cela implique de télécharger des fichiers qui font plusieurs centaines de Mo. On peut alors souhaiter mettre à disposition localement ces MCU Firmware Packages pour éviter d’avoir à les télécharger depuis internet. Pour cela : Depuis une machine ayant accès à un “internet rapide”, se procurer une fois le MCU Firmware Package sous forme d’archive .zip : soit depuis l’onglet “Tools & Software” de la page produit ( micro-contrôleur ou carte de développement) du site de STMicroElectronics → Ex. : Paquets “Stm32CubeF4” et/ou “Stm32CubeU5” pour les cartes Nucleo F411RE et/oi Nucleo U575 sur le site de STMicroElectronics soit directement sur le dépôt Github de STMicroElectronics → Ex. : STM32CubeF4 et/ou STM32CubeU5 pour les MCU Firmware Packages des micro-contrôleurs STM32F4 et/ou STM32U5 soit en créant dans STM32CubeIDE un projet ciblant le micro-contrôleur souhaité. Le MCU Firmware Package est alors téléchargé automatiquement mais également désarchivé dans son emplacement par défaut : C:\<user>\STM32Cube\Repository Copier puis désarchiver l’archive .zip du MCU Firmware Package dans le répertoire C:\<user>\STM32Cube\Repository du PC n’ayant pas ou peu accès à internet L’endroit ou STM32CubeIDE va chercher les MCU Firmware Packages est configurable depuis le menu Window Preferences Stm32Cube Firmware Updater. Ouvrir un exemple Pour ouvrir dans STM32CubeIDE un des exemples fournis dans un MCU Firmware Package, il suffit : d’aller dans le menu : File Import… General Import STM32 Cube Example choisir l’exemple parmi ceux qui sont listés après filtrage basé sur la carte de développement, le type d’application etc… Afficher des nombres flottants Si on veut formater avec la famille des fonctions printf() des messages comportant des nombres flottants, il faut activer le support de formatage des nombres flottants (→ “Use float with printf from newlib-nano”) dans les propriétés du projet Project Properties C/C++ Build Settings MCU Settings ou bien ajouter manuellement l’option -u _printf_float au linker Ajouter un répertoire dans un projet Pour structurer son projet, on peut vouloir regrouper les fichiers source dans un répertoire. Exemple de projet STM32 dans lequel on souhaite regrouper nos codes source dans le répertoire lib-edacub [D:\...\codebase\edacub\stm32-firmware] (19ms) > tree Structure du dossier pour le volume DATA Le numéro de série du volume est 3891-B47D D:. ├───.settings ├───Core │ ├───Inc │ ├───Src │ └───Startup ├───Debug │ ├───Core │ │ ├───Src │ │ └───Startup │ ├───Drivers │ │ └───STM32F4xx_HAL_Driver │ │ └───Src │ └───lib-edacub │ └───src ├───Drivers │ ├───CMSIS │ │ ├───Device │ │ │ └───ST │ │ │ └───STM32F4xx │ │ │ ├───Include │ │ │ └───Source │ │ │ └───Templates │ │ └───Include │ └───STM32F4xx_HAL_Driver │ ├───Inc │ │ └───Legacy │ └───Src └───lib-edacub (1) ├───inc └───src 1 répertoire dans lequel on souhaite regrouper les codes source du projet Pour que le contenu de ce répertoire soit pris en compte lors du processus de compilation, il faut paramétrer les propriétés du projet : Se rendre dans Project Properties C/C++ General Paths and Symbols Sélectionner l’onglet “Includes” et ajouter le chemin des fichiers .h avec le bouton Add… en partant du “Workspace” Le répertoire des “Includes” est alors automatiquement ajouté dans les options du compilateur accessibles via Prject Properties C/C++ Build Settings MCU GCC Compiler Include paths Suivre la même procédure pour ajouter le chemin des fichiers .c depuis l’onglet “Source location” Réinitialiser l’agencement des fenêtres Il peut arriver qu’on perde l’agencement des fenêtres dans une des “perspectives” (→ “C/C++”, “Debug”, “Device Configuration Tool”). Ex. : disparition de la fenêtre “Console” ou “Build Analyser”. Dans ce cas, faire un clic droit sur l’icône de la perpective (en haut à droite dans la barre d’outils de STM32CubeIDE) puis sélectionner l’option “Reset”. Mise à jour du firmware de l’interface de deboggage/programmation d’une carte Nucleo De façon à pouvoir à téléverser sur le micro-contrôleur une application développée sur STM32CubeIDE, il faut s’assurer que la version du firmware de l’interface de deboggage/programmation présente sur la carte Nucleo U575 ou Nucleo F411RE (→ STLinkV3E) soit en accord avec celle de l’environnement de développement. La méthode consiste simplement à mettre à jour le firmware de l’interface de deboggage/programmation. Cette mise à jour peut se faire depuis : le menu Help ST-LINK Upgrade de STM32CubeIDE avec le bouton Firmware Upgrade présent dans le bandeau latéral droit de l’application STM32CubeProgrammer Dans les 2 cas, on aboutit sur le même écran. Il suffit alors de suivre les étapes illustrées ci-dessous pour mettre à jour le firmware : Programmer une application avec le STLinkV3Set La procédure est indiquée dans le guide de démarrage. 2 façons de procéder : [À privilégier] Alimenter la carte Nucleo U575 avec le connecteur micro-USB avec sa configuration d’origine au niveau des cavaliers (→ programmateur interne STLINK-V3E actif) et attendre que la LED COM devienne rouge. Connecter ensuite le STLinkV3Set externe à travers le connecteur de débogage STDC14/MIPI-10 (CN5) [À éviter] Mettre le programmateur interne STLINK-V3E en haute impédance (→ JP1 ON et JP2 OFF) puis connecter l’outil de débogage externe au connecteur de débogage STDC14/MIPI-10 (CN5) La description de cette 2ème méthode manque de précision. Des essais ont montré qu’il fallait non seulement avoir JP1→ON et JP2→OFF mais aussi JP6→[9-10] (Source alimentation = “5V_CHGR”) pour pouvoir téléverser les binaires sur le micro-contrôleur mais il reste des incertitudes sur le bien fondé de cette solution ⇒ En conséquence, il vaut mieux utiliser la 1ère méthode. Base de connaissances How to add a BSP to a STM32CubeIDE project 🞄 🞄 🞄 Spécifications Nucleo U575