Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Mastering Embedded Linux Programming

You're reading from   Mastering Embedded Linux Programming Unleash the full potential of Embedded Linux with Linux 4.9 and Yocto Project 2.2 (Morty) Updates

Arrow left icon
Product type Paperback
Published in Jun 2017
Publisher Packt
ISBN-13 9781787283282
Length 478 pages
Edition 2nd Edition
Tools
Arrow right icon
Author (1):
Arrow left icon
Mr. Chris Simmonds Mr. Chris Simmonds
Author Profile Icon Mr. Chris Simmonds
Mr. Chris Simmonds
Arrow right icon
View More author details
Toc

Table of Contents (17) Chapters Close

Preface 1. Starting Out FREE CHAPTER 2. Learning About Toolchains 3. All About Bootloaders 4. Configuring and Building the Kernel 5. Building a Root Filesystem 6. Selecting a Build System 7. Creating a Storage Strategy 8. Updating Software in the Field 9. Interfacing with Device Drivers 10. Starting Up – The init Program 11. Managing Power 12. Learning About Processes and Threads 13. Managing Memory 14. Debugging with GDB 15. Profiling and Tracing 16. Real-Time Programming

Project life cycle

This book is divided into four sections that reflect the phases of a project. The phases are not necessarily sequential. Usually they overlap and you will need to jump back to revisit things that were done previously. However, they are representative of a developer's preoccupations as the project progresses:

  • Elements of embedded Linux (Chapters 1 to 6) will help you set up the development environment and create a working platform for the later phases. It is often referred to as the board bring-up phase.
  • System architecture and design choices (Chapters 7 to 11) will help you to look at some of the design decisions you will have to make concerning the storage of programs and data, how to divide work between kernel device drivers and applications, and how to initialize the system.
  • Writing embedded applications (Chapters 12 and 13) shows how to make effective use of the Linux process and threads model, and how to manage memory in a resource-constrained device.
  • Debugging and optimizing performance (Chapters 14 and 15) describes how to trace, profile, and debug your code in both the applications and the kernel.

The fifth section on real-time (Chapter 16, Real-Time Programming) stands somewhat alone because it is a small, but important, category of embedded systems. Designing for real-time behavior has an impact on each of the four main phases.

The four elements of embedded Linux

Every project begins by obtaining, customizing, and deploying these four elements: the toolchain, the bootloader, the kernel, and the root filesystem. This is the topic of the first section of this book.

  • Toolchain: The compiler and other tools needed to create code for your target device. Everything else depends on the toolchain.
  • Bootloader: The program that initializes the board and loads the Linux kernel.
  • Kernel: This is the heart of the system, managing system resources and interfacing with hardware.
  • Root filesystem: Contains the libraries and programs that are run once the kernel has completed its initialization.

Of course, there is also a fifth element, not mentioned here. That is the collection of programs specific to your embedded application which make the device do whatever it is supposed to do, be it weigh groceries, display movies, control a robot, or fly a drone.

Typically, you will be offered some or all of these elements as a package when you buy your SoC or board. But, for the reasons mentioned in the preceding paragraph, they may not be the best choices for you. I will give you the background to make the right selections in the first six chapters and I will introduce you to two tools that automate the whole process for you: Buildroot and the Yocto Project.

You have been reading a chapter from
Mastering Embedded Linux Programming - Second Edition
Published in: Jun 2017
Publisher: Packt
ISBN-13: 9781787283282
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image