Embedded Linux Primer: A Practical Real-World Approach (2nd Edition)
Christopher Hallinan
Language: English
Pages: 656
ISBN: 0137017839
Format: PDF / Kindle (mobi) / ePub
Up-to-the-Minute, Complete Guidance for Developing Embedded Solutions with Linux
Linux has emerged as today’s #1 operating system for embedded products. Christopher Hallinan’s Embedded Linux Primer has proven itself as the definitive real-world guide to building efficient, high-value, embedded systems with Linux. Now, Hallinan has thoroughly updated this highly praised book for the newest Linux kernels, capabilities, tools, and hardware support, including advanced multicore processors.
Drawing on more than a decade of embedded Linux experience, Hallinan helps you rapidly climb the learning curve, whether you’re moving from legacy environments or you’re new to embedded programming. Hallinan addresses today’s most important development challenges and demonstrates how to solve the problems you’re most likely to encounter.
You’ll learn how to build a modern, efficient embedded Linux development environment, and then utilize it as productively as possible. Hallinan offers up-to-date guidance on everything from kernel configuration and initialization to bootloaders, device drivers to file systems, and BusyBox utilities to real-time configuration and system analysis. This edition adds entirely new chapters on UDEV, USB, and open source build systems.
- Tour the typical embedded system and development environment and understand its concepts and components.
- Understand the Linux kernel and userspace initialization processes.
- Preview bootloaders, with specific emphasis on U-Boot.
- Configure the Memory Technology Devices (MTD) subsystem to interface with flash (and other) memory devices.
- Make the most of BusyBox and latest open source development tools.
- Learn from expanded and updated coverage of kernel debugging.
- Build and analyze real-time systems with Linux.
- Learn to configure device files and driver loading with UDEV.
- Walk through detailed coverage of the USB subsystem.
- Introduces the latest open source embedded Linux build systems.
- Reference appendices include U-Boot and BusyBox commands.
takes control, the bootloader ceases to exist. The kernel claims any memory and system resources that the bootloader previously used. The only way to pass control back to the bootloader is to reboot the board. One final observation is worth noting. All the serial output in Listing 2-2 up to and including this line is produced by the U-Boot bootloader: Loading Device Tree to 007f9000, end 007fffff ... OK The rest of the boot messages are produced by the Linux kernel. We’ll have much more to say
www.wowebook.com 24 Chapter 2 The Big Picture file system image,10 which holds the root file system. Typically, the Linux kernel and ramdisk file system images are compressed, and the bootloader handles the decompression task during the boot cycle. For dynamic data that needs to be saved between reboots and power cycles, another small area of Flash can be dedicated, or another type of nonvolatile storage11 can be used. This is a typical configuration for embedded systems that have requirements to
Systems, Inc. That company has morphed into the present-day MIPS Technologies, whose primary role is the design and subsequent licensing of MIPS architecture and cores. The MIPS core has been licensed by many companies, several of which have become powerhouses in the embedded processor market. MIPS is a Reduced Instruction Set Computing (RISC) architecture with both 32-bit and 64-bit implementations shipping in many popular products. MIPS processors are found in a large variety of products, from
of modifying the build system to facilitate modifications. We leave it to other great books to describe the theory and operation of the Linux kernel. Here we discussed how it is built and identified the components that make up the image. Breaking the kernel into understandable pieces is the key to learning how to navigate this large software project. • The Linux kernel is almost 20 years old and has become a mainstream, wellsupported operating system for many architectures. • The Linux open source
is setup_processor(), found in .../arch/arm/kernel/ setup.c. This function verifies the CPU ID and revision, calls CPU-specific initialization functions, and displays several lines of information on the console during boot. An example of this output can be found in Listing 5-3, lines 4 through 6, reproduced here for your convenience: 4 5 6 CPU: XScale-IXP42x Family [690541c1] revision 1 (ARMv5TE), cr=000039ff CPU: VIVT data cache, VIVT instruction cache Machine: ADI Engineering Coyote Here you