Accueil - Connexion

Linux embarque

145-2 Linux embarque Génie physique et systèmes embarqués (formation initiale sous statut apprenti) S9
Cours : 6 h TD : 0 h TP : 30 h Projet : 0 h Total : 36 h
Responsable : Dimitri Boudier
Pré-requis
- Bonnes assises en conception et développement de logiciel embarqué (Système temps réel, architectures processeurs, etc)
- Bonnes assises en système d'exploitation (GNULinux, UNIX user space, etc)
- Bonnes assises en outils de développement logiciel (shell UNIX, Makefile, GCC, etc)
- Bonnes assises en langage C
Objectifs de l'enseignement
- Comprendre l'architecture, la structuration et les tâches d'un système UNIX-like GNUlinux
- Comprendre le démarrage d'un système GNULinux, du premier étage de boot au premier applicatif
- Comprendre les contraintes amenées par le développement d'un BSP (Board Support Package) Linux pour l'embarqué
- Comprendre et automatiser un boot Linux par U-Boot
- Modifier, compiler et intégrer un kernel Linux dédié
- Modifier, compiler et intégrer un device tree dédié
- Développer et intégrer un patch kernel
- Construire une distribution GNULinux dédiée
- Analyser un driver Linux
- Développer et documenter un driver Linux
Programme détaillé
https://foad.ensicaen.fr/course/view.php?id=232

En cours (partie distro GNUlinux) :
- Introduction aux architectures et modèles de noyaux
- Rappels historiques, d'UNIX à GNULinux, un marché dominé
- Linux pour l'embarqué, développement sous contraintes
- Rappels concernant un système de fichiers UNIX
- Processus de construction d'un système GNULinux
- Séquence de boot avec U-Boot (étages de boot, automatisation, réduction de temps de boot, etc)
- Kernel Linux (architecture, services monolithiques, modification, compilation, etc)
- Device tree (documentation, modification, compilation, etc)
- Distro GNULinux (Buildroot, Yocto, etc)
- Introduction à Linux temps réel (Xenomai, PREEMPT-RT, mesure, benchmarking, etc)

En cours (partie driver Linux) :
- Open sources et licences
- Driver Linux et module
- Char device driver
- Concurrence et conditions de course
- Opérations avancées sur driver char device et veille
- Gestion du temps et travail différé
- Gestion des allocations mémoire
Applications (TD ou TP)
- Construction d'un BSP Linux minimal pour carte BeagleBoneBlack
- Customisation du boot (U-Boot), du kernel, du device tree et de la distribution
- Analyse et développement de driver Linux
- Développement d'un projet de test intégrant le BSP customisé conçu, le driver développé et un applicatif de test

Outils matériel et logiciel :
- BeagleBoneBlack et carte microSD
- Système hôte GNULinux réel ou virtuel, shell UNIX et cross-compiler ARM GCC
Compétences acquises
COMPÉTENCES GÉNÉRIQUES
Considération de la dimension organisationnelle, personnelle et culturelle
* Capacité à enteprendre et à innover

Adaptation aux exigences propres de l'entreprise et de la société
* Aptitude à prendre en compte les enjeux et les besoins de la société
* Aptitude à prendre en compte les enjeux de l'entreprise: dimension économique, respect de la qualité, compétitivité et productivité, intelligence économique

Acquisition des connaissances scientifiques et techniques et la maitrise de leur mise en œuvre
* Aptitude à mobiliser les ressources d'un champ scientifique et technique spécifique
* La maîtrise des méthodes et des outils d'ingénieurs: identification, modélisation, résolution de problèmes, utilisation des approches numériques et outils informatiques, pratique du travail collaboratif et à distance
* Capacité à concevoir, concrétiser, tester et valider des solutions, des méthodes, des produits, des systèmes innovants
* Capacité à effectuer des activités de recherche, fondamentale ou appliquée, à mettre en place des dispositifs expérientaux
* Capacité à trouver l'information pertinente, à l'évaluer et à l'exploiter

COMPÉTENCES SPÉCIFIQUES
- Comprendre l'architecture, la structuration et les tâches d'un système UNIX-like GNUlinux
- Comprendre le démarrage d'un système GNULinux, du premier étage de boot au premier applicatif
- Comprendre les contraintes amenées par le développement d'un BSP (Board Support Package) Linux pour l'embarqué
- Comprendre et automatiser un boot Linux par U-Boot
- Modifier, compiler et intégrer un kernel Linux dédié
- Modifier, compiler et intégrer un device tree dédié
- Développer et intégrer un patch kernel
- Construire une distribution GNULinux dédiée
- Analyser un driver Linux
- Développer et documenter un driver Linux
Bibliographie
SOURCES : https://www.kernel.org/
LINUX EMBARQUE : https://bootlin.com/, Linux Embarqué - Ficheux et Bénard
DRIVER : Linux Device Driver - Corbet, Rubini et Kroah-Hartman
AUTRES ECOLES D'INGENIEUR : http://kadionik.vvv.enseirb-matmeca.fr/
LANGAGE C : The C Programming Language – Kernighan et Ritchie
ARCHITECTURE PROCESSEUR : Architecture de l'ordinateur - Tanenbaun
SYSTEMES D'EXPLOITATION : Modern Operating Systems - Tanenbaun
OUTILS : https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.pdf

© 2024 - ENSICAEN ( Mentions Légales - Crédits )