Embedded Books Reading Room - Embedded.com

Embedded Books Reading Room


As part of a continuing feature on Embedded.com, the editors havebeen working with publishers of engineering and programming books,selecting material from recent embedded hardware and software titlesfor posting on the site. As a part of our EmbeddedBook department, collected hereare some of the selections posted so far, with new ones added each weekas they become available:

In a four part series based on their contribution to “MultiprocessorSystems-On-Chips,” edited by Wayne Wolf and Ahmed Amine Jerraya,the authors cover the basics of designing energy-aware multiprocessors –
Part 1: ReducingCPU active and standby energy
Part 2: Reducingactive and standby energy in memory and cache
Part 3: On-Chipcommunications impact on MPSoC power
Part 4: Advancedinterconnects and software issues

In a three part series, based on their book “Programming withWireless MMX Technology, ” the authors describe the performanceimplication of a processor's pipeline architecture and code techniquesfor optimization –
Part 1: Microarchitecturaloptimization philosophy
Part 2:Optimization for data processing operations
Part 3: Optimizationfor control-oriented operations

In a six part series based on his book “SeeMIPS run Linux,” Dominic Sweetman gets down to basics on how toimplement the MIPS 32k/64k RISC architecture:
Part 1: GNU/Linuxfrom eight miles high
Part 2: Howhardware and software work together
Part 3: Whathappens on a system call
Part 4: Whatwe really want
Part 5: MIPSspecific issues in the Linux kernel
Part 6: CP0pipeline hazards, multiprocessors &  caches

In a six part series, George Ellis, author of “ControlSystems Design,” compares and contrasts various approaches toembedded Proportional-Integral-Derivative (PID) control system design –
Part 1: Movingbeyond PID
Part 2: Tuninga Proportional Controller (PC)
Part 3: Tuninga Proportional-Integral (PI) controller
Part 4: Tuninga PI+ controller
Part 5: Tuninga PID controller
Part 6: TuningPID+ and PD controllers

In a three part series based on his book, “Designing HighSpeed Interconnect,” Dennis Miller explores signnal integritymodeling alternatives in high frequency designs for problems notdirectly resolvable by SPICE and recasting them so they can besimulated.
Part 1: Unmodelablefeatures of high performance designs
Part 2:  Differentialtransmission lines and receivers
Part 3:  Modelablefeatures

In a six part series based on his book, John Eidson, author of  “Measurement,Control and Communications using IEEE 1588,” describes how the 1588real time network synchronization protocol, originally designed forlocalized industrial and instrumention networks, can be used forwideband networking and telecommunications.
Part 1:  Thevarieties of system temporal specifications
Part 2:  Overviewof the clock synchronization standard
Part 3:  Master-slavesynchronization hierarchy
Part 4:  Achievingsubmicrosecond synchronization accuracy
Part 5:  Applying1588 to networking, wireless,  cable, and  telecom
Part 6:  The futureof IEEE 1588 and the Precision Time Protocol

Richard G. Lyons, author of “UnderstandingDigital Signal Processing, “in an on-going series of articles based on his book, provides thedetails of DSP tips and tricks professionals can use to make theirdigital signal processing algorithms more effiecient, including:
EfficientPolynomial evaluation
Smothingimpulsive noise
Interpolatinga bandpass signal
Spectralpeak location algorithm
ComputingFast Fourier Transform Twiddle Factors
Buildinga practical spectrum analyzer
ADCtesting techniques and finding missing codes in ADCs
Fastmultiplication of complex numbers
ReducingA/D Converter Quantization Noise
HighSpeed vector magnitude approximation
FrequencyTranslation without multiplication

In a two part article, Bruce Douglass, author of  “Real-timeUML workshop for Embedded Systems,” provides an overview of theRapid Object-Oriented Process for Embedded Systems (ROPE) methodologyand the workflows that can be used to develop robust and safe systemdesigns –
Part 1: Whatis the Harmony process?
Part 2: TheSystems Engineering Harmony Workflow in Detail

In a two part series, Robert Oshana, author of “DSPSoftware Development Techniques for Embedded and Real Time Systems,”outlines the hardware software constrains involved in building anembedded media device based on a DSP/SRM multicore based System on achip –
Part 1: Thehardware building blocks
Part 2: Softwarearchitecture for a media SoC

In a three part series, Praphul Chandra, author of  “Bulletproofwireless security,” provides the details of the technicalchallenges involved in making wireless ad hoc protocols typical ofwireless networks such as Zigbee and Bluetooth more secure –
Part 1: Singleand multihop ad hoc networks
Part 2: Keyestablishment and authentication
Part 3:  Bluetooth'ssecurity modes

Despite Microsoft's view that a parallelprogrammingmodel formultiprocessing is 5 to 10 years away, Rishiyur Nikhil and Arvind,coauthors of ImplicitParallel Programming, believe we can't wait and delve into theoptions available now. In thisseries of eight articles, they look at the alternatives: sequentialversus parallel programming, procedural versus declarative andfunctional, explicit versus implicit.
Part1: How sequential languages obscure parallelism
Part2: How to achieve parallel execution
Part3: Explicit parallel programming with threads and locks
Part4: Explicit parallelism: message-passing programming
Part5: Implicit parallel programming: Declarative languages

Part6: So, why aren't we using functional languages yet?
Part7: pH: an implicitly parallel, declarative language
Part 8:Turning parallel Haskell (pH) into a production language

In a four part series based on material from their book Multicore Programming, authorsShameem Akhter and Jason Roberts present the case for the OpenMPApplication Programming Interface as a way to add explicit parallelinstructions into sequential code written for multicore andmultithreaded designs:
Part 1: Thechallenges of threading a loop
Part 2: Managingshared and private data
Part 3: Performance-orientedprogramming
Part 4:  OpenMPlibrary functions

Inan nine part series excerptedfrom  Computersas Components, author Wayne Wolf presents in a clear and conciseway the basics ofembedded programming using the C language on microcontrollers:
Part 1: Programdesign and analysis
Part 2: Modelsof programming, assemblers and linkers
Part 3:Basic compilation techniques
Part 4: Thecreation of procedures
Part 5: Registerallocation and scheduling
Part 6: Analysisand optimization of execution time
Part 7: Trace-drivenperformance analysis
Part 8: Analysisand optimization of energy, power and program size
Part 9: Programvalidation and testing
In a three part seriesexcerpted from their book, MulticoreProgramming, Shamem Akhter andJason Roberts deal with various aspects of using threading and parallelconstructs in multicore system software development:
Part 1: Synchronizationand critical sections
Part 2: SynchronizationPrimitives
Part 3: Conditionvariables, messages and flow control

In a two part series excerpted fromhis book, TheEmbedded Linux Primer author Christopher Hallinan looks atthe development of real timefeatures in this open source operating system:.
Part 1: Whatis real time Linux?
Part 2:  Usingembedded Linux in real-time applications

In a three part series basedon their book, Designing Embedded Networking Applications,Peter Barry and Gerard Hartnett describe useful design patterns theyhave discoveredand how to use them effectively to write better code:
Part 1: Areview of general patterns
Part 2: Usefulnetwork design patterns
Part 3: Codetuning using design patterns

Ina two part series based on their book, Multicore Programming, authorsShameem Akhter and Jason Roberts describe the basics of breaking up serial tasks for use asthreads in a parallel programming environment:
Part 1: Breakingup tasks
Part 2: Amotivating problem – error diffusion

Excerptsfrom Wayne Wolf'sbook High-PerformanceEmbedded Computing .
This five-partseries describes the differences between running software on embeddedmultiprocessors versus general purpose systems and the precautions thatmust be taken.
Part1, The role of the operating system
Part2, Multiprocessor Scheduling
Part3, Event-driven multiprocessor scheduling analysis
Part4, Services and middleware for embedded multiprocessors
Part5, Achieving multiprocessor quality-of-service

Excerpts fromInterfacing PICMicrocontrollers: Embedded Design.
AuthorMartin Bates reviews the basic sensor types and how they are used inMCU designs along with practical examples of how to implement them:
Part1: An introduction to sensors and their characteristics
Part2: A survey of sensor types
Part 3: Designing the interface between a sensor and an MCU

Excerpts from DSPSoftwareDevelopment Techniques for Embedded and Real-Time Systems by Robert Oshanacover every aspect of  embededed development using digital signalprocessors (DSP):
RTOSscheduling algorithms, static and dynamic
Protectingcrtical code and resources
Deadlocks,unsafe states and shared resource corruption
DSPRTOS kernel task prioritization and memory allocation
Multitaskingon a DSP and how to schedule tasks
Howto write an optimized FIR filter
Testingand Debugging DSP Systems 
Realtime data collection and visualization
Usingbreakpoints, event triggers and program traces
EmulatingDSP electrical characteristics and performance
Theworking of JTAG boundary scan on DSPs
DSPdebugging challenges and methodologies

Excerpts from CustomizableEmbedded Processors, editedby Paolo Ienne and Rainer Leupers
In their contribution to the book,the author from U.C. Berkeley state the case for sub-RISC processingelements as thenatural multicore SoC building block:
Part1: Concurrent architectures and concurrent applications
Part2: Generating a multicore architecture from an instruction set
Part3: Deploying applications with Cairn
Part4: An IPv4 Forwarding Design Example

Excerpts from Networks on Chips:Technology and Tools by Luca Benini and Giovanni De Michelion the challenges, hardware and software tools and methodologies beingdeveloped for next generation multicore networks on chips designs:
Part7: Computer Aided Software Development tools
Part6: Communications-exposed programming
Part5: Task-level parallel programming
Part4: Programming issues and approaches
Part3: A review of basic NoC architectures
Part2: SoC objectives and NoC needs
Part1: Why on-chip networking?

Excerpts from WiFiTelephony by Praphul Chandra and David Lite where they lookat the challenges facing developers of Voice over IP WLAN (VoWLAN)sytems:
Part1: Challenges facing developers and what's needed to bring systems tomarket
Part2: Dealing with inherent fairness among all nodes

Excerpts from EmbeddedMedia Processing by David Katz and Rick Gentile of AnalogDevices on how to used Direct Memory Access (DMA) effectively in mediabased embedded applications: :
Part4:  Advanced DMA features for moving data effectively andmultimedia system examples
Part3: Guidelines for chosing DMA modes
Part2: The various types of data flow architectures and when to use them
Part1: The basics of Direct Memory Access (DMA) design


Excerpts from Applied Control Theoryfor Embedded Systems by Tim Wescott on the basics offeedback control theory as it relates to embedded systems design ofrobust, reliable automatic control systems:
Part1: How to use block diagrams as a control system design language
Part2: Analyzing control system behavior using block diagrams

Excerpts from Embedded Multitaskingwith small microcontrollers by Keith Curtis on how to designembedded software for resource-constrained microcontrollers thatmultitask effectively with out the overhead and cost of an RTOS:
Part2: The basics of multitasking using an embedded MCU
Part1: State machine constructs for complex control sequences

Logic101 – Part 4 – Gray Codes
IPsec,a Tutorial – Part I
Logic101 – Part 3 – Reed-Muller Logic
Logic101 – Part 2 – Positive versus negative logic
Logic101 – Part 1 – Assertion-Level Logic
*DesigningAn ARM Multithreaded Video/Audio/Motion Recording System: Part 2
*DesigningAn ARM Multithreaded Audio/Visual/Motion Recording System: Part 1
Audioin the 21st Century
FPGAArchitectures from 'A' to 'Z' : Part 2
FPGAArchitectures from 'A' to 'Z' : Part 1
AnIPv6 Refresher – Part I
Voiceover IP (VoIP) – The basics: Part 1
*Howto use UML in your SoC hardware/software design: Part 4
*Howto use UML in your SoC hardware/software design: Part 3
*Howto use UML in your SoC hardware/software design: Part 2
*Howto use UML in your SoC hardware/software design: Part 1

We welcome your participation and would like to hear from you. Wewant to know what kind of information you need and what kind of booksyou would like to see posted on Embedded.com.

Call me at 602-288-7257 or email me at

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.