Accueil - Connexion

Linux Embarqué

3EAH5 Linux Embarqué Electronique et Physique appliquee S9
Cours : 15 h TD : 0 h TP : 33 h Projet : 0 h Total : 48 h
Responsable : Hugo Descoubes
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
- 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

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