Introduction à STM32CubeProgrammer

STM32CubeProgrammer est l’outil de développement actif, gratuit et multiplateforme de STMicroelectronics pour lire, effacer, programmer et vérifier les mémoires STM32. Il prend en charge ST-LINK via SWD/JTAG et, si le bootloader du composant les implémente, UART, USB DFU, I²C, SPI ou CAN.

Utilisez le manuel actuel et la documentation de la référence exacte : interfaces, broches de démarrage, carte mémoire, option bytes et sécurité dépendent du STM32 et de la version.

Interface utilisateur de STM32CubeProgrammer

STM32CubeProgrammer fournit à la fois une interface utilisateur graphique et une interface utilisateur en ligne de commande. De plus, il fournit également une API C++, et les utilisateurs peuvent intégrer les fonctions de STM32CubeProgrammer dans les applications PC qu'ils développent.

Overview of STM32CubeProgrammer
Overview of STM32CubeProgrammer

Comme le montre la figure ci-dessus, dans la zone de configuration à droite, les utilisateurs peuvent choisir de se connecter au microcontrôleur STM32 via l'interface de débogage STLink ou via des interfaces de communication telles que USB et UART. Une fois connecté au microcontrôleur STM32, vous pouvez voir le modèle actuel du microcontrôleur, sa version et la taille de la mémoire Flash dans la zone « Informations sur le périphérique ». Si une carte de développement ST officielle est connectée, le nom de la carte de développement s'affiche également.

Fonctions de STM32CubeProgrammer

STM32CubeProgrammer prend en charge l'effacement et la lecture/écriture de la mémoire intégrée des microcontrôleurs STM32 via l'interface de débogage SWD/JTAG de STLink ou via des interfaces de communication telles que UART, USB, I2C, SPI et CAN, à l'aide du bootloader système programmé en usine et stocké dans la puce.

Voici les principales fonctions de STM32CubeProgrammer :

Effacement et programmation

STM32CubeProgrammer prend en charge l'effacement par secteur et l'effacement complet de la mémoire Flash. Il peut importer divers formats de fichiers pour la programmation, notamment les fichiers binaires (.bin), elf (.elf, .axf, .out), hexadécimaux (.hex) et Motorola S-record (.srec).

Erasing and Programming of STM32CubeProgrammer
Erasing and Programming of STM32CubeProgrammer

Opération d'effacement

Après avoir établi une connexion avec le microcontrôleur cible via STLink, vous pouvez effacer des secteurs Flash sur la page « Erasing & Programming » (Effacement et programmation) par secteur ou effectuer un effacement complet de la puce en sélectionnant le bouton « Full chip erase » (Effacement complet de la puce).

Opération de programmation

Sur la page « Effacement et programmation », vous pouvez cliquer sur le bouton « Parcourir » pour importer un fichier exécutable, puis cliquer sur « Démarrer la programmation » pour lancer le processus de programmation.

Vous pouvez également, sur la page « Édition de la mémoire et des fichiers », ouvrir le fichier exécutable que vous souhaitez programmer, puis cliquer sur « Télécharger » pour lancer la programmation.

Sur la page « Édition de la mémoire et des fichiers », sous « Mémoire du périphérique », vous pouvez également lire les valeurs de la mémoire du microcontrôleur à une plage d'adresses spécifiée et enregistrer le contenu lu sous forme de fichiers binaires (.bin), hexadécimaux (.hex) ou S-record (.srec) à l'aide du menu « Enregistrer sous ».

Outre la programmation de l'ensemble du fichier exécutable, vous pouvez modifier directement la valeur à une adresse spécifique sur la page « Memory & File Edition » (Édition de la mémoire et des fichiers) sous « Device Memory » (Mémoire du dispositif). Après avoir appuyé sur « Enter », STM32CubeProg lira, modifiera, effacera et réécrira automatiquement. Cette méthode peut être utilisée pour programmer des octets programmables une seule fois (OTP).

Octet d'option lecture/écriture

Dans la page OB (Option Byte), vous pouvez consulter les paramètres actuels des octets d'option pour le microcontrôleur connecté. Vous pouvez également modifier les valeurs des octets d'option ici. Pour obtenir des explications détaillées sur les octets d'option, veuillez vous reporter au manuel de référence du microcontrôleur spécifique.

Option bytes Reading and Writing of STM32CubeProgrammer
Option bytes Reading and Writing of STM32CubeProgrammer

Programmation « deux en un »

En utilisant le mode de programmation « Deux en un » de la page « Effacement et programmation », vous pouvez programmer à la fois la mémoire FLASH et les octets d'option en une seule opération. La configuration des octets d'option s'effectue à l'aide de la « ligne de commande STM32CubeProgrammer » avec la commande « -ob ». Par exemple, pour définir la protection en lecture au niveau 1 après la programmation de la mémoire FLASH, procédez comme suit :

  • Définissez le chemin d'accès au fichier exécutable à télécharger.
  • Cochez « Effacement complet de la puce » et « Télécharger le fichier » sous « Mode automatique ».
  • Dans la zone de saisie « Option bytes commands » (Commandes des octets d'option), entrez « -ob rdp=0xBB ».
  • Cliquez sur « Start automatic mode » (Démarrer le mode automatique) et STM32CubeProgrammer exécutera les opérations spécifiées dans l'ordre, en affichant la progression dans la fenêtre du journal.
2 in 1 Programming-Automatic Mode of STM32CubeProgrammer
2 in 1 Programming-Automatic Mode of STM32CubeProgrammer

Pour plus de détails sur le format de la commande « -ob », reportez-vous à la section 3.2.15 de l'UM2237 (Manuel d'utilisation de l'outil logiciel STM32CubeProgrammer). Les définitions des champs OptByte dans la commande « -ob » ne sont pas expliquées dans UM2237, mais vous pouvez les trouver en consultant l'onglet « Option bytes » (Octets d'option) dans l'interface graphique STM32CubeProgrammer, car les définitions dans la commande « -ob » correspondent à celles qui s'y trouvent. Vous pouvez également utiliser la commande « -ob displ » pour afficher la configuration actuelle de tous les octets d'option, ce qui vous permettra de comprendre les définitions de chaque champ OptByte.

Lecture/écriture de mémoire externe

Si vous souhaitez lire/écrire sur une mémoire externe connectée au STM32 via des interfaces telles que SPI, FMC, QSPI, vous aurez besoin d'un chargeur externe. CubeProgrammer fournit des chargeurs externes par défaut correspondant à la mémoire externe intégrée dans les cartes de développement STM32. Si vous utilisez un autre modèle de mémoire, vous pouvez créer vos propres fichiers de chargeur externe (*.stldr). Reportez-vous à la section 2.3.3 de l'UM2237 pour obtenir des instructions détaillées.

External Memory Programming of STM32CubeProgrammer
External Memory Programming of STM32CubeProgrammer

Avant d'effectuer des opérations sur la mémoire externe, vous devez sélectionner le chargeur externe correspondant sur la page « Chargeur externe ». Ce chargeur externe sera utilisé lors des opérations d'effacement et de programmation ultérieures sur la mémoire externe sur les pages « Effacement et programmation » et « Édition de la mémoire et des fichiers ».

Chargeur d'amorçage

De nombreux STM32 contiennent un bootloader d’usine en mémoire système. Périphérique, broches, séquence de démarrage et horloge sont propres au composant et doivent être vérifiés dans AN2606. ST-LINK n’est pas nécessaire pour cette connexion et sa génération V2/V3 ne choisit pas l’interface du bootloader du MCU.

Bootloader of STM32CubeProgrammer
Bootloader of STM32CubeProgrammer

Deux chemins sont distincts : sonde de débogage via SWD/JTAG ou bootloader système STM32 via une interface prise en charge par la référence exacte. Ne déduisez pas UART/USB/I²C/SPI/CAN de la version ST-LINK ; vérifiez AN2606 avant le câblage.

Fenêtre de saisie d'informations SWO

Au cours du développement, il est souvent nécessaire d'afficher des informations de débogage. Une méthode courante consiste à rediriger la sortie printf vers un port série, ce qui consomme un port série. Une autre méthode consiste à rediriger la sortie printf vers la broche SWO (Serial Wire Output) via l'interface de débogage SWD, ce qui permet d'envoyer les informations de débogage via SWO. La fenêtre SWV (Serial Wire Viewer) de STM32CubeProgrammer peut afficher les informations de débogage envoyées via SWO et enregistrer toutes les informations reçues dans un fichier « .log » spécifié.

Serial Wire Viewer of STM32CubeProgrammer
Serial Wire Viewer of STM32CubeProgrammer

Interface de ligne de commande

STM32CubeProgrammer fournit une interface en ligne de commande qui vous permet d'exécuter la plupart de ses fonctions à l'aide de commandes. Le fichier exécutable « STM32_Programmer_CLI.exe » se trouve dans le dossier « bin » du répertoire d'installation de STM32CubeProgrammer. L'exécution de « STM32_Programmer_CLI.exe » affiche la liste des commandes prises en charge et leurs paramètres.

Command Writing of STM32CubeProgrammer
Command Writing of STM32CubeProgrammer

L'interface en ligne de commande offre également certaines fonctionnalités qui ne sont pas disponibles dans l'interface graphique, telles que la création de paquets fiables, la programmation sécurisée, le calcul des valeurs CRC, etc. Pour obtenir des instructions détaillées, reportez-vous à la référence UM2237. L'exemple illustré dans la figure montre comment se connecter à la puce cible via l'interface SWD et définir le niveau de protection en lecture 1 à l'aide d'instructions en ligne de commande. La commande complète est « STM32_Programmer_CLI.exe -c port=SWD -ob rdp=0xBB ».

Mise à jour du micrologiciel STLink

Après avoir connecté le débogueur STLink à votre ordinateur, ouvrez STM32CubeProgrammer et actualisez la connexion STLink pour afficher la version actuelle du micrologiciel STLink. Cliquez sur le bouton « Firmware upgrade » (Mise à niveau du micrologiciel) et ouvrez l'outil STLinkUpgrade pour mettre à jour la version du micrologiciel STLink.

Firmware Upgrade of ST-LINK of STM32CubePorgrammer
Firmware Upgrade of ST-LINK of STM32CubePorgrammer

Comment utiliser STM32CubeProgrammer ?

STM32CubeProg est un outil de programmation complet qui inclut des opérations courantes telles que la lecture, l'écriture (téléchargement/programmation), l'effacement et la programmation des octets d'option.

Environnement d'installation

Les versions actuelles prennent en charge les versions documentées de Windows, Linux et macOS. Depuis STM32CubeProgrammer 2.6.0, le paquet inclut son propre JRE : aucun Java séparé n’est requis. Les captures suivantes utilisent l’ancienne version 2.5.0b.

Connexion des puces et STM32CubeProg

Lorsque vous utilisez STM32CubeProgrammer pour vous connecter à la carte cible via STLINK, il peut arriver que la connexion échoue. Cela peut être dû à une version trop ancienne du micrologiciel dans le STLINK. Pour y remédier, cliquez sur le bouton « Firmware upgrade » (Mise à niveau du micrologiciel) afin d'effectuer une mise à niveau du micrologiciel. Au cours du processus de mise à niveau, vous devrez peut-être brancher et débrancher plusieurs fois. Une fois la mise à niveau terminée, débranchez puis rebranchez une fois pour que STM32CubeProgrammer reconnaisse le STLINK.

Programmation et débogage de puces

Une fois le débogage du programme terminé, vous devez programmer la puce avec votre code. En général, vous avez trois options :

  1. Utilisez l'interface de débogage JTAG/SWD pour programmer la puce, ce qui nécessite souvent le logiciel STLink Utility ou STVP.
  2. Programmer la puce via l'interface UART, à l'aide du logiciel de démonstration STM32 Flash loader sur le PC.
  3. Programmer la puce via l'interface USB, en utilisant le logiciel USB DfuSe.

Programmation avec ST-LINK

Programming with ST-LINK _ STM32CubeProgrammer
Programming with ST-LINK _ STM32CubeProgrammer

Programmation avec UART

Programming with UART_ STM32CubeProgrammer
Programming with UART_ STM32CubeProgrammer

Programmation avec USB

Programming with USB_ STM32CubeProgrammer
Programming with USB_ STM32CubeProgrammer

Pour USB DFU, sélectionnez le mode de démarrage système exigé par le MCU exact, utilisez le paquet actuel et vérifiez l’énumération avec le pilote documenté. Désinstaller d’anciens outils DFU ou exécuter STM32Bootloader.bat n’est pas une condition universelle.

CLI STM32CubeProgrammer et vérification maîtrisée

La CLI convient aux procédures répétables de développement, validation et maintenance, à condition de maîtriser les entrées et de conserver les preuves.

  • Consignez version, Device ID exact, interface, hash de l’image, adresse de chargement, option bytes et résultat de lecture-vérification. Un BIN brut ne contient pas son adresse de chargement.
  • La FAQ et la licence ST actuelles indiquent qu’il s’agit d’un outil de développement, pas de programmation de production. Utilisez une solution de production approuvée en fabrication.

Part à:

Retour en haut

Instant Quote

Devis Immédiat