LIMITED OFFER
Save 50% on book bundles
Immediately download your ebook while waiting for your print delivery. No promo code needed.
Linux for Embedded and Real-Time Applications, Fourth Edition, provides a practical introduction to the basics, covering the latest developments in this rapidly evolving technolog… Read more
LIMITED OFFER
Immediately download your ebook while waiting for your print delivery. No promo code needed.
Linux for Embedded and Real-Time Applications, Fourth Edition, provides a practical introduction to the basics, covering the latest developments in this rapidly evolving technology. Ideal for those new to the use of Linux in an embedded environment, the book takes a hands-on approach that covers key concepts of building applications in a cross-development environment. Hands-on exercises focus on the popular open source BeagleBone Black board. New content includes graphical programming with QT as well as expanded and updated material on projects such as Eclipse, BusyBox – configuring and building, the U-Boot bootloader – what it is, how it works, configuring and building, and new coverage of the Root file system and the latest updates on the Linux kernel..
Engineers and software developers involved in embedded computing development; Linux programmers; electrical and computer engineering students
Chapter 1: The Embedded and Real-time SpaceWhat is Embedded?What is Real-Time?How and Why Does Linux Fit In?Open Source Portable and ScalableWhere is Linux Embedded?Open Source LicensingLegal IssuesAlternatives to Linux Free RTOS MicroC/OSResourcesChapter 2: Installing LinuxDistributionsDebian GNU/LinuxFedoraCentOSSUSEUbuntuHardware RequirementsInstallation ScenariosStand-AloneDual-BootingVirtualizationDVD or Live CDInstallation Process Disk Partitioning Package SelectionResourcesChapter 3: Introducing LinuxRunning Linux – KDE File Manager Shell WindowProtected Mode ArchitectureReal ModeProtected Mode“Flat” vs. Segmented Memory ModelsPagingThe Linux Process Model The fork() Function The execve() FunctionThe Linux File SystemFile PermissionsThe “root” UserFile System Hierarchy Standard“Pseudo” File Systems /proc /sys“Mounting” File SystemsThe ShellGetting Helpman pagesGoogleThe Linux Documentation ProjectResourcesChapter 4: The Host Development EnvironmentCross ToolchainsGetting and Installing the Toolchain Building a Toolchain from Source—crosstool-NGNetwork ConfigurationNetwork AddressNFS Serverexports FileThe minicom Terminal EmulatorThe Target Root File SystemResourcesChapter 5: EclipseOverview Plug-ins WorkbenchObtaining and Installing EclipseStarting EclipseThe C Development Environment – CDT Creating a New ProjectAdding Source Code to the ProjectContent AssistCode TemplatesAutomatic ClosingThe ProgramBuilding the ProjectDebugging with CDTThe Debug ViewVariables ViewBreakpoints ViewMemory ViewFinish DebuggingSummaryResourcesChapter 6: The HardwareThe ARM ArchitectureOpen Source HardwareBeagleBoard and DerivativesRaspberry PI and DerivativesArduinoMinnowBoardSetting Up the Beagle Bone Flash Memory and File SystemsBoot the BoardWhat can go wrong?Beagle Bone CapesThe bootloader—u-bootResourcesPart 2: Application Programming in a Cross-Development Environment Chapter 7: Accessing Hardware from User SpaceReviewARM I/O ArchitectureUser LEDsAccessing I/O from Linux—Our First ProgramCreating a Yocto Project in EclipseThe Target Execution EnvironmentThe LED Program The MakefileA Data Acquisition Example Accessing the I2C busLinux Device DriversThe Low level I/O APIResourcesChapter 8: Debugging Embedded SoftwareRemote Debugging with Eclipse Remote Debug Launch ConfigurationA ThermostatHost Workstation as Debug Environment Advanced Breakpoint FeaturesDebugger Services FrameworkInstalling SSHAd a Password for RootConfiguring RSEDebugging with RSEResourcesChapter 9: Posix ThreadsThreads Thread AttributesSynchronization—MutexesMutex AttributesProblems with Solving the Resource Sharing Problem—Priority InversionCommunication—Condition Variables Condition Variable AttributesThread Termination and Cancellation Cleanup HandlersPthreads ImplementationUpgrading the Thermostat Changes Required in thermostat.cDebugging Multithreaded ProgramsResourcesChapter 10: Embedded NetworkingSocketsThe Server ProcessThe Client ProcessSocket AttributesA Simple ExampleThe ServerThe ClientA Remote Thermostat Multiple Monitor ThreadsEmbedded Web ServersBackground on HTTPThe boa Web ServerA Web-enabled ThermostatEmbedded emailOther Application-level ProtocolsResourcesChapter 11: Graphics Programming with QTPart 3: Components and ToolsChapter 12: Integrated Build EnvironmentsThe ProblemOpen EmbeddedYoctoLinaroChapter 13: Configuring and Building the Kernel Getting StartedKernel Version Numbering“Upstream” vs “Downstream” kernelsThe Kernel Source TreeKernel MakefileConfiguring the Kernel—make config, menuconfig, xconfigxconfig options.config fileBehind the Scenes—What’s Really happeningBuilding the Kernel Workstation DigressionBooting the New KernelResourcesChapter 14: BusyBox and Linux InitializationIntroducing BusyBoxConfiguring and Installing BusyBoxBusyBox SettingsAppletsBuilding and InstallingUsing BusyBoxSystem InitializationStage 1 Boot LoaderU-BootLinux KernelUser Space InitializationsysinitsystemdResourcesChapter 15: U-Boot Boot Loader and Getting Ready to ShipU-BootBackgroundConfiguring and Installing U-BootTesting a New U-BootBarebox—the successor to u-BootCreating a Flash File System Thoughts on Flash Partitions The Device Tree—Bringing Structure to Hardware DescriptionResourcesChapter 16: Source Code Control—GITBackgroundIntroducing Git File States and Life Cycle Branching and MergingConfiguring GitGraphical Git—Eclipse Creaging a New RepositoryResourcesChapter 17: Real-time LinuxWhat is Real-time Hard vs. Soft Real-timeWhy isn’t Linux Real-time?Preemption ImprovementThe Linux SchedulerPREEMPT_RT patchInterrupt AbstractionRTAI and RTLinuxXenomaiADEOSWrap UpResources
DA
Doug Abbott is the principal of Intellimetrix, a consulting firm in Silver City, NM, specializing in hardware and software for industrial and scientific data acquisition and embedded product applications. Among his past and pre-sent clients are Agilent Technologies, Tektronix, Sandia National Laboratory and numerous smaller high-tech com-panies in Silicon Valley.
Mr. Abbott has over thirty years experience in various aspects of computer hardware and software design and has been an independent consultant for the past fifteen years. Prior to founding Intellimetrix, he managed software de-velopment for DSP Technology, Inc, a leading supplier of high-speed instrumentation.
Doug is also a popular instructor and seminar leader, who teaches classes in PC technology and real-time program-ming for University of California Berkeley Extension. He has taught the techniques of real-time programming and multi-tasking operating systems to hundreds of professional engineers. These classes can also be customized and made available for on-site presentation.
Mr. Abbott received an MSEE degree from the University of California at Berkeley.