CONCEPTION DES SYSTÈMES EMBARQUÉS

CONCEPTION DES SYSTÈMES EMBARQUÉS 

Hanen SHALL shallhanen@yahoo.fr 

CONTENU 

Introduction à la conception des systèmes embarqués 

Introduction aux systèmes embarqués 

Un peu d’histoire…. 

o 1947: Invention du transistor (Bell) 

o 1955: Premier ordinateur à transistors : TRADIC (Bell Labs pour l’US Air Force) 

o 1958: Premier circuit intégré (Texas Instrument) 

o 1965: G. Moore énonce la loi qui porte son nom (loi de Moore) 

o o 1969: 1969: Système Système d’exploitation d’exploitation MULTICS MULTICS puis puis UNIX UNIX (Bell) (Bell) 

o 1971/1972: 1er microprocesseur, le 4004 d’Intel puis le 8008 

o 1972: Micro-ordinateur Micral (R2E, rachetée ensuite par Bull) 

o 1973: Langage C pour le développement d’Unix 

o 1974: Premier microprocesseur Motorola: 6800 

o 1975: Micro-ordinateur Altair 8800 (MITS), à base d’Intel 8080 

o 1976 / 1 977: Apple I (200 p) puis Apple II (produit jusqu’en 1988) 

o1981: IBM PC et MS-DOS 


Introduction aux systèmes embarqués 


Introduction aux systèmes embarqués 

Un peu d’histoire…. o 1982: Définition du protocole TCP/IP et du mot Internet 

o 1983: Création du C++ 

o 1984: Sortie du Macintosh et de Mac OS 

o 1989: Invention du World Wide Web 

o 1995: Création du langage de programmation Java 

o o 1996: 1996: Première Première version version de de la la norme norme USB USB 

o 2000: Premier Baladeur MP3 à disque dur (Archos) 

o 2007: Premier Iphone 

o 2009: Première tablette sous Android 

o 2011: Les ventes de Smartphones dépassent celles de PC 

o 2014: Le nombre de sites web dans le monde dépasse le milliard 

o …..?…!…?… 


Définition: « Embedded System » Un système embarqué est défini comme un système électronique et informatique autonome, spécialisé dans une tâche bien précise. Le système comprend une partie matérielle et une partie logicielle. Néanmoins, il n’est pas un ordinateur d’usage général. 

Introduction aux systèmes embarqués 

Introduction aux systèmes embarqués 

Les parties matérielle et logicielle sont intimement liées et noyées dans le matériel et ne sont pas discernables comme un environnement de travail classique de type PC. 

N’est pas visible en tant que tel, mais est intégré dans un équipement doté d’une autre fonction plus globale «Embedded» = composante primordiale d’un système plus large ou une machine dont l’objectif est de commander, contrôler et superviser ce système. 

▪ ▪ Système Système électronique électronique et et informatique informatique autonome autonome possédant possédant des des entrées-sorties entrées-sorties spécifiques (pour la plupart, liées à des grandeurs ou des phénomènes physiques). Il dispose de périphériques et capteurs spécifiques pour son application: 

Il utilise généralement un microprocesseur combiné avec d’autres matériel et logiciel pour résoudre un problème de calcul spécifique. 

Introduction aux systèmes embarqués 

La conception de ces systèmes est fiable (avions, systèmes de freinage ABS) à cause de leurs utilisations dans des domines de fortes contraintes mais également parce que l’accès au logiciel est souvent difficile une fois le système est industrialisé. 

Le logiciel système embraqué s’étend d’un petit directeur à un grand logiciel d’exploitation en temps réel (RTOS) avec une interface utilisateur graphique (GUI). Typiquement, ce logiciel système doit répondre aux événements d’une manière déterministe déterministe et et devrait devrait toujours toujours être être opérationnel. opérationnel. 

Système temps réel Un système temps réel se compose d’un ou plusieurs sous-systèmes qui doivent répondre en un temps fini et spécifié à des stimulus générés par le monde extérieur: Une réponse hors échéance est invalide Même si son contenu semble correct 

Exemple: Un contrôleur de vitesse pour voiture, une machine à laver, un robot d’entrepôt, un pilotage automatique de TGV-avion-véhicule terrestre, une centrale nucléaire, etc ,… 


Introduction aux systèmes embarqués 

Caractéristiques générales: 

Dédié à une application spécifique 

Coût réduit, maximisation rapport performance/prix 

Volume restreint (compact, pas modulaire) 

✓ ✓ Capacité Capacité mémoire mémoire adaptée adaptée 

Consommation d’énergie maitrisée 

Capacité de calcul appropriée à l’application 

Exécution temps réel (souvent) 

Fiabilité, criticité, tolérance aux fautes, sécurité de fonctionnement 

Interfaçage avec le monde physiques, contraintes environnementales 

…. 

Introduction aux systèmes embarqués 

Exemple d’un SE : Compteur de vélo 

o Fonctions: 

✓Mesure de la vitesse et de la distance o Contraintes 

✓Taille ✓Coût ✓Énergie ✓Énergie et et Puissance Puissance ✓Poid oInputs✓Indicateur de rotation de la roue 

✓Touche “MODE” oOutput✓Afficheur LCD oMCU basse performance 

✓8-bits, 10 MIPS 

10 

Introduction aux systèmes embarqués 

Fonctions principales réalisées par un SE 

Système de contrôle en boucle fermée 

Superviser un processus, ajuster une sortie pour maintenir un consigne 

(température, vitesse, direction, etc.) 

Séquencement 

Séquencement 

Avancer sur des étapes selon un environnement et un système 

Traitement du signal 

Éliminer le bruit, sélection de fonctions liées au traitement du signal 

Communications et fonctions de réseau 

Échange d’information rapidement et efficacement 

11 

Introduction aux systèmes embarqués 

Architecture d’un système embarqué 

Il est réalisé autour d’un MCU 

– MCU est un système à processeur dans un seul chip (SoC) – comprend: processeur + mémoire, GPIO (entrées/sorties simples configurables: «General Purpose Input/Output»), contrôleur de bus, contrôleur d’interruption, contrôleur d’écran, USB, Ethernet, … 

N.B: Les MCUs issus des différents vendeurs varient pour des différentes 

12 Démarrage autonome du système (boot): pas de disque dur, utilisation de mémoire flash, … 

Généralement pas d’extension: construction non modulaire 

N.B: Les MCUs issus des différents vendeurs varient pour des différentes raisons de conception et de décision: 

Capteurs Acteurs 

Architecture d’un système embarqué 

Introduction aux systèmes embarqués 

ASIC (application specific integrated integrated circuit) 

Convertisseur A/N 

IHM 

Sauvegarde et sécurité du système 

Environnem ent extérieur 

Logiciel ou ou OS OS 

Mémoire 

Ports de diagnostic CPU 

Convertisseur N/A 

Systèmes auxiliaires 

13 

Introduction aux systèmes embarqués 

Les attributs des SEs 

Interfaçage avec des systèmes plus larges et l’environnement 

➢ Signaux analogiques issus des capteurs: typiquement en utilisant une tension pour représenter une valeur physique ➢ Électronique de puissance pour contrôler des moteurs, actionneurs ➢ Interfaces numériques pour communiquer avec d’autres circuits numériques 

– Simple : relais -Compliqués :afficheurs 

▪ ▪ Concurrents, Concurrents, et et comportements comportements réactifs réactifs ➢ Doivent répondre à une séquence ou combinaison d’évènements ➢ Les systèmes temps−réels ont des contraintes de temps de réponses ➢ Doivent effectuer plusieurs activités séparées et concurrentes 

Prise en charge des fautes 

➢ Plusieurs systèmes doivent opérer d’une façon indépendante pour de longues périodes. Le système doit gérer les fautes sans cracher ➢ Souvent, le code pour la prise en charge des fautes est plus large et plus compliqués que celui du cas de fonctionnement normal. 

Diagnostic 

14 

➢ Aider les développeurs ou les clients à déterminer le problème rapidement 

Introduction aux systèmes embarqués 

Les contraintes des SEs 

Coût Les marchés compétitifs pénalisent les produits qui ne délivrent pas une valeur adéquate au coût 

Limites de taille et de poids Mobile Mobile (aviation, (aviation, automobile) automobile) et et portable portable (systèmes (systèmes utilisables utilisables dans dans la la main) main) 

Limite de puissance et d’énergie 

➢Capacité de la batterie ➢ Limites de refroidissement 

Environnement Les températures peuvent varier de -40°C to 125°C, parfois encore plus ! 

15 

Introduction aux systèmes embarqués 

Impact des contraintes dans la conception des Ses 

Les MCUs sont utilisés (au lieu des microprocesseurs) 

➢ Incluent des périphériques pour l’interfaçage avec d’autre circuits, répondent plus efficacement ➢ On-chip RAM et ROM réduisent le coût et la complexité de la carte du système 

Langage Langage de de programmation programmation ➢ Programmés en C au lieu du Java (code plus petit et plus rapide, par conséquent des MCU moins coûteux) ➢ Quelques parties du code dont les performances sont critiques peuvent être codées en assembleur 

OS➢ Typiquement pas d’OS 

➢ Si un OS est utilisé, il très fréquent qu’il soit un RTOS compact. 

16 

Introduction aux systèmes embarqués 

Carte de développement embarqué: STM32F4Discovery Board 

17 

Introduction aux systèmes embarqués 

Options pour l’aide à la conception des SEs 

18 

Conception et Codesign 

Quand on conçoit un système embarqué, un certain nombre de contraintes apparaissent : – Est-ce que le système final marche correctement ? – Est-ce que les spécifications fonctionnelles ont été respectées ? – Comment doit-on tester les caractéristiques temps réel du système ? – Doit-on le tester avec des données réelles ? – – Quelle Quelle plateforme plateforme de de tests tests doit-on doit-on utiliser utiliser ? ? 

La méthodologie de conception 

–La méthodologie mise en œuvre permet d’être sûr de ne pas oublier une étape. – Des outils de CAO et d’aide à la conception peuvent être utilisés : automatisation et vérification en cours de conception. – Traçabilité des étapes de conception du système. – Maîtrise des contraintes : temps de conception, consommation, coût.. 

Introduction aux systèmes embarqués 

19 

Codesign Hardware/Software 

Le codesign dans la méthodologie de conception d ’un système embarqué est de plus en plus utilisé. 

Introduction aux systèmes embarqués 

20 

Les étapes dans le Codesign 

Durant le processus de codesign, on distingue les étapes suivantes : 

– Spécifications : liste des fonctionnalités du système de façon abstraite. –Modélisation: conceptualisation et affinement des spécifications produisant un modèle du matériel et du logiciel. –Partitionnement. –Synthèse et optimisation : synthèse matérielle et compilation logicielle. –Validation –Validation : : cosimulation. cosimulation. – Intégration. – Tests d’intégration. 

Introduction aux systèmes embarqués 

21 

Avantages du Codesign 

Le codesign est intéressant pour la conception de systèmes embarqués (ou de SoC) : 

– Amélioration des performances : parallélisme, algorithmes distribués, architecture spécialisée… – – Reconfiguration Reconfiguration statique statique ou ou dynamique dynamique en en cours cours de de fonctionnement. fonctionnement. – Indépendance vis à vis des évolutions technologiques des circuits logiques programmables. – Mise à profit des améliorations des outils de conception fournis par les fabricants des circuits logiques programmables : synthèse plus efficace, performance accrue. 

Introduction aux systèmes embarqués 

22 

CONTENU 

Les bases du développement software embarqué 

23 

Comment Concurrence: 

s’assurer de l’exécution des fonctions voulues aux moments voulus? 

Le SW/HW du MCU pour la concurrence: 

▪ Le CPU exécute les instructions d’un ou plusieurs bouts de programmes 

▪ Des périph. Hw dédiés ajoutent du traitement concurrent à l’exécution: 

➢ DMA DMA : : transfert transfert données données entre entre mémoires mémoires et et périphériques périphériques ➢Watchdog Watchdog timer timer ➢Analog interfacing ➢Timers ➢Communications avec les autres « Devices » ➢Detecting external signal events 

▪ Ces périph. utilisent les interruptions pour notifier le CPU des événements 

Concurrence 

24 

Fonctionnement Concurrent Hw & Sw 

Concurrence 

25 

Le système d’interruption du CPU permet d’avoir un ordonnancement basique sur ce dernier 

✓Exécute cette sous−routine chaque fois que cette interruption Hw survient” ✓Adéquat pour des systèmes simples 

❑ ❑ Un Un système système plus plus compliqué compliqué a a besoin besoin de de gérer gérer et et exécuter exécuter plusieurs plusieurs programmes programmes concurrents concurrents et et indépendants indépendants ✓Utilise un ordonnanceur de tâches pour partager l’utilisation du CPU ✓Différentes approches pour l’ordonnancement des tâches. 

Comment avoir un CPU qui réagit bien ? (Comment peut−il exécuter les bons codes aux bons moments ?) 

✓Si les fonctions exécutées en SW sont plus nombreuses que celle en Hw, le partage du CPU entre ces fonctions est nécessaire. 

Ordonnancement du CPU 

26 

Définitions 

Ordonnancement du CPU 

27 

Approches d’ordonnancement 

Utilisation du système d’interruption du MCU pour exécuter le bon code✓ Ordonnancement déclenché par des événements via les 

interruptions ✓ Convient aux systèmes simples 

Ordonnancement du CPU 

✓ Convient aux systèmes simples 

Utilisation du Sw pour ordonnancer l’exécution sur le CPU 

✓ Cyclique/Statique ✓Priorité dynamique: 

28 

Ordonnancement déclenché par des événements via les interruptions 

Architecture basique, pratique pour les systèmes simples avec une faible consommation 

– Peu de contraintes de développement du code et de temps 

Utilise une répartition des tâches avec le système d’interruption 

– – Peut Peut déclencher déclencher une une ISR ISR avec avec un un changement changement aux aux entrées, entrées, débordement de Timer, réception de données UART, entrée analogique dépassant une valeur de comparaison ou seuil… 

Fonction types 

– Fonction Main, configure le système et active le mode sleep: après interruption, le système retourne directement en sleep – Seulement les interruptions sont utilisées pour l’exécution des programmes (traitement) 

Ordonnancement du CPU 

29 

Ordonnancement déclenché par des événements via les interruptions 

Exemple: Compteur de vélo 

o Fonctions:✓Mesure de la vitesse 

et de la distance o Contraintes 

✓Taille ✓Taille ✓Coût ✓Énergie et Puissance ✓Poid o Inputs✓Indicateur de rotation 

de la roue ✓Touche “MODE” o Output✓Afficheur LCD 

Ordonnancement du CPU 

o Interruptions 

Possibles ? Int1: Wheel rotation 

(rotation o Int1………………. 

de la roue du vélo) 

(rotation Possibles ? o Int1………………. 

de la roue du vélo) o o Int2 Int2 :Mode ………………. 

key (pour la configuration) o Int3 ………………. o o Int3 OutputClock (temps actuel) o Output✓Afficheur LCD ✓Afficheur LCD 

30 

Ordonnancement déclenché par des événements via les interruptions 

Exemple: Compteur de vélo: Les fonctions 

Ordonnancement du CPU 

31 

Utilisation du SW pour ordonnancer l’exécution sur le CPU Exemple: Une application plus compliquée ! : 

Avertisseur de trous sur route et localisation par GPS: 

Emet une alarme sonore si un trou est proche – Affiche la position du véhicule sur LCD – Enregistre les coordonnées du véhicule – Hardware: GPS, boutons utilisateur, haut-parleur, LCD, flash memory 

Ordonnancement du CPU 

– Hardware: GPS, boutons utilisateur, haut-parleur, LCD, flash memory 

32 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

Tâches software de l’application 

33 

Oui : Ordonnancement statique (exécution cyclique, round- robin) 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Comment ordonnancer ces tâches ? Décider quelle tâche doit être exécutée maintenant? 

2 questions fondamentales 

Les tâches sont exécutées dans le Une tâche peut elle interrompre 

Ordonnancement du CPU 

Une Les tâches sont exécutées dans le 

tâche peut elle interrompre même ordre et à chaque fois ? 

l’exécution d’une autre ou attendre qu’elle soit terminée ? 

Non : Ordonnancement dynamique, ordonnancement avec priorité 

Oui : Ordonnancement Préemptif 

Non : Ordonnancement non-Préemptif (coopératif, run-to- completion) 

34 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

Ordonnancement statique: exécution cyclique 

while (1){ Dec(); Check(); Rec(); Sw(); LCD();} 

time 

35 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

Ordonnancement statique: exécution cyclique 

Avantages 

➢Très simple ❖Inconvénients Inconvénients 

➢Même ordre d’exécution même si les conditions de fonctionnement changent ou les tâches ne sont pas d’une égale importance. ➢Toutes les tâches obéissent à la même fréquence d’exécution. Pour changer cette fréquence d’exécution pour une fonction donnée, il faut appeler plusieurs fois. ➢Délai max. = Somme des temps d’exécution des tâches. ➢Taux d’exécution = 1 / Délai max. 

36 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

?: Mais si on reçoit des données GPS juste après le début d’exécution de Rec? 

Discussion sur les délais: – Est-ce qu’on doit attendre Rec, Sw, LCD avant de commencer de décoder les données GPS ? – Est−ce qu’on doit attendre Rec, Sw, LCD et Dec avant de savoir si on s’approche d’un trou de route ou pas ! 

Ordonnancement statique: exécution cyclique 

37 

Ordonnancement dynamique 

Permet de déterminer l’ordonnancement à la volée 

➢Basé sur l’importance ou autre chose ➢Simplifie ➢Simplifie la la conception conception de de système système avec avec plusieurs plusieurs fréquence fréquence d’exécution 

Ordonnancement basé sur l’importance 

➢Prioriser signifie que les tâches les moins importantes ne ralentissent pas les tâches les plus importantes. 

Comment et combien de fois doit−on exécuter ce qui doit être exécuté ? ➢Coarse grain –(granularité grossière): après qu’une tâche ait terminé son exécution, appelé Run-to-Completion (RTC) ou non-préemptif ➢Fine grain –(granularité grossière): n’importe quand, appelé Préemptif, puisque une tâche peut devancer une autre. 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

38 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

?: Mais si on reçoit des données GPS juste après le début d’exécution de Rec? 

Discussion sur les délais: – Est-ce qu’on doit attendre Rec avant de commencer de décoder les données GPS ?– Est−ce qu’on doit attendre Rec, Dec et Check avant de savoir si on s’approche d’un trou de route ou pas ! 

Ordonnancement dynamique RTC 

39 

Ordonnancement dynamique RTC 

Etats des tâches et règles d’ordonnancement 

❑ L’ordonnanceur choisit parmi les tâches prêtes prêtes (Ready) (Ready) une une tâche tâche pour pour l’exécuter l’exécuter en en se basant sur les priorités. ❑ Règles d’ordonnancement: 

➢Si aucune tâche n’est exécutée, l’ordonnanceur lance la tâche la plus prioritaire. ➢Si lancée, une tâche est exécutée jusqu’à ce qu’elle soit terminée (non préemptif). ➢La tâche rentre dans l’état attente (Waiting) jusqu’à ce qu’elle soit prête ou exécutée ➢Seulement les ISR peuvent interrompre une tâche. 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

40 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

?: Mais si on reçoit des données GPS juste après le début d’exécution de Rec? 

Discussion sur les délais: – L’ordonnanceur arrête Rec pour pouvoir décoder la position immédiatement avec Dec – On doit attendre Dec et Check avant de savoir si on s’approche d’un trou de route. 

Ordonnancement dynamique préemptif 

41 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Comparaison entre les temps de réponse 

Ordonnancement du CPU 

Avantages 

✓La préemption offre un temps de réponse réduit ✓Permet de faire plus de traitement (plus de détection de trous, ou une grande vitesse du véhicule) ✓Permet de réduire la fréquence de fonctionnement du CPU (moins de dépenses, moins de consommation de puissance) ❑Inconvénients 

✓Nécessite une programmation plus compliquée, plus de mémoire ✓Ajoute des vulnérabilités aux problèmes de «data race» 

42 

Ordonnancement dynamique préemptif 

Etats des tâches et règles d’ordonnancement 

❑ L’ordonnanceur choisit parmi les tâches prêtes (Ready) une tâche pour l’exécuter l’exécuter en en se se basant basant sur sur les les priorités. priorités. ❑ Règles d’ordonnancement: 

➢Une tâche active peut finir dans l’état waiting (blocked) ➢Une tâche en attente waiting ne peut avoir le CPU. Elle doit être signalée par une ISR ou une autre tâche. ➢Seulement l’ordonnanceur peut changer l’état d’une tâche de ready à running ou l’inverse. 

Utilisation du SW pour ordonnancer l’exécution sur le CPU 

Exemple: Avertisseur de trous sur route et localisation par GPS: 

Ordonnancement du CPU 

43 

Développement Software pour les systèmes embarqués 

Cycle de vie software : Concepts 

❑ Coder est la partie la plus visible d’un processus de développement software 

mais ce n’est pas l’unique partie 

❑ Avant de coder, nous devons savoir : 

➢Ce que le code doit faire ? Spécification des Besoins 

➢Comment le code est structuré ? Spécification de l’architecture 

→ Seulement à ce stade on peut commencer à coder (Design Before Coding

❑ Comment savoir que le code va fonctionner ? →Plan de test; de préférence à 

spécifier lors de l’étape de spécification 

❑ Le code sera probablement amélioré au cours du temps: corrections, 

adaptations, améliorations & maintenance préventive 

44 

Développement Software pour les systèmes embarqués 

Cycle de développement ( de vie) d’un produit 

❖ Compréhension ❖ Maintenance ❖ Amélioration ❖ Tests 

45 

Besoins 

Types de besoins: 

o Fonctionnels : ce que le système doit faire o Non fonctionnels − comportement du systèmes: temps de réponse, efficacité, efficacité énergétique, sécurité, etc. o Contraintes: limitation des choix de conception ❑ Représentations 

oTexte oTexte : : peut peut être être non non complet, complet, difficile difficile à à assimiler, assimiler, parfois parfois contradictoire. contradictoire. 

o Diagrammes (machine à états, flowcharts, schémas de séquence message) 

Traçabilité 

o Chaque besoins doit être vérifié avec un test 

Stabilité 

oLe changement des besoins favorise la non efficacité et souvent le problème 

de «récence» (c.à.d le nouveau changement au niveau des besoins est 

considéré le plus importants) 

Développement Software pour les systèmes embarqués 

46 

Modèles de développement 

Comment planifier ces tâches ? 

A considérer un certain nombre de risques au développement 

➢Nouveau MCU ? 

➢Besoins très spécifiques (débit, puissance, certification en sécurité, etc.) 

➢Nouveau ➢Nouveau produit produit ? ? 

➢Nouveau client ? 

➢Changement des besoins ? 

Choisir un modèle basé sur ses risques 

➢Basique : peut créer un plan détaillé: Waterfall 

➢Sophistiqué : utilise des méthodes itératives; V Model 

Développement Software pour les systèmes embarqués 

47 

Modèles de développement 

Développement Software pour les systèmes embarqués 

Waterfall 

▪ Planifier le travail, et travailler le plan 

▪ Ce modèle implique que nous et le client savons : 

➢Tous les besoins ➢Toutes les interactions entre les phases de conception ➢Le temps nécessaire pour écrire le code et le 

➢Le temps nécessaire pour écrire le code et le tester 

Réalité : nous ne pouvons pas tout savoir et prévoir, par conséquent plusieurs révisions et retours sont nécessaires. 

48 

Modèles de développement 

V Model Overview 

Développement Software pour les systèmes embarqués 

49 

Lier les étapes pré− et post− codage pour une meilleure efficacité 

Modèles de développement 

Développement Software pour les systèmes embarqués 

V V Model Model Overview Overview 

  1. Codage et inspection du code 
  2. Test du Software 
  3. Analyse Rétrospectives du projet 
  4. Spécification des besoins 
  5. Conception architecturale 
  6. Conception détaillée 

50 

V Model Overview 

  1. Spécification des besoins 

Les résultats de l’analyse des besoins, doit contenir : 

➢ Introduction avec les buts et objectifs du système ➢Description du problème à résoudre ➢Description fonctionnelle 

– Donne “une description du traitement” de chaque fonction – Liste et justifie les contraintes de conception 

Modèles de développement 

Développement Software pour les systèmes embarqués 

– Liste et justifie les contraintes de conception – Explique les besoins en performance ➢ Description comportementale: décrit comment le système réagit aux évènements et situations internes et externes. 

– Comportement basé sur des états – Un contrôle généralisé – Un flot de donnée généralisé ➢ Critères de Validation 

– Comment décider que ce système est acceptable (C’est finit ?) -C’est la base d’un plan de validation ➢ La bibliographie et les annexes désignent tous les documents en relation avec le projet et qui fournissent des informations supplémentaires. 

51 

V Model Overview 

  1. Conception architecturale 

L’architecture définit la structure du système: 

➢ Composants ➢ Propriétés externes et visibles des composants ➢ La relation entre ces composants 

❑ ❑ L’architecture L’architecture est est une une représentation représentation qui qui permet permet au au concepteur concepteur de de : : ➢ Analyser l’efficacité du design par rapport aux besoins ➢ Considérer des architectures alternatives plus tôt. ➢ Réduire les risques d’implémentation 

L’architecture est importante parce que: 

➢ Elle est assez simple pour qu’elle soit mémorisé par une seule personne (contrairement à la compréhension de tous le code source) ➢Permet à tous les intervenants de décrire le système et par conséquent de le discuter. 

Modèles de développement 

Développement Software pour les systèmes embarqués 

52 

V Modèles de développement 

Model Overview 

  1. Conception détaillée 

Décrit comment le système se comporte 

➢ Diagramme de contrôle et de données ➢ Diagramme de machine à états ➢ Diagramme de séquence des évènements 

❑ ❑ La La représentation représentation graphique graphique est est très très utile utile ➢ Peut donner un aperçu clair sur comment les composants du système doivent fonctionner. 

Langage de modélisation UML (Unified Modelling Language) 

➢ Fournit plusieurs types de diagramme ➢ Quelques uns sont utiles pour les SEs pour décrire la structure ou le comportement 

Développement Software pour les systèmes embarqués 

53 

Modèles de développement 

V Model Overview 

Développement Software pour les systèmes embarqués 

Diagrammes UML 

  1. Conception détaillée 

54 

V Modèles de développement 

Model Overview 

  1. Conception détaillée 

Exemple: Machine à état du dialogue de l’envoi d’un brouillon avec un mailer 

Développement Software pour les systèmes embarqués 

55 

Modèles de développement 

V Model Overview 

Développement Software pour les systèmes embarqués 

Flowchart 

  1. Conception détaillée 

56 

V Modèles de développement 

Model Overview 

  1. Codage et inspection du code 

❑ Le codage est directement orienté par la conception détaillée 

❑ Utiliser un outil de contrôle des versions au cours du développement 

❑ Suivre un style de codage standard 

➢Eliminer ➢Eliminer les les variations variations du du style style qui qui rend rend le le code code difficile difficile à à comprendre comprendre 

➢Eviter les mauvaises pratiques 

➢Expliciter les bonnes pratiques pour les rendre faciles à suivre 

❑ Effectuer des revues du code 

❑ Tester efficacement 

➢Automatiquement 

➢Test de régression* ❑ Inspecter le code avant de le tester * La régression est un ensemble de méthodes statistiques très utilisées pour analyser la relation d’une variable par rapport à une ou plusieurs autres. 

Développement Software pour les systèmes embarqués 

57 

Modèles de développement 

V Model Overview 

Développement Software pour les systèmes embarqués 

  1. Test du Software 

❑ L’objectif du test est de trouver rapidement les problèmes: 

➢Est-ce que le software viole les besoins spécifiés ? 

➢Est-ce que le software viole d’autres besoins non spécifiés ? 

❑ Approches de test: 

➢Test Test Incrémental Incrémental 

– Coder une fonction puis la tester (module/unité/élément de test) 

– Puis tester quelques fonctions fonctionnelles ensemble (test 

d’intégration) 

➢Test BigBang 

– Coder toutes les fonctions pour construire le système 

– Tester le système complet 

– Plug and pray! 

58 

V Model Overview 

  1. Analyse Rétrospectives du projet 

Modèles de développement 

❑ Objectif: améliorer le processus de développement 

➢ Extraire toutes les informations utiles du projet juste terminé –fournir 

une une « expérience « expérience virtuelle » virtuelle » aux aux autres autres 

➢ Fournir un feedback positif 

➢ Documenter les problèmes et leurs solutions clairement et d’une façon 

concise pour une future utilisation 

❑Même les petits changements améliorent les performances, mais sont facile à 

oublier→ Documenter. 

Développement Software pour les systèmes embarqués 

59 

suivante) comme étant un système embarqué. 

Exercice Exercice 

60 

1) Quels sont les éléments d’entrée ? 

2) Quels sont les éléments de sortie ? 

3) Donnez au moins deux fonctionnalités de sécurité à ajouter et spécifier 

les éléments hardware ou software nécessaires pour chacune d’elles. 

4) 4) Décrivez Décrivez une une fonctionnalité fonctionnalité software software utile utile que que vous vous pouvez pouvez ajouter ajouter sans sans 

l’ajout d’un élément hardware supplémentaire. 

5) Décrivez deux fonctionnalités utiles que vous pouvez ajouter en 

software si le contrôleur est capable de déterminer l’heure du jour. 

6) Décrivez une fonctionnalité utile que vous pouvez ajouter en software 

si le chauffe−eau est équipé d’une connexion Internet. 

Exercice Exercice 

61 

CONTENU 

Le CPU ARM 

62 

Microcontroller vs. Microprocessor 

❑ Les deux ont un CPU qui exécute les instructions. 

❑ Le MCU possède des périphériques pour une interface embarquée et pour le 

contrôle (Analogique, Signaux non logiques, Timing, Génération d’horloge, 

Communications point à point, réseau, Efficacité et sécurité, Gestion de la puissance) 

Le Coeur du CPU Cortex-M4 

63 

Le Coeur du CPU Cortex-M4 

La famille ARM processor 

64 

Instruction Set Architecture (ISA) 

Architecture Load/Store 

➢ Développée pour simplifier la conception du CPU et améliorer ses 

performances: 

✓Memory wall: les CPUs sont plus rapides que les mémoires; les accès 

mémoire ralentissent le CPU, limite les optimisations à la compilation 

→Changer →Changer l’ISA l’ISA pour pour rendre rendre les les instructions instructions indépendantes indépendantes de de la la mémoire mémoire 

➢ Les instructions de traitement des données peuvent accéder aux registres: 

1.Charger les données depuis la mémoire vers les registres 

2.Traiter ces données 

3.Sauvegarder ces données dans la mémoire 

➢ Plus efficace quand plusieurs registres sont disponibles 

Architecture Registre/Mémoire (les instructions de traitement des données 

peuvent accéder à la mémoire ou registres) 

Le Coeur du CPU Cortex-M4 

65 

Le Coeur du CPU Cortex-M4 

ARM Cortex-M4; Mode d’opération 

66 

ARM Cortex-M4; Mode d’opération 

❑ Handler Mode: 

➢Utilisé pour gérer les exceptions. Le processeur retourne en mode Thread 

une fois le traitement des exceptions terminé. 

❑ Thread Mode: 

➢ Utilisé pour exécuter l’application. Le processeur entre en mode Thread 

Le Coeur du CPU Cortex-M4 

➢ Utilisé pour exécuter l’application. Le processeur entre en mode Thread 

lorsqu’il sort d’un « reset ». 

➢ En mode Thread, le registre « CONTROL register » contrôle si l’exécution 

du software est privilégiée ou non. En Handler mode, l’exécution du 

software est toujours privilégiée. 

67 

ARM Cortex-M4; Mode d’opération 

Privileged Level 

L’application software peut utiliser toutes les instructions et a accès à toutes les 

ressources. 

Unprivileged Level : 

L’application : 

Le Coeur du CPU Cortex-M4 

▪ a un accès limité aux instructions MRS (Move from Special Register to 

general register) et MSR (Move from general register to Special Register). 

▪ ne peut pas utiliser l’instruction CPS (relatives aux interruptions) 

▪ ne peut pas accéder au « timer » du système, NVIC ( Nested Vector 

Interrupt Control), bloc système de contrôle 

▪ peut avoir un accès limité aux mémoires et aux périphériques 

▪ unprivileged software s’éxécute sous unprivileged Level 

68 

Le Coeur du CPU Cortex-M4 

Les registres du ARM Cortex-M4 

❑ Registres 32 bits: 

➢Word (1 mot): 32 bits (4 bytes) 

➢Half Word: 16 bits (2 bytes) 

➢Double word: 64 bits (8 bytes) 

69 

Les registres du ARM Cortex-M4 

R0-R12 –Registres à usage général pour le traitement des données 

➢R0-R7 (Low registers): seulement les instructions 16 bits peuvent y avoir accès 

➢R8-R12 (High registers): peuvent être utilisés par les instructions 32-bits 

SP –Pointeur de pile (Stack pointer, R13) 

✓Peut indiquer un ou deux SPs: 

o o Pointeur Pointeur de de pile pile principal principal − − Main Main Stack Stack Pointer Pointer (MSP) (MSP) 

o Pointeur de pile de process− Process Stack Pointer (PSP) 

✓Le mode Handler utilise toujours MSP 

✓Le mode thread peut être configuré pour utiliser soit MSP soit PSP 

LR − Registre de lien (Link Register, R14) 

✓Contient l’adresse de retour avec les instructions Branch & Link (B&L) 

PC -program counter (R15) 

✓ Contient l’adresse de la prochaine instruction à exécuter 

Le Coeur du CPU Cortex-M4 

70 

Les registres du ARM Cortex-M4 

xPSR -Program Status Registers (Registres d’état du programme) 

➢APSR : Application PSR 

➢EPSR : Execution PSR 

➢IPSR : Interrupt PSR (lecture seule, n’est pas accessible en «unprivileged level») 

Ces Ces trois trois registres registres sont sont accessibles accessibles comme comme étant étant un un seul seul registre registre (PSR) (PSR) 

Registres de contrôle des Interruption/exception (Mask registers) 

➢PRIMASK 

➢FAULTMASK 

➢BASEPRI 

Registre de contrôle du processeur: CONTROL Register (CR) 

Le Coeur du CPU Cortex-M4 

71 

❑ SP actif dépend du mode en cours et de SPSEL (bit 1 du registre CONTROL) 

oSPSEL == 0: MSP 

oSPSEL == 1: PSP 

❑ Similairement, le niveau du privilège en mode Thread dépend de nPRIV(bit 0 

du registre CONTROL) 

onPRIV== 0: privileged level: Accès à toutes les ressources 

onPRIV== 1: unprivileged level: Accès limité aux ressources 

Le Coeur du CPU Cortex-M4 

Les registres du ARM Cortex-M4 

72 

Les registres du ARM Cortex-M4 

Registres xPSR du ARM Cortex-M4 

❑ Le registre PSR est le même registre mais avec 3 vues différentes 

Application PSR (APSR): contient les bits flags: Negative (N), Zero (Z), 

Carry (C), Overflow (V), Sticky Saturation (Q), Great-Than or Equal (GE) 

Interrupt PSR (IPSR): contient le numéro de l’exception de l’ISR en cours 

d’exécution 

Le Coeur du CPU Cortex-M4 

d’exécution 

Execution PSR (EPSR) 

✓ICI/IT, Interrupt-Continuable Instruction, IF-THEN instruction 

✓Thumb state, fixé à 1 

73 

Les registres du ARM Cortex-M4 

Registres de contrôle des Interruption/exception (Mask registers) 

❑ PRIMASK -Exception mask register 

✓Bit 0: PM Flag, S’il est = ‘1’ désactive toutes les exceptions avec une 

priorité configurable 

✓Accessible Accessible avec avec les les instructions instructions CPS, CPS, MSR MSR et et MRS MRS 

❑ FAULTMASK –Hard Fault exception mask register 

✓Similaire à PRIMASK mais permet de bloquer les exceptions 

Hardware 

❑ BASEPRI 

✓Active ou désactive les interruptions en se basant sur son niveau de 

priorité 

Le Coeur du CPU Cortex-M4 

74 

Les registres du ARM Cortex-M4 

Registre de contrôle du processeur: CONTROL Register (CR) 

❑ Bit2: FPCA flag 

✓Floating Point Context Active: 

o non utilisé = ‘0’ 

o sauvegarde des registres «floating point» = ‘1’ 

✓Ce ✓Ce bit bit est est à à ‘1’ ‘1’ automatiquement automatiquement quand quand les les instructions instructions FP FP (Floating (Floating Point) Point) 

sont exécutées, et à ‘0’ par défaut. 

❑ Bit 1: SPSEL flag 

✓Sélection du SP en mode thread : MSP ‘0’ ou PSP ‘1’ 

✓A utiliser avec un environnement avec OS 

✓Les Thread utilisent PSP 

✓L’OS et les ISRs utilisent MSP 

❑ Bit 0: nPRIVflag 

✓Définit si le mode thread est privilégié ‘0’ ou non−privilégié ‘1’ 

Le Coeur du CPU Cortex-M4 

75 

Le système de mémoire et adressage ❑ Cortex-M4 possède 4 Go d’espace d’adresse (32 bits) ❑ L’espace mémoire de 4 Go est architecturalement défini comme un nombre de régions; 

✓Chaque région est indiquée pour l’utilisation recommandée ✓Facilité pour le programmeur logiciel pour communiquer entre différents périphériques 

Le Coeur du CPU Cortex-M4 

7676 

Le système de mémoire et adressage 

Région Code 

– Principalement utilisée pour stocker le code de programme (instructions) 

– Peut également être utilisée pour la mémoire de données 

– Mémoire ON-Chip, telle que On-Chip FLASH 

Région SRAM 

-Principalement utilisé pour stocker des données (« heap » et « stack ») 

-Peut également être utilisé pour le code de programme 

-Mémoire ON-Chip (malgré son nom «SRAM», elle peut être une mémoire 

SRAM, SDRAM ou autres types) 

Région pour les Périphériques 

-Principalement utilisé pour les périphériques, tels que AHB (Advanced High Performance Bus) ou APB (Advanced Peripheral Bus) 77 

Le Coeur du CPU Cortex-M4 

77 

Le système de mémoire et adressage 

Région External RAM 

-Principalement utilisé pour stocker des blocs de données volumineux ou le 

contenu des mémoires caches 

-Mémoire OFF-Chip, plus lente que la région ON-Chip SRAM 

Région External Device 

-Principalement utilisé pour mapper des périphériques externes 

-Mémoire OFF-Chip, Exemple: les cartes SD 

Région Internal Private Peripheral Bus (PPB) 

-Utilisé à l’intérieur du cœur du processeur pour un contrôle interne 

-Dans PPB, une plage de mémoire spéciale est définie en tant que SCS (System 

Control Space ) -Le NVIC (Nested Vectored Interrupt Controller ) fait partie de SCS. 78 

Le Coeur du CPU Cortex-M4 

78 

Le Coeur du CPU Cortex-M4 

Le système de mémoire et adressage 

79 

Le système de mémoire et adressage Cortex-M4 Endianness 

❑ Endian fait référence à l’ordre des octets stockés en mémoire: « Pour une valeur multi−octets, dans quel ordre ces octets sont sauvgardés? » 

➢ Little-Endian: le plus petit octet d’une donnée est stocké entre le bit 0 et le bit 7 

➢Big-Endian :le plus petit octet d’une donnée est stocké dans les bits 24 à 31 

 Le Coeur du CPU Cortex-M4 

80 

 

télécharger gratuitement CONCEPTION DES SYSTÈMES EMBARQUÉS

Quitter la version mobile