Haute École de la Province de Liège
description
Transcript of Haute École de la Province de Liège
![Page 1: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/1.jpg)
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.
![Page 2: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/2.jpg)
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.
![Page 3: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/3.jpg)
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.
![Page 4: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/4.jpg)
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.
![Page 5: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/5.jpg)
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.
![Page 6: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/6.jpg)
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.
![Page 7: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/7.jpg)
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.
![Page 8: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/8.jpg)
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.
![Page 9: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/9.jpg)
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.
![Page 10: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/10.jpg)
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.
![Page 11: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/11.jpg)
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.
![Page 12: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/12.jpg)
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.
![Page 13: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/13.jpg)
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.
![Page 14: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/14.jpg)
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
![Page 15: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/15.jpg)
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.
![Page 16: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/16.jpg)
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.
![Page 17: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/17.jpg)
Composition d’un Composition d’un fichier .bldfichier .bld
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
![Page 18: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/18.jpg)
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.
![Page 19: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/19.jpg)
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.
![Page 20: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/20.jpg)
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.
![Page 21: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/21.jpg)
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.
![Page 22: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/22.jpg)
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.
![Page 23: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/23.jpg)
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.
![Page 24: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/24.jpg)
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.
![Page 25: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/25.jpg)
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.
![Page 26: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/26.jpg)
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.
![Page 27: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/27.jpg)
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.
![Page 28: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/28.jpg)
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.
![Page 29: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/29.jpg)
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
![Page 30: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/30.jpg)
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.
![Page 31: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/31.jpg)
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
![Page 32: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/32.jpg)
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.
![Page 33: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/33.jpg)
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.
![Page 34: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/34.jpg)
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.
![Page 35: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/35.jpg)
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.
![Page 36: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/36.jpg)
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.
![Page 37: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/37.jpg)
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.
![Page 38: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/38.jpg)
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.
![Page 39: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/39.jpg)
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
![Page 40: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/40.jpg)
Environnement de travailEnvironnement de travail
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
![Page 41: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/41.jpg)
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.
![Page 42: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/42.jpg)
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.
![Page 43: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/43.jpg)
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.
![Page 44: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/44.jpg)
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.
![Page 45: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/45.jpg)
Questions ?
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
![Page 46: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/46.jpg)
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.
![Page 47: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/47.jpg)
PerspectivesPerspectives
Micro serveur WEB
Ecrans tactiles (QNX / linux)
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.
![Page 48: Haute École de la Province de Liège](https://reader035.fdocument.pub/reader035/viewer/2022062309/56814483550346895db11c56/html5/thumbnails/48.jpg)
Système embarqué cibleSystème embarqué cible
PC104
H.E.P.L. - Séminaire Embarqués du 21 avril 2010.