Sie sind auf Seite 1von 66

Systmes embarqus

Introduction la programmation micro-contrleur

Julien DeAntoni

V1.0 2008

Pourquoi ce cours ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Diffrents types de systmes embarqus


Tlphones / PDA / Diffrents gadgets / Modem Avionique / Automobile / Chane de production

Diffrents besoins

Pas d'OS OS temps rel ddis

Linux embarqus ou pseudo Linux

Pourquoi ce cours ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Diffrents types de systmes embarqus


Tlphones / PDA / Diffrents gadgets / Modem Avionique / Automobile / Chane de production

Diffrents besoins

Pas d'OS OS temps rel ddis Linux embarqus ou pseudo Linux

Contenu du cours

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Gnralits

Les sytmes considrs Le dveloppement de tels systmes micro-contrleur sans OS, pourquoi, comment ? Stratgie d'implmentation

Programmation sans OS

programmation sans IT (Synchrone) programmation avec IT (Asynchrone)

Mise en oeuvre Programmation avec un OS temps rel...

Les systmes embarqus considrs

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Systmes temps rels


En charge du contrle d'un processus Lis la dynamique du processus contrler Soumis des contraintes temporelles

Les systmes embarqus considrs

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Systmes temps rels


Pas forcment rapides (contrairement aux ides reues) Prdictibles (Souvent) Fortement enfouis

Les systmes embarqus considrs

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Systmes temps rels

Contraintes matrielles fortes


Mmoire Cot Taille

Les systmes embarqus considrs

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Systmes Critiques

Une faille peut mettre des vies en danger


Rgulateur de vitesse ABS

Prdictibilit accrue

Contenu du cours

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Gnralits

Les sytmes considrs Le dveloppement de systmes temps rel micro-contrleur sans OS, pourquoi, comment ? Stratgie d'implmentation

Programmation sans OS

programmation sans IT (Synchrone) programmation avec IT (Asynchrone)

Mise en oeuvre Programmation avec un OS temps rel...

Le dveloppement de systmes temps rel version simple :-)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Diffrence forte machine hte / machine cible Machine hte :


Entres / Sortie Standard IDE (spcifiques ou pas) Simulation de la cible / environnement / processus

10

Le dveloppement de systmes temps rel version simple :-)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Diffrence forte machine hte / machine cible Machine cible :


Entres / Sorties ? Difficilement utilisable hors de son environnement

11

Le dveloppement de systmes temps rel version simple :-)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Mthode de validation (fonction de la criticit)


Utilisation de mthodes formelles Tests (critres de couverture) Simulation fonctionnelle (exhaustive ou non) sur machine hte

12

Le dveloppement de systmes temps rel version simple :-)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Critres de validation

Temporelle nergtique Empreinte mmoire ...

13

Le dveloppement de systmes temps rel version simple :-)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Cross compilation (compilation croise)


Jeu d'instruction spcifique Configuration matrielle spcifique

En particulier mapping mmoire

Avec information de dbuggage (elf) ou non (s19)

14

Le dveloppement de systmes temps rel version simple :-)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Cross compilation et validation ?


Re-validation du code gnr Compilateurs certifis

Rpondent des critres stricts de gnration

15

Le dveloppement de systmes temps rel version simple :-)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Transfert ( jtag / SPI / ...)


Simple upload Transfert et pilotage


Permet le debug Mais l'environnement et le process ?

16

Contenu du cours

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Gnralits

Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation

Programmation sans OS

Programmation sans IT (Synchrone) Programmation avec IT (Asynchrone)


17

Mise en oeuvre Programmation avec un OS temps rel...

Micro-contrleur ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Processeur Mmoire Priphriques Bus de communication Entres / Sorties

Dans le mme boitier


18
AT90S8535

Contenu du cours

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Gnralits

Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation

Programmation sans OS

Programmation sans IT (Synchrone) Programmation avec IT (Asynchrone)

Mise en oeuvre Programmation avec un OS temps rel...

19

Micro-contrleur sans OS
pourquoi ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Un OS prend de la place et du temps de calcul

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

Un OS complique la conception / validation


L'OS utilise-t'il toutes les possibilits matrielles ?

20

Micro-contrleur sans OS
pourquoi ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Un OS n'est pas disponible ! Vous tes en train de dvelopper un OS

21

Micro-contrleur sans OS
pourquoi ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Sans OS

Programmation mono-tche Prdictibilit forte Programmation proche du matriel

Optimisation possible Configuration fine et adapte

Gain de place Gain de performance

22

Contenu du cours

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Gnralits

Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation

Programmation sans OS

Programmation sans IT (Synchrone) Programmation avec IT (Asynchrone)

Mise en oeuvre Programmation avec un OS temps rel...

23

Micro-contrleur sans OS
comment ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Mettre en place votre environnement de dveloppement

Choisir un langage de dveloppement


Assembleur C / C++ Ada ...

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 ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Les datasheets en quelques mots


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 ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Informations importantes des datasheets


Les ports d'Entres / Sorties La description des priphriques intgrs

L'organisation de la mmoire

Timer ? Convertisseurs A/D ? liaison srie ? Intgre ou non

Les registres

Informations moins importantes


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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Les ports d'Entres / Sorties

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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Les priphriques classiques

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

Convertisseur Analogique numrique

Interface avec des capteurs analogiques

28

Micro-contrleur sans OS
la mmoire

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

L'organisation de la mmoire ; un exemple

datasheets AT90S8535

29

Micro-contrleur sans OS
la mmoire

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Choisir son mapping

Une place pour le programme


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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Stocks en RAM 2 types


Configuration Utilisateurs Peuvent tre redondants

Datasheets AT90S8535

31

Micro-contrleur sans OS
les registres

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Les registres de configuration


Souvent nombreux 8 / 16 / 32 bits une adresse mmoire particulire considrer bit par bit

Datasheets PIC16F84A

32

Micro-contrleur sans OS
les registres

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Les registres 'utilisateur'

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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Gnralits

Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation

Programmation sans OS

Programmation sans IT (Synchrone) Programmation avec IT (Asynchrone)


34

Mise en oeuvre Programmation avec un OS temps rel...

Micro-contrleur sans OS
comment ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

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 ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Boucle infinie

Lecture de tous les capteurs + tat systme (scrutation) Calculs criture actionneurs + tat systme (attente)

36

Micro-contrleur sans OS
comment ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

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 ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

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 ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

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 ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnients :

Peu ractif, dpend beaucoup de la dure des calculs Difficile de grer la consommation lectrique (Attente active)

40

Micro-contrleur sans OS
comment ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Choisir sa stratgie d'implmentation


2) Avec interruption (asynchrone)

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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

42

Micro-contrleur sans OS
comment ?

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Choisir sa stratgie d'implmentation


2) Avec interruption

Idem que sans interruption + Traitement urgence Changement d'tats Attente non active

Avantages :

Purement ractif Permet l'conomie d'nergie Pas de scrutation non ncessaire

43

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Avantages :

Purement ractif

44

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Avantages :

Purement ractif

La fontion excute lors de l'arrive d'une interruption est appele handler


45

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Avantages :

Purement ractif

46

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Avantages :

Permet l'conomie d'nergie

47

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnient :

Demande un peu de technique

48

Micro-contrleur sans OS
comment ?
2)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Avec interruption

Inconvnient :

Demande un peu de technique

Sauvegarde de contexte

49

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnient :

Demande un peu de technique

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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnient :

Demande un peu de technique

51

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnient :

Demande un peu de technique


Quelle stratgie ?

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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnient :

Demande un peu de technique


Quelle stratgie ?

On ignore les interruptions lors du traitement d'interruption

On masque les interruptions le temps du traitement

On compte les interruptions et on les traite successivement (si possible par le matriel)

Dpend de la smantique de l'interruption

53

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnient :

Demande un peu de technique

Quelle stratgie ?

54

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnient :

Demande un peu de technique

Quelle stratgie ?

Les interruptions ont des priorits matrielles non modifiables

55

Micro-contrleur sans OS
comment ?
2) Avec interruption

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Inconvnient :

Demande un peu de technique

Quelle stratgie ?

Les interruptions ont des priorits matrielles non modifiables

Dpend de la smantique de l'interruption


56

Micro-contrleur sans OS
comment ?
2)

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Avec interruption

Inconvnient :

Demande un peu de technique

Limite du sans OS ?

Quelle stratgie ?

Les interruptions ont des priorits matrielles non modifiables

Dpend de la smantique de l'interruption


57

Contenu du cours

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Gnralits

Les sytmes considrs Le dveloppement de systmes temps rel Micro-contrleur sans OS, pourquoi ? comment ? Stratgie d'implmentation

Programmation sans OS

Programmation sans IT (Synchrone) Programmation avec IT (Asynchrone)


58

Mise en oeuvre Programmation avec un OS temps rel...

Mise en oeuvre
Le micro-contrleur

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Atmel AT90S8535 (8MHz)


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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

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

Cross compilateur propritaire Atmel Windows CD fourni

60

Mise en oeuvre
La chane d'outils : compiler

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Dfinition des handlers diffrentes selon le compilateurs / linkers

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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

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

Idem SimulAVR MAIS Solution professionnelle Windows CD fourni

62

Mise en oeuvre
La chane d'outils : 'linker' et transfrer

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Avr-gcc (avr-objcopy) / iccAVR (?)

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)

AVRProg (version windows)

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

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Code C classique

Arrt des interruptions Configuration des registres Dmarrage des interruptions Boucle sans fin

Forte utilisation des nombres hexadcimaux / binaire

binaire hexa
64

1 D

1 211

0 3

Dcimal

Mise en oeuvre
Le code

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Utilisation de types de donnes simples


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

Une page avec quelques rappels sympa :

http://wiki.jelectronique.com/avr-gcc (plus dispo mais toujours dans le cache google...)

65

Julien DeAntoni -- Polytech'Nice Julien DeAntoni -- Polytech'Nice

Travaux Pratiques

vous de jouer... travailler

66