Course Content
Embedded Linux
- Introduction to embedded Linux
- C libraries. Building a cross-compiling toolchain
- Bootloaders. Focus on U-boot.
- Configuring, (cross)compiling and booting a Linux kernel
- Creating a simple, BusyBox based root filesystem from scratch
- Block filesystems
- Flash filesystems - Manipulating flash partitions
- Cross-compiling libraries and applications
- Embedded system building tools
- Lightweight tools for embedded systems. Graphical toolkits
- Developing and debugging applications for the embedded system
- Implementing realtime requirements
- Hotplugging
- System optimizations
Embedded Linux kernel and driver development
- Introduction to the Linux kernel
- Kernel source code
- Configuring, compiling and booting the kernel
- Linux kernel modules
- Memory management and accessing hardware
- Character device drivers
- Processes, scheduling, waiting for resources and interrupt management
- Locking
- Kernel debugging techniques
- mmap
- Using DMA
- Kernel architecture for device drivers. Illustration by many examples in the kernel code.
- Kernel booting details
- Porting the Linux kernel to a new hardware platform
- Power management
- Working with the community
- Managing sources with git