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/