Vous êtes ici :

Formation Uboot et BSP LINUX embarqué

A distance ou en présentiel

Tous les niveaux

Chaque jour LINUX est embarqué dans de nouvelles plateformes, téléphones portables, télévisions, systèmes de surveillance ou systèmes d’acquisition, spatial, automobile et aéronautique, IoT, c’est aujourd’hui le système d’exploitation le plus utilisé sous sa forme LINUX originale ou avec les additions fournies par ANDROID.

Le bootloader Uboot, utilisé sur les cartes ARM et PowerPC et est devenu le boot-loader de référence pour les systèmes embarqués. Il permet de préparer le matériel, de charger le device tree (DTB) contenant la configuration matérielle et le noyau LINUX depuis la plupart des solutions de stockage ou au travers du réseau

À qui s'adresse cette formation ?

Ce cours cible principalement les profils de développeurs, ingénieurs, chefs projet de projet qui souhaitent acquérir une formation complète et opérationnelle sur la mise en œuvre de LINUX dans un système embarqué.

Cette formation s’adresse aussi aux managers qui souhaitent acquérir une première expérience pratique du portage de Uboot et de LINUX, de l’écriture de drivers et de DTS afin d’être plus pertinent sur les facilités et difficultés de celui-ci pour un management au quotidien plus pertinent de leurs équipes.

Pour suivre ce cours il est nécessaire de connaître à la fois le langage C utilisé lors de tous les exercices de programmation et une connaissance sommaire du SHELL de LINUX qui sera utilisé pour les exercices à la fois sur l’ordinateur de travail et sur le système embarqué construit pendant la session.

Les objectifs de la formation

Objectif opérationnel :

Comprendre et mettre en œuvre les étapes d’un portage de Uboot et de Linux sur une nouvelle carte.

Objectifs pédagogiques :

A l’issue de cette formation, vous aurez acquis les connaissances nécessaires pour :

  • Porter Uboot sur une nouvelle carte
  • Comprendre et modifier un fichier DTS (Device Tree Source)
  • Connaître les adaptations nécessaires au BSP LINUX pour un portage
  • De créer un micro système de fichier LINUX et d’y ajouter de nouveaux modules noyau

Contenu de la formation

  • Présentation de LINUX embarqué

    • Nous effectuons un rappel sur les licences utilisées dans LINUX et abordons le boot de LINUX sur une carte générique.
  • Chaîne de compilation croisée

    • Après avoir détaillé les sources d’obtention des chaînes de compilation croisées nous détaillons les différents outils contenu dans celles-ci. (objcopy, objdump, readelf, gdb)
  • Chaînes de génération de systèmes embarqués

    • Buildroot et Yocto sont les deux principaux outils de génération d’un système embarqué, nous en verrons les différences principales. Ces deux systèmes de fabrication utilisent tous deux busybox.
  • QEMU

    • Fonctionnant comme émulateur QEMU est très utile pour la mise au point aussi bien au très bas niveau qu’au niveau applicatif.
  • Présentation de UBoot

    • Uboot est un mini système d’exploitation mono utilisateur et mono tâche. Nous en ferrons une courte présentation historique.
  • Comment porter Uboot sur une nouvelle carte

    • Ici nous étudierons les points d’entrée qui permettent d’adapter Uboot au matériel utilisé.
  • Utiliser Uboot pour debugger une carte

    • Du fait que Uboot peut fonctionner directement depuis la ROM il peut être particulièrement intéressant de lui ajouter des fonctionnalités spécifiques à un matériel donné.
  • Chargement de Linux par UBoot

    • Nous voyons comment Uboot peut charger un noyau LINUX ou un autre système d’exploitation et placer le DTB et un système de fichier en mémoire.
  • La phase de boot

    • Dans cette partie nous analysons comment le noyau LINUX, une fois placé en mémoire par Uboot va initialiser ses différents sous-systèmes et lancer le process utilisateur « init »
  • Les modules et les drivers

    • Nous abordons le « device driver framework », les modules et le sysfs.
  • La gestion des threads

    • Nous étudions comment le noyau LINUX crée et de ordonne les threads. (POSIX, SCHED-DEADLINE)
      Nous voyons comment les threads sont mis en attente de ressources puis réveillés. (schedule, wakeup)
      Puis nous abordons les attentes de plus haut niveau. (Mutex, completions, RCU)
  • La gestion des Process

    • Nous étudions comment la gestion mémoire du noyau (buddy allocator, slabs)
      Puis nous abordons la gestion mémoire utilisateur (malloc vs mmap, OOM killer, procfs)
  • Démarrage de l'espace utilisateur

    • Le noyau lance le process « init », celui-ci initialise l’environnement de travail et lance les daemons.
  • Organisation de l'espace utilisateur

    • Nous voyons ici, comment sont organisés la gestion des utilisateurs, l’interfaces réseau.
  • Utilisation des "device tree blobs"

    • Comment Uboot et Linux coopèrent pour l’utilisation de DTB
  • Modifier un DTB

    • La syntaxe d’un DTS (Device Tree Source), modification, compilation et utilisation par un driver.

Formation

A distance ou en présentiel

Référence :

BSPU

Durée :

5 jours

Ce cours est réalisable en intra-entreprise, en extra-entreprise , dans nos salles ou à distance.

Contacter notre service Intra