Haute Ecole de la Province de Liège / Systèmes embarqués

Download Report

Transcript Haute Ecole de la Province de Liège / Systèmes embarqués

Haute École de la Province de
Liège
Catégorie Technique
Bachelier en Informatique et Systèmes
 Finalité Informatique Industrielle
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Construction, chargement et
mise au point d’images
systèmes sous QNX
David Bourlard et Nicolas Dumont
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Finalité Industrielle
Informaticien
 Spécialiste des systèmes informatiques

◦ Supervision
◦ Programmation des interfaçages
◦ Systèmes embarqués

Compétent dans le domaine du contrôle
temps réel de dispositifs extérieurs à
l’ordinateur.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Objectifs L.I.I.
 Systèmes
temps réels
 Supervision
 Systèmes embarqués
 Traitements d’images
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Cours de Systèmes Embarqués
 3ème
année.
 Techniques informatiques vues dans les
autres cours
 Cours spécifique aux systèmes
embarqués
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Objectifs du cours

Objectif principal :
◦ Constructions d’images systèmes

Objectif complémentaire :
◦ Mise en œuvre d’un microcontrôleur sans
O.S.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Système QNX « Neutrino » (6.3.2)

API POSIX 1003.1-2001
1003.1c (threads),
1003.1b, 1003.1d et 1003.1j (extensions temps réel)

Hard Realtime < 10µs

ARM, MIPS, PowerPC, Hitachi SH-4, x86.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Système QNX « Neutrino »

Module d’exécution de base « procnto » =
µnoyau (gestion message-passing et signaux)
+ process manager (gestion processus, IPC, mémoire et noms de
répertoires)
≃ 45Ko
procnto
Processus ajoutés au besoin
 Débogage standard avec gdb
 Compilateur gcc

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Système QNX « Neutrino »

Message-Passing Interface: primitive de
communication interprocessus (IPC) fondamentale

Mécanisme synchrone
(messages)
ou non (événements)
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Système QNX « Neutrino »

support de la MMU (Memory Management
Unit): espace mémoire de chaque processus
isolé
protection
protection
protection
protection
protection
protection
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Système pré-emptif QNX « Neutrino »

Pré-emption et interruptions supportées jusque
dans les appels systèmes
PREEMPT
PREEMPT
PREEMPT
PREEMPT
PREEMPT
PREEMPT
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Création d’une image système
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Composition d’un fichier .bld
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Fichier .bld
[virtual=x86,bios +compress] .bootstrap = {
[+keeplinked]
startup-bios -s 64k -A
PATH=/proc/boot
LD_LIBRARY_PATH=/proc/boot:/dev/shm
em:/usr/lib:/lib procnto
}
[+script] .script = {
libc.so
/lib/libm.so.2
/lib/libsocket.so.2
procmgr_symlink ../../proc/boot/libc.so
/usr/lib/ldqnx.so.2
[code=uip data=copy perms=+r,+x]
/x86/usr/bin/gdb
ls
echo
pdebug
devc-pty
devc-pty &
devc-con -n2 &
# elem
[+raw]/home/testrt/BM/Prog
reopen /dev/con1
devc-con
uesh
[+session] TERM=qansi uesh &
}
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Tailles d’images Simples

Images minimales :
◦ De l’ordre de 200 Ko pour l’image la plus
simple.

Images créées au laboratoire:
◦ Jusqu’à 1,3 Mo pour l’image contenant le
débugger gdb.
◦ 600Ko ~ 1 Mo pour l’image permettant le
débugging via la ligne série ou le réseau.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Debugging local sous QNX
Débogage de processus local avec gdb, sur systèmes
PC et embarqué:

Programme compilé avec option ‘-g’
(taille passe de 7,5 à 25Ko).
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Debugging distant sous QNX
Informations de débogage et code source
restent sur le système hôte.
 Exécutable à analyser téléchargé vers le
système cible.

programme
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Debugging distant sous QNX
1) ligne série
2) réseau ethernet en ligne de commande
3) réseau ethernet dans l’IDE QNX Momentics
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Images système sur mémoire flash

DiskOnChip (EEPROM XIP bootable apparaissant
comme disque dur grâce au pilote TrueFFS)

DiskOnModule (EEPROM reconnue nativement
comme disque dur IDE/SATA)

Clé USB
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Images système sur mémoire flash
Méthode en utilisant l’utilitaire ‘fdisk’:
0) [pour le DiskOnChip, charger le pilote TrueFFS]
1) Créer une partition QNX
2) Positionner le ‘boot flag’
3) Initialiser la partition
4) Ecrire le chargeur de démarrage QNX
5)
6)
Monter la partition
Copier l’image système préalablement créée, sous
le nom ‘.boot’
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Démarrage via réseau: BOOTP
‘Bootstrap Protocol‘ : la machine qui démarre
découvre
1) son adresse IP
2) adresse IP serveur
3) adresse IP passerelle
4) nom d'un fichier à
charger en mémoire
pour exécution.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
BOOTP request
0.0.0.0:67
BOOTP reply
255.255.255.255:68
Client IP + Server IP + Gateway IP + Boot File Name
ARP requests
BOOTP requests
Client IP:67
BOOTP replies
255.255.255.255:68
Client
Client IP + Server IP + Gateway IP + Boot File Name
ARP request
ARP reply
TFTP read request
TFTP read reply (image transfer)
Server
Démarrage via réseau: bootp
1)
Disquette Etherboot (boot loader
open-source palliant à l’absence de
ROM PXE de certaines cartes réseau)
2)
BIOS de PC et de système embarqué
->erreur TFTP si image >512Ko
3) pxegrub: petite image pour démarrage sur le
réseau
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
pxegrub
BOOTP requests
BOOTP replies
ARP requests
ARP reply
TFTP read request
Client
TFTP read reply (pxegrub transfer)
TFTP read request
TFTP read reply (QNX system image transfer)
Server
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Développement croisé

Création d’une image pour une cible ARM
depuis l’IDE QNX sur un PC x86.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Caractéristiques désirées
Taille: 100x100 mm
 Connectique:

◦ Ethernet 10/100MBit
◦ RS232
◦ USB

Supporte QNX
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Caractéristiques de la carte

Module Colibri PXA270 de Toradex
◦ Processeur Marvell Xscale PXA2700 312 MHz
◦ 64 Mo de RAM
◦ 32 Mo de mémoire flash

Carte support avec connecteurs
souhaités (Série,USB, Ethernet)
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Choix de la carte ARM

Petite carte

BSP disponible sous QNX et gratuit
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Board Support Package
Un BSP (de QNX)
pour la carte est
téléchargé.
 Il contient :

◦ Certains drivers de la carte ARM.
◦ un fichier de build (.bld).
◦ ce qui est nécessaire pour démarrer une
image sur la carte.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Création de l’image sous l’IDE

Création de l’image simple et intuitive via
l’IDE.
◦ Seules quelques modifications à faire au niveau
du fichier directeur.

IDE QNX disponible sous windows/linux
également.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Environnement de travail
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Plan
Situation des activités.
 QNX.
 Construction d’une image système.
 Debugging.
 Démarrage de la cible sur Flash.
 Démarrage sur le réseau.
 Développement Croisé.
 Conclusions

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
QNX: points forts
Entièrement conforme à POSIX 1003.12001
 Processus hors espace noyau, y compris
les drivers -> gdb utilisable

Documentation claire et unifiée
 Support payant très efficace
 QNX gratuit pour enseignement /
recherche

H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
QNX: points faibles

Indisponibilité de pilotes pour hôtes de
développement et de BSP pour les cibles

Interface graphique propriétaire
spécifique, mais légère et temps réel.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Pourquoi avoir choisi QNX


RTOS (Real Time Operating System) de type
Temps Réel Dur
Système modulaire convenant à la fois pour
une machine standard et une utilisation
embarquée
1 OS.
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Questions
?
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Aspects techniques

Empreinte mémoire minimale 200ko

XIP (eXecute In Place), exécution de code
sans copie préalable en mémoire centrale
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Perspectives

Micro serveur WEB

Ecrans tactiles (QNX / linux)
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.
Système embarqué cible
PC104
H.E.P.L. - Séminaire Embarqués du 21
avril 2010.