Yahoo refuse tous les emails du site. Si vous avez une adresse chez un autre prestataire, c'est le moment de l'utiliser ;)

En cas de soucis, n'hésitez pas à aller faire un tour sur la page de contact en bas de page.

Topic "[STM32] installation d' outils hors ligne pour développer sur les cartes STM32 sur Ubuntu 14.04( SW4STM32 STM32Cubemix, et exemple STM32Cube_FW)"

Flux RSS des posts récents dans ce topic ( Flux Atom)


Pas de photo de profil

weetoz

Membre

#142 | Signaler ce message



[edit du 10 aout 2016] La migration vers Ubuntu 16.04 s'est faite sans soucis apparent. [/edit]
[edit du 20 juin 2016] Ajout de la désinstallation de STM32CubeMX suite à des problèmes de mise à jour si installation en root. [edit]

Introduction.

Ce tutoriel à été créé afin de disposer d' un compilateur hors ligne compatible avec les cartes STM32. Il existe le site mbed avec son compilateur en ligne, avec une quantité assez impressionnante de librairies. Cependant, je trouve intéressant d' avoir une suite de développement installé sur son ordinateur, ceci afin d' avoir une certaine indépendance vis à vis d'internet. Donc dans ce tutoriel, vous allez installer une suite d'outils constitués de SW4STM32, STM32CUBEMix, puis utiliser un des nombreux exemples fourni par STMicroelectronic.

SW4STM32.

C'est l' environnement de développement que nous allons installer. Basé sur Eclipse, ce logiciel est adapté au STM32. Bien supporté par sa communauté AC6openSTM32 ainsi que STMicroelectronic, ce logiciel présente une solution intéressante. Mais avant de pouvoir installer SW4STM32, il va falloir installer quelques applications.

Installer libc6:i386 lib32ncurses5.

Ce paquet est une librairie 32bits pour le compilateur dans un système Linux 64 bits.Si vous êtes en 32bits, sautez cette étape.

Ouvrez un terminal puis entrez cette commande : sudo apt-get install libc6:i386 lib32ncurses5.

Installation de Java8.

SW4STM32 a besoin de la dernière version de Java. Il est possible d'installer Openjdk, cependant, chez Eclipse, ils recommandent Oracle Java 8. Pour l' installer, ajoutez les dépôts d' Oracle sur votre machine,ouvrez un terminal: sudo add-apt-repository ppa:webupd8team/java, rechargez vos dépôts: sudo apt-get update.Profitez-en pour mettre à jour votre système: sudo apt-get upgrade.

Installez Java8 avec cette commande: sudo apt-get install oracle-java8-installer. Vous pouvez vérifier la version installée: java -version
" java version 1,8,0_77"

Installation de SW4STM32.

Avant de télécharger, inscrivez-vous sur le site OpenSTM32 ici. Une fois que c'est fait, téléchargez la version correspondante à votre système ( 32 ou 64bits ), par exemple si vous êtes en 64bits, le fichier sera donc: install_sw4stm32_linux_64bits-v1.3.run.

Votre navigateur a sûrement supprimé les droits « root » du fichier. Pour résoudre ce problème, dans terminal, rendez-vous dans votre dossier de téléchargement :cd ~/Téléchargementspuis sudo chmod 755 ./install_sw4stm32_linux_64bits-v1.3.run (Si vous êtes sur un linux 32bits, modifiez les ligne ci-dessus en conséquence, de même si votre système n' est pas en français).

Il y a deux façons d' installer SW4STM32, soit en « root » pour une utilisation multi utilisateurs, soit en utilisateur standard. L'équipe d'AC6 recommande la deuxième méthode, et celle que nous allons employer. Si cependant vous savez ce que vous faites, rien ne vous empêche d' utiliser la méthode « root ». Dans ce cas, rendez-vous sur la documentation du site OpenSTM32 pour suivre la procédure.( il vous appartiendra alors d' adapter les chemins de répertoires dans les diverses étapes de ce tutoriel).

Dans votre terminal, tapez: ./install_sw4stm32_linux_64bits-v1.3.run, nul besoin d'être en root avec la commande "sudo". L'assistant d'installation démarre, lisez à chaque étape les textes affichés cliquez sur Next pour passer. Puis acceptez les termes de la licence. Ensuite l'assistant vous demande de sélectionner l'emplacement de l'installation, vous pouvez soit laisser par défaut, ou sinon cliquez sur le bouton Browse… Notez le chemin d' installation, cliquez sur Next . L'assistant vous signifie que le répertoire va être créé, cliquez sur OK. Dans la fenêtre suivante, cliquez sur Next , et à nouveau sur Next. L'installation se lance, puis cliquez sur Next . Une fois fini, cliquez sur Done .

STM32CubeMX.

STM32CubeMix à été développé pas la société franco-italienne STMicroelectronic dans le but de faciliter l' usage de ses microcontrôleurs et de ses cartes. En effet, la complexité de l' architecture ARM est conséquente. Sans rentrer dans les détails, il est assez difficile de créer un projet à partir de rien. Par exemple, l'Arduino Uno pour ne citer que lui, est basé sur l' architecture AVR, qui n' est pas d'une grande simplicité non plus. Afin d' en facilité l'usage, il y a le langage Arduino et son compilateur basé sur ses librairies. Mais c'est encore plus compliqué sous ARM, tant les fonctionnalités et leurs matriçages sont complexe. Il est donc utile de pouvoir pré configurer son microcontrôleur de façon graphique et ainsi générer un code de base.

Installation de STM32CubeMix.

STM32CubeMix à aussi besoin d' Oracle Java8 d'installé, si vous ne l'avez pas installé, faite le. Il existe une version plugin pour Eclipse, malheureusement, pas très stable ( n'a jamais fonctionné correctement chez moi).

Nous installerons donc une version dite « standalone ». Commençons en téléchargeant le soft ici ( tout en bas de la page ). C'est un bouton bordeaux avec inscrit dessus « Download ». Loggez vous en «User» dans votre terminal et rendez-vous dans votre répertoire de téléchargement : cd ~/Téléchargements&&ls Déplacer le fichier stm32cubemx.zip dans le répertoire de votre choix ( pas obligatoire…).

mv ./stm32cubemx.zip /home/utilisateur/ensuite cd ~/ puis unzip stm32cubemx.zip. Toujours dans le terminal, lancez l'assistant d'installation avec cette commande: ./SetupSTM32CubeMX-4.15.1.linux. Suite à une mise à jour, je déconseille l' installation en « sudo ». Acceptez les commodités d'usages… ( gardez le répertoire d' installation par défaut) :

/usr/local/STMicroelectronics/STM32Cube/STM32CubeMX), validez la boite de dialogue qui suit. Notez l'emplacement du dés-installateur (/usr/local/STMicroelectronics/STM32Cube/STM32CubeMX/Uninstaller ).

Pour lancer STM32Cubemx, tapez dans votre terminal : ~/STM32Cube/STM32CubeMX, vous pouvez aussi créer un raccourci, en allant dans ce répertoire et faire un clique droit sur l'icone représentant un carré penché à 45 degré nommé STM32CubeMX. Sélectionner créer un lien, puis déplacez le raccourci créé sur votre bureau par exemple.

Nom de la doc pour STM32CubeMX : UM1718

Démarrage de Cube.

Rendez-vous dans /home/utilisateur/STM32CubeMX, et lancez le software. Nous lançons CubeMx juste pour télécharger les exemples fourni par STMicroelectronic. Pour ça, un raccourci clavier vaut mieux qu'un long discours: Alt + u, vous voici dans l'assistant de téléchargement:

new_lib_manager

Cochez « Software to configure and manage STM32 MCUs », puis parcourez la liste des librairies proposé jusqu'à trouver la librairie qui correspond à votre carte. Cochez la (ou les) et cliquez sur Install Now. Vous trouverez les dossiers téléchargé dans /home/utilisateur/STM32Cube/Repository.

Désinstallation de STM32CubeMix

Suite à une mise à jour du logiciel, ce dernier produit ses fichiers de sorties en utilisateur «root», ceci est contraignant car il faut systématiquement lancer AC6openSTM32 en «root». Pour ma part, j' ai désinstallé Cube comme ceci:

cd /usr/local/STMicroelectronics/STM32Cube/STM32CubeMX sudo java -jar uninstaller.jar

Cliquez ensuite sur Force the deletion of /usr/local… puis uninstall. Suivez les commodités d'usage jusqu'à la fin de la procédure.

Installer les drivers pour les cartes STM32.

Sudo apt-get install libusb-1,0 c'est tout!!

Mise à jour du firmware de la carte.

Les firmwares des cartes Nucleo, discovery, EvalBoard, Open et Xnucleo peuvent être mise à jour. (Pour l' utilisation d' Open OCD, mais bien plus tard.)

Dans votre navigateur, rendez-vous ici pour le téléchargement. En bas de la page un bouton bleu "Get Software" vous y attends.

Une fois le téléchargement terminé, (vous pouvez déplacer l'archive dans le même répertoire que les autres soft de ce tuto), décompressez l'archive . Déplacez-vous dans le répertoire qui contient le dossier décompacté. (en.stsw-link007). Puis dans le sous répertoire /AllPlateforms/StlinkRulesFilesForLinux, dans votre terminale tapez : sudo cp 49-stlinkv2-1.rules /etc/udev/rules.d puis sudo udevadm control --reload-rules. Pour lancer l'application: (sudo) java -jar /home/weetoz/Documents/App/en,stsw-link007/AllPlateforms/STLinkUpgrade.jar. Bien sûre, ne mettez pas les parenthèse à "sudo", c'est juste pour signifier que si la commande ne fonctionne pas sans, il faut le mettre. L' application s' ouvre:

STLinkUpdater

Branchez votre carte sur votre ordinateur, et cliquez sur open in update mode. Après quelques instants, vous devriez voir apparaître :

Firmware version : xxxxxx

Last firmware version : xxxxxy

Cliquez sur le bouton "update". Maintenant votre firmware est à jour et vous pouvez fermer l' application.

Maintenant, nous disposons des outils nécessaires pour pouvoir travailler avec nos cartes, mais comment ne pas finir ce tutoriel sans un "blink_led", n'est-ce pas?

Premier pas avec SW4STM32.

Lancez SW4STM32.

Pour ouvrir SW4STM32, deux solutions, soit par le terminal en tapant : /home/utilisateur/Ac6/SystemWorkbench/eclipse, ou avec votre explorateur de document en vous rendant dans /home/utilisateur/Ac6/SystemWorkbench. Faite un clique droit sur l'icône eclipse (représentant un carré penché à 45°) puis créer un lien. Cela vous permettra de créer un raccourci que vous pourrez placer sur votre bureau par exemple, en faisant un clique droit sur le raccourci et en sélectionnant Envoyer vers… puis sélectionnez Bureau.

Choisir son espace de travail ( "worspace" ).

La première fenêtre qui apparaît vous demande de sélectionner votre "workspace", par défaut, il vous propose ce chemin : /home/utilisateur/workspace. Personnellement, je garde le chemin par défaut en lui rajoutant un sous répertoire nommé «tuto». Dans ce répertoire, créez en un autre nommé «premier démarrage». Je vous recommande de faire ainsi pour commencer, car si à chaque nouveaux projet vous ne hiérarchisez pas vos travaux, ça va être le bazar. Une fois l' emplacement défini, cliquez sur OK.

sélection du workspace

Votre IDE est maintenant démarré :

Welcome

Pour accéder à l'interface de développement, cliquez soit sur la croix de l'onglet Welcome, soit sur l'icône de réduction en haut à droite de la fenêtre. C'est ce que je vous conseil, (voir l' image au dessus) comme ça vous aurez la même interface que moi pour la…

Présentaion de Eclipse SW4STM32.

Vous devriez normalement à ce stade avoir cette fenêtre :

l' espace de travail

  1. Project explorer, comme son nom l' indique, permet d' explorer votre projet, très utile pour ouvrir les différents fichiers liées à vos projets.

  2. L' editeur de code, c' est donc ici que l' on va écrire nos codes.

  3. La console de compilation.

  4. Apparemment, cette fenêtre permet de configurer des tâches, et d' autres choses. Je la laisserai réduite par défaut tant que je ne sais pas à quoi elle sert. Si quelqu' un peut m' en dire plus…

  5. Documentation relative à Eclipse.

Si vous n' avez jamais développez avec autre chose que l' IDE Arduino, vous risquez d' être un peu perdu. C'est pourquoi je vous propose de prendre un peu de temps pour découvrir votre nouvel environnement. Une fois que vous avez fait le tour, reprenez la lecture si le cœur vous en dit.

Une p' tite mise à jour ?…. si si ! Allez dans le menu Help → check for updates :

update_SW4STM32

Si les éléments proposés ne sont pas sélectionnés, il faut le faire en cliquant sur le bouton « select all ». Cliquez sur le bouton « next ». encore une fois, aller !! Acceptez la licence, puis cliquez sur le bouton « Finish ».

Il se peut qu' une fenêtre de dialogue apparaisse avec un message genre « Warning : You are installing software that contains unsigned content …», cliquez sur OK. Une autre boite de dialogue apparaît vous demandant de redémarrer, cliquez sur «OK ». Puis sur "yes" pour redémarrer SW4STM32.

Au redémarrage, dans l' assistant de démarrage, Eclispe devrait vous proposer le même workspace. Pour rappel /home/utilisateur/workspace/tuto/premier_demarrage. Si ce n' est pas le cas, vous pouvez le sélectionnez en cliquant sur Browse… puis en parcourant vos répertoire. Cliquez sur OK.

Préparations des exemples fournit par STMicroelectronics.

Lors de l' installation de STM32CUBEMx, nous avons téléchargé des « firmwares ». Ils ont bien plus que des firmwares, en effet, ils contiennent aussi des librairies, des exemples, des projets… Bref, de quoi bien débuter. C' est avec l' exemple GPIO_IOToggle que nous allons commencer. Pour ce faire, dans votre explorateur de document, rendez-vous dans le répertoire contenant le (ou les) « firmwares » que vous avez téléchargé par le biais de STMCubeMiX. Pour rappel, /home/utilisateur/Documents/App/STM32Cube/Repository.

Vous y trouverez l' archive accompagné de son répertoire décompressé, ouvrez le répertoire décompressé. Par exemple STM32Cube_FW_F3_V1.4.0, puis le dossier Documentation. Vous y trouverez un fichier nommé STM32CubeXYGettingStarted.pdf, c'est la documentation relative à l'utilisation de la librairie.

Retournez maintenant dans le répertoire Repository. Copiez l'ensemble du répertoires STM32Cube_FW_XY , puis collez les dans le workspace de SW4STM32 que vous utilisé pour ce tutoriel. Cela permettra de préserver les exemples tels qu'ils sont fournit par STMicroelectronic.

A ce stade, tous le contenu doit ce trouver dans le répertoire ~/workspace/tuto/premier_demarrage, ou le nom que vous lui avez donné. Dans l'IDE (SW4STM32), dans le menu File. Cliquez sur switch workspace et other, Browse… puis allez dans /STM32Cube_FW_XY/Projects/votre_carte/Examples/GPIO/GPIO_IOToggle. Cliquez sur valider et sur Finish. Maintenant il faut encore importer l' exemple, pour ce faire allez dans File-> Import… ->General->Existing Projects into Workspace, cliquez sur Next. Dans la fenêtre suivante, en face de Select root_directory : cliquez sur Browse…, puis cliquez sur GPIO_IOToggle. Cliquez sur valider et sur Finish.

Vous revoici dans l' espace de travail de SW4STM32. Il est fort possible qu' après quelques instants, un message d' avertissements en bas de l' écran apparaisse contenant une liste de plusieurs avertissements : Invalid project path:Include path not found(chemin où devrait se trouver les includes), dans ce cas, il vous faut éditer le fichier .cproject se trouvant dans le répertoire SW4STM32/votre_carte de l' exemple. Remplacez tout les antislashs par des slash. Si vous ne savez pas comment faire, vous trouverez un article sur le sujet ici.

Un avertissement va subsister , ressemblant à : Invalid project path:Include path not found …/Debug, rien d'inquiétant, au premier Build, le répertoire Debug sera créé. On y va ? Dans l'explorateur de projet, faite un clic gauche sur le nom du projet en haut de la hierarchie :

haut de hierarchie

Puis cliquez sur l'icône représentant un marteau, la compilation se lance. Le dossier Debug est créé. Ouvrez votre explorateur de document, ensuite déplacez-vous dans : /home/utilisateur/workspace//tuto/premier_demarrage/STM32Cube_FW_xy…/Projects/votre_carte/Examples/GPIO/GPIO_IOToggle/SW4STM32/Debug , vous y trouverez un fichier portant le nom de votre carte avec l'extension .bin. Si ce n'est fait, branchez votre carte, puis faite un simple glissez-déposez du fichier.bin dans votre carte. (Pour exemple, mon Nucleo porte le nom de NODE_F303k8). Voilà, vous venez de charger votre programme dans votre carte.

Vous voici arrivez à la fin de ce tutoriel, en espérant qu'il vous a été utile. Si vous avez des problèmes ou des questions, je me ferait un plaisir d'y répondre dans la mesure du possible. Je vous souhaite beaucoup de plaisir avec vos cartes de développements STM32.

Dans le prochain article, nous repartirons de l'exemple que nous avons utilisé dans ce tutoriel pour nous familiariser avec les fonctions de base de la librairie HAL, ainsi que les « diagrammes pinouts » des cartes. D'ici là, n'hésitez pas à expérimenter d'autres exemples.

Derniére modification le par weetoz