a) le logiciel : le software - pa.degryse.free.frpa.degryse.free.fr/pdf/microprocesseur dsp...
TRANSCRIPT
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 1/28
A) Le Logiciel : le Software
1) Mise en route d'une machine : RESET Un microprocesseur ne peut exécuter qu'une suite d'instructions qu'il doit aller extraire de sa mémoire. Cette
suite d'instructions est constituée d'une suite d'octets ou de mots binaires. A la mise sous tension d'une machine les mémoires RAM sont vides, seules les ROM conservent leur contenu. Il
y a toujours une ROM de BOOT dans une machine, qui contient la liste de premières instructions exécutables.
Machine sans disque ni réseau :
L'ensemble des programmes utilisateurs doivent être en ROM. Machine avec disque :
La ROM de boot vient chercher les programmes utilisateurs sur le disque dur : il doit disposer d'un secteur spécial d'amorce : secteur de boot. Les fichiers binaires exécutables, situés sur ce secteur, sont alors chargés en RAM et lancés automatiquement.
Machine sur réseau :
La ROM de boot vient chercher dans un serveur sur le réseau les programmes utilisateurs. Les fichiers binaires exécutables sont alors chargés en RAM, via le réseau, et lancés automatiquement.
2) Les systèmes d'exploitation : dialogue opérateur.
a) cas du micro-ordinateur
Le micro-ordinateur dispose d'un écran, d'un clavier et d'une souris : les logiciels chargés au boot gèrent
tous ces éléments y compris la RAM et les disques. Le système d'exploitation a pour rôle de :
- lire les commandes claviers ou souris : analyser la syntaxe et lancer le programme correspondant. Si il y a une erreur donner un message.
- gérer l'écran et le périphériques : imprimante, CD ROM, réseau etc... - gérer les disques et leur fichiers : copier créer, détruire, transférer etc...
b) Cas d'un automate cible.
Un automate cible a pour rôle de contrôler un processus automatisé. Il comporte une unité centrale et des
entrées sorties industrielles. En fonctionnement normal il est entièrement autonome. Il ne comporte pas d'écran ni de clavier.
Pour dialoguer avec un tel système il faut ajouter un dispositif de dialogue externe : un terminal soit sur
une liaison série, soit une liaison parallèle, soit sur un réseau. Ce terminal comporte au moins un écran et un clavier.
Le logiciel embarqué dans l'automate doit gérer, à la mise sous tension, la communication vers ce
terminal. Le terminal peut être :
- un terminal ACSII. - une console graphique sur Réseau. - un micro ordinateur.
Dans tous les cas il doit comporter un logiciel de communication vers la machine cible.
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 2/28
La machine cible peut elle aussi disposer de disques.
"I"
"O"
Machine cible : " Target "
LogicielEn ROM
Communication
Machine de développement : " Host "
Liaison SérieouLiaison ParallèleouRéseau
Composant de
Ecran Clavier
ouUSB
Disque dur Compilateur
3) L'assembleur.
L'assembleur est le langage le plus proche de la machine : les registres internes et les adresses mémoires
apparaissent directement dans le jeu d'instruction.
a) Modèle de Programmation. Le modèle de programmation d'un microprocesseur est une représentation schématique des registres
accessibles à l'utilisateur. On trouve trois famille de registres :
- les registres de données. - les registres pointeurs d'Adresse. - les registres de contrôle.
Modèle de programmation du 68000 de Motorola
016 1531 8 7
D0D1D2D3D4D5D6D7
A0A1A2A3A4A5A6
A7
16 15
A'7
8 registres de données
7 pointeurs d'Adresse
2 pointeurs de pile
PC Compteur programme
SR Registre d'état
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 3/28
b) Structure d'une instruction assembleur Une instruction en langage assembleur est constituée de quatre champs : Adresse, Mnémonique,
Opérandes et Commentaires. Le champ Adresse représente l'adresse d'implantation mémoire. ex : $2000 (adresse absolue) début (symbole représentant une adresse) Le champ Mnémonique qui indique la nature de l'instruction. ex lea (load effective adresse) move (transfert de données) add (opération arithmétique) and (opération logique) beq (branchement conditionnel) etc... Le champ opérande indique les données et le mode d'adressage. On peut avoir : - des instructions sans opérande : nop, stop, rts etc... - des instructions à un opérande : clr D0 - des instructions à deux opérandes : add D2,(A4)+ - des instructions à trois opérandes : sub D4,D5,D6
a) Exemple : Assembleur 68000
debut lea.l $6000,A4
move.b D0,$2000
Opérande destination (registre ou mémoire)
Opérande source (registre ou mémoire)
Code mémonic d'une instruction
Symbole de branchement pour le PC
bmi négatif
Chargement d'Adresse Effective dans le pointeur A4
Rangement du contenu du registre de données D0 dans la mémoire d'adresse $2000
Branchement au symbole "négatif" si le bit N=1 : registre détat
Pour utiliser ce langage il faut connaître :
- le modèle de programmation du microprocesseur : la liste et la fonction des registres internes. - la liste des instructions par groupe arithmétique, logique, branchement, accès à la mémoire, manipulation de bits, etc... - les modes d'adressage possibles pour les opérandes sources et destinations.
Avantages de ce langage
- programmes très courts et très rapides. - optimisation du code binaire. - accès facile aux mémoires et aux entrées sorties.
Inconvénients de ce langage
- connaissance interne du microprocesseur exigée. - lourdeur et complexité des instructions. - code lié à une famille de processeurs. - fonctions mathématiques difficiles à programmer.
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 4/28
Utilisation de ce langage
- applications de petite taille très rapides. - dans les monochips où la taille mémoire est faible (1k à 10k). - dans les programmes de pilotage de composants périphériques.
4) Les langages évolués : Pascal et "C". Les langages évolués sont de plus en plus utilisé.
- Pascal : langage d'apprentissage abandonné dans les applications industrielles. - Le "C" : langage de plus en plus utilisé. -Grafcet : langage de l'automaticien.
Avantages de ces langages
- faciles à mettre en oeuvre. - indépendant du microprocesseur. - permettent d'écrire de grosses applications modulaires.
Inconvénients de ces langages - chaîne de compilation lourde. - mémoire de travail importante : minimum 32 à 64 k. - lenteur relative. - accès aux entrées sorties plus ou moins faciles. - nécessite un poste de travail puissant.
5) Chaîne de développement. Un microprocesseur ne peut exécuter qu'une suite d'instruction binaires extraites de la mémoire centrale. Une chaîne de développement permet créer sur disque des fichiers binaires exécutables à partir :
- des fichiers sources crées par l'utilisateur. - des bibliothèques systèmes.
Elle comprend en général un compilateur et un éditeur de liens.
Fichiers Sources Fichiers Relogeables Bibliothèques Système
Compilation
Edition de Liens(Link)
Utilisateur
Module Binaire Exécutable Le compilateur transforme des fichiers textes ASCII en fichiers binaires. Ces fichiers textes peuvent être écrits
soit en langage assembleur soit dans un langage évolué "C", ou Pascal ou autre.
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 5/28
Un compilateur crée des modules binaires relogeables qui contiennent : - le code binaire exécutable. - la liste des procédures et des symboles utilisés mais non connus dans chaque module. Un éditeur de liens (linker) va :
- chercher les modules systèmes utiles pour l'application. - chercher les symboles non définis dans tous les modules de l'application. - placer bout à bout tous ces modules, pour créer l'application finale.
Pour exécuter cette application, il faut :
- charger le module binaire exécutable en RAM soit : - directement à partir du disque. (cas du micro ordinateur autonome) - par téléchargement sur la liaison entre le système de développement et la cible. (cas de la machine cible) - lancer l'exécution
Exemple :
main(){
double i,k;for (i=0;i<10;i++)
k=sin(i);
}
Fichier source "C" ASCII Module Relogeable
Procédure "sin"Non définie
Programme Binaire0110011011011001...
Compilation
Cstart
Programme Utilisateur
Fonction sinus
Module Binaire Final
Edition de Liens
Bibliothèque MATHS
sin
cos
sqrt
1100011001111000
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 6/28
REMARQUE Certaines chaînes de compilation font un passage par des codes intermédiaires indépendant du microprocesseur
et par l'assembleur.
Source "C"CodeIntermédiaire
CodeAssembleur
ModuleRelogeable
Module binaireExécutable
Code Indépendant du micro Code Dépendant du micro
Fichiers Textes ASCII Fichiers Binaires
Il est plus facile de porter des programmes sur des machines différentes. Sur ces compilateurs il est possible d'optimiser :
- soit la taille du code. - soit la vitesse d'exécution. - soit un compromis en taille et vitesse.
Il est possible d'arrêter la compilation soit au niveau :
- du code intermédiaire. - du code assembleur. - du code relogeable.
Le compilateur C de Code Composer Studio de Texas Instruments permet tous ces choix.
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 7/28
B) Le Logiciel : Développement en « C » sous CCS3.1
1) Choix d’une cible sous CCS3.1 : « le setup »
2) L’environnement de Code Composer Studio
a) L’espace de travail
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 8/28
b) Connection à la cible
c) Reset de la carte DSK
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 9/28
d) Ouverture d’un projet
e) Examen des fichiers du projet
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 10/28
f) Compliation
g) Chargement d’un fichier binaire dans le kit DSK
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 11/28
h) Point d’arret
i) Modes pas à pas
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 12/28
j) Visualisation des variables et de la mémoire
k) Visualisation de la mémoire et des registres internes
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 13/28
l) Visualisation des variables
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 14/28
C) Les principes de base de Labview 1) Bases de la programmation en LabVIEW
a) Introduction LabVIEW est un langage de programmation graphique qui utilise des icônes, au lieu des ignes de textes utilisées en C par exemple, pour écrire des applications. A l’inverse d’unlangage de programmation en ligne de texte où c’est la suite des instructions qui détermine l’exécution du programme. LabVIEW utilise la programmation par flux de données. C’est ce flux de données qui déterminera l’ordre d’exécution du programme. Dans LabVIEW, vous allez créer une interface utilisateur (face avant) en utilisant un ensemble ’outils et d’objets. L’interface utilisateur correspond à ce qui apparaîtra sur l’écran du PC en mode fonctionnement et qui permettra à l'utilisateur, soit de piloter le programme (donner des entrées), soit au programme d'afficher des informations (sorties). Le principal intérêt de Labview est de permettre facilement de développer ces interfaces à l’aide de bibliothèques pré-existantes. Le programme proprement dit est ajouté sur la face arrière. C'est un ensemble de codes utilisant un langage de programmation graphique qui permet de contrôler les objets de la face avant. Dans un certain sens, le diagramme se trouvant sur la face arrière ressemble à un flowchart.
b) Notion de VI Les programmes LabVIEW sont appelés instruments virtuels (virtual instruments en anglais) ou encore VI. Ceci est du au fait que leur apparence et mode de fonctionnement ressemble à celui d’instruments physiques comme les oscilloscopes ou les multimètres par exemple. Chaque VI utilise des fonctions qui manipulent des entrées de la face utilisateur ou d’autres sources et affiche les résultats des traitements ou les enregistre dans des fichiers de résultat ou sur d’autres ordinateurs.
Un VI contient les 3 éléments suivants : • Face avant (Front panel) —Sert d’interface utilisateur • Face arrière (Block diagram) —Contient le code source sous forme graphique qui définit les fonctionnalités du VI. • Icône et pattes de connections —Identifie le VI de telle sorte que vous pouvez utiliser le VI dans un autre VI. Un Vi à l’intérieur d’un autre VI est appelé sous-VI. Un sous-Vi correspond à une sous-routine (ou encore fonction) dans un langage de programmation textuel comme le C. c) Face avant
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 15/28
La face avant est l’interface utilisateur du VI. Vous allez créer la face avant avec les contrôles (entrées) et les indicateurs (sorties) qui sont les entrées et les sorties du VI qui vont interagir avec l’utilisateur. Les contrôles peuvent être des interrupteurs, des boutons poussoir, des boites de dialogue, et d’autres composants d’entrée. Les indicateurs sont des graphiques, des LEDs et d’autres systèmes d’affichage. Les contrôles simulent des composants d’entrées qui fournissent au diagramme du VI des données. Les indicateurs simulent des instruments de sortie qui affichent des données qui ont été acquises par le diagramme ou qui ont été générées.
d) Face arrière (Diagramme block)
Après avoir réalisé la face avant, vous allez ajouter du code en utilisant des représentations graphiques de fonctions pour contrôler les objets situés en face avant. Le diagramme de la face arrière va comporter le code source sous forme de graphique. Les objets de la face avant apparaîtront comme des terminaux (d’entrée ou de sortie) du diagramme. En plus, le diagramme va pouvoir contenir des fonctions et des structures qui sont fournies dans les librairies de VI de LabVIEW. Des fils vont connecter chacun des noeuds du diagramme en incluant les contrôles et les indicateurs, les fonctions et les structures.
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 16/28
D) Configuration d’une cible sous Labview
1) Développement d’une application DSP Labview Labview Commencer un Projet DSP
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 19/28
Exemple de VI qui recopie les entrées Analogiques e t Tout ou Rien sur les sorties
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 20/28
2) Développement d’une application cRIO Labview a) Configuration matérielle d’un cRIO
Chercher une cible : click droit sur la racine du projet
Choisir une cible
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 21/28
Chercher les modules implantés sur la cible : click droit sur FPGA
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 22/28
Choisir les modules implantés dans la cible « sous » le FPGA.
Installer les modules implantés dans la cible « sous » le FPGA.
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 23/28
Installer les nœuds d’entrées sorties
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 25/28
b) Configuration logicielle d’un projet sous cRIO Créer un VI sur le PC hôte : click droit sur poste de travail
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 26/28
Créer un VI sur le cRIO : click droit le nom du cRIO – pe-crio1 (192.168.10.11)
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 27/28
Créer un VI sur le FPGA : click droit le FPGA sous le cRIO