Prenez contact avec nous

Plan du cours

1. Introduction au noyau Linux

  • Vue d'ensemble de Linux embarqué
  • Architecture du noyau Linux
  • Espace utilisateur vs espace noyau
  • Rôles du noyau
  • Flux de travail de développement du noyau
  • Vue d'ensemble des plateformes embarquées prises en charge

2. Mise en place de l'environnement de développement

  • Préparation de la station de travail
  • Notions de compilation croisée
  • Installation des outils de développement nécessaires
  • Configuration de la carte de développement BeagleBone Black
  • Configuration de la console série
  • Démarrage de l'appareil cible

3. Obtention et compréhension du code source du noyau

  • Arborescence du code source du noyau Linux
  • Noyaux stables vs noyaux pris en charge à long terme
  • Téléchargement des sources du noyau
  • Exploration de la structure du code source
  • Documentation du noyau
  • Gestion des versions du noyau

4. Configuration, compilation et démarrage du noyau

  • Configuration du noyau à l'aide de menuconfig
  • Sélection des fonctionnalités du noyau
  • Compilation croisée du noyau
  • Construction des images de noyau
  • Installation des modules du noyau
  • Vue d'ensemble du chargeur de démarrage (bootloader)
  • Démarrage d'un noyau personnalisé

5. Fondamentaux de l'arborescence de périphériques (Device Tree)

  • Objet de l'arborescence de périphériques
  • Fichiers de source Device Tree (DTS)
  • Objet binaire Device Tree (DTB)
  • Concepts de description matérielle
  • Modification des fichiers Device Tree
  • Construction et déploiement des arborescences de périphériques

6. Modules du noyau Linux

  • Architecture des modules du noyau
  • Construction de modules de noyau chargables
  • Chargement et déchargement des modules
  • Paramètres des modules
  • Dépendances des modules
  • Interaction avec les modules du noyau
  • Techniques de débogage des modules

7. Débogage du noyau Linux

  • Journalisation du noyau avec printk()
  • Utilisation de dmesg
  • Débogage dynamique
  • Analyse des pannes du noyau (kernel panic)
  • Messages Oops
  • Débogage avec GDB
  • Outils de traçage des performances de base

8. Pilotes de périphériques en caractères

  • Modèle de pilote de périphériques Linux
  • Périphériques en caractères
  • Enregistrement des pilotes
  • Opérations sur les fichiers
  • Opérations de lecture et d'écriture
  • Interface IOCTL
  • Gestion de la mémoire
  • Nettoyage du pilote

9. Intégration des pilotes et accès au matériel

  • Périphériques et pilotes de plateforme
  • Programmation GPIO
  • Gestion des interruptions
  • Minuteries et travaux différés
  • Accès aux registres matériels
  • Travail avec l'E/S mappée en mémoire

10. Contrôle de version avec Git

  • Fondamentaux de Git
  • Gestion du code source du noyau
  • Branchement et fusion
  • Création de correctifs (patches)
  • Revue des modifications
  • Collaboration dans le développement du noyau

11. Travaux pratiques de développement du noyau

  • Configuration d'un noyau personnalisé
  • Construction et déploiement du noyau
  • Création d'un module de noyau simple
  • Développement d'un pilote de périphérique en caractères de base
  • Modification des fichiers Device Tree
  • Débogage des problèmes de noyau sur BeagleBone Black

12. Bonnes pratiques et synthèse

  • Style de codage du noyau
  • Rédaction de pilotes maintenables
  • Pièges courants en développement
  • Ressources de documentation du noyau
  • Flux de contribution open source
  • Rappel des concepts clés
  • Questions et réponses
  • Étapes suivantes pour le développement du noyau Linux

Pré requis

Notions de base de l'utilisation d'un système GNU/Linux

 14 Heures

Nombre de participants


Prix par participant

Nos clients témoignent (2)

Cours à venir

Catégories Similaires