58 | Linux Embarqué | Génie physique et systèmes embarqués (formation initiale sous statut étudiant) | S9 | ||||||
---|---|---|---|---|---|---|---|---|---|
Cours : 6 h | TD : 0 h | TP : 30 h | Projet : 0 h | Total : 36 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 | |
COMPETENCES SPECIFIQUES - 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 COMPETENCES GENERIQUES Bloc de compétences : Considération de la dimension organisationnelle, personnelle et culturelle -> Niveau 2 : Se connaître, savoir se situer, s'autoévaluer, gérer ses compétences et opérer ses choix professionnels Bloc de compétences : Adaptation aux exigences propres de l'entreprise et de la société -> Niveau 2 : Aptitude à prendre en compte les enjeux et les besoins de la société Bloc de compétences : Acquisition de connaissances et méthodes scientifiques et techniques et maîtrise de leur mise en oeuvre -> Niveau 3 : Capacité à mobiliser des connaissances scientifiques et des techniques expérimentales ou de simulation -> Niveau 2 : Capacité à concevoir des systèmes innovants, à les concrétiser et à les tester -> Niveau 3 : Capacité à trouver, évaluer une information pertinente puis à l'exploiter, capacité s'auto-évaluer, enrichir ses connaissances et compétences Bloc de compétences : Acquisition, développement et mise en œuvre de connaissances et méthodes théoriques et expérimentales spécifiques à un domaine professionnel -> Niveau 3 : Capacité à concevoir des systèmes électroniques communicants et autonomes implémentant une algorithmique et une architecture avancée |
|
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 )