Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parDenise Lesage Modifié depuis plus de 8 années
1
Systèmes et Logiciels Embarqués (SLE) UE M2OP3 (3 crédits) Jean-Patrick Gelas Université Claude Bernard - Lyon 1 Screenfridge by Electrolux
2
Jean-Patrick Gelas, Univ. de Lyon2 Sources ● Linux embarqué, 2 nd édition, Pierre Ficheux, Ed.Eyrolles. ● http://free-electrons.com/articles http://free-electrons.com/articles ● http://tuxmobil.org/ http://tuxmobil.org/ ● http://linuxdevices.com http://linuxdevices.com ● http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Snapshot-of-the-embedded-Linux-market-April-2007/ http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Snapshot-of-the-embedded-Linux-market-April-2007/ ●...
3
Organisation / Matériel Durée : 2x3h CM / 8x3h TP (répartition non-définitive). TP GNU/Linux Nouveau ! : TP iOS4 (iPhone, iPodTouch, iPad)
4
Jean-Patrick Gelas, Univ. de Lyon4 Méthode d'évaluation 50 % : TP et Projet à réaliser en binôme ; 50 % : Contrôle(s) continue.
5
Jean-Patrick Gelas, Univ. de Lyon5 Projet promo 2007/2008 ● Les séances de TP sont dédiées à la réalisation d'un projet personnel (à réaliser en binôme) dont les figures imposées sont les suivantes : – Votre système devra démarrer a partir d'une clef USB (non fournit) ; – On devra pouvoir s'y connecter via ssh (dropbear) ; – Vous utiliserez busybox tant que possible. ● Exemples de projets : lecteur multimédia, borne interactive, routeur, webcam IP, couteau suisse (diagnostic), station de montage audio et/ou vidéo, chrono, etc. Desktops OS Replacement Education Rescue Clustering Security Home Entertainment Gaming Medical Diagnostics Firewalls Forensics Servers Robotics Astronomy...
6
Jean-Patrick Gelas, Univ. de Lyon6 Projet promo 2009/2010 Cadre photo numèrique NG (Nouvelle Génération) ● Vous en rêviez ? Et bien faites-le ! ;-) ● Votre projet devra démarrer à partir d'une clef USB (non fournit) ; ● Il affichera en boucle les photos situés sur une partition de la clé ainsi que des photos récupérées via le réseau à une URL fixé ; ● On devra pouvoir se connecter via ssh (dropbear) ; ● Vous utiliserez busybox tant que possible. ● Les séances de TP sont dédiées à la réalisation du projet ● Travail en binôme. ● Le travail sera évalué par une démo commentée et un petit questionnaire à remplir.
7
Objectifs de ce cours ● Panorama de l'existant ; ● Méthodologie à suivre pour construire un système embarqué communiquant complet (matériel, OS, système de fichiers, application(s)). ● Contrôle de processus sans contrainte ou à faible contrainte temps réel ; ● Pas de programmation proche du système (assembleur) ni d'électronique. Rappels sur la programmation en bash. Initiation basée sur un système d'exploitation ouvert.
8
Jean-Patrick Gelas, Univ. de Lyon8 Sujets abordés (en vrac !) ● Matériels ● Systèmes de fichiers et technologies de stockage ● Compilation croisée ● Interfaces graphiques ● Consommation energétique ● Liens de communications (Ethernet, série, USB, i2c, 1-wire,...) ● Capteurs ● Système minimal (uClinux) ● Compilation du noyau ● Portage du noyau ● etc...
9
Jean-Patrick Gelas, Univ. de Lyon9 Concepts fondamentaux ● Un logiciel embarqué (embedded software) est un programme utilisé dans un équipement industriel ou un bien de consommation. ● On parle aussi de logiciel intégré ou dédié (on achète un produit pour le service qu'il rend et non pas pour le logiciel qu'il embarque). => Un équipement est valorisé par son aspect fonctionnel.
10
Jean-Patrick Gelas, Univ. de Lyon10 Caractéristiques d'un logiciel embarqué ● Ciblé : domaine d'action limité. ● Fiable et sécurisé : fonctionnement autonome. ● Maintenable dans le temps : durée de vie longue. ● Spécifique : interfaces classiques réduites au minimum. ● Optimisé : petite taille, impact sur le coût de production, temps de réponse, démarrage rapide, consommation,...
11
Jean-Patrick Gelas, Univ. de Lyon11 Logiciel ou Système embarqué ? ● Un système embarqué désigne le plus souvent un système d'exploitation (multi-usage) qui permet : – de gérer et partager les ressources matériels ; – d'assurer un ensemble de services à travers une interface mieux adaptée. ● Un OS est a priori beaucoup trop complexe et sur-dimensionné, mais...
12
Jean-Patrick Gelas, Univ. de Lyon12 Avantages de l'utilisation d'un OS ● Il affranchit le développeur d'un travail d'adaptation très proche du matériel ; ● Si l'OS est suffisamment répandu, il permet aux applications industrielles de bénéficier des mêmes avancées technologiques que les applications classiques (TCP/IP, HTTP, FTP,...). ● Un environnement de développement confortable. Inconvénient : Le principal inconvénient de l'utilisation d'un véritable OS est la taille mémoire nécessaire.
13
Jean-Patrick Gelas, Univ. de Lyon13 L'empreinte mémoire ● L'empreinte est la taille mémoire occupée par le système. ● Les systèmes embarqués doivent avoir une faible empreinte mémoire pour optimiser les coûts de production. => La réduction de l'empreinte mémoire est la tâche principale d'un développeur de système embarqué.
14
Jean-Patrick Gelas, Univ. de Lyon14 Champs d'applications (liste non exhaustive) ● contrôle de processus industriels ; ● commande numérique, machines outils ; ● automobile ; ● télécommunication : centraux téléphoniques, téléphones mobiles ; ● réseaux informatiques : routeurs ; ● périphériques informatique : imprimante, photocopieurs ; ● aéronautique et transport en général ; ● systèmes médicaux ; ● etc.
15
Jean-Patrick Gelas, Univ. de Lyon15 Champs d'applications (suite) Deux grandes familles : – le contrôle de processus sans contrainte ou a faible contrainte temps réel ; – le contrôle de processus avec contrainte temps réel.
16
Jean-Patrick Gelas, Univ. de Lyon16 Comparaison des critères temps réel et partagé
17
Jean-Patrick Gelas, Univ. de Lyon17 Préemption et commutation de contexte ● La notion de préemption intervient à deux niveaux : – celui de la gestion des tâches (multitasks), – celui du noyau du système. ● Dans un système multitâche : – préemptif, c'est l'ordonnanceur qui décide d'interrompre une tâche pour passer à une autre (ex: IRQ). – non-préemptif la tâche ne peut être interrompue par le système, elle doit demander l'intervention de l'ordonnanceur (multitâche « collaboratif »). ● Au niveau noyau, on parle de préemption lorsque ce dernier peut interrompre une tâche à n'importe quel moment afin de préserver l'ordre des priorités (ex: un système temps réel).
18
Jean-Patrick Gelas, Univ. de Lyon18 Langages utilisés ● Pour des raisons de contraintes matérielles, le langage assembleur a longtemps été le langage de prédilection des technologies de l'embarqué (optimisation de la taille du code et des performances). ● Les langages C et C++ restent aujourd'hui le choix favori des développeurs (standard POSIX). – Le C permet de rester proche du matériel. – Il nécessite d'utiliser le compilateur de la manière la plus efficace possible en utilisant au maximum les options d'optimisation adapté au matériel (ex: GNU C Compiler -O2, -O3, -Os, -m386, - mpentium, etc.) ● Langage de script (sur les UNIX-like). Plus facile à maintenir (ex: ash 60Ko, msh 30Ko).
19
Jean-Patrick Gelas, Univ. de Lyon19 Systèmes existants (non exhaustif) ● VxWorks : noyau RT le plus utilisé dans l'industrie. Supporte TCP/IP et une API socket. Coût des licences important. ● QNX : noyau RT de type UNIX. Intègre une interface garphique proche de X Window (Photon). QNX peut être utilisé gratuitement pour des applications non commerciales. Très faible empreinte mémoire. ● uC/OS : destiné à des micro-contrôleurs type Motorola 68HC11. Support de TCP/IP. Gratuit pour l'enseignement. ● Windows CE : Victime d'une réputation de fiabilité approximative... ● Lynx OS : Système RT conforme à la norme POSIX. ● Nucleus : Noyau RT avec support de TCP/IP, une interface graphique, un navigateur web et serveur HTTP. Livré avec les sources, pas de royalties à payer pour la redistribution. ● eCos : Noyau RT (Embeddable Configurable OS), faible empreinte mémoire, basé sur Linux et la chaîne de cross-compilation GNU (POSIX). Support de TCP/IP. Licence proche GPL. Largement utilisé (automobile, imprimante, lecteur MP3). Support des processeurs x86, PowerPC, SH3 Hitachi ou StrongARM.
20
Jean-Patrick Gelas, Univ. de Lyon20
21
Jean-Patrick Gelas, Univ. de Lyon21 GNU/Linux comme système embarqué Avantage et contraintes ● Les avantages de l'Open Source : – redistribution sans royalties ; – disponibilité du code source ; – possibilité de réaliser un développement dérivé de ce code source. ● Les contraintes : – L'open-source a une approche communautaire qui peut provoquer la méfiance des décideurs (connotation anti- libérale, anti-profit). – Support technique.
22
Jean-Patrick Gelas, Univ. de Lyon22 Pourquoi GNU/Linux est-il adapté à l'embarqué ? ● Fiabilité ● Faible coût ● Performances ● Portabilité et adaptabilité ● Ouverture
23
Jean-Patrick Gelas, Univ. de Lyon23 Pourquoi GNU/Linux est-il inadapté à l'embarqué ? ● Un noyau Linux occupe au minimum 400kB (compressé). 1MB pour un système minimal fonctionnel. 4MB de RAM minimum. ● Si l'application nécessite uniquement des fonctions de base (pas de réseaux, pas de multitâche) et n'est pas destiné a évoluer. ● Si les contraintes matérielles ne sont pas compatibles. ● L'usage de la GPL/LGPL peut se revéler contraignante. ● La conformité par rapport à certains standards industriels (ex: standards de l'aéronautique) peut être difficile à valider.
24
Jean-Patrick Gelas, Univ. de Lyon24 Linux adoption just keeps on increasing (source : linuxdevice.com)
25
Jean-Patrick Gelas, Univ. de Lyon25 Quelques systèmes embarqués basés sur Linux ● Montavista Linux ● BlueCat Linux ● uCLinux ● RTLinux ● RTAI ● ELDK ● PeeWee Linux ●...
26
Jean-Patrick Gelas, Univ. de Lyon26 Choix matériel pour un système embarqué : Architecture PC ou non ? ● Utilisez une architecture PC pour la phase de maquettage et d'étude de fonctionnalité. ● Linux est disponible sur un grand nombre de processeurs. Le portage d'un noyau Linux vers un nouveau processeur est envisageable. ● Limitez une étude matérielle a une production importante.
27
Jean-Patrick Gelas, Univ. de Lyon27 Choix matériel pour un système embarqué : Processeur : MMU ou non ? ● Linux a été initialement développé sur la base du mécanisme de mémoire protégée du processeur Intel 80386. ● Ce mécanisme repose sur un composant matériel appelé MMU (Memory Management Unit) : – Il interdit a un processus d'écraser l'espace mémoire d'un autre processus (segmentation violation). – Il autorise la conversion entre les adresses physiques et adresses logiques (vu par le processus et allouées par l'OS). ● Les processeurs équipés de MMU (la majorité) sont plus gourmand en ressources matérielles. Pour les applications « profondément enfouies » (deeply embedded) on utilisera des processeurs dépourvus de MMU. ● uClinux : Linux sans MMU (pour micro-contrôleurs), http://www.uclinux.org. Portage basé sur la version 2.0.38 du noyau Linux. L'API du système est indentique au vrai noyau Linux (basé sur une libc différent de glibc).http://www.uclinux.org
28
Jean-Patrick Gelas, Univ. de Lyon28 Les processeurs ● Avec MMU compatible x86 : Intel (Pentium, Celeron), AMD (Elan530), National Semiconductor (Geode), VIA (C3), STPC, Transmeta (Crusoe), etc. ● Architecture ARM (ARM7, ARM9, Xscale, etc.) ● ATMEL (AT91RM9200 (Ethernet, USB host/device)). ●...
29
Jean-Patrick Gelas, Univ. de Lyon29 La mémoire de masse ● Utilisée pour stocker l'image de l'OS et les données lues ou écrites en cours de fonctionnement de ce système. ● Un système embarqué utilise généralement un faible espace de stockage (les distributions Linux embarquées font entre 2 et 10 MB). ● Un disque dur est : – inadapté a un environnement mobile (fragile) ; – consommateur d'énergie (dissipateur thermique) ; – peut générer du bruit. ● Un système embarqué utilise généralement de la mémoire flash (flash memory) : DiskOnChip (MTD), CompactFlash (interface IDE)... – temps d'accès (en écriture) supérieur à celui de la mémoire vive ; – la durée de vie fortement influencée par le nombre d'écriture par unité de temps.
30
Jean-Patrick Gelas, Univ. de Lyon30 Systèmes de fichiers ● ext2/ext3 Le système de fichiers ext3 est l'extension journalisée du système de fichier ext2 (Labo MASI, Jussieu, Rémy Card). ● ReiserFS Conçu à la base comme système de fichier journalisé. Plus récent, efficace sur les partitions de grandes tailles gérant nombre de petits fichiers. Taille minimale d'une partition 32 Mo.
31
Jean-Patrick Gelas, Univ. de Lyon31 Systèmes de fichiers (suite) ● JFFS2 (Journaling Flash File System, version 2) Lié au projet MTD. Gestion des blocs erronés (bad blocks). Récupération d'espace (Garbage Collector). Compression des données en temps réel. ● CRAMFS (Compressed ROM File System) Système de fichiers en lecture seule compressé (zlib). La taille maximale de chaque fichier est limité a 16Mo et la taille totale du système de fichiers à 256Mo. ● SquashFS Système de fichiers en lecture seule compressé (zlib). Taille maxi des fichiers ou du système de fichiers = 2^64 octets. Taille des blocs jusqu'à 1 Mo (128 Ko par défaut pour un bon taux de compression). Suppression des fichiers dupliqués détectée. Support des archi big- et little-endian.
32
Jean-Patrick Gelas, Univ. de Lyon32 Systèmes de fichiers (suite et en vrac) http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_fichiers ● Non journalisés : – Ext et Ext2 : Extented FS version 2 (Linux, BSD, Windows via un pilote) – exFAT : Extended File Allocation Table (nouveau système de fichiers proposé par Microsoft pour remplacer la FAT sur les supports amovibles) – FAT : File Allocation Table (DOS/Windows, Linux, BSD, OS/2, Mac OS X). Se décompose en plusieurs catégories – FAT12 ; FAT16 ; FAT32 ; VFAT ; FATX : système de fichiers pour Xbox. – FFS : Fast File System (BSD, Linux expérimental) – HFS : Hierarchical File System (Mac OS, Mac OS X, Linux) – HPFS : High Performance FileSystem (OS/2, Linux) – minix fs (minix, Linux) – S5 (UNIX System V, Linux) – Unix File System : (BSD, Linux en lecture seule) ● à Snapshot – Btrfs : ButterFS (Linux expérimental) – ZFS : Zettabyte FS (Solaris10, OpenSolaris, FreeBSD 7, Mac OS X en lecture seule) ● Journalisés – BeFS (BeOS, Haïku, Linux en lecture seule et expérimental) – Ext3 : Extented FS version 3 - notamment pour l'ajout de la journalisation (Linux, BSD) – Ext4 : Extented FS version 4 - notamment pour une capacité de 1 exa-octet et les Extents (Linux >=2.6.28) – HFS+ (Mac OS X, Linux) – JFS (AIX, OS/2, Linux) – JFS2 AIX5 – LFS : (Linux) – NSS : Novell Storage Services (Netware et Suse Linux) – NTFS : New Technology FileSystem (Windows NT/2000/XP/Vista, Linux (écriture disponible grace au pilote NTFS-3G), Mac OS X en lecture seule) – ReiserFS (Linux, BSD en lecture seule ; Reiser4 (Linux expérimental) – Spufs : Synergistic processing unit filesystem – UFS+ : Unix FS + journal (BSD, Linux en lecture seule) – XFS (Irix, Linux, BSD en lecture seule)
33
Jean-Patrick Gelas, Univ. de Lyon33 ● Réseau – AFS Andrew File System : (Aix, Linux) – CodaFS (Linux) – NFS (tous les UNIX, Linux, Mac OS X, IRIX) (Windows pour la 4) – NCP NetWare Core Protocol (Novell NetWare, Linux en client seul) – SSHFS (tous les UNIX ?, Linux) – SMB ou Server Message Block (Windows) (Linux, BSD et Mac OS X via Samba) – CIFS (Évolution de SMB, supporté par Samba ainsi que par Windows 2000 et XP) – Tahoe[3] (libre, distribué, chiffré et avec tolérance aux pannes, tous les UNIX, Linux, Mac OS X, Windows) ● Cluster – GFS2, Global file system : Linux – GPFS, General Parallel File Sytem : Linux, AIX – Lustre, Compression de Linux et de Cluster : Linux – OCFS2, développé par Oracle : Linux – PVFS2, Parallel Virtual FileSystem version 2 : Linux, UNIX Systèmes de fichiers (suite et fin en vrac) http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_fichiers ● Spécialisés – CFS Cryptographic File System : FS chiffré (BSD, Linux) – cramfs : FS compressé (Linux en lecture seule) – EFS Encrypting File System : FS chiffré au dessus de NTFS (Windows) – ISO 9660 : en lecture seule sur tous les systèmes lisant les CDROM/DVDROM de données – JFFS et JFFS2 : FS pour support physique sans block, typiquement des cartes flash. Il est compressé et journalisé (Linux) – UBIFS : : FS journalisé pour support physique sans block, typiquement des cartes flash (Linux) – QNX4fs : FS utilisé pour le temps réel (QNX, Linux en lecture seule – UDF : le format de disque universel (système de fichiers des DVD-ROM et des disques optiques réinscriptibles tels les CD-RW, DVD±RW, etc.) – VMFS : FS dédié à la virtualisation (VMware)
34
Jean-Patrick Gelas, Univ. de Lyon34 Structure du système Linux Matérie l Noya u Bibliothèque C (GlibC) Applications Appels directs Noyau (kernel) : réalise les fonctions essentielles (gestion des tâches et mémoire), interface entre le matériel et les applications (pilotes). libc : bibliothèque principale contenant les fonctions de base utilisées par les applicatifs. Applications (ou commandes) : livrées avec le système ou développées pour des besoins spécifiques.
35
Jean-Patrick Gelas, Univ. de Lyon35 Schéma de démarrage d'un système Linux ● POST (Power-On Self Test) ● Bootstrap ou bootloader : Le bios d'un PC se charge de lire le MBR (Master Boot Record, 512 octets) à partir de son lecteur de boot (hd, fd, cd, usb,...). ● Second-stage boot loader : LILO, GRUB, syslinux,... ● Chargement du noyau Linux (ex: /boot/vmlinuz-2.6.xx-yy): initialisation des périphériques matériels. Chargement de sa partition principal (root partition). ● Exécution du programme /sbin/init (/etc/inittab). ● Lancement des services...
36
Jean-Patrick Gelas, Univ. de Lyon36 Disques mémoire (Ramdisks ou... tmpfs) ● Linux offre la possibilité de travailler sur des disques mémoire. – rapidité d'accès aux données ; – faible coût de la RAM par rapport à d'autres supports physiques comme la mémoire flash. ● Nécessite de valider le support dans le noyau (Menu Block devices). ● Chaque disque mémoire est vu à travers un pilote de type bloc /dev/ramX (0<=X<=20). # dd if=/dev/zero of=/dev/ram2 bs=1k count=2048 # mke2fs /dev/ram2 # mount -t ext2 /dev/ram2 /mnt/tmp # df -h /mnt/tmp
37
Jean-Patrick Gelas, Univ. de Lyon37 Quelques fichiers utiles ● /etc/ – fstab – inittab – network/... ou configsys/... – hostname, hosts, resolv.conf – init.d/... ● /sbin/ – init
38
Jean-Patrick Gelas, Univ. de Lyon38 Quelques répertoires particuliers /dev, /proc, /var ● /dev : On y trouve les pseudo-fichiers ou noeuds (qui ne consomme qu'un i- node). Ces fichiers servent de canaux de communication avec les périphériques (disques, cartes son, etc.). ● /proc (ou /sys): est un système de fichier virtuel, utilisé pour communiquer avec l'espace utilisateur. Un pilote de périphérique peut y ajouter dynamiquement des fichiers et répertoires lors de chargement de modules associés. Il est utilisable en lecture et écriture ● /var : contient des fichiers et sous-répertoire dont l'encombrement peut augmenter fortement au cours du fonctionnement (idem /tmp). Il vaut mieux le mettre sur une partition dédiée. En embarqué on l'utilise pour stocker : – les fichiers de fonctionnement (pid files) ; – les fichiers verrous (lock files) ; – les fichiers de trace (log files).
39
Jean-Patrick Gelas, Univ. de Lyon39 Quelques commandes utiles ● fdisk, cfdisk, sfdisk,... ● hdparm, mkfs.xxx, df, tune2fs (ext2/3) ● insmod, lsmod, modprobe, dmesg ● file, ldd, strace, nm, string, strip ● tcpdump, wireshark, ping, traceroute,... ● syslinux, lilo, grub ● chroot, pivot_root ● mount : mount -t iso9660 -o loop=/dev/loop0 imgcd.iso /mnt/cdrom ● minicom
40
Jean-Patrick Gelas, Univ. de Lyon40 QEMU ● Emulateur de système ou machine virtuelle (Open source). ● CPU supportés : x86, ARM, Sparc, PowerPC, Mips, m68k (Coldfire),... ● Matériel émulé (x86) : ● i440FX host PCI bridge et PIIX3 PCI to ISA bridge ● Cirrus CLGD 5446 PCI VGA card ou une simple carte VGA avec les extensions VESA de Bochs VESA ● Clavier et souris PS/2 ● 2 interfaces IDE PCI avec support des disques durs et CD-ROM ● Lecteur de disquette ● Carte réseau NE2000 PCI ● Ports série ● Carte son Soundblaster 16 ● BIOS du projet Bochs et le BIOS VGA des projets Plex86/Bochs ● Émule en permanence le processeur. Réduction des performances (facteur de 5 à 10).
41
Jean-Patrick Gelas, Univ. de Lyon41 initrd initial ramdisk ● Image d'un système de fichiers (temporaire) utilisé par Linux durant le boot. ● L'image est chargé en mémoire vive et permet d'avoir un système de fichiers (minimal). ● Généralement utilisé pour la préparation avant que le vrai système de fichiers racine puisse être monté ou bien démarrer des systèmes sans disque (diskless).
42
Jean-Patrick Gelas, Univ. de Lyon42 Les bus d'extension et de communication ● ISA (8Mo/s) et PCI (1Go/s) – Le bus ISA (Industry Standard Architecture) a tendance à disparaître Le bus PCI est plus facile à manipuler sous Linux (initialisation matériel automatique) et l'écriture de pilote est également plus facile car l'API du noyau propose un grand nombre de fonctions de haut niveau. ● Port série – Très utilisé dans les systèmes embarqués de part son ancienneté et sa facilité de mise en oeuvre (contrôleur 16550A, ex: RS-232). ● USB 1.1 (12 Mb/s) et USB 2.0 (480 Mb/s) – USB (Universal Standard Bus) pas toujours recommandé pour des applications sensibles car sa stabilité n'est pas encore au niveau du support PCI, ISA ou Ethernet. ● Les autres : 1-wire, I2C, I2O, IEEE 1394 (50Mo/s),...
43
Jean-Patrick Gelas, Univ. de Lyon43 I2C Inter Integrated Circuit ● Bus destiné a interconnecter des périphériques à faible vitesse sur un carte mère. ● Utilise deux lignes bidirectionnelles (SDA, SCL) pour interconnecter des composants master et des composants slave. ● Adressage sur 7 bits. ● Plus d'informations sur Wikipedia http://en.wikipedia.org/wiki/I%C2%B2C
44
Jean-Patrick Gelas, Univ. de Lyon44 Développement croisé (cross compilation) ● L'environnement Intel x86 est loin d'être le plus utilisé dans les applications industrielles et embarquées (ex: PowerPC ou ARM sont parfois mieux adaptés). ● Cependant, la plupart des développeurs utilisent un PC x86 (GNU/Linux ou Windows) comme poste de travail. ● Nécessité de mettre en place une chaîne de développement croisée permettant de produire du code non-x86 sur un PC.
45
Jean-Patrick Gelas, Univ. de Lyon45 Développement croisé Principe de la compilation croisée sous Linux ● La chaîne de compilation GNU utilise les composants suivants : – le compilateur (paquetage gcc) ; – des outils annexes (ex : assembleurs (as) et un éditeur de liens (ld)) (paquetage binutils) ; – la GNU libc (paquetage glibc). ● Dans le cas de la compilation croisée, ces différents outils seront utilisés dans un environnement x86 (Linux ou Windows) mais le code généré sera d'un type différent (par exemple ARM).
46
Jean-Patrick Gelas, Univ. de Lyon46 Développement croisé Principe de la compilation sous Linux Exemple : #include int main(){ printf("hello, world\n"); return 0; } $ arm-linux-gcc hello.c -o hello $ file hello hello: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), for GNU/Linux 2.2.0, not stripped
47
Jean-Patrick Gelas, Univ. de Lyon47 Développement croisé Conclusion ● La création d'une chaîne de compilation croisée est fastidieuse. ● Il en existe de toutes prêtes (format binaire, facile à installer). ● Il existe aussi CROSSTOOL un outil d'aide à la construction de chaîne de cross-compil. ● Remarque : On peut utiliser Cygwin pour utiliser les outils Linux sous Windows
48
Jean-Patrick Gelas, Univ. de Lyon48 Autres techniques de démarrage ● LOADLIN : permet de charger un noyau Linux depuis un système de type MS-DOS. – Évite de modifier le secteur de démarrage ; – charge Linux après avoir initialise le matériel dans un environnement DOS. c:\loadlin\loadlin.exe c:\linux\vmlinuz root=/dev/hda3 ro ● LinuxBIOS : vise à remplacer le bios par un noyau Linux modifié sur des systèmes de type x86 et Alpha.
49
Jean-Patrick Gelas, Univ. de Lyon49 Autres techniques de démarrage (suite) RedBoot ● RedBoot (RedHat Embedded Debug and Bootstrap). Dérive du développement d'eCos. ● Apporte des fonctions intéressantes : – démarrage d'un système via réseau (bootp et tftpboot) ; – la gestion de la mémoire flash ; – le téléchargement de fichier via réseau ou ligne série ; – l'exécution d'un noyau Linux sur la cible ; – la mise au point à distance.
50
Jean-Patrick Gelas, Univ. de Lyon50 --------------------THE END------------------- ---
51
Jean-Patrick Gelas, Univ. de Lyon51 TP1 - Échauffement Diagnostiquer la mémoire d'un système x86. ● URL : http://bat710.univ-lyon1.fr/~jgelas (section Embarque) ● Commandes utiles à connaître: – dd et ses options if, of, bs, count ; – file ; – mkfs.dos ; – qemu et son option hda.
52
Jean-Patrick Gelas, Univ. de Lyon52 TP2 - Élagage Réduire un système de fichiers au strict minimum ● URL : http://bat710.univ-lyon1.fr/~jgelas (section Embarque) ● Le noyau et le système de fichiers initial sont donnés. ● Utilisation d'initrd. ● Tests avec Qemu qemu -kernel vmlinuz -initrd inird.img -hda /dev/zero
53
Jean-Patrick Gelas, Univ. de Lyon53 TP3 – Clé USB Installer une distribution Debian minimaliste ● URL : http://bat710.univ-lyon1.fr/~jgelas (section Embarque) ● Clé USB (taille minimum 256MB) ● Reposez-vous sur l'outil debootstrap. – apt-get install debootstrap
Présentations similaires
© 2025 SlidePlayer.fr Inc.
All rights reserved.