A) Le Logiciel : le Software - pa.degryse.free.frpa.degryse.free.fr/pdf/Microprocesseur DSP...

28
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.

Transcript of A) Le Logiciel : le Software - pa.degryse.free.frpa.degryse.free.fr/pdf/Microprocesseur DSP...

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 17/28

PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 18/28

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 24/28

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

PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 28/28

Application Finale