Développement embarqué XScale



Documents pareils
Leçon 1 : Les principaux composants d un ordinateur

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

PDF created with pdffactory Pro trial version

Linux embarqué: une alternative à Windows CE?

Systèmes embarqués D.Rossier

Alcatel OmniPCX Enterprise TSC-IP V1 (4098RE)

Instruction breve de. l'ordinateur de poche Acer n10

PIC EVAL Dev Board PIC18F97J60

Systèmes d exploitation

Éléments d'architecture des ordinateurs

PPE BTS SIO Jourson - Attard Ascenzi Mancini GEP Marseille - 06/11/2014

Rappels d architecture

Solution parfaite pour une expérience bureautique transparente. Récapitulatif. Processeur Teradici avancé, haute performance

BK 2515, BK 2516 DAS 50 DAS 30

Quel terminal et quel logiciel choisir pour votre solution de mobilité?

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Conception de circuits numériques et architecture des ordinateurs

Comment installer la configuration des salles sur son ordinateur personnel?

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Spécifications détaillées

LE MICRO ORDINATEUR. Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables

Ordinateur portable Latitude E5410

LOT 1 - ACQUISITION DE SERVEURS INFORMATIQUES LOT 2 - ACQUISITION DE 5 POSTES INFORMATIQUES

Fiche technique CPU 315SN/PN (315-4PN33)

Architecture des ordinateurs Introduction à l informatique

Présentation et installation PCE-LOG V4 1-5

Fiche technique CPU 314SC/DPM (314-6CG13)

Concept de machine virtuelle

Détection de pollution maritime avec GNU/Linux. Eric Bénard - eric@eukrea.com - 08 juillet 2010

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

Introduction à l informatique en BCPST

Fourniture de matériels informatiques MARCHÉ N Cahier des Clauses Techniques Particulières

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Les avantages de la virtualisation sont multiples. On peut citer:

Cours Informatique 1. Monsieur SADOUNI Salheddine

L informatique industrielle adaptée à vos métiers...

Conférence sur les microcontroleurs.

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Architecture des Ordinateurs. Partie II:

ATELIERS DE FORMATION TECHNICIEN DE MAINTENANCE INFORMATIQUE

KX GPRS SERIAL ETHERNET MODEM Le modem GPRS/EDGE «Machine to Machine»

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

RE BL. C o n v e r t i s s e u r I n f r a r o u g e B l u e t o o t h. Manuel utilisateur

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

ETAP Safety Manager Systèmes centraux de contrôle et de gestion

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Manuel d'installation de DVD MAKER USB2.0

Compilation (INF 564)

212 Erreur accès anti- Echo. 214 Erreur démarrage vérif DSP. 215 Erreur accès trame IC. 216 Erreur DSP carte MSG. 217 Erreur données Carte MSG

Tout savoir sur le matériel informatique

Démontage d'un ordinateur

CH.3 SYSTÈMES D'EXPLOITATION

Spécifications détaillées

CENTRALE DE SURVEILLANCE EMBARQUEE MULTIMEDIA

PC, Tablette, Smartphone, comment choisir ce qui me convient le mieux?

Matériel informatique (hardware)

LYCEE DE BRAS PANON MAPA MAI 2015

Limitations of the Playstation 3 for High Performance Cluster Computing

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Structure de base d un ordinateur

GESTION DE L'ORDINATEUR

Spécifications d'impression Jusqu'à 12 ppm

Programmation C. Apprendre à développer des programmes simples dans le langage C

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Cours 3 : L'ordinateur

Mes documents Sauvegardés

ProducTVity Station. Surveillance en temps réel des performances de votre production

Data Station Plus. La solution complète de gestion de données. > Convertisseur de multiples

Un ordinateur, c est quoi?

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

TABLETTE MPMAN MP724 : EMPORTEZ LE MONDE AVEC VOUS

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

Tsoft et Groupe Eyrolles, 2005, ISBN :

HP 600PD TWR i G 4.0G 39 PC

Un ordinateur, c est quoi?

Comprenant Windows 7 Édition Professionel Authentique et/ou d'autres systèmes d'exploitation

ST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée

GPA770 Microélectronique appliquée Exercices série A

SUJET EPREUVE ECRITE. JURY ASI Bap E Gestionnaire de parc informatique et Télécom.

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

Matériel & Logiciels (Hardware & Software)

Ed 03/95 PAQ 1530 NON URGENTE (INFO PRODUIT) TEMPORAIRE DEFINITIVE

Ladibug TM 2.0 Logiciel de présentation visuel d'image Manuel de l utilisateur - Français

Laplink PCmover Express La façon la plus facile de transférer vers un nouveau PC Windows

Temps Réel. Jérôme Pouiller Septembre 2011

Cahier des charges. Le fournisseur

Manuel de System Monitor

IV- Comment fonctionne un ordinateur?

NovoSIP manuel de mise en service

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

Structure et fonctionnement d'un ordinateur : hardware

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

Transcription:

Développement embarqué XScale Projet de diplôme Julien Pilet Stéphane Magnenat Responsable : René Beuchat Professeur : Paolo Ienne 14 mars 2003 1

Plan de la présentation Introduction Directions et choix Outils de développement OS : Linux Système multimédia embarqué Consommation et performances Conclusion Démonstration 2

Introduction : Objectifs Suite de notre projet de semestre Mettre en valeur Armonie : Support pédagogique Système multimédia embarqué Pilotage robot Cyclope 3

Introduction : Matériel de base Armonie processeur ARM XScale PXA250/PXA255 64 MB SDRAM 1 MB Flash CompactFlash USB, Série, I²C, JTAG, Mubus Extensions (Milli-BUS) Alimentation séparée (A-BUS) 4

Matériel de base : Armonie 5

Introduction : A propos du PXA25x Processeur ARM architecture v5 instructions RISC & DSP-like support Thumb fréquences et tensions variables 68kB de caches mémoire : 2 x 32kB caches de données et instructions 2 x 2kB de mini-caches de données et instructions 6

Introduction : A propos du PXA25x Périphériques intégrés : contrôleurs SDRAM, PCMCIA/CF, LCD IO : GPIO, série, I²C, I²S, SSP, AC97, USB (esclave), MMC 2 tensions d'alimentation : 3.3V : bus et GPIO variable 0.85-1.3V : coeur PXA25X Fréquences : bus interne : 50 MHz - 166 MHz coeur : 100 MHz - 400 MHz 7

Introduction : Vue générale PC GDB Jelie Adaptateur JTAG Système multimédia embarqué extension emediakit Armonie PXA25x Gestionnaire de débogage SDRAM Linux flash 8

Choix Support pédagogique cours Systèmes embarqués de R. Beuchat futurs projets semestre/diplôme Système multimédia embarqué utilise Milli-BUS Pilotage robot Cyclope possible à travers A-BUS (carte d'adrian Spycher) 9

Pourquoi un système d'exploitation (OS)? Développement sans OS possible, mais : pas de gestion de la mémoire un seul programme tout est à faire à la main Le système d'expoitation fournit : gestion et protection de la mémoire multitâche bibliothèques standards (libc + posix) pilotes pour les périphériques 10

Choix de l'os, comparatif Seuls les OS supportants le PXA25x ont été pris en compte. Problématique Linux ecos NetBSD WinCE Support des périphériques du PXA + + - + + + Communauté (développement et utilisation) + + + + + Temps réel - + + - - - - Réseau + + + + + + Orienté graphique (GUI disponibles) + + - + + + UNIX (multitâche, protection mémoire, etc... ) + + - - + + - Accès aux sources et redistribuable + + + - 11

Choix de l'os : Linux Avantages : existe, bon support pour l'arm et le PXA25x très activement développé supporte les fonctionnalités d'un UNIX pilotes pour pratiquement tout Inconvéniants : documentation disparate gros pas de support temps réel natif API non unifiée 12

Choix du libre Permet une maîtrise totale grâce à l'accès aux sources Librement redistribuable Système matériel et logiciel entièrement libre Communauté dynamique Intéressant à développer Gratuit Distribué sur http://lapwww.epfl.ch/dev/arm/ 13

Collaboration extérieure Collaboration avec K-Team (P. Bureau) et LSA 2 (F. Mondada) Nos avantages : augmente les chances de réussite contacts industriels test de nos outils Leurs avantages : réduit les coûts support gratuit 14

Outils de développement, schéma général PC Utilisateur Compilateur et éditeur de liens PC fichier ELF GDB TCP/IP Jelie Armonie Gestionnaire de débogage Programme JTAG Adaptateur JTAG 15

Chargement d'un programme Charger le binaires en mémoire, aux bonnes adresses Avoir une pile valide Sauter à la bonne adresse de départ ELF : data CODE CONST entry point stack info RAM : CODE CONST DATA STACK 16

Chargement d'un programme sources compilateur objets éditeur de liens ELF GDB objcopy Linux Jelie image binaire Mémoire d'armonie Programmes fichiers 17

Jelie Pilotage JTAG Orienté objet 10000 lignes de C++ et assembleur ARM Charge les programmes Lit et écrit les registres Lit et écrit la mémoire Place des points d'arrêts Interface GDB Programme la mémoire flash 18

Jelie : connection JTAG physique JTAG : Joint Test Action Group initialement prévu pour le test des circuits étendu pour usages divers USB : EzUSB Port parallèle : Wiggler Alteraprog 19

Jelie : schéma interne Jelie JTAGControl JTAGpxa250 CmdLine GdbRemote EzUSB ParallelPort EventSelector EzUSB PXA25x GDB 20

Jelie : méchanisme de débogage du PXA25x Par port JTAG Mini-cache d'instructions pour gestionnaire de débogage Transferts de données entre gestionnaire de débogage et PC 2 points d'arrêt matériels Aucun pas à pas matériel 21

Jelie : gestionnaire de débogage Chargé en mini-cache d'instructions par JTAG Assembleur ARM N'utilise pas la mémoire (pas de pile) Sauvegarde les registres sur le PC Appelé par : démarrage instruction bkpt point d'arrêt matériel événement externe JTAG 22

Gestionnaire de débogage : diagramme de fonctionnement Exception Reset démarrage init. SDRAM démarrage ou débogage? débogage sauve reg. TARGET_READY_FOR_CMD Attente d'une commande valide Continue l'exécution command == C? oui non Exécute la commande Restaure les registres Autre exception Clignote les diodes 23

Jelie : chargement et exécution de programmes 1.Chargement en mini-cache d'instructions du gestionnaire de débogage par JTAG 2.Chargement en mémoire depuis le PC du code et des données par JTAG 3.Mise à jour des registres : SP (R12) pointe sur la pile PC (R15) pointe sur l'adresse à exécuter 4.Sort du mode de débogage et continue l'exécution 24

Jelie : mémoire Flash et appels de fonctions embarquées PC Charge les données Armonie Charge le logiciel de programmation Prépare les registres : R0 = adresse de destination R1 = adresse des données R2 = taille des données SP (R13) = espace libre en RAM LR (R14) = pointeur vers point d'arrêt PC (R15) = erase_and_program Gestionnaire de débogage Continue Efface et programme la flash Attente Valeur de retour Point d'arrêt 25

Jelie : mémoire Flash et appels de fonctions embarquées load flash/flash.bin # load the remote program load \1 a1000000 # load data to write register 0 \2 # set destination address register 1 a1000000 # where the data is stored register 2 \3 # number of words to write register 13 a0c00000 # SP = 0xA0000000 + 12 MB register 14 $_endless$ # LR = _endless register 15 $erase_and_program$ # set PC continue # launch flash programation wait # wait until the debug handler is ready register 0 # display result code 26

Jelie et GDB GDB travaille avec : des fichiers ELF des sources (C, C++, ASM) Communication TCP/IP avec Jelie Jelie exécute les ordres de bas niveau : lire/écrire les registres lire/écrire la mémoire points d'arrêt matériels continuer/interrompre l'exécution 27

Jelie et GDB 28

Jelie : changement de fréquence Par appel de fonction embarquée Changement de la fréquence du bus interne (PXBus) 50 MHz 100 MHz Passage en mode Turbo 100 MHz 200 MHz 300 MHz et 400 MHz (certains modèles) Non conforme à la documentation d'intel 29

Linux sur Armonie Noyau 2.4.19-rmk4-pxa2-armonie1 et 2.4.19- rmk6-pxa1-armonie1 rmk = modifications ARM de Russell King pxa = modifications PXA2xx de Nicolas Pitre (MontaVista) armonie = nos modifications Système d'exploitation BusyBox/Linux embarqué dans la mémoire flash (~900 kb) GNU/Linux, distribution PsiLinux, par réseau USB: 32 MB 30

Noyau Linux ARM et microarchitecture XScale supportée Pilotes port série I²C USB esclave Compact Flash (adaptation commencée) LCD (adapté) Mubus (créé) 31

Linux : connections avec un ordinateur de développement Ordinateur de développement Armonie Disque Jelie adaptateur JTAG Debug handler Système de fichiers NFS TCP Terminal série RS232 Ligne de commande client NFS TCP USB Net USB maître USB USB esclave USB Net 32

Linux : chargement depuis un ordinateur de développement Jelie : 1.envoie l'image compressée du noyau en RAM, 2.envoie l'image compressée du système de fichiers en RAM, 3.affecte les registres, 4.saute au début de l'image compressée du noyau. 33

Linux : chargement depuis la mémoire Flash Flallo: Flash Linux Loader 1.copie image compressée du noyau en RAM 2.copie système de fichier en RAM 3.appelle l'image compressée du noyau 34

Linux : démarrage L'image compressée du noyau : 1.décompresse le noyau à l'addresse, a0008000 2.saute à cette addresse. Linux : charge les pilotes de périphériques, initialise la MMU, l'ordonnanceur,... décompresse le système de fichier en RAM, exécute /sbin/init ou l'exécutable spécifié par init= dans la ligne de commande 35

Linux : fonctionnalités sur Armonie Multi-tâche Mémoire protégée Système de fichier en mémoire Bibliothèques dynamiques Réseau (via USB) Système de fichiers réseau (NFS) Affichage sur LCD (par DMA) Depuis 2.4.19-rmk6-pxa1-armonie1: changement de fréquence au vol 36

Linux : Système complet Un noyau ne suffit pas Programmes utilisateurs: BusyBox (commandes unix en environ 400 kb) PsiLinux (distribution GNU/Linux pour ARM, 32 MB) Programmes autonomes avec uclibc Stockage : compressé en flash, puis en mémoire vive par réseau USB 37

Linux comme environnement de travail Facilement utilisable à distance Automatisation aisée Nombreux outils de développement disponibles 38

Système multimédia embarqué, Système comprenant : carte d'extension emediakit écran LCD Armonie ou RokEPXA carte d'alimentation batteries Conçu, partiellement réalisé En collaboration avec Cédric Gaudin 39

Système multimédia embarqué, schéma général emediakit Connecteurs micro, haut-parleurs et convertisseur A/D. Ecran LCD, connecteur Video Connecteur Bluetooth 8 boutons Ecran tactile UCB1400 Ethernet RJ-45 LAN91C96 4 USB master UHC124 Milli-BUS Armonie ou RokEPXA A-BUS Abusalim C Batteries 40

emediakit, UCB1400 Circuit multi-fonction : son (44 khz, 16 bits, stéréo, in/out) A/D et écran tactile (10 bits) GPIO (10 pattes avec interruptions possibles) Connection au PXA25x par AC97 : bus série et protocole, utilisé dans les PC, principalement pour le son le PXA25x contient le contrôleur Non testé 41

emediakit, LCD LCD Sharp TFT Matrice active 320x240x18 bit (6 bit/composante, 16 bits connectés (R: 5, G: 6, B: 5) rétro-éclairage par tube fluorescent, consommation excessive (jusqu'à 3.5 W) testé et fonctionne Ecran tactile ajout, non inclu dans le LCD résistif, connecté à l'ucb, A/D 10 bits (résolution théorique 1024x1024) LCD fonctionne, écran tactile non testé 42

emediakit, USB maître UHC124 USB Host Controller, 4 ports USB maître, Detection / limitation de surcharge de courant inclues, Pas de pilote pour Linux pour l'instant. 43

Consommation et performances du PXA250 Conditions logicielles de test : inactivité ALU multiplications lecture SDRAM écriture SDRAM lecture cache mémoire écriture cache mémoire 44

Consomation CPU 100 CPU 200 sans DMA Bus 50 : 1 Bus 50 : 3 Bus 100 : 5 avec DMA Bus 50 : 2 Bus 50 : 4 Bus 100 : 6 Uniquement sur le PXA250 Mesures : courant de l'alimentation variable ( 0.9-1.3 V) courant de l'alimentation 3.3 V vitesse d'exécution des boucles de tests 45

Consommation du coeur Consommation de l'alimentation 3.3V mw 50 100 150 200 250 300 idle ALU Mult RAM read RAM write Cache read Cache write 1 : 100 MHz PXbus 50 MHz sans DMA 0.9V 2 : 100 MHz PXbus 50 MHz avec DMA 0.9V 3 : 200 MHz PXbus 50 MHz sans DMA 1.0V 4 : 200 MHz PXbus 50 MHz avec DMA 1.0V 5 : 200 MHz PXbus 100 MHz sans DMA 1.3V 6 : 200 MHz PXbus 100 MHz avec DMA 1.3V mw 200 300 400 500 600 idle ALU Mult RAM read RAM write Cache read Cache write 1 : 100 MHz PXbus 50 MHz sans DMA 0.9V 2 : 100 MHz PXbus 50 MHz avec DMA 0.9V 3 : 200 MHz PXbus 50 MHz sans DMA 1.0V 4 : 200 MHz PXbus 50 MHz avec DMA 1.0V 5 : 200 MHz PXbus 100 MHz sans DMA 1.3V 6 : 200 MHz PXbus 100 MHz avec DMA 1.3V 1 2 3 4 5 6 test 1 2 3 4 5 6 test 46

Consommation totale Comparaison des performances relatives mw 200 400 600 800 idle ALU Mult RAM read RAM write Cache read Cache write 1 : 100 MHz PXbus 50 MHz sans DMA 0.9V 2 : 100 MHz PXbus 50 MHz avec DMA 0.9V 3 : 200 MHz PXbus 50 MHz sans DMA 1.0V 4 : 200 MHz PXbus 50 MHz avec DMA 1.0V 5 : 200 MHz PXbus 100 MHz sans DMA 1.3V 6 : 200 MHz PXbus 100 MHz avec DMA 1.3V Performances relatives 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1 : 100 MHz PXbus 50 MHz sans DMA 0.9V 2 : 100 MHz PXbus 50 MHz avec DMA 0.9V 3 : 200 MHz PXbus 50 MHz sans DMA 1.0V 4 : 200 MHz PXbus 50 MHz avec DMA 1.0V 5 : 200 MHz PXbus 100 MHz sans DMA 1.3V 6 : 200 MHz PXbus 100 MHz avec DMA 1.3V 1 2 3 4 5 6 test ALU Mult RAM read RAM write cache read cache write Benchmark 47

Performances / consommation totale Performances relatives / mw, normalisése 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1 : 100 MHz PXbus 50 MHz sans DMA 0.9V 2 : 100 MHz PXbus 50 MHz avec DMA 0.9V 3 : 200 MHz PXbus 50 MHz sans DMA 1.0V 4 : 200 MHz PXbus 50 MHz avec DMA 1.0V 5 : 200 MHz PXbus 100 MHz sans DMA 1.3V 6 : 200 MHz PXbus 100 MHz avec DMA 1.3V ALU Mult RAM read RAM write cache read cache write Benchmark 48

Consommation et performances : Conclusions Importance des mémoires caches Importance d'optimiser les logiciels Adaptation des fréquences aux besoins : manuelle pour une tâche précise automatique par le système d'exploitation? Tests uniquement sur PXA250. Le PXA255 devrait consommer moins. 49

Travail effectué Jelie Adaptation des outils GNU Réalisation d'un environnement de développement (C, C++, asm) Port de Linux sur Armonie Pilote Mubus Système multimédia autonome Ecran LCD sous Linux Analyse de performances / consommation 50

Conclusion Support pédagogique outils de développement système d'exploitation Système multimédia embarqué conçu réalisé : alimentation, PCB emediakit, LCD à faire : monter emediakit, écrire les pilotes pour emediakit, boitier, test batteries Robot cyclope non testé 51

Perspectives futures Suite d'outils JTAG support d'autres cibles pour Jelie coopération avec l'analyseur de Cédric Gaudin interface JTAG rapide avec FPGA (par exemple analyseur logique de Sébastian Gerlach) Robot Cyclope Système multimédia embarqué Gestion d'énergie sous Linux 52

Apports personnels Excellente ambiance de travail Bonne collaboration : dans le groupe, avec les autres projets Projet très motivant Beaucoup de nouvelles connaissances 53

Démonstrations Développement sans OS débogage avec GDB/Insight test sur afficheur Mubus Linux démarrage de Linux depuis la flash test I²C avec PCF8574 écran LCD 54

Avez-vous des questions? 55

Organisation de la mémoire cache 56

Fréquences et alimentations 57