Eclipse / STM32 Cube IDE : conseils d'utilisation dans le cadre d'un projet STM32

(Ce document concerne l'outil STM32CubeIDE)

Workspace

L'environnement de développement STM32 Cube IDE est basé sur Eclipse. Il impose la création d'un workspace pour ouvrir des projets.
Le workspace est un répertoire qui contient des données temporaires redondantes (index) sur la structure de chaque projet et les préférences de l'utilisateur, enregistrées de manière implicite.
Ces caractéristiques rendent parfois nécessaire de supprimer ce répertoire pour surmonter un incident, aussi il est recommandé de placer les projets à l'extérieur de ce répertoire.

Pour référencer un projet dans le workspace courant, utiliser la commande :
File --> Open Projects from File System
Pour retirer cette référence, utiliser la commande Delete sur le projet, et vérifier que l'option Delete project contents on disk n'est pas activée.

N.B. Si on modifie la structure ou le nom d'un projet depuis l'extérieur d'Eclipse, il est recommandé de le retirer du workspace puis de le référencer à nouveau pour que les index soient cohérents.

Ouvrir/Fermer un projet contenu dans le Workspace

L'ensemble des projets contenu dans le Workspace sont visibles dans le volet Explorateur Projet (Project Explorer), généralement visible sur la partie gauche de l'écran. Par défaut, les projets sont fermés. Pour ouvrir un projet, faites un clic droit au-dessus du nom du projet à ouvrir. Dans le menu déroulant qui apparait, sélectionnez Open Project. L'arborescence projet apparaitra et les différents fichiers pourront être édités. La compilation et le debug concerneront le projet ouvert et sélectionné. Pour refermer un projet, faites un clic droit au-dessus du nom du projet et sélectionnez Close Project dans le menu déroulant.

Contenu d'un projet

Un projet Eclipse (dans le contexte de cet outil) est un répertoire qui contient au moins : Contrairement aux autres IDE qui gèrent tous les fichiers source par référence explicite, Eclipse inclut dans la compilation tous les fichiers source qui sont dans les sous-répertoires du projet, de manière implicite (à la Java).
Il n'y a donc rien de particulier à faire lorqu'on introduit un fichier source local dans le projet.

Il est aussi possible de référencer des fichiers extérieurs (voir ci-dessous), cependant l'IDE ne montre pas toujours clairement la distinction entre les deux cas, en particulier la même commande Delete peut aussi bien retirer une référence ou détruire irréversiblement un fichier.

N.B. Les fichiers .h ne sont pas référencés individuellement, vu qu'ils ne sont pas compilés sour leur nom propre mais seulement au travers de directives d'inclusion.

Fichiers source partagés (bibliothèques)

Création d'un lien sur un fichier .c :
File -> New -> Other -> General -> File -> Advanced -> Link to file
Mise a jour des chemins (include paths) pour les fichiers .h :
Project -> Properties -> C/C++ General -> Paths and Symbols -> Includes -> GNU C
N.B. Il est parfois plus efficace de modifier directement les fichiers .cproject et .project avec un bon éditeur de texte (tel que notepad++) ou le programme recube, mais dans ce cas il est recommandé de commencer par retirer le projet du workspace puis de le référencer à nouveau pour que les index soient cohérents.

Nom d'un projet

Le nom du projet qui apparait dans le workspace n'est pas le nom du répertoire du projet, c'est celui qui est dans le fichier .project.
Si on crée un nouveau projet à partir d'une copie d'un projet existant, il faut penser à changer non seulement le nom du répertoire mais aussi le nom du projet dans .project.

Copier-coller d'un projet existant dans le workspace

Comme évoqué avant, il est possible d'importer un projet existant dans le workspace à l'aide de la commande : File --> Open Projects from File System. Dans le cas où l'on souhaite repartir d'un projet existant pour créer un nouveau projet, on peut importer le projet existant et en créer une copie. Pour cela, en se plaçant dans l'explorateur projet de l'IDE (volet Project Explorer), on effectue un clic droit au-dessus du projet à copier et on clique sur Copy dans le menu déroulant qui apparait. Il n'y a plus qu'à coller. Un écran vous demande le nom à donner au nouveau projet. On pourra ensuite ouvrir le projet à l'aide de la commande Open Project.

Ajout de fichiers existants dans un projet

Pour ajouter des fichiers existants (par exemple des fichiers .c/.h) dans un projet, depuis l'arborescence du projet apparaissant dans le Project Explorer, vous pouvez faire un clic-droit sur le répertoire projet dans lequel vous voulez insérer les fichiers existants. Cliquez sur Import. Une fenêtre s'ouvre : cliquez sur General puis File System. Cliquez sur Next et sélectionnez le répertoire dans lequel sont rangés les fichiers à ajouter (Browse). Une fois sélectionné, l'ensemble des fichiers sources (.c et .h) sont listés. Vous pouvez sélectionner ceux qui seront ajoutés à votre projet. Terminez en cliquant sur le bouton Finish.

Compilation

Si la commande Build ne répond pas, vérifier que le projet est sélectionné dans le Project Explorer.

Debug

Si la commande Debug ne répond pas, vérifier que le projet est sélectionné dans le Project Explorer.

Dans le cas de True Studio, le bouton rouge carré stop ne sert pas suspendre l'exécution du programme, il met fin à la session de debug et provoque un retour à la perspectve de développement.
(Sous Eclipse, une perspective est la disposition des sous-fenêtres ou layout).

Sur un projet neuf, la commande Debug va d'abord ouvrir la fenêtre Debug Configurations, alors il faut choisir:
Embedded C/C++ Application -> STM32L476RG
onglet Debugger ->
  Debug probe : ST-LINK
  Interface : SWD

Préférences de l'utilisateur (ergonomie)

L'éditeur de texte intégré est équipé de nombreux gadgets (auto indentation, auto completion, etc...) extrêmemnt intrusifs.
Pour reprendre le contrôle de la situation :
Window -> Preferences -> C/C++ -> Editor -> Typing (enlever le superflu)
Window -> Preferences -> General -> Editors -> Text Editors -> Displayed tab width : 8
Ces parametres sont stockés dans le workspace, principalement dans le répertoire
.metadata/.plugins/org.eclipse.core.runtime/.settings/