3EAH5 | Embedded Linux | Electronics and Applied Physics | S9 | ||||||
---|---|---|---|---|---|---|---|---|---|
Lessons : 15 h | TD : 0 h | TP : 33 h | Project : 0 h | Total : 48 h | |||||
Co-ordinator : Hugo Descoubes |
Prerequisite | |
---|---|
- Good skills in embedded software design and development (Real Time Systems, processors architectures, etc) - Good skills in Operating Systems (GNULinux, UNIX user space, etc) - Good skills in software development tools (UNIX shell, Makefile, GCC toolchain, etc) - Good skills in C langage |
|
Course Objectives | |
- Understand the architecture, the structure and the tasks of a UNIX-like GNULinux system - Understand the boot sequence of a GNULinux system, from first stage boot to first application - Understand the contraints offers by the development of a embedded Linux BSP (Board Support Package) - Understand and automate the Linux boot sequence with U-Boot - Modify, compile and integrate a specialized Linux kernel - Modify, compile and integrate a specialized device tree - Develop and integrate a kernel patch - Build a specialized GNULinux distribution - Analyse a Linux driver - Develop and document a Linux driver |
|
Syllabus | |
https://foad.ensicaen.fr/course/view.php?id=232 During main Courses (chapter GNUlinux distro) : - Introduction of kernels models and architectures - Historicals reminders, from UNIX to GNULinux, a dominated market - Embedded Linux, development under constraints - Reminders concerning UNIX files system - Building workflow to create a GNULinux system - Boot sequence with U-Boot (boot stages, atomation, fast boot Linux, etc) - Linux kernel (architecture, monolithic services, modification, compiling, etc) - Device tree (documentation, modification, compiling, etc) - Distro GNULinux (Buildroot, Yocto, etc) - Real time Linux introduction (Xenomai, PREEMPT-RT, mesure, benchmarking, etc) During main Courses (chapter Linux driver by NXP Embedded Linux engineer) : - Open sources and licences - Driver Linux and modules - Char device driver - Concurrence and race conditions - Advanced operations on char device driver and sleep - Time management and deffered work - Allocation memory manage |
|
Practical work (TD or TP) | |
- Minimal BSP (Board Support Package) building for BeagleBoneBlack board - Customisation of boot (U-Boot), kernel, device tree and GNULinux distribution - Analysis and development of Linux driver - Development of a testing project integrant full customized BSP, developped driver and user space testing application Hardware and software tools : - BeagleBoneBlack and microSD card - real ou virtual GNULinux host system, UNIX shell and ARM GCC cross-compiler |
|
Acquired skills | |
- Understand the architecture, the structure and the tasks of a UNIX-like GNULinux system - Understand the boot sequence of a GNULinux system, from first stage boot to first application - Understand the contraints offers by the development of a embedded Linux BSP (Board Support Package) - Understand and automate the Linux boot sequence with U-Boot - Modify, compile and integrate a specialized Linux kernel - Modify, compile and integrate a specialized device tree - Develop and integrate a kernel patch - Build a specialized GNULinux distribution - Analyse a Linux driver - Develop and document a Linux driver |
|
Bibliography | |
SOURCES : https://www.kernel.org/ EMBEDDED LINUX : https://bootlin.com/, Linux Embarqué - Ficheux et Bénard DRIVER : Linux Device Driver - Corbet, Rubini et Kroah-Hartman OTHER ENGINEER SCHOOLS : http://kadionik.vvv.enseirb-matmeca.fr/ C LANGAGE : The C Programming Language – Kernighan et Ritchie PROCESSOR ARCHITECTURE : Architecture de l'ordinateur - Tanenbaun OPERATING SYSTEMS : Modern Operating Systems - Tanenbaun TOOLS : https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.pdf |
© 2024 - ENSICAEN ( Legal Notices - Credits )