This is an exciting time. The proliferation of Internet technology has transformed our concept of information. 24 hours per day, people rely on network devices for business and personal use. Over time, this dependence will grow further. Today's network devices, such as servers, routers, and desktop computers, form the Internet's infrastructure. Tomorrow's devices will control your home's temperature, maintain inventory levels at your business, and monitor automobile traffic patterns. Only a handful of the billions of processors produced each year go into desktop or server computers. The remaining processors monitor and control other facets of the world.
Individuals and businesses want smart, network-connected, devices to improve their lives, their efficiency, and their bottom dollar. These devices must be simple to operate, reliable, and inexpensive. This is where Linux comes in. Advances in technology accompanied by competitive pricing allow Linux to move from the desktop and server environment to embedded devices. Linux offers reliability, features, open-source code, and a proven track record; these features make it perfectly suited for embedded system designs. In this book, you will find information to create an embedded Linux foundation. You can then extend this foundation in your own designs.Benefits of This Book
When I first started researching material for this book, I assumed that online embedded Linux information was like other Linux information--plentiful and well documented. I quickly discovered that my assumption was wrong. I found embedded Linux documentation to be sparse, scattered, incomplete, and sometimes dated. This was discouraging and invigorating at the same time. Although I worried about being able to find adequate information, I was further convinced of the need for this book. People are designing embedded products with Linux, so the information and knowledge are out there; it just hasn't all been in one place until now.
As an instructor, I have determined that students best understand and retain theoretical concepts and ideas when accompanied by examples. When students see a concept in action--whether it is a robotic arm movement, a voltmeter reading, or an oscilloscope waveform--they're most likely to later apply that concept to solve their own problems. That's why this book is full of step-by-step examples. You will learn through the example and be able to apply that knowledge to your own designs.What This Book Covers
This book includes a complete series of real-world interfacing examples designed to introduce embedded Linux from hardware and software perspectives. After you create an embedded Linux development environment, you will step through hardware and software interfacing examples, using asynchronous serial communication, the PC parallel port, USB, memory I/O, synchronous serial communication, and interrupts. All interfacing examples are then tied together using system integration. All this material is presented by using a winter resort automation project called Project Trailblazer.
Chapter 1, "Introducing Embedded Linux," describes the brief history of Linux as an embedded operating system and the implications of using open-source software in product design.
Chapter 2, "System Architecture," introduces a winter resort automation project called Project Trailblazer and develops a series of project requirements. Project Trailblazer and its requirements form the basis for the book's interfacing examples.
Chapter 3, "Selecting a Platform and Installing Tool Sets," describes the process of platform selection. Four target boards--which use x86, StrongARM, and PowerPC processors--are selected for Project Trailblazer. This chapter then describes the creation of an embedded Linux development workstation called tbdev1. All the development tools are either installed or compiled, including the cross-compiled tool chain for the StrongARM and PowerPC processors.
Chapter 4, "Booting Linux," describes the Linux boot process, from power-on to the bash prompt. Using a minimum root filesystem, each target board is booted using Linux version 2.4.
Chapter 5, "Debugging," configures gdb and gdbserver for target board debugging over the Ethernet network. A cross-compiled version of helloworld is remotely executed and debugged.
Chapter 6, "Asynchronous Serial Communication Interfacing," describes the Linux serial port device driver for control of port signals and buffers. An RFID tag reader, an LCD display, and control circuitry are interfaced to the Linux serial port.
Chapter 7, "Parallel Port Interfacing," describes interfacing AC circuits to an x86 target board's parallel printer port. A custom device driver called helloworld_proc_module that uses a /proc directory entry is introduced.
Chapter 8, "USB Interfacing," describes connecting a camera and speakers for visual input and audio output to a target board's USB port.
Chapter 9, "Memory I/O Interfacing," describes interfacing AC circuits to the StrongARM and PowerPC target boards' CPU buses.
Chapter 10, "Synchronous Serial Communication Interfacing," describes SPI and I2C connections and communications. A low-cost SPI temperature sensor and I2C LED display driver are interfaced to the target boards.
Chapter 11, "Using Interrupts for Timing," describes Linux timing sources and the measurement of each target board's average interrupt latency. An event timer with 1ms accuracy is developed to measure race times.
Chapter 12, "System Integration," describes the creation of the Project Trailblazer database. Target and server bash scripts are developed, using this database for collection and distribution of temperature, image, and authentication data.
Chapter 13, "Final Thoughts," summarizes the interfacing projects and discusses embedded Linux topics that are not addressed elsewhere in the book.
Who This Book Is For
If you are a hardware engineer, software developer, system integrator, or product manager who's begun exploring embedded Linux for interfacing applications, then this book is for you. The book's comprehensive interfacing examples are simple, requiring only a basic understanding of digital logic design, C and bash programming, and Linux system administration.
Conventions Used in This Book
This book uses several common conventions to help teach embedded Linux.
The typographical conventions used in this book include the following:
In addition to typographical conventions, this book includes tips, which look like this:TIP
Embedded Linux covers the development and implementation of interfacing applications on an embedded Linux platform. It includes a comprehensive discussion of platform selection, crosscompilation, kernel compilation, root filesystem creation, booting, remote debugging, real-world interfacing, application control, data collection, archiving, and presentation.
This book includes serial, parallel, memory I/O, USB, and interrupt-driven hardware designs using x86-, StrongARM®-, and PowerPC®-based target boards. In addition, you will find simple device driver module code that connects external devices to the kernel, and network integration code that connects embedded Linux field devices to a centralized control center. Examples teach hardware developers how to store and activate field bits and deliver process information using open source software. If you are a hardware developer, software developer, system integrator, or product manager who's begun exploring embedded Linux for interfacing applications, this book is for you.
Hey embedded Linux developers,
This book is great. The simple examples clearly illustrate how to get a development system up and running, then how to develop simple device... Read more
This is not embedded systems. There is far too little useful
information related to embedded linux and more on higher level
issues. Read more
The overall impression is good. Focusing an embedded project following a potential practical case is a good idea. Read morePublished on April 3 2002 by Carles Perello
I picked this book up -- in a word, excellent. Much of the work in this book is very similar to the current embedded project that my company is working on. Read morePublished on March 27 2002 by XPav