Vous êtes sur la page 1sur 66

SystèmesSystèmes embarquésembarqués

IntroductionIntroduction àà lala programmationprogrammation micro-contrôleurmicro-contrôleur

Introduction à à la la programmation programmation micro-contrôleur micro-contrôleur Julien DeAntoni V1.0 – 2008
Introduction à à la la programmation programmation micro-contrôleur micro-contrôleur Julien DeAntoni V1.0 – 2008

Julien DeAntoni

V1.0 – 2008

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

PourquoiPourquoi cece courscours ??

Polytech'Nice PourquoiPourquoi cece courscours ??  Différents types de systèmes embarqués 

Différents types de systèmes embarqués

Téléphones / PDA / Différents gadgets / Modem

Avionique / Automobile / Chaîne de production

2

Différents besoins

/ Chaîne de production 2  Différents besoins  Pas d'OS  OS temps réel dédiés
/ Chaîne de production 2  Différents besoins  Pas d'OS  OS temps réel dédiés

Pas d'OS

OS temps réel dédiés

production 2  Différents besoins  Pas d'OS  OS temps réel dédiés  Linux embarqués
production 2  Différents besoins  Pas d'OS  OS temps réel dédiés  Linux embarqués

Linux embarqués ou pseudo Linux

production 2  Différents besoins  Pas d'OS  OS temps réel dédiés  Linux embarqués
production 2  Différents besoins  Pas d'OS  OS temps réel dédiés  Linux embarqués
production 2  Différents besoins  Pas d'OS  OS temps réel dédiés  Linux embarqués
production 2  Différents besoins  Pas d'OS  OS temps réel dédiés  Linux embarqués

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

PourquoiPourquoi cece courscours ??

Polytech'Nice PourquoiPourquoi cece courscours ??  Différents types de systèmes embarqués 

Différents types de systèmes embarqués

Téléphones / PDA / Différents gadgets / Modem

Avionique / Automobile / Chaîne de production

Différents besoins

Pas d'OS

OS temps réel dédiés

Linux embarqués ou pseudo Linux

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

ContenuContenu dudu courscours

Généralités

ContenuContenu dudu courscours  Généralités  Les sytèmes considérés  Le développement de

Les sytèmes considérés

Le développement de tels systèmes

Programmation sans OS

micro-contrôleur sans OS, pourquoi, comment ?

Stratégie d'implémentation

programmation sans IT (Synchrone)

programmation avec IT (Asynchrone)

Mise en oeuvre

Programmation avec un OS temps réel

LesLes systèmessystèmes embarquésembarqués considérésconsidérés

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Systèmes temps réels

En charge du contrôle d'un processus

Liés à la dynamique du processus à contrôler

Soumis à des contraintes temporelles

LesLes systèmessystèmes embarquésembarqués considérésconsidérés

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Systèmes temps réels

Pas forcément rapides (contrairement aux idées reçues)

Prédictibles

(Souvent) Fortement enfouis

LesLes systèmessystèmes embarquésembarqués considérésconsidérés

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Systèmes temps réels

Contraintes matérielles fortes

Mémoire

Coût

Taille

LesLes systèmessystèmes embarquésembarqués considérésconsidérés

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Systèmes Critiques

Une faille peut mettre des vies en danger

Régulateur de vitesse

ABS

Prédictibilité accrue

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

ContenuContenu dudu courscours

Généralités

ContenuContenu dudu courscours  Généralités  Les sytèmes considérés  Le développement de

Les sytèmes considérés

Le développement de systèmes temps réel

Programmation sans OS

micro-contrôleur sans OS, pourquoi, comment ?

Stratégie d'implémentation

programmation sans IT (Synchrone)

programmation avec IT (Asynchrone)

Mise en oeuvre

Programmation avec un OS temps réel

LeLe développementdéveloppement dede systèmessystèmes

tempstemps réelréel versionversion simplesimple :-):-)

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Différence forte machine hôte / machine cible Machine hôte :

10

Entrées / Sortie Standard

IDE (spécifiques ou pas)

Simulation de la cible / environnement / processus

LeLe développementdéveloppement dede systèmessystèmes

tempstemps réelréel versionversion simplesimple :-):-)

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Différence forte machine hôte / machine cible Machine cible :

Entrées / Sorties ?

Difficilement utilisable hors de son environnement

LeLe développementdéveloppement dede systèmessystèmes

tempstemps réelréel versionversion simplesimple :-):-)

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Méthode de validation (fonction de la criticité)

Utilisation de méthodes formelles

Tests (critères de couverture)

Simulation fonctionnelle (exhaustive ou non) sur machine hôte

LeLe développementdéveloppement dede systèmessystèmes

tempstemps réelréel versionversion simplesimple :-):-)

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Critères de validation

Temporelle

Énergétique

Empreinte mémoire

LeLe développementdéveloppement dede systèmessystèmes

tempstemps réelréel versionversion simplesimple :-):-)

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Cross compilation (compilation croisée)

Jeu d'instruction spécifique

Configuration matérielle spécifique

En particulier mapping mémoire

Avec information de débuggage (elf) ou non (s19)

LeLe développementdéveloppement dede systèmessystèmes

tempstemps réelréel versionversion simplesimple :-):-)

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Cross compilation et validation ?

Re-validation du code généré

Compilateurs certifiés

Répondent à des critères stricts de génération

LeLe développementdéveloppement dede systèmessystèmes

tempstemps réelréel versionversion simplesimple :-):-)

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

Transfert ( jtag / SPI /

)

Simple upload

Transfert et pilotage

Permet le debug

Mais l'environnement et le process ?

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

ContenuContenu dudu courscours

Généralités

ContenuContenu dudu courscours  Généralités  Les sytèmes considérés  Le développement de

Les sytèmes considérés

Le développement de systèmes temps réel

Programmation sans OS

Micro-contrôleur sans OS, pourquoi ? comment ?

Stratégie d'implémentation

Programmation sans IT (Synchrone)

Programmation avec IT (Asynchrone)

Mise en oeuvre

Programmation avec un OS temps réel

Micro-contrôleurMicro-contrôleur ??

Processeur

Mémoire

Périphériques

Bus de communication

Entrées / Sorties

 Bus de communication  Entrées / Sorties → Dans le même boitier 18 © Julien
 Bus de communication  Entrées / Sorties → Dans le même boitier 18 © Julien
 Bus de communication  Entrées / Sorties → Dans le même boitier 18 © Julien
 Bus de communication  Entrées / Sorties → Dans le même boitier 18 © Julien

Dans le même boitier

18

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice

AT90S8535AT90S8535

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

ContenuContenu dudu courscours

Généralités

ContenuContenu dudu courscours  Généralités  Les sytèmes considérés  Le développement de

Les sytèmes considérés

Le développement de systèmes temps réel

Programmation sans OS

Micro-contrôleur sans OS, pourquoi ? comment ?

Stratégie d'implémentation

Programmation sans IT (Synchrone)

Programmation avec IT (Asynchrone)

19

Mise en oeuvre

Programmation avec un OS temps réel

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

pourquoipourquoi ??

sanssans OSOS pourquoipourquoi ??  Un OS prend de la place et du temps de calcul

Un OS prend de la place et du temps de calcul

Perte financière (nombre d'exemplaire ?)

Un OS complique la conception / validation

L'OS prend la main ?

Combien de temps ?

Quand mon code est-il exécuté ?

Est-il interrompu ?

L'OS utilise-t'il toutes les possibilités matérielles ?

Ex.: le MSP430 ultra-low-power a 7 modes de mise en veille

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

pourquoipourquoi ??

sanssans OSOS pourquoipourquoi ??  Un OS n'est pas disponible !  Vous êtes en

Un OS n'est pas disponible ! Vous êtes en train de développer un OS

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

Sans OS

pourquoipourquoi ??

sanssans OSOS  Sans OS pourquoipourquoi ??  Programmation mono-tâche  Prédictibilité forte

Programmation mono-tâche

Prédictibilité forte

Programmation proche du matériel

Optimisation possible

Configuration fine et adaptée

Gain de place

Gain de performance

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

ContenuContenu dudu courscours

Généralités

ContenuContenu dudu courscours  Généralités  Les sytèmes considérés  Le développement de

Les sytèmes considérés

Le développement de systèmes temps réel

Programmation sans OS

Micro-contrôleur sans OS, pourquoi ? comment ?

Stratégie d'implémentation

Programmation sans IT (Synchrone)

Programmation avec IT (Asynchrone)

23

Mise en oeuvre

Programmation avec un OS temps réel

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ??

sanssans OSOS commentcomment ??  Mettre en place votre environnement de développement

Mettre en place votre environnement de développement

Choisir un langage de développement

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-contrôleur

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ??

sanssans OSOS commentcomment ??  Les datasheets en quelques mots  C'est la

Les datasheets en quelques mots

C'est la documentation du micro-contrôleur

Sont généralement très conséquentes (environ 300

pages)

Ne contiennent pas que des choses utiles pour les informaticiens

Réverbatif si on ne sait pas ce que l'on cherche

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ??

sanssans OSOS commentcomment ??  Informations importantes des datasheets  Les ports

Informations importantes des datasheets

Les ports d'Entrées / Sorties

La description des périphériques intégrés

Timer ? Convertisseurs A/D ? liaison série ?

L'organisation de la mémoire

Intégrée ou non

Les registres

Informations moins importantes

Brochages des pattes physiques

Caractéristiques éléctriques (sauf les consos dans les différents mode de veille)

Jeux d'instructions assembleur (a moins que

)

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

lesles portsports d'E/Sd'E/S

sanssans OSOS lesles portsports d'E/Sd'E/S  Les ports d'Entrées / Sorties  Permettent de

Les ports d'Entrées / Sorties

Permettent de communiquer avec l'electronique de la machine (notamment les capteurs et les actionneurs)

Plus ou moins nombreux

Multi fonctionnalités

Multi Directionnels

27

et les actionneurs)  Plus ou moins nombreux  Multi fonctionnalités  Multi Directionnels 27 68HC11
et les actionneurs)  Plus ou moins nombreux  Multi fonctionnalités  Multi Directionnels 27 68HC11

68HC1168HC11

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

lesles périphériquespériphériques intégrésintégrés

lesles périphériquespériphériques intégrésintégrés  Les périphériques classiques  Timer 

Les périphériques classiques

Timer

Permettent de mesurer le temps

Sont liés à la fréquence physique d'oscillation

Programmables et sources d'interruptions ou non

Liaison série

SPI (serial Peripheral Interface) – JTAG

UART (universal asynchronous receiver transmitter)– RS232

Permet souvent le 'transfert' et le debuggage ”in situ

Convertisseur Analogique numérique

Interface avec des capteurs analogiques

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

lala mémoiremémoire L'organisation de la mémoire ; un exemple

lala mémoiremémoire  L'organisation de la mémoire ; un exemple datasheets datasheets AT90S8535 AT90S8535 29
lala mémoiremémoire  L'organisation de la mémoire ; un exemple datasheets datasheets AT90S8535 AT90S8535 29

datasheetsdatasheets AT90S8535AT90S8535

lala mémoiremémoire  L'organisation de la mémoire ; un exemple datasheets datasheets AT90S8535 AT90S8535 29
lala mémoiremémoire  L'organisation de la mémoire ; un exemple datasheets datasheets AT90S8535 AT90S8535 29
lala mémoiremémoire  L'organisation de la mémoire ; un exemple datasheets datasheets AT90S8535 AT90S8535 29

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

Choisir son mapping

lala mémoiremémoire

Une place pour le programme

lala mémoiremémoire  Une place pour le programme  En RAM pour les premiers tests 

En RAM pour les premiers tests

En EEPROM (ou Flash) pour les tests plus poussés

En ROM une fois en production

Une place pour les variables

En RAM bien sûr

Une place pour la pile

En RAM mais pas n'importe où (début ou fin ?) Dépend des micro-contrôleurs (implémentation matérielle de push / pop)

Micro-contrôleurMicro-contrôleur sanssans OSOS

lesles registresregistres

© Julien DeAntoni DeA© ntoni -- -- Polytech'NiceJulien Polytech'Nice  Stockés en RAM  2
© Julien DeAntoni
DeA©
ntoni -- -- Polytech'NiceJulien Polytech'Nice
 Stockés en RAM
 2 types
 Configuration
 Utilisateurs
 Peuvent être
redondants

DatasheetsDatasheets AT90S8535AT90S8535

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

lesles registresregistres Les registres de configuration

registresregistres  Les registres de configuration  Souvent nombreux  8 / 16 / 32 bits

Souvent nombreux

8 / 16 / 32 bits

À une adresse mémoire particulière

À considérer bit par bit

32

 À une adresse mémoire particulière  À considérer bit par bit 32 Datasheets Datasheets PIC16F84A

DatasheetsDatasheets PIC16F84APIC16F84A

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

lesles registresregistres

Les registres 'utilisateur'

registresregistres  Les registres 'utilisateur'  8 / 16 / 32 bits  À une adresse

8 / 16 / 32 bits

À une adresse mémoire particulière

Permettent de stocker les données sur lesquelles travailler ( variables)

Sont utilisés par les instructions de calcul assembleurs

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

ContenuContenu dudu courscours

Généralités

ContenuContenu dudu courscours  Généralités  Les sytèmes considérés  Le développement de

Les sytèmes considérés

Le développement de systèmes temps réel

Programmation sans OS

Micro-contrôleur sans OS, pourquoi ? comment ?

Stratégie d'implémentation

Programmation sans IT (Synchrone)

Programmation avec IT (Asynchrone)

Mise en oeuvre

Programmation avec un OS temps réel

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ??

Stratégie d'implémentation

1) Sans interruption (Synchrone)

Boucle infinie

1) Sans interruption (Synchrone)  Boucle infinie  Lecture de tous les capteurs + état système

Lecture de tous les capteurs + état système (scrutation)

Calculs

Écriture actionneurs + état système

(attente)

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

Boucle infinie

commentcomment ??

sanssans OSOS  Boucle infinie commentcomment ??  Lecture de tous les capteurs + état système

Lecture de tous les capteurs + état système (scrutation)

Calculs

Écriture actionneurs + état système

(attente)

36

les capteurs + état système (scrutation)  Calculs  Écriture actionneurs + état système  (attente)
les capteurs + état système (scrutation)  Calculs  Écriture actionneurs + état système  (attente)

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ??

Stratégie d'implémentation

1) Sans interruption (Synchrone) Avantages :

1) Sans interruption (Synchrone)  Avantages :  Très simple à mettre en oeuvre  Calculs

Très simple à mettre en oeuvre

Calculs des temps de réactions simplifiés

Pas / peu de gestion de la pile

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ??

Stratégie d'implémentation

1) Sans interruption (Synchrone) Inconvénients :

38

Peu réactif, dépend beaucoup de la durée des calculs

Difficile de gérer la consommation électrique (Attente active)

réactif, dépend beaucoup de la durée des calculs  Difficile de gérer la consommation électrique (Attente
réactif, dépend beaucoup de la durée des calculs  Difficile de gérer la consommation électrique (Attente
réactif, dépend beaucoup de la durée des calculs  Difficile de gérer la consommation électrique (Attente

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ??

Stratégie d'implémentation

1) Sans interruption (Synchrone) Inconvénients :

1) Sans interruption (Synchrone)  Inconvénients :  Peu réactif, dépend beaucoup de la durée des

Peu réactif, dépend beaucoup de la durée des calculs

Difficile de gérer la consommation électrique (Attente active)

39

dépend beaucoup de la durée des calculs  Difficile de gérer la consommation électrique (Attente active)

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ??

Stratégie d'implémentation

1) Sans interruption (Synchrone) Inconvénients :

40

Peu réactif, dépend beaucoup de la durée des calculs

Difficile de gérer la consommation électrique (Attente active)

réactif, dépend beaucoup de la durée des calculs  Difficile de gérer la consommation électrique (Attente
réactif, dépend beaucoup de la durée des calculs  Difficile de gérer la consommation électrique (Attente

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ?? Choisir sa stratégie d'implémentation

??  Choisir sa stratégie d'implémentation 2) Avec interruption (asynchrone)  Idem que sans

2) Avec interruption (asynchrone)

Idem que sans interruption +

Traitement urgence

Changement d'états Attente non active

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

Idem que sans interruption +

Traitement urgence

Changement d'états Attente non active

commentcomment ??

42

que sans interruption +  Traitement urgence  Changement d'états  Attente non active commentcomment ??
que sans interruption +  Traitement urgence  Changement d'états  Attente non active commentcomment ??
que sans interruption +  Traitement urgence  Changement d'états  Attente non active commentcomment ??

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

commentcomment ?? Choisir sa stratégie d'implémentation

2) Avec interruption

Idem que sans interruption +

Traitement urgence

Changement d'états Attente non active

Avantages :

Purement réactif

Permet l'économie d'énergie

Pas de scrutation non nécessaire

Avantages :  Purement réactif  Permet l'économie d'énergie  Pas de scrutation non nécessaire 43

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

44

2) Avec interruption

Avantages :

Purement réactif

commentcomment ??

sanssans OSOS 44 2) Avec interruption  Avantages :  Purement réactif commentcomment ??
sanssans OSOS 44 2) Avec interruption  Avantages :  Purement réactif commentcomment ??
sanssans OSOS 44 2) Avec interruption  Avantages :  Purement réactif commentcomment ??

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

45

2) Avec interruption

Avantages :

Purement réactif

commentcomment ??

 Avantages :  Purement réactif commentcomment ?? La fontion exécutée lors de l'arrivée d'une
 Avantages :  Purement réactif commentcomment ?? La fontion exécutée lors de l'arrivée d'une

La fontion exécutée lors de l'arrivée d'une interruption est appelée handler

réactif commentcomment ?? La fontion exécutée lors de l'arrivée d'une interruption est appelée handler

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

46

2) Avec interruption

Avantages :

Purement réactif

commentcomment ??

sanssans OSOS 46 2) Avec interruption  Avantages :  Purement réactif commentcomment ??
sanssans OSOS 46 2) Avec interruption  Avantages :  Purement réactif commentcomment ??
sanssans OSOS 46 2) Avec interruption  Avantages :  Purement réactif commentcomment ??

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

47

2) Avec interruption

Avantages :

Permet l'économie d'énergie

commentcomment ??

sanssans OSOS 47 2) Avec interruption  Avantages :  Permet l'économie d'énergie commentcomment ??
sanssans OSOS 47 2) Avec interruption  Avantages :  Permet l'économie d'énergie commentcomment ??
sanssans OSOS 47 2) Avec interruption  Avantages :  Permet l'économie d'énergie commentcomment ??

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

48

2) Avec interruption

Inconvénient :

Demande un peu de technique

commentcomment ??

sanssans OSOS 48 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment
sanssans OSOS 48 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment
sanssans OSOS 48 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

49

2) Avec interruption

Inconvénient :

Demande un peu de technique

commentcomment ??

Sauvegarde de contexte
Sauvegarde
de contexte
49 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment ?? Sauvegarde
49 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment ?? Sauvegarde
49 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment ?? Sauvegarde

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

50

2) Avec interruption

Inconvénient :

Demande un peu de technique

commentcomment ??

Sauvegarde de contexte 1.Mettre tous les valeurs des registres utilisateurs dans la pile à l'entrée
Sauvegarde
de contexte
1.Mettre tous les valeurs des
registres utilisateurs dans la pile à
l'entrée dans l'interruption
0.Récupérer les valeurs des
registres et les réassigner à la sortie
du programme d'interruption
0.Récupérer les valeurs des registres et les réassigner à la sortie du programme d'interruption
0.Récupérer les valeurs des registres et les réassigner à la sortie du programme d'interruption
0.Récupérer les valeurs des registres et les réassigner à la sortie du programme d'interruption

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

51

2) Avec interruption

Inconvénient :

Demande un peu de technique

commentcomment ??

sanssans OSOS 51 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment
sanssans OSOS 51 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment
sanssans OSOS 51 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

52

commentcomment ??

2) Avec interruption

Inconvénient :

Demande un peu de technique

Quelle
Quelle
 Inconvénient :  Demande un peu de technique Quelle du traitement stratégie ? 1.On ignore

du traitement

stratégie ?

1.On ignore les interruptions lors du traitement d'interruption

2.On masque les interruptions le

temps

3.On compte les interruptions et on les traite successivement (si possible par le matériel)

les interruptions le temps 3.On compte les interruptions et on les traite successivement (si possible par

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

53

commentcomment ??

2) Avec interruption

Inconvénient :

Demande un peu de technique

Quelle
Quelle
 Inconvénient :  Demande un peu de technique Quelle du traitement stratégie ? On ignore

du traitement

stratégie ?

On ignore les interruptions lors du traitement d'interruption

On masque les interruptions le

temps

On compte les interruptions et on les traite successivement (si possible par le matériel)

Dépend de la sémantique de l'interruption

et on les traite successivement (si possible par le matériel) ✔ ➔ Dépend de la sémantique

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

54

2) Avec interruption

Inconvénient :

Demande un peu de technique

commentcomment ??

OSOS 54 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment ??
OSOS 54 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment ??
Quelle stratégie ?
Quelle
stratégie ?
OSOS 54 2) Avec interruption  Inconvénient :  Demande un peu de technique commentcomment ??

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

55

2) Avec interruption

Inconvénient :

Demande un peu de technique

commentcomment ??

✔ Les interruptions ont des priorités matérielles non modifiables
✔ Les interruptions ont des
priorités matérielles non
modifiables
technique commentcomment ?? ✔ Les interruptions ont des priorités matérielles non modifiables Quelle stratégie ?
Quelle stratégie ?
Quelle
stratégie ?
technique commentcomment ?? ✔ Les interruptions ont des priorités matérielles non modifiables Quelle stratégie ?

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

Micro-contrôleurMicro-contrôleur sanssans OSOS

56

2) Avec interruption

Inconvénient :

Demande un peu de technique

commentcomment ??

✔ Les interruptions ont des priorités matérielles non modifiables
✔ Les interruptions ont des
priorités matérielles non
modifiables
ont des priorités matérielles non modifiables Quelle stratégie ? ➔ Dépend de la sémantique de
Quelle stratégie ?
Quelle
stratégie ?

Dépend de la sémantique de l'interruption

ont des priorités matérielles non modifiables Quelle stratégie ? ➔ Dépend de la sémantique de l'interruption

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

57

Micro-contrôleurMicro-contrôleur sanssans OSOS

Limite du sans OS ?
Limite du
sans OS ?

commentcomment ??

2) Avec interruption

Inconvénient :

Demande un peu de technique

✔ Les interruptions ont des priorités matérielles non modifiables
✔ Les interruptions ont des
priorités matérielles non
modifiables
ont des priorités matérielles non modifiables Quelle stratégie ? ➔ Dépend de la sémantique de
Quelle stratégie ?
Quelle
stratégie ?

Dépend de la sémantique de l'interruption

ont des priorités matérielles non modifiables Quelle stratégie ? ➔ Dépend de la sémantique de l'interruption

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

ContenuContenu dudu courscours

Généralités

ContenuContenu dudu courscours  Généralités  Les sytèmes considérés  Le développement de

Les sytèmes considérés

Le développement de systèmes temps réel

Programmation sans OS

Micro-contrôleur sans OS, pourquoi ? comment ?

Stratégie d'implémentation

Programmation sans IT (Synchrone)

Programmation avec IT (Asynchrone)

Mise en oeuvre

Programmation avec un OS temps réel

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

MiseMise enen oeuvreoeuvre

LeLe micro-contrôleurmicro-contrôleur

Atmel AT90S8535 (8MHz)

 Atmel AT90S8535 (8MHz)  Architecture RISC  8Ko de Flash / 512o

Architecture RISC

8Ko de Flash / 512o d'EEPROM, 512o de SRAM

32 entrées / Sorties programmables

Communication UART et SPI

2 timers 8 bits et 1 timer 16 bits

16 interruptions programmables

(voir datasheet)

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

MiseMise enen oeuvreoeuvre

AVR-GCC and co

LaLa chaînechaîne d'outilsd'outils :: compilercompiler

chaînechaîne d'outilsd'outils :: compilercompiler  Cross compilateur basé sur gcc  Linker, librairies

Cross compilateur basé sur gcc

Linker, librairies pour architecture spécifiques

Windows / Linux

ICCAVR

Cross compilateur propriétaire Atmel

Windows CD fourni

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

MiseMise enen oeuvreoeuvre

LaLa chaînechaîne d'outilsd'outils :: compilercompiler

chaînechaîne d'outilsd'outils :: compilercompiler  Définition des handlers différentes selon le

Définition des handlers différentes selon le compilateurs / linkers

AVR-gcc

//handler ISR(INT_COMPA_vect) de l'interruption nommées INT_COMPA { // traiter l'interruption }
//handler ISR(INT_COMPA_vect) de l'interruption nommées INT_COMPA
{
// traiter l'interruption
}

ICCAVR

[ //handler #pragma nom_fonction_handler de l'interruption numéro ISR:NUM NUM ] nom_fonction_handler { //
[
//handler #pragma nom_fonction_handler de l'interruption numéro ISR:NUM NUM
]
nom_fonction_handler
{
// traiter l'interruption
}

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

MiseMise enen oeuvreoeuvre

SimulAVR

LaLa chaînechaîne d'outilsd'outils :: simulersimuler

chaînechaîne d'outilsd'outils :: simulersimuler  Simul le jeux d'instruction RISC AVR  Permet de

Simul le jeux d'instruction RISC AVR

Permet de visualiser l'état de la mémoire et des

registres en pas à pas

ou pas

Windows / Linux

AVRStudio

Idem SimulAVR MAIS Solution professionnelle

Windows

CD fourni

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

MiseMise enen oeuvreoeuvre

LaLa chaînechaîne d'outilsd'outils :: ''linkerlinker'' etet transférertransférer

linkerlinker '' etet transférertransférer  Avr-gcc (avr-objcopy) / iccAVR (?)  Avr-gcc produit

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

Avr-gcc produit le mapping seul d'après le type de micro-contrôleur 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 série pour communiquer avec le micro-contrôleur

É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

63

linux (AvrDude, uisp, AvrProg(linux)

)

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

MiseMise enen oeuvreoeuvre

LeLe codecode

Code C classique

Arrêt des interruptions

Configuration des registres

Démarrage des interruptions

Boucle sans fin

 Démarrage des interruptions  Boucle sans fin  Forte utilisation des nombres hexadécimaux / binaire

Forte utilisation des nombres hexadécimaux / binaire

 Forte utilisation des nombres hexadécimaux / binaire binaire 1 1 0 1 0 0 1
 Forte utilisation des nombres hexadécimaux / binaire binaire 1 1 0 1 0 0 1

binaire

1

1

0

1

0

0

1

1

hexa

D

3

Décimal

211

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

MiseMise enen oeuvreoeuvre

LeLe codecode

Polytech'Nice MiseMise enen oeuvreoeuvre LeLe codecode  Utilisation de types de données simples  Unsigned

Utilisation de types de données simples

Unsigned char = 8bits

Unsigned int = 16 bits

Les multiplications et divisions par des puissances de 2 se font par un simple décalage à gauche ou à droite

Une page avec quelques rappels sympa :

mais toujours dans le cache google

)

© Julien DeAntoni

DeA©

ntoni -- -- Polytech'NiceJulien Polytech'Nice

TravauxTravaux PratiquesPratiques

© ntoni -- -- Polytech'NiceJulien Polytech'Nice TravauxTravaux PratiquesPratiques À vous de jouer travailler 66

À vous de jouer travailler

© ntoni -- -- Polytech'NiceJulien Polytech'Nice TravauxTravaux PratiquesPratiques À vous de jouer travailler 66