Haute École de la Province de Liège

Post on 12-Jan-2016

42 views 0 download

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

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.