Training Embarquer Linux et écrire des drivers: Linux - ac6
Transcription
Training Embarquer Linux et écrire des drivers: Linux - ac6
Training Embarquer Linux et écrire des drivers: Linux: Installation sur cible embarquée et programmation de drivers - Operating Systems: Linux X5 - Embarquer Linux et écrire des drivers Linux: Installation sur cible embarquée et programmation de drivers Objectifs Utiliser les outils de développement natifs ou croisés Adapter, réduire et configurer le noyau Linux Embarquer Linux sur Flash EPROM Détailler la procédure de boot Linux Monter un système de fichier distant Booter un kernel Linux distant Etudier les spécificités des noyaux 2.4 et 2.6 Maîtriser les outils kernel de développement et de mise au point Programmer les IO, les interruptions, les timers, le DMA Installer et intégrer les drivers dans un kernel linux Gérer les interfaces standard synchrones, asynchrones et ioctl Tous les exercices se font en binôme sur cible PowerPC 405GP ou ARM en réseau avec la station de développement des stagiaires Matériel Un PC Linux par binôme 1 carte PoxerPC ou ARM par binôme Support de cours CDROM avec documentation et outils utilisés Pré-requis Connaissance de base en systèmes d'exploitation embarqués Connaissance des concepts de la programmation d'entrées sorties de bas niveau Plan Embarquement de Linux Architecture de Linux présentation de Linux licences GPL et open source architecture et modularité de Linux outils pour l'embarqué (Eclipse) X5 - Embarquer Linux et écrire des drivers Exercice: Installation et découverte des outils de développement croisé Configuration de Linux pour l'embarqué Etapes de reconfiguration du noyau Compilation native et croisée du noyau Linux Optimisation des démarrages choix des processus d'initialisation réduction des fichiers de démarrage et de configuration vérification du file system ROM file System problèmes de coupures d'alimentation (JFFS) Réduction des modules de commandes et des librairies Démarrage automatique des applications embarquées Exercice: Génération d'un noyau linux embarqué Exercice: Création d'un système de fichiers racine minimal L'installation de Linux enfoui Etapes d'installation (partition de disques, création de FileSystem...) Mise en FLASH - boot sur RAM Disque intégration de drivers Flash dans le Kernel Linux mise en Flash Linéaire ou ROM Installation des couches réseau en enfoui paramètres réseau du noyau intégration des drivers réseau configuration des protocoles Montage de système de fichiers distant remplacement du système de fichiers temporaire (RAMDISK) connexion au serveur de fichiers par NFS Boot distant sans disque composants de l'architecture client serveur détail de la PROM de boot outils de téléchargement et de transfert du noyau Exercice: Installation d'une distribution sur carte PowerPC ou ARM Exercice: Configuration du système de développement pour boot sans disque de la cible Ecriture de drivers Le développement de modules Kernel Linux Outils de développement outils de compilation librairies standard makefile chargement et gestion des versions des modules kernel debug kernel Intégration des modules regénération du noyau linux intégration dans les fichiers de configuration du noyau Gestion mémoire algorithme d'allocation mémoire buddy et slab allocator zones mémoire d'allocations des drivers allocation dynamique et au boot Gestion du multitâches dans le noyau synchronisation entre tâches protection des données Exercice: Ecriture d'un module simple 02/19/17 X5 - Embarquer Linux et écrire des drivers La modélisation des périphériques Linux (2.6) Le "Linux Device Model" Structure objet du noyau Linux kobject kset subsystem Le système de fichiers sysfs Le hotplug Exercice: Fabrication d'un objet et de son interface sysfs La structure des drivers Linux interfaces fichiers (synchrones bloquantes, asynchrones non bloquantes, directes) les différents types de drivers linux drivers caractère différences entre les versions 2.4 et 2.6 les routines d'initialisation et de terminaison les routines d'entrées-sorties synchrones, asynchrones et de contrôle drivers bloc gestion clusturisée des requêtes et des blocs de transferts points de montage routine de stratégie drivers réseau configuration et detection automatique des cartes paramètres du noyau transmission et réception des paquets buffers des sockets résolution des adresses lien avec les protocoles nouveautés 2.6 Exercice: Ecriture du code d'initialisation d'un driver Exercice: Ecriture des routines de lecture-écriture d'un driver logiciel • version sans synchronisation • version synchrone • version asynchrone Accès direct au hardware et aux ports d'Entrées/Sorties Protection des espaces mémoire Espaces d'E/S déportées et RAM Mapping de plages mémoires physiques Spécificités des interfaces PCI et USB Exercice: Ecriture d'un driver d'entrées sorties parallèles Accès Direct Mémoire (DMA) allocation de buffer slave et Master transferts direct dans les zones mémoires applicatives Interruptions et exceptions Architecture des interruptions sur Linux Routines d'interruptions top half interupts: ISR bottom half interrups: soft_irq et Tasklets Exercice: Gestion d'interruptions dans le driver parallèle 02/19/17 X5 - Embarquer Linux et écrire des drivers 02/19/17 Renseignements pratiques Duration : 5 jours Cours intra-entreprise : Nous consulter pour dates et tarif SARL au capital de 138600 € - SIRET 449 597 103 00026 - RCS Nanterre - NAF 722C - Centre de Formation : 19, rue Pierre Curie - 92400 Courbevoie Siège social et administration : 21, rue Pierre Curie - 92400 Courbevoie - Tél. 01 41 16 80 10 - Fax. 01 41 16 07 78 Last site update: Sun Feb 19 19:11:07 2017 http://www.ac6-formation.com/