Cover image for Linux for Embedded and Real-time Applications.
Linux for Embedded and Real-time Applications.
Title:
Linux for Embedded and Real-time Applications.
Author:
Abbott, Doug.
ISBN:
9780123914330
Personal Author:
Edition:
3rd ed.
Physical Description:
1 online resource (295 pages)
Series:
Embedded Technology
Contents:
Front Cover -- Linux for Embedded and Real-Time Applications -- Copyright Page -- Dedication -- Contents -- Preface -- Audience and Prerequisites -- Personal Biases -- Organization -- 1: Introduction and Getting Started -- 1: The Embedded and Real-Time Space -- What Is Embedded? -- What Is Real-Time? -- How and Why Does Linux Fit In? -- Open Source -- Portable and Scalable -- Where Is Linux Embedded? -- Open Source Licensing -- Legal Issues -- Resources -- 2: Installing Linux -- Distributions -- Debian GNU/Linux -- Fedora -- Red Hat Enterprise Linux -- SUSE -- Ubuntu -- Hardware Requirements -- Installation Scenarios -- Stand-Alone -- Dual-Booting -- Virtualization -- DVD or Live CD? -- Installation Process -- Disk Partitioning -- Package Selection -- Resources -- Specific Distribution Sites -- Other Resources -- 3: Introducing Linux -- Running Linux-KDE -- File Manager -- Shell Window -- Linux Features -- Protected Mode Architecture -- Real Mode -- Protected Mode -- "Flat" vs. Segmented Memory Models -- Paging -- The Linux Process Model -- The fork() Function -- The execve() Function -- The Linux File System -- File Permissions -- The "root" User -- The /proc File System -- The Filesystem Hierarchy Standard -- The /usr Hierarchy -- "Mounting" File Systems -- System Configuration -- The Shell -- Getting Help -- Resources -- 4: The Host Development Environment -- Cross-Development Tools-The GNU Tool Chain -- GCC -- Make -- GDB -- Install Software -- What's on the DVD? -- Install Cross-Tool Chain -- Install Root File System -- The Terminal Emulator, minicom -- Networking -- Network Address -- What About Wireless? -- Network File System -- Trivial File Transfer Protocol -- Resources -- 5: The Hardware -- Embedded Hardware -- ARM Single Board Computer -- Specifications -- What About Other Boards? -- BeagleBoard -- Specifications (Rev. C4) -- Gumstix.

Specifications -- Raspberry Pi -- Specifications -- Setting Up the Mini2440 -- Flash Memory and File Systems -- Flash Memory-NAND and NOR -- Root File System in Flash -- Preparing the Board -- Sample Code -- factory_images -- The Script Files -- mini_boot -- set-mini_boot -- *.sh -- The Procedure -- Final Steps -- What Can Go Wrong? -- The Boot Loader -- Resources -- Sites for Alternate Boards -- 6: Eclipse Integrated Development Environment -- Overview -- Plug-ins -- Workbench -- Installation -- Using Eclipse -- The C Development Environment-CDT -- Creating a New Project -- Adding Source Code to the Project -- Content Assist -- Code Templates -- Automatic Closing -- The Program -- Building the Project -- Debugging with CDT -- The Debug View -- Variables View -- Breakpoints View -- Memory View -- Finish Debugging -- Summary -- Resources -- 2: Application Programming in a Cross-Development Environment -- 7: Accessing Hardware from User Space -- Review -- ARM I/O Architecture -- LEDs and Pushbuttons -- Accessing I/O from Linux-Our First Program -- Creating a Project -- The Target Execution Environment -- The led Program -- The Makefile -- A Data Acquisition Example -- Resources -- 8: Debugging Embedded Software -- Remote Debugging with Eclipse -- Remote Debug Launch Configuration -- A Thermostat -- Host Workstation as Debug Environment -- Advanced Breakpoint Features -- Debugger Services Framework -- Installing SSH -- Add a Password for Root -- Configuring RSE -- Debugging with RSE -- Resources -- 9: Posix Threads -- Threads -- Thread Attributes -- Synchronization-Mutexes -- Mutex Attributes -- Problems with Solving the Resource Sharing Problem-Priority Inversion -- Communication-Condition Variables -- Condition Variable Attributes -- Thread Termination and Cancellation -- Cleanup Handlers -- Pthreads Implementations -- Upgrading the Thermostat.

Linux Device Drivers -- The Low Level I/O API -- Changes Required in thermostat.c -- Debugging Multithreaded Programs -- Resources -- 10: Embedded Networking -- Sockets -- The Server Process -- The Client Process -- Socket Attributes -- A Simple Example -- The Server -- The Client -- A Remote Thermostat -- Multiple Monitor Threads -- Embedded Web Servers -- Background on HTTP -- A Web-Enabled Thermostat -- Dynamic Web Content -- Forms and the POST Method -- Build and Try it -- A "Real" Web Server-Boa -- Embedded E-mail -- Other Application-Level Protocols -- Resources -- 11: Configuring and Building the Kernel -- Getting Started -- Kernel Version Numbering -- The Kernel Source Tree -- Kernel Makefile -- Patching the Kernel -- Configuring the Kernel-make config, menuconfig, xconfig -- xconfig Options -- .config File -- Behind the Scenes-What's Really Happening -- Building the Kernel -- Workstation Digression -- Booting the New Kernel -- Resources -- 12: Kernel Modules and Device Drivers -- Kernel Modules -- A Module Example -- "Tainting" the Kernel -- Kernel Modules and the GPL -- Building Kernel Modules -- The Role of a Module -- What's a Device Driver Anyway? -- Linux Device Drivers -- The /dev Directory -- The Low-Level User Space I/O APIs -- Internal Driver Structure -- Driver Data Structures -- init() and exit() -- open() and release() -- read() and write() -- Building and Running the Driver -- Debugging Kernel Code -- printk -- /proc Files -- Handling Interrupts -- Registering an Interrupt Handler -- Probing for the Interrupt -- Deferred Processing-the "Bottom Half" -- Building Your Driver into the Kernel -- Resources -- 3: Components and Tools -- 13: BusyBox and Linux Initialization -- Introducing BusyBox -- Configuring and Installing BusyBox -- BusyBox Settings -- Applets -- Building and Installing -- Using BusyBox -- A Thermostat Display.

ANSI Terminal Escape Sequences -- Thermostat Display -- ncurses Library -- User Space Initialization -- Stage 1 Boot Loader -- U-Boot -- Linux Kernel -- Init Process -- Resources -- 14: U-Boot Boot Loader and Getting Ready to Ship -- U-Boot -- Background -- Installing and Configuring U-Boot -- Testing a New U-Boot -- "JTAGing" the NOR -- Creating a Flash File System -- More Thoughts on Flash Partitions -- The Flat Device Tree -- Resources -- 15: Source Code Control-GIT -- Background -- Introducing Git -- File States and Life Cycle -- Branching and Merging -- Configuring Git -- Graphical Git -- Creating a New Repository -- Resources -- 16: Build Tools -- Buildroot -- OpenEmbedded -- Getting Started -- Personal Observations -- Android -- Application Development -- Platform Development -- Wrap Up -- Resources -- Appendix A: U-Boot Commands -- Information Commands -- Memory Commands -- NOR Flash Memory Commands -- NAND Flash Memory Commands -- Execution Control Commands -- Download Commands -- Environment Variable Commands -- Environment Variables -- Appendix B: Why Software Should Not Have Owners -- Index.
Abstract:
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 With this book you will learn: 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 Provides a hands-on introduction for engineers and software developers who need to get up to speed quickly on embedded Linux, its operation and its capabilities - including Android Updated and changed accompanying tools, with a focus on the author's specially-developed Embedded Linux Learning Kit.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: