Linux for Embedded and Real-time Applications
By- Doug Abbott, President, Intellimetrix, Inc., Silver City, NM, USA
This new edition of Linux for Embedded and Real-Time Applications provides a practical introduction to the basics and the latest developments in this rapidly evolving technology. Ideal for those new to using Linux in an embedded environment, it takes a hands-on approach and covers key concepts plus specific applications.
Key features include:- Substantially updated to focus on a specific ARM-based single board computer (SBC) as a target for embedded application programming
- Includes an introduction to Android programming
- The basics of Open Source, Linux and the embedded space
- How to set up a simple system and tool chain
- How to use simulation for initial application testing
- Network, graphics and Android programming
- How to use some of the many Linux components and tools
- How to configure and build the Linux kernel, BusyBox and U-Boot bootloader
Audience
Engineers and software developers involved in embedded computing development; Linux programmers; electrical and computer engineering students
Paperback, 296 Pages
Published: November 2012
Imprint: Newnes
ISBN: 978-0-12-415996-9
Contents
- Preface, About.the.Author, CHAPTER.1:.The.Embedded.and.Real-Time.Space, What is Embedded?, What is Real-Time?, How and Why Does Linux Fit In?, Where is Linux Embedded?, Open Source Licensing, Resources
CHAPTER.2:.Introducing.Linux, Features, Protected Mode Architecture, The Linux Process Model, The Linux Filesystem, System Configuration, The Shell, Getting Help, Resources
CHAPTER.3:.The.Host.Development.Environment, Linux Distributions, Dual-Booting, Cross-Development Tools-The GNU Tool Chain, Resources
CHAPTER.4:.Configuring.and.Building.the.Kernel, Getting Started, Where is the Source Code?, Configuring the Kernel-make config, menuconfig, xconfig, Behind the Scenes-Whats Really Happening, Booting the New Kernel, What Can Go Wrong?, Resources
CHAPTER.5:.BlueCat.Linux, The Less is More Philosophy, Installing BlueCat Linux, X86 Target for BlueCat Linux, Configuring the Workstation, First Test Program, The Shell Kernel, Resources
CHAPTER.6:.Debugging.Embedded.Software, The Target Setup, GDB, The Host as a Debug Environment, Adding Programmable Setpoint and Limit, Resources
CHAPTER.7:.Kernel.Modules.and.Device.Drivers, Kernel Modules, Whats a Device Driver Anyway?, Linux Device Drivers, Internal Driver Structure, The Hardware, The Target Version of Thermostat, Debugging Kernel Code, Building Your Driver into the Kernel, An Alternative-uCLinux, The Old Way, Resources
CHAPTER.8:.Embedded.Networking, Sockets, A Simple Example, A Remote Thermostat, Embedded Web Servers, A Web-Enabled Thermostat, Embedded email, Other Application-Level Protocols, Resources
CHAPTER.9:.Introduction.to.Real-Time.Programming, Polling vs. Interrupts, Tasks, Scheduling, Aperiodic Scheduling, Kernel Services, Inter-Task Communication, Problems with Solving the Resource Sharing Problem-Priority Inversion, Interrupts and Exceptions, Critical Sections, Resources
CHAPTER.10:.Linux.and.Real-Time, Why Linux Isnt Real-Time, Two Approaches
CHAPTER.11:.The.RTAI.Environment, Installing RTAI, Inter-Task Communication and Synchronization, Communicating with Linux Processes, Real-Time in User Space-LXRT, One Shot vs. Periodic Timing, Moving to Kernel Space, Real-Time FIFOs and Shared Memory Suggested Exercises, Resources
CHAPTER.12:.Posix.Threads, Threads, Thread Attributes, Synchronization-Mutexes, Communication-Condition Variables, Pthreads in User Space, Moving to RTAI Kernel Space, Message Queues, Suggestions for Further Exploration, Resources
CHAPTER.13:.Cutting.It.Down.to.Size, BusyBox , TinyLogin, uClinux, Summary, Resources
CHAPTER.14:.Eclipse.Integrated.Development.Environment, Overview, Installation, Using Eclipse, The C Development Environment (CDT), Summary, Resources, APPENDIX.A:. RTAI.Application.Programming.Interface. (API)
APPENDIX.B:.Posix.Threads.(Pthreads).Application, Programming.Interface
APPENDIX.C:.Why.Software.Should.Not.Have.Owners
APPENDIX.D:.Upgrading.From.Kernel.2.4.to.2.6
