STM32CubeIDE

Débuter avec l’IDE

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 :

stm32 ide disable update

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 :

  1. 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” link et/ou “Stm32CubeU5” link pour les cartes Nucleo F411RE link et/oi Nucleo U575 link sur le site de STMicroElectronics

    • soit directement sur le dépôt Github de STMicroElectronics

      → Ex. : STM32CubeF4 link et/ou STM32CubeU5 link 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

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

bsp location

Ouvrir un exemple

Pour ouvrir dans STM32CubeIDE un des exemples fournis dans un MCU Firmware Package, il suffit :

  1. d’aller dans le menu : File  Import…​  General  Import STM32 Cube Example

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

  1. Se rendre dans Project  Properties  C/C++ General  Paths and Symbols

  2. Sélectionner l’onglet “Includes” et ajouter le chemin des fichiers .h avec le bouton Add…​ en partant du “Workspace

    paths and symbols

    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

  3. 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 link

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 :

stlink upgrade

Programmer une application avec le STLinkV3Set

La procédure est indiquée dans le guide de démarrage.

2 façons de procéder :

  1. [À 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)

  2. [À é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.

🞄  🞄  🞄