Les Groupes ARM : LabVIEW

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à la navigationAller à la recherche


Cible utilisée : LUMINARY MICRO LM3S8962 EVALUATION BOARD

Voici un document pour vous présenter la possibilité de programmer très rapidement sous NI-LabVIEW Embedded for ARM µc de cartes Texas Instruments tel que le kit LM3S8962 dont le prix d'achat est d'environ soixante quinze (75) euros chez RadioSpares.

L'interface de développement est NI-LabVIEW (National Instrument), logiciel très populaire, relativement simple et rapide à prendre en main mais aussi assez coûteux puisqu'il vous faudra investir environ 1500 € pour une licence "définitive" de ce module (contre 400 € pour une version d'évaluation de 60 jours). Cependant, l'environnement NI-LabVIEW et son module NI-LabVIEW Embedded for ARM µc présente un gros avantage puisque qu'ils peuvent tourner sous les systèmes d'exploitations Linux et Windows sans vraiment s'en soucier.

Comme indiqué dans l'article de NI, les principales raisons d'utiliser un Module LabVIEW Embedded for ARM Microcontrollers sont :

- la possibilité de développer rapidement du code exécutable sur les microcontrôleurs ARM;
- la possibilité de programmer à l'aide d'outils de conception graphique de haut niveau, 
  qui permet une transition rapide entre les phases de développement et de déploiement;
- la possibilité de développer avec du matériel d'évaluation basées sur le ARM7 et le Cortex-M3;
- la possibilité d'incorporer le code C généré avec NI-LabVIEW dans nos solutions matérielles personnalisées.

Je ne vous parlerai pas des opérations d'installation du logiciel NI-LabVIEW et de son module NI-LabVIEW Embedded for ARM µc qui sont très simple mais aussi très longue. La suite de ce document suppose donc que vous ayez déjà effectué ces manipulations.

Contenu du kit d'évaluation LM3S8962 pour le développement

KIT LM3S8962

Le kit d'évaluation vendu chez RS contient tout le nécessaire pour développer et exécuter des applications pour les microcontrôleurs de la famille Stellaris, dont :

- 1 carte d'évaluation LM3S8962 (EVB),
- 1 câble USB micro (noir),
- 1 câble pour la cible de 20 broches JTAG / SWD,
- 1 câble CAN de 10-broches,
- 1 câble Ethernet rétractable,
- 1 CD contenant :
   - une documentation complète,
   - la version d'évaluation des outils logiciels :
      - le guide de démarrage rapide avec quelques codes sources
      - les pilotes et librairies StellarisWare ® Peripheral avec exemples code source
      - une version d'évaluation de :
         - kit de développement de microcontrôleur Keil RealView ™ ® (MDK-ARM)
         - l'IDE Code Composer Studio ™ de Texas Instruments (que nous n'utiliserons pas)

Connections du kit d'évaluation LM3S8962 sur un ordinateur (sous Windows)

Voici comment connecter très rapidement et facilement votre carte d'évaluation LM3S8962 à votre ordinateur (portable ou non), tournant par exemple sous Windows7. Il vous faudra :

- le module ULINK2 de KEIL (disponible chez NI avec la version du kit d'évaluation à 400€),
- le câble USB pour relier ce module (vendu avec le module ULINK2),
- la carte d'évaluation LM3S8962 (contenu dans le kit d'évaluation vendu chez RS pour 75€),
- le câble USB micro noir (contenu dans le kit d'évaluation LM3S8962).

Ci-dessous les étapes illustrées pour les différentes connections, un jeu d'enfant...

Lancer et configurer NI-LabVIEW Embedded for ARM pour LM3S8962

Voici les étapes à suivre pour démarrer un projet sous NI-LabVIEW Embedded for ARM. Les utilisateurs familiers avec l'environnement NI-LabVIEW ne seront pas dépaysés puisqu'il s'agit du même logiciel avec une étape en plus qui consiste uniquement à sélectionner et configurer la cible embarquée, ici le LM3S8962.

Etapes
Image (cliquez pour agrandir) Description
Etape-1
Lancer NI-LabVIEW201X
Lancez votre application NI-LabVIEW
Etape-2
Gestionnaire de projets
Configurez votre projet NI-LabVIEW
Etape-3
Gestionnaire de projets
Vérifiez la version de la licence, sélectionnez la famille des micro-contrôleurs (pour la compilation) et cliquez sur le bouton "Démarrer..."
Etape-4
Créez nouveau projet ARM
Sélectionnez un projet de type blank et cliquez sur le bouton "Suivant >"
Etape-5
Créez nouveau projet ARM
Sélectionnez la bonne version de votre carte (ici le kit LM3S8962), cliquez sur le bouton "Suivant >"
Etape-6
Créez nouveau projet ARM
Vérifiez le gestionnaire de votre projet créé, sélectionnez le type de construction (hard/simul) et cliquez sur "Terminer"
Etape-7
Environnement de travail
Voici votre environnement de travail par défaut prêt à être utilisé. Avec sur la gauche, l'arborescence de votre projet et sur la droite vos fenêtres pour la face avant (dans le cas d'une simulation/débugger) et le diagramme qui sera votre fenêtre de programmation...

Voilà, vous êtes prêt à programmer sur la carte en NI-LabVIEW Embedded for ARM !!!

Ecrire un premier code et le tester en mode simulation/débugger

Pour suivre cette partie, vous devez avoir connecté l'ensemble de vos équipements pour le développement, plus précisément la carte LM3S8962 à votre ordinateur à travers le module ULINK2 de chez KEIL. Vous devez également avoir lancé et configuré l'environnement de développement NI-LabVIEW Embedded for ARM. Si vous ne savez pas comment faire, revenez en amont de ce document pour suivre les différentes étapes.

Le code que nous allons écrire est très simple. Nous allons dans un premier temps l'exécuter à la fois sur le pc (mode débugger/simulation) et aussi sur la cible LM3S8962. Ce code va permettre d'in/décrémenter un registre à décalage; d'éclairer une LED0 située sur la carte LM3S8962 et en même temps un indicateur voyant positionné sur la Face-Avant. Tout ceci s’effectuera lorsqu'un utilisateur appuiera sur l'un des boutons Up/DownButton0 situés soit sur la carte LM3S8962, soit sur l'une des commandes Up/DownButtonDbg placées sur la Face-Avant; et d'en afficher la valeur du registre à décalage à la fois sur l'afficheur Oled de la carte LM3S8962 et sur un indicateur numérique placé en Face-Avant. La base de temps sera réglée à 100ms. En résumé, il faudra donc :

- 4 entrées à définir : 2 digitales pour les Up/Down de la carte LM3S8962 et 2 commandes Up/Dw pour la Face-Avant,
- 2 sorties : 1 digitale LED0 pour la carte LM3S8962 et un indicateur LED0 pour la Face-Avant,
- 1 ensemble de fonctions (DisplayInit, DisplayClear, DisplayDrawString) pour la gestion de l'afficheur Oled de la carte LM3S8962... 

Etapes
Image (cliquez pour agrandir) Description
Etape-1
Explorateur Projet
Observez bien l'explorateur de votre projet. Pour commencer, double cliquer sur le fichier vi se trouvant sous le répertoire EK-LM3S8962 si la fenêtre de votre Face-Avant n'est pas ouverte. Dans notre exemple, il s'agit du fichier Untitled ARM.vi. Vous pouvez également ouvrir la fenêtre Diagramme associée à la Face-Avant en tapant simultanément sur les touches CTRL+E de votre clavier.

Importez dans la partie Digital Input les éléments de la carte LM3S8962 qui représenteront les deux boutons UpButton0 et DownButton0. Pour ce faire, cliquez-droit sur le dossier EK-LM3S8962, allez dans Nouveau->Elemental I/O et cliquez-gauche. Sélectionnez dans la liste à gauche le groupe Digital Input les éléments UpButton0 et DownButton0 et ajoutez les en cliquant sur la flèche-bleue de droite. Faites la même manipulation pour les Digital Output et la LED0. Puis cliquez sur le bouton OK.

Etape-2
Sources Face avant et Diagramme
Construisez la Face-Avant et le Diagramme comme représenté sur l'image ci-contre. Vous pouvez me contacter par email (eric.duvieilbourg@univ-brest.fr) pour vous envoyer le source si vous avez des difficultés. Une fois la Face-Avant et le Diagramme terminés, vous pouvez cliquer sur le bouton Flèche-Exécuter pour exécuter le code. Ceci aura pour effet de :
- compiler l'ensemble du projet,
- télécharger (uploader) l'exécutable créé vers la cible (target),
- lancer/exécuter le programme.

Je vous conseille de lire la suite pour entrer dans les détails sur ces 3 points.

Uploader votre code binaire compilé vers la cible LM3S8962

Voici les principales étapes qui vont se présenter lorsque vous allez compiler votre code :

Image (cliquez pour agrandir) Description
Etape-1 Pour lancer toute la séquence de la compilation à l'exécution du code, il vous suffira de cliquer sur le bouton "flèche Exécuter" présente sur les fenêtres Face-Avant et Diagramme sur NI-LabVIEW
Etape-2 NI-LabVIEW va tout d'abord chercher à lancer le compilateur KEIL pour générer le code C. A ce moment, une fenêtre s'ouvre automatiquement pour vous demander à partir de quel endroit vous voulez compiler le code, utile si vous utilisez un serveur d'application.
Etape-3 La compilation s'effectue sur 3 ou 4 phases en fonction du mode d'exécution target-simulation-debugger ou target seul, simulation seul ou debugger seul. La 4ème phase concerne uniquement le mode dbg qui ajout automatiquement du code pour synchroniser en temps "réel" les exécutions sur la cible et sur le pc.
Etape-4 Ensuite le code est téléchargé dans le cas où vous avez choisi de l'envoyer sur la cible et vérifié.
Etape-5 Enfin, l'application lance le programme sur la cible (si target sélectionné) et sur le pc (si simul/dbg sélectionnés) en fonction des modes.

A ce niveau, votre code source programmé sous l'environnement NI-LabVIEW Embedded for ARM tourne sur votre cible LM3S8962 et sur votre PC. Voilà, vous avez donc assez rapidement et sans réelle configuration/préparation de votre système d'exploitation programmé sur un micro-contrôleur ARM.


Remarque

La programmation en mode débugger est beaucoup plus gourmande en code qu'en mode target. En effet, des instructions sont ajoutées de manière transparente et automatiquement à votre code source afin de permettre la communication en continu entre votre application NI-LabVIEW de votre ordinateur et la carte d'évaluation telle que la LM3S8962. Si vous utilisez ce mode (ce qui sera sans aucun doute le cas lors de vos premières réalisations) cherchez à optimiser la taille de votre code source sous peine que la compilation à travers l'outil KEIL ne fonctionne pas et produise une erreur. La taille maximale de code exécutable téléchargeable avec la carte LM3S8962 est de 256Ko pour la licence professionnelle et 64Ko pour la licence évaluation.

Image (cliquez pour agrandir) Description
Pour configurer les modes target, simulation ou débugger, il vous faudra parcourir l'arborescence de votre projet, cliquez droit sur Application et sélectionner Propriétés.

Cet action ouvrira une nouvelle fenêtre qui vous permettra de spécifier des paramètres de construction pour votre application suivant les différents modes cités précédemment.

Pour terminer, voici des impressions écran de la taille des exécutables suivant les deux modes de constructions différents : target avec mode débugger et target seul. La différence n'est pas négligeable.

Avec débugger (cliquez pour agrandir) Sans débugger (cliquez pour agrandir)


--Eric DUVIEILBOURG (discussion) 15 mars 2013 à 15:27 (CET)