Documente Academic
Documente Profesional
Documente Cultură
Julien DeAntoni
V1.0 2008
Pourquoi ce cours ?
Diffrents besoins
Pourquoi ce cours ?
Diffrents besoins
Contenu du cours
Gnralits
Les sytmes considrs Le dveloppement de tels systmes micro-contrleur sans OS, pourquoi, comment ? Stratgie d'implmentation
Programmation sans OS
En charge du contrle d'un processus Lis la dynamique du processus contrler Soumis des contraintes temporelles
Pas forcment rapides (contrairement aux ides reues) Prdictibles (Souvent) Fortement enfouis
Systmes Critiques
Prdictibilit accrue
Contenu du cours
Gnralits
Les sytmes considrs Le dveloppement de systmes temps rel micro-contrleur sans OS, pourquoi, comment ? Stratgie d'implmentation
Programmation sans OS
Entres / Sortie Standard IDE (spcifiques ou pas) Simulation de la cible / environnement / processus
10
11
Utilisation de mthodes formelles Tests (critres de couverture) Simulation fonctionnelle (exhaustive ou non) sur machine hte
12
Critres de validation
13
14
15
16
Contenu du cours
Gnralits
Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation
Programmation sans OS
17
Micro-contrleur ?
Contenu du cours
Gnralits
Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation
Programmation sans OS
19
Micro-contrleur sans OS
pourquoi ?
Perte financire (nombre d'exemplaire ?) L'OS prend la main ? Combien de temps ? Quand mon code est-il excut ? Est-il interrompu ? Ex.: le MSP430 ultra-low-power a 7 modes de mise en veille
20
Micro-contrleur sans OS
pourquoi ?
21
Micro-contrleur sans OS
pourquoi ?
Sans OS
22
Contenu du cours
Gnralits
Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation
Programmation sans OS
23
Micro-contrleur sans OS
comment ?
Trouver / choisir un compilateur adapt Trouver un linker (pour faire le transfert) Trouver / choisir un simulateur si disponible Se procurer les datasheets du micro-contrleur
24
Micro-contrleur sans OS
comment ?
C'est la documentation du micro-contrleur Sont gnralement trs consquentes (environ 300 pages) Ne contiennent pas que des choses utiles pour les informaticiens Rverbatif si on ne sait pas ce que l'on cherche
25
Micro-contrleur sans OS
comment ?
L'organisation de la mmoire
Les registres
Brochages des pattes physiques Caractristiques lctriques (sauf les consos dans les diffrents mode de veille) Jeux d'instructions assembleur (a moins que...)
26
Micro-contrleur sans OS
les ports d'E/S
Permettent de communiquer avec l'electronique de la machine (notamment les capteurs et les actionneurs) Plus ou moins nombreux Multi fonctionnalits Multi Directionnels
27
68HC11
Micro-contrleur sans OS
les priphriques intgrs
Timer
Permettent de mesurer le temps Sont lis la frquence physique d'oscillation Programmables et sources d'interruptions ou non
Liaison srie
SPI (serial Peripheral Interface) JTAG UART (universal asynchronous receiver transmitter) RS232 ... Permet souvent le 'transfert' et le debuggage in situ
28
Micro-contrleur sans OS
la mmoire
datasheets AT90S8535
29
Micro-contrleur sans OS
la mmoire
En RAM pour les premiers tests En EEPROM (ou Flash) pour les tests plus pousss En ROM une fois en production
Une place pour les variables En RAM bien sr Une place pour la pile
En RAM mais pas n'importe o (dbut ou fin ?) Dpend des micro-contrleurs (implmentation matrielle de push / pop)
30
Micro-contrleur sans OS
les registres
Datasheets AT90S8535
31
Micro-contrleur sans OS
les registres
Souvent nombreux 8 / 16 / 32 bits une adresse mmoire particulire considrer bit par bit
Datasheets PIC16F84A
32
Micro-contrleur sans OS
les registres
8 / 16 / 32 bits une adresse mmoire particulire Permettent de stocker les donnes sur lesquelles travailler ( variables) Sont utiliss par les instructions de calcul assembleurs
33
Contenu du cours
Gnralits
Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation
Programmation sans OS
34
Micro-contrleur sans OS
comment ?
Stratgie d'implmentation
1) Sans interruption (Synchrone)
Boucle infinie
Lecture de tous les capteurs + tat systme (scrutation) Calculs criture actionneurs + tat systme (attente)
35
Micro-contrleur sans OS
comment ?
Boucle infinie
Lecture de tous les capteurs + tat systme (scrutation) Calculs criture actionneurs + tat systme (attente)
36
Micro-contrleur sans OS
comment ?
Stratgie d'implmentation
1) Sans interruption (Synchrone)
Avantages :
Trs simple mettre en oeuvre Calculs des temps de ractions simplifis Pas / peu de gestion de la pile
37
Micro-contrleur sans OS
Stratgie d'implmentation
1) Sans interruption (Synchrone)
comment ?
Inconvnients :
Peu ractif, dpend beaucoup de la dure des calculs Difficile de grer la consommation lectrique (Attente active)
38
Micro-contrleur sans OS
Stratgie d'implmentation
1) Sans interruption (Synchrone)
comment ?
Inconvnients :
Peu ractif, dpend beaucoup de la dure des calculs Difficile de grer la consommation lectrique (Attente active)
39
Micro-contrleur sans OS
Stratgie d'implmentation
1) Sans interruption (Synchrone)
comment ?
Inconvnients :
Peu ractif, dpend beaucoup de la dure des calculs Difficile de grer la consommation lectrique (Attente active)
40
Micro-contrleur sans OS
comment ?
Idem que sans interruption + Traitement urgence Changement d'tats Attente non active
41
Micro-contrleur sans OS
comment ?
Idem que sans interruption + Traitement urgence Changement d'tats Attente non active
42
Micro-contrleur sans OS
comment ?
Idem que sans interruption + Traitement urgence Changement d'tats Attente non active
Avantages :
43
Micro-contrleur sans OS
comment ?
2) Avec interruption
Avantages :
Purement ractif
44
Micro-contrleur sans OS
comment ?
2) Avec interruption
Avantages :
Purement ractif
Micro-contrleur sans OS
comment ?
2) Avec interruption
Avantages :
Purement ractif
46
Micro-contrleur sans OS
comment ?
2) Avec interruption
Avantages :
47
Micro-contrleur sans OS
comment ?
2) Avec interruption
Inconvnient :
48
Micro-contrleur sans OS
comment ?
2)
Avec interruption
Inconvnient :
Sauvegarde de contexte
49
Micro-contrleur sans OS
comment ?
2) Avec interruption
Inconvnient :
Sauvegarde de contexte 1.Mettre tous les valeurs des registres utilisateurs dans la pile l'entre dans l'interruption 0.Rcuprer les valeurs des registres et les rassigner la sortie du programme d'interruption
50
Micro-contrleur sans OS
comment ?
2) Avec interruption
Inconvnient :
51
Micro-contrleur sans OS
comment ?
2) Avec interruption
Inconvnient :
1.On ignore les interruptions lors du traitement d'interruption 2.On masque les interruptions le temps du traitement 3.On compte les interruptions et on les traite successivement (si possible par le matriel)
52
Micro-contrleur sans OS
comment ?
2) Avec interruption
Inconvnient :
On compte les interruptions et on les traite successivement (si possible par le matriel)
53
Micro-contrleur sans OS
comment ?
2) Avec interruption
Inconvnient :
Quelle stratgie ?
54
Micro-contrleur sans OS
comment ?
2) Avec interruption
Inconvnient :
Quelle stratgie ?
55
Micro-contrleur sans OS
comment ?
2) Avec interruption
Inconvnient :
Quelle stratgie ?
Micro-contrleur sans OS
comment ?
2)
Avec interruption
Inconvnient :
Limite du sans OS ?
Quelle stratgie ?
Contenu du cours
Gnralits
Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation
Programmation sans OS
58
Mise en oeuvre
Le micro-contrleur
Architecture RISC 8Ko de Flash / 512o d'EEPROM, 512o de SRAM 32 entres / Sorties programmables Communication UART et SPI 2 timers 8 bits et 1 timer 16 bits 16 interruptions programmables ... (voir datasheet)
59
Mise en oeuvre
La chane d'outils : compiler
AVR-GCC and co
Cross compilateur bas sur gcc Linker, librairies pour architecture spcifiques Windows / Linux
http://www.avrfreaks.net/wiki/index.php/Documentation:AVR_GCC
ICCAVR
60
Mise en oeuvre
La chane d'outils : compiler
AVR-gcc
//handlerdel'interruptionnommesINT_COMPA ISR(INT_COMPA_vect) { //traiterl'interruption }
ICCAVR
//handlerdel'interruptionnumroNUM #pragmanom_fonction_handlerISR:NUM [...] nom_fonction_handler { //traiterl'interruption }
61
Mise en oeuvre
La chane d'outils : simuler
SimulAVR
Simul le jeux d'instruction RISC AVR Permet de visualiser l'tat de la mmoire et des registres en pas pas...ou pas Windows / Linux
http://savannah.nongnu.org/projects/simulavr/ http://www.nongnu.org/avr-libc/user-manual/install_tools.html
AVRStudio
62
Mise en oeuvre
La chane d'outils : 'linker' et transfrer
Avr-gcc produit le mapping seul d'aprs le type de micro-contrleur renseign lors de la compilation Avr-objcopy traduit le binaire (.elf) en format atmel , i.e. intel hexadecimal (.hex)
Utilise le port srie pour communiquer avec le micro-contrleur crit soit en Flash, soit dans l'EEPROM Peut facilement tre utilis avec Wine
d'autres sont plus complet mais plus difficile mettre en oeuvre selon les noyaux linux (AvrDude, uisp, AvrProg(linux) ...)
63
Mise en oeuvre
Le code
Code C classique
Arrt des interruptions Configuration des registres Dmarrage des interruptions Boucle sans fin
binaire hexa
64
1 D
1 211
0 3
Dcimal
Mise en oeuvre
Le code
Unsigned char = 8bits Unsigned int = 16 bits Les multiplications et divisions par des puissances de 2 se font par un simple dcalage gauche ou droite
65
Travaux Pratiques
66