Always Learning

Advanced Search

Embedded Linux

Embedded Linux

Hardware, Software, and Interfacing

Craig Hollabaugh

Mar 2002, Paperback, 432 pages
ISBN13: 9780672322266
ISBN10: 0672322269
This title is no longer available.

This title cannot be purchased online
  • Print pagePrint page
  • Email this pageEmail page
  • Share

Embedded Linux will help the user: select an Embedded Linux platform based on hardware requirements; build and boot a custom Linux kernel for the platform; remote debug programs running on the platform using GNU tools; connect data acquisition and control electronics/peripherals using the platform's serial, parallel, USB, I/O port and I2C interfaces; interface the peripherals to the kernel and applications using modules; collect, control, store and present data via open source protocols and applications; and analyze Embedded Linux vendor product offerings.

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.

  • Select an embedded Linux platform (x86, StrongARM®, and PowerPC® architectures are covered)
  • Create a cross-compiling and debugging development environment
  • Build a custom Linux kernel for each architecture
  • Create a minimum root filesystem
  • Boot the custom Linux kernel on three target boards with x86, SA-1110, and MPC860 microprocessors
  • Remote debug programs running on a target board across an ethernet network using GNU tools
  • Connect data acquisition and control electronics/peripherals using the microprocessor's serial, parallel, memory I/O, and USB interfaces
  • Measure average interrupt latencies for the x86, SA-1110, and MPC860 microprocessors and design an interrupt-driven process timer with 1mS accuracy
  • Interface the peripherals to the kernel and applications using device driver modules
  • Collect, control, store, and present data via open source protocols and applications
  • Analyze embedded Linux vendor product offerings




1. Introducing Embedded Linux.
Why Linux, Why Now?What Is an Embedded System?What Does Real-Time Mean?Implications of Open Source.Summary.Additional Reading.2. System Architecture.
Introducing Project Trailblazer.The Silverjack Resort Layout.Project Trailblazer Requirements.Safety Requirements.Operations Requirements.Supplier Requirements.The Project Trailblazer System Architecture.Summary.3. Selecting a Platform and Installing Tool Sets.
Sources of Information.The Project Trailblazer Strategic Direction.Building tbdev1, the Embedded Linux Development Workstation.Getting Started.Installing the Linux Operating System.Installing the Native GNU Tool Chain and Other Applications.Building the GNU Tool Chain for Cross-Compiling.Summary.Additional Reading.4. Booting Linux.
The Target PBRs.The Linux Boot Process.The Linux root Filesystem.Required Files for init.Required Files for bash.The root Filesystem Binary Files: Compile or Download?Creating the root Filesystem.Deciding Which Package to Use.The Process for Building the root Filesystem.Running buildrootfilesystem.Installing the TFTP Server.Installing minicom.Booting the Embedded Planet RPX-CLLF.Embedded Planet RPX-CLLF Target PBR Review.Booting the Brightstar Engineering MediaEngine.Brightstar Engineering MediaEngine Target PBR Review.Booting the Tri-M MZ104 and the COTS PC with a Flash IDE Drive.Flash IDE Technology.Preparing the Tri-M MZ104 and the COTS PC.Booting the Tri-M MZ104 Target.Tri-M MZ104 Target Platform Boot Requirements Review.Boot Comparison.Summary.Additional Reading.5. Debugging.
Introducing gdb.Local Debugging.Remote Debugging.Network-Mounting the root Filesystem.Configuring the NFS Server.Configuring the Target Kernels.Summary.Additional Reading.


6. Asynchronous Serial Communication Interfacing.
The Project Trailblazer Asynchronous Serial Hardware Development Environment.Target EIA/TIA-232-E Compliance.Linux Serial Communications.Setting the Serial Port Control Signals with setSerialSignal.Reading the Serial Port Control Signals with getSerialSignal.Providing Serial Communication for bash Scripts, Using querySerial.Summary.Additional Reading.7. Parallel Port Interfacing.
Control Using the Parallel Port.Standard Parallel Port Control with Port I/O.Monitoring Lift Operation Using Port I/O.Snow-Making Control Using Port I/O.Standard Parallel Port Control Using ppdev.Developing a Custom Device Driver.Understanding helloworld_proc_module.Compiling, Inserting, and Testing helloworld_proc_module on the MediaEngine.Standard Parallel Port Control Using the Custom Device Driver liftmon_snowcon.Enhancements to helloworld_proc_module to Create liftmon_snowcon.Compiling, Inserting, and Testing liftmon_snowcon on the MZ104.Summary.Additional Reading.8. USB Interfacing.
Learning About USB.Project Trailblazer USB Hardware.USB Audio: Yamaha YST-MS35D USB Speakers.USB Image Capture: Kensington VideoCAM Super-VGA PC Camera.USB Mass Storage: SanDisk USB SmartMedia Card Reader.Summary.Additional Reading.9. Memory I/O Interfacing.
The Hardware Design Process.Developing Lift Monitoring and Snow-Making Control for the MediaEngine.Designing the External Interface Hardware for the MediaEngine.Finding Space in the Memory Map for the MediaEngine.Finding the Register Base Address for the MediaEngine.Configuring the Memory Controller for the MediaEngine.Assigning the Output Module Enable Signal for the MediaEngine.Configuring the I/O Port Controller for the MediaEngine.Writing the helloworldbit Testing Device Driver for the MediaEngine.Writing the liftmon_snowcon Device Driver for the MediaEngine.Developing Lift Monitoring and Snow-Making Control for the RPX-CLLF.Designing the External Interface Hardware for the RPX-CLLF.Finding Space in the Memory Map for the RPX-CLLF.Finding the Register Base Address for the RPX-CLLF.Configuring the Memory Controller for the RPX-CLLF.Assigning the Output Module Enable Signal for the RPX-CLLF.Configuring the I/O Port Controller for the RPX-CLLF.Writing the helloworldbit Testing Device Driver for the RPX-CLLF.Writing the liftmon_snowcon Device Driver for the RPX-CLLF.Summary.Additional Reading.10. Synchronous Serial Communication Interfacing.
Temperature Sensing and Display.SPI Communication and the LM70.Connecting the LM70 to the x86 Parallel Printer Port.Connecting the LM70 to the MediaEngine.I2C Communication with the Philips Semiconductor SAA1064.Connecting the SAA1064 to the x86 Parallel Printer Port.Connecting the SAA1064 to the RPX-CLLF.Summary.Additional Reading.11. Using Interrupts For Timing.
Linux Timing Sources.Measuring Interrupt Latency.Measuring Interrupt Latency on the MZ104.Measuring Interrupt Latency on the MediaEngine.Measuring Interrupt Latency on the RPX-CLLF.Interrupt Latency Test Summary.Implementing the Race Timer.Race Timer Interrupt Processing Using Tasklets.Race Timer Status Display Using System Timers.Summary.Additional Reading.12. System Integration.
Integration Overview.Installing the System Integration Applications.Creating and Testing the Project Trailblazer Database.Developing the Target and CGI Integration Scripts.Collecting and Distributing Temperature Data.Collecting and Distributing Image Data.Collecting Guest Pass Identification and Allowing Lift Access.Summary.Additional Reading.13. Final Thoughts.
GUI Development.Real-time Capabilities.The Embedded Linux Vendor Offerings.Project Trailblazer Hardware.Summary.Additional Reading.Index. 0672322269T03282002

Craig Hollabaugh, Ph.D., first administered Sun® and Digital® workstations while pursuing a Ph.D. in electrical engineering at Georgia Institute of Technology. His first embedded design, US Patent #5,222,027, remotely monitors a petroleum process. In 1995, at Wireless Scientific®, he began using Linux for industrial control.

Craig currently consults for three companies from his home in Ouray, Colorado. He developed the Proteus Scalable Node™ code for Antec. At Clifton, Weiss and Associates, he's a member of a carrier-class telecommunications network design team. He's also designing FM, MP3, and Bluetooth™ headset electronics for Arriva®.