CCS 3.1 et DSP en "C"

publicité
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 1/28
La machine cible peut elle aussi disposer de disques.
Machine cible : " Target "
Machine de développement : " Host "
Composant de
Communication
Ecran Clavier
Disque dur Compilateur
"I"
"O"
Logiciel
En ROM
Liaison Série
ou
Liaison Parallèle
ou
Réseau
ou
USB
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
31
16 15
87
0
D0
D1
D2
D3
D4
D5
D6
D7
8 registres de données
16 15
A0
A1
A2
A3
A4
A5
A6
A7
7 pointeurs d'Adresse
2 pointeurs de pile
A'7
PC
Compteur programme
SR
Registre d'état
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview
Page 2/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
début
(adresse absolue)
(symbole représentant une adresse)
Le champ Mnémonique qui indique la nature de l'instruction.
ex
lea
move
add
and
beq
etc...
(load effective adresse)
(transfert de données)
(opération arithmétique)
(opération logique)
(branchement conditionnel)
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
Chargement d'Adresse Effective dans le pointeur A4
move.b
D0,$2000
Rangement du contenu du registre de données D0 dans la mémoire d'adresse $2000
bmi
négatif
Branchement au symbole "négatif" si le bit N=1 : registre détat
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
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 3/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
- Le "C"
-Grafcet
:
:
:
langage d'apprentissage abandonné dans les applications industrielles.
langage de plus en plus utilisé.
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
Utilisateur
Fichiers Relogeables
Bibliothèques Système
Compilation
Edition de Liens
(Link)
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 4/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 :
Fichier source "C" ASCII
main()
{
double i,k;
for (i=0;i<10;i++)
k=sin(i);
}
Module Relogeable
Bibliothèque MATHS
sqrt
Programme Binaire
01100110
11011001
...
sin
11000110
01111000
Procédure "sin"
Non définie
cos
Compilation
Edition de Liens
Cstart
Programme Utilisateur
Fonction sinus
Module Binaire Final
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview
Page 5/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"
Code
Intermédiaire
Code
Assembleur
Code Indépendant du micro
Fichiers Textes ASCII
Module
Relogeable
Module binaire
Exécutable
Code Dépendant du micro
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 6/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 7/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 8/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 9/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 10/28
h) Point d’arret
i)
Modes pas à pas
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 11/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 12/28
l)
Visualisation des variables
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 13/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 14/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 15/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 16/28
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
Exemple de VI qui recopie les entrées Analogiques et Tout ou Rien sur les sorties
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 19/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 20/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 21/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 22/28
Installer les nœuds d’entrées sorties
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 23/28
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 24/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 25/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 26/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 27/28
Application Finale
PA DEGRYSE - Cours Micro- Partie 5 : développement logiciel – CCS V3.1 et Labview Page 28/28
Téléchargement