Haute École de la Province de Liège

48
Haute École de la Haute École de la Province de Liège 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.

description

Haute École de la Province de Liège. Catégorie Technique Bachelier en Informatique et Systèmes  Finalité Informatique Industrielle. Construction, chargement et mise au point d’images systèmes sous QNX. David Bourlard et Nicolas Dumont. Plan. Situation des activités. QNX. - PowerPoint PPT Presentation

Transcript of Haute École de la Province de Liège

Page 1: Haute École de la Province de Liège

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

H.E.P.L. - Séminaire Embarqués du 21 avril 2010.

Page 40: Haute École de la Province de Liège

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

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

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

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

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

Questions ?

H.E.P.L. - Séminaire Embarqués du 21 avril 2010.

Page 46: Haute École de la Province de Liège

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

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

Système embarqué cibleSystème embarqué cible

PC104

H.E.P.L. - Séminaire Embarqués du 21 avril 2010.