haute École de la province de liège
Post on 12-Jan-2016
43 Views
Preview:
DESCRIPTION
TRANSCRIPT
Haute École de la Haute École de la Province de LiègeProvince de LiègeCatégorie TechniqueBachelier en Informatique et Systèmes Finalité Informatique Industrielle
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Construction, Construction, chargement et mise au chargement et mise au point d’images point d’images systèmes sous QNXsystèmes sous QNXDavid Bourlard et Nicolas Dumont
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
PlanPlanSituation 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.
PlanPlanSituation 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é IndustrielleFinalité IndustrielleInformaticienSpé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.Objectifs L.I.I.
Systèmes temps réelsSupervisionSystèmes embarquésTraitements d’images
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Cours de Systèmes Cours de Systèmes EmbarquésEmbarqué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 coursObjectifs 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.
PlanPlanSituation 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 » Système QNX « Neutrino » (6.3.2)(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 »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
Processus ajoutés au besoinDébogage standard avec gdbCompilateur gcc
procnto
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Système QNX « Neutrino »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 »Système QNX « Neutrino »support de la MMU (Memory
Management Unit): espace mémoire de chaque processus isolé
protection
protection
protection
protection
protectionprotection
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Système pré-emptif QNX Système pré-emptif QNX « Neutrino »« Neutrino »
Pré-emption et interruptions supportées jusque dans les appels systèmes
PREEMPT
PREEMPT
PREEMPT
PREEMPT
PREEMPT
PREEMPT
PlanPlanSituation 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 Création d’une image systèmesystème
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Composition d’un Composition d’un fichier .bldfichier .bld
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Fichier .bldFichier .bld[virtual=x86,bios +compress] .bootstrap
= {[+keeplinked]startup-bios -s 64k -APATH=/proc/boot LD_LIBRARY_PATH=/proc/boot:/dev/shmem:/usr/lib:/lib procnto
}[+script] .script = {
procmgr_symlink ../../proc/boot/libc.so /usr/lib/ldqnx.so.2
devc-pty &devc-con -n2 & reopen /dev/con1 [+session] TERM=qansi uesh & }
libc.so/lib/libm.so.2/lib/libsocket.so.2 [code=uip data=copy perms=+r,+x]/x86/usr/bin/gdblsechopdebugdevc-pty # elem[+raw]/home/testrt/BM/Prog devc-conuesh
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Tailles d’images SimplesTailles d’images SimplesImages 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.
PlanPlanSituation 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 Debugging locallocal sous QNX 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 Debugging distantdistant sous sous QNXQNXInformations 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 Debugging distantdistant sous sous QNXQNX
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.
PlanPlanSituation 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.
DiskOnChip (EEPROM XIP bootable apparaissant comme disque dur grâce au pilote TrueFFS)
DiskOnModule (EEPROM reconnue nativement comme disque dur IDE/SATA)
Clé USB
Images système sur Images système sur mémoire flashmémoire flash
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Images système sur Images système sur mémoire flashmémoire flashMéthode en utilisant l’utilitaire ‘fdisk’:0) [pour le DiskOnChip, charger le pilote
TrueFFS]1)Créer une partition QNX2)Positionner le ‘boot flag’3)Initialiser la partition4)Ecrire le chargeur de démarrage QNX
5)Monter la partition6)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.
PlanPlanSituation 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: Démarrage via réseau: BOOTPBOOTP
‘Bootstrap Protocol‘ : la machine qui démarre découvre
1)son adresse IP2)adresse IP serveur3)adresse IP passerelle4)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 255.255.255.255:68BOOTP reply
Client IP + Server IP + Gateway IP + Boot File Name
Client Server
ARP requests
BOOTP requests
Client IP:67 255.255.255.255:68BOOTP replies
Client IP + Server IP + Gateway IP + Boot File Name
ARP request
TFTP read request
TFTP read reply (image transfer)
ARP reply
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
Démarrage via réseau: Démarrage via réseau: bootpbootp
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
BOOTP requests
BOOTP replies
Client Server
ARP requests
TFTP read request
TFTP read reply (pxegrub transfer)
ARP reply
TFTP read request
TFTP read reply (QNX system image transfer)
pxegrubpxegrub
PlanPlanSituation 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é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éesCaractéristiques désiréesTaille: 100x100 mmConnectique:
◦Ethernet 10/100MBit◦RS232◦USB
Supporte QNX
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Caractéristiques de la Caractéristiques de la cartecarte
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 ARMChoix 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 PackageBoard 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 Création de l’image sous l’IDEl’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 travailEnvironnement de travail
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
PlanPlanSituation 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 fortsQNX: points fortsEntièrement conforme à POSIX
1003.1-2001Processus hors espace noyau, y
compris les drivers -> gdb utilisable
Documentation claire et unifiéeSupport payant très efficaceQNX gratuit pour enseignement /
recherche
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
QNX: points faiblesQNX: 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.
1 OS.
Pourquoi avoir choisi QNXPourquoi 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
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 techniquesAspects 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.
PerspectivesPerspectives
Micro serveur WEB
Ecrans tactiles (QNX / linux)
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
Système embarqué cibleSystème embarqué cible
PC104
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
top related