Systèmes
d'exploitation
Systèmes embarquées
We choose to go to the moon
John F. Kennedy
Eben Upton, CBE
• Britannique
• University of Cambridge
• Boardcom
• Inventeur de Raspberry
Pi
Contenu
• Systèmes embarquées
• Exemples
• Systèmes d'exploitation
embarqués
• Tock
4
Systèmes embarquées
• Ordinateurs utilisées pour
– Automatisations
– Industrie
– Control du systèmes
• Deux types
– Microcontrôleur
– Ordinateur
Apollo Guidance Computer (DSKY)
• 2,048 MHz
• 4096 B RAM
• ~ 70 KB ROM
• Interface - DSKY
Apollo Guidance Computer (DSKY)
Android
• Téléphones
• D’horloges
• Voitures
• TV
Microcontrôleurs si Ordinateurs
• Systèmes simple
• Control de matériel
• Vitesse petit
• Mémoire limité
• GPIO
• PWM
• ADC
• Travail avec un seul
programme
• Processeur normal
• Vitesse grand
• Beaucoup de mémoire
• GPIO
• Travail avec un système
d’exploitation
Firmware Software
Microcontrôleurs si Ordinateurs
Raspberry Pi 3
Software
BeagleBone Black
micro:bit v2
Proprietes
• Processeur (Sistem on a Chip - SoC)
• Boot
• Batterie
• Ecran
• Broches (pins)
Processeur
Ordinateurs
• ARM
– 32 biti - v6, v7
– 64 biti - v8
• MIPS
– In routere
• x86
– Atom
– Quark
• RISC-V
Microcontrôleurs
• AVR
– ATmega
– Attiny
• PIC
– PIC8
– PIC16
– PIC32
• ARM
– ARM Cortex M0, M3, M4
• RISC-V
System on a Chip - SoC
• Processeur
• Mémoire
• Carte maire
• Carte de son
• Carte video
•16
System on a chip - SoC
Microcontrôleurs
Arduino
$25
ATmega328
micro:bit
$30
nRF52840
Raspberry Pi Pico
$4
RP2040
Microcontrôleurs
STM32
$30
ARM Cortex M0,
M3, M4
ESP32-C3
$45
RISC-V
WiFi Internet
Particle
$35
ARM
WiFi Internet
Raspberry Pi
$35
1000 MHz ARMv8, GPU
1 - 8 GB RAM
Compute Module
Beaglebone Black
$45
1 GHz ARM, GPU
512 MB RAM
4 GB Flash
Up Board
$120
1.84 GHz Intel Atom
1, 2 sau 4 GB RAM
Ordinateurs
UDOO Neo
$50
i.MX 6 Solo ARM, GPU
ARM M4
512 MB or 1 GB RAM
Parallella
$99
1 GHz Dual Core Zynq ARM
16 or 64 Epiphany CPUs
Intel® Galileo
$50
400 MHz Quark x86
256 MB RAM
Intel® Edison
$70
1 GHz Dual Core Atom x86
1 GB RAM
WiFi
BLE
4 GB Flash
Ordinateurs
Fonctions limité
• Floating Point Unit
– Soft Float – le compilateur fait la un simulation
– Hard Float – le compilateur écrit instructions pour
le FPU
• Exécutes par le SE si le FPU n’existe pas
Ecran
• Sans écran
– Router (interface web)
• Ecran texte
– POS
• Petit écran
– Machine à laver
• Ecran normal mais avec petit taille
– Cafetière
Ecran
Broches (pins)
• Broches Digitales
– Valeur LOW (0) ou HIGH
(1)
• Les broches sont
– Batteries (OUTPUT)
– Voltmètres (INPUT)
Sortie
• Les broches sont
équivalente d’un
batterie
– LOW – 0V
– HIGH – 5V, 3.3V or 1.8V
•25
Entre
• Nous mesurons la
tension aux bornes
Modulation de largeur d'impulsion
• On doit defini % pour
“high” cycle
– 0 – 0%
– 255 – 100%
• Dépend de la bibliothèque
utilisée
• Implémentation
– Hardware
– Software
• Utilisation
– LED dimming
– Servo Motors
Convertisseurs analogiques-numériques
• Mesurer la tension
• Valeur par n bits
– 0 - 1023
Image from http://www.centerpointaudio.com/Analog-VS-Digital.aspx
SE pour les systèmes embarquées
• FreeRTOS
– AmazonRTOS
• Conitki OS
• RIOT OS
• Zephyr
• Tock
29
Tock
• Un système d'exploitation intégré préemptif (fonctionne
sur des MCUs)
– Cortex-M
– RISC-V
• Utilise la protection de la mémoire (MPU requis)
• A un noyau et un espace utilisateur séparés
– la plupart des systèmes d'exploitation embarqués ont la
philosophie du logiciel monobloc
• Exécute des applications non approuvées dans l'espace
utilisateur
• Noyau (et pilotes) écrits en Rust
• Applications écrites en C/C++ ou Rust (tout langage qui
pouvant être compilé)
Pile du système d'exploitation
Application (Process)
• Exécutable autonome
– compilé sans noyau Tock
• Protection de la mémoire
– Régions MPU
• Peut (seg)fault
• Code relocalisable
– où le compilateur le
permet
• IPC
– découverte de services
Mémoire
Tock exécutable
• Tock Binary Format
– TBF
– En-tête Tock avec exigences de mémoire et de
chargement
– binaire du processus
• Tock Application Bundle
– TAB
– plusieurs fichiers TBF pour plusieurs architectures
– ARM M0, M3, M4, RV32-IMAC and RV32-IMC
Tock exécutable
Tockloader
• Gérer les applications Tock
• Utilise des fichiers TAB
• Écrit en Python
• Nécessite une mise en œuvre pour plusieurs
cartes
• Petit App Store
Télécharger le firmware
Example
Structure du projet
Mot clés
• Systèmes embarquées
• ordinateurs
• microcontrôleurs
• Système en temps réel
• GPIO
• PWM
• ADC
• Firmware
• Software
• SoC
• RTOS
• ARM
• PIC
• AVR
• MIPS
• Tock
• MPU
• TBF
• TAB
• Tockloader
40
Questions
41

SdE2 - Systèmes embarquées