This intensive four-day course will teach you the techniques required to build Linux into embedded systems. During the hands-on sessions you will learn about the fundamental elements that underpin all embedded Linux projects: the toolchain, the bootloader, the Linux kernel and the root filesystem. You will create each of these elements from scratch, and discover out how to automate the process using tools such as Buildroot and the Yocto Project. In later sessions you will delve into architectural issues such as file system layout, how to split functions between user and kernel space and real-time programming. You will also find out how to debug and profile code at both the application level and within the kernel so that you will be able to identify bugs and resolve performance bottlenecks.
The theory is backed up with hands-on labs where you will get a chance to try out all the concepts covered in the presentations. he course is available on-site or online. On-site training takes place in your offices and will include an ARM-based development board for the labs. For the online version, we use a virtual classroom based on cloud instances and a browser UI, using the QEMU emulator as the target
Download course details as a PDF
Click here for information about booking a course
4 days
None scheduled: contact us to request a quote
This course is ideal for software engineers who are familiar with embedded devices but need to apply that knowledge to Linux development, and to those who are familiar with Linux, but want to apply that knowledge to embedded systems
Essential: good knowledge of the C programming language, since this is used in the programming portions of the course
Desirable: either a good background in embedded devices, or a reasonable proficiency in Linux command-line tools. Delegates with neither will find the learning curve rather steep
All students will receive:
Introduction to Embedded Linux
Introduction to Buildroot
The bootloader and kernel
Root filesystem
Init, device management and logging
Embedded Linux build systems
Understanding Toolchains
Device trees
Accessing Hardware
Debugging using GDB
Linux device drivers
Profiling and tracing
File systems and flash memory
Scheduling and Real time