Home - Log in

Embedded Linux

58 Embedded Linux Physical engineering and embedded systems S9
Lessons : 6 h TD : 0 h TP : 30 h Project : 0 h Total : 36 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 )