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 )