During the five days of this training, the participants will learn the fundamentals of embedded Linux programming, starting from the very basics of the technology and terminology, through setting up a development environment and operating system, to the programming itself. This training focuses on ARM, MIPS and PowerPC architectures, and covers the practical topics related to embedded programming, such as most interesting applications, anatomy of a SoC device, crucial peripheral devices and solving common problems. During workshop and exercises, the participants use BeagleBone Black Industrial 4G minimodules (in case of on-demand training, the customer can choose any other minimodule to use).
- An introduction to embedded Linux solutions
- Preparing cross-compilation environment for MIPS, ARM and PowerPC architecture.
- Manual compilation of the standard library, binutils and gcc
- Automatic compilation
- Bootloader: u-boot
- Kernel configuration
- Device drivers
- Little-endian and big-endian
- Floating-point units and their emulation
- Non-volatile memory (NAND and NOR), MTD devices in Linux
- UBI, UBIfs, squashfs, ext2 and execute-in-place filesystems
- Input/output buses (GPIO, SSC, SPI, I2C, One-Wire, MCI, etc.)
- Memory cards (SD)
- USB host and USB gadget (client)
- Userspace programs
- System architecture, manual component compilation
- UClibc and libc
- Basic programs
- Buildroot, embedded Linux distributions
- Installer packages: ipkg, ports
- Example devices
- Linux on a MIPS router
- Keyboard and LEDs connected via GPIO
- Sound card (ALSA driver)
- Live mp3 compression, applying sound effects
- Open-source speech synthesizer
- Java virtual machine (MIDP + CDC, CLDC)
Audience and prerequisites
Training participants should be familiar with both C programming fundamentals and working in Linux console (as a casual user, not necessarily as an administrator).
Course participants receive completion certificates signed by ALX.