As part of a continuing feature on
Embedded.com, the editors have
been working with publishers of engineering and programming books,
selecting material from recent embedded hardware and software titles
for posting on the site. As a part of our
Embedded
Book department, collected here
are some of the selections posted so far, with new ones added each week
as they become available:
2008
In a four part series based on their contribution to "
Multiprocessor
Systems-On-Chips," edited by Wayne Wolf and Ahmed Amine Jerraya,
the authors cover the basics of designing energy-aware multiprocessors -
Part 1:
Reducing
CPU active and standby energy
Part 2:
Reducing
active and standby energy in memory and cache
Part 3:
On-Chip
communications impact on MPSoC power
Part 4:
Advanced
interconnects and software issues
In a three part series, based on their book "
Programming with
Wireless MMX Technology, " the authors describe the performance
implication of a processor's pipeline architecture and code techniques
for optimization -
Part 1:
Microarchitectural
optimization philosophy
Part 2:
Optimization for data processing operations
Part 3:
Optimization
for control-oriented operations
In a six part series based on his book "
See
MIPS run Linux," Dominic Sweetman gets down to basics on how to
implement the MIPS 32k/64k RISC architecture:
Part 1:
GNU/Linux
from eight miles high
Part 2:
How
hardware and software work together
Part 3:
What
happens on a system call
Part 4:
What
we really want
Part 5:
MIPS
specific issues in the Linux kernel
Part 6:
CP0
pipeline hazards, multiprocessors & caches
In a six part series, George Ellis, author of "
Control
Systems Design," compares and contrasts various approaches to
embedded Proportional-Integral-Derivative (PID) control system design -
Part 1:
Moving
beyond PID
Part 2:
Tuning
a Proportional Controller (PC)
Part 3:
Tuning
a Proportional-Integral (PI) controller
Part 4:
Tuning
a PI+ controller
Part 5:
Tuning
a PID controller
Part 6:
Tuning
PID+ and PD controllers
In a three part series based on his book, "
Designing High
Speed Interconnect," Dennis Miller explores signnal integrity
modeling alternatives in high frequency designs for problems not
directly resolvable by SPICE and recasting them so they can be
simulated.
Part 1:
Unmodelable
features of high performance designs
Part 2:
Differential
transmission lines and receivers
Part 3:
Modelable
features
In a six part series based on his book, John Eidson, author of "
Measurement,
Control and Communications using IEEE 1588," describes how the 1588
real time network synchronization protocol, originally designed for
localized industrial and instrumention networks, can be used for
wideband networking and telecommunications.
Part 1:
The
varieties of system temporal specifications
Part 2:
Overview
of the clock synchronization standard
Part 3:
Master-slave
synchronization hierarchy
Part 4:
Achieving
submicrosecond synchronization accuracy
Part 5:
Applying
1588 to networking, wireless, cable, and telecom
Part 6:
The future
of IEEE 1588 and the Precision Time Protocol
Richard G. Lyons, author of "
Understanding
Digital Signal Processing,"
in an on-going series of articles based on his book, provides the
details of DSP tips and tricks professionals can use to make their
digital signal processing algorithms more effiecient, including:
Efficient
Polynomial evaluation
Smothing
impulsive noise
Interpolating
a bandpass signal
Spectral
peak location algorithm
Computing
Fast Fourier Transform Twiddle Factors
Building
a practical spectrum analyzer
ADC
testing techniques and finding missing codes in ADCs
Fast
multiplication of complex numbers
Reducing
A/D Converter Quantization Noise
High
Speed vector magnitude approximation
Frequency
Translation without multiplication
2007
In a two part article, Bruce Douglass, author of "
Real-time
UML workshop for Embedded Systems," provides an overview of the
Rapid Object-Oriented Process for Embedded Systems (ROPE) methodology
and the workflows that can be used to develop robust and safe system
designs -
Part 1:
What
is the Harmony process?
Part 2:
The
Systems Engineering Harmony Workflow in Detail
In a two part series, Robert Oshana, author of "
DSP
Software Development Techniques for Embedded and Real Time Systems,"
outlines the hardware software constrains involved in building an
embedded media device based on a DSP/SRM multicore based System on a
chip -
Part 1:
The
hardware building blocks
Part 2:
Software
architecture for a media SoC
In a three part series, Praphul Chandra, author of "
Bulletproof
wireless security," provides the details of the technical
challenges involved in making wireless ad hoc protocols typical of
wireless networks such as Zigbee and Bluetooth more secure -
Part 1:
Single
and multihop ad hoc networks
Part 2:
Key
establishment and authentication
Part 3:
Bluetooth's
security modes
Despite Microsoft's view that a parallel
programming
model for
multiprocessing is 5 to 10 years away, Rishiyur Nikhil and Arvind,
coauthors of
Implicit
Parallel Programming, believe we can't wait and delve into the
options available now. In this
series of eight articles, they look at the alternatives: sequential
versus parallel programming, procedural versus declarative and
functional, explicit versus implicit.
Part
1: How sequential languages obscure parallelism
Part
2: How to achieve parallel execution
Part
3: Explicit parallel programming with threads and locks
Part
4: Explicit parallelism: message-passing programming
Part
5: Implicit parallel programming: Declarative languages
Part
6: So, why aren't we using functional languages yet?
Part
7: 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, authors
Shameem Akhter and Jason Roberts present the case for the OpenMP
Application Programming Interface as a way to add explicit parallel
instructions into sequential code written for multicore and
multithreaded designs:
Part 1:
The
challenges of threading a loop
Part 2:
Managing
shared and private data
Part 3:
Performance-oriented
programming
Part 4:
OpenMP
library functions
In
an nine part series excerpted
from
Computers
as Components, author Wayne Wolf presents in a clear and concise
way the basics of
embedded programming using the C language on microcontrollers:
Part 1:
Program
design and analysis
Part 2:
Models
of programming, assemblers and linkers
Part 3:
Basic compilation techniques
Part 4:
The
creation of procedures
Part 5:
Register
allocation and scheduling
Part 6:
Analysis
and optimization of execution time
Part 7:
Trace-driven
performance analysis
Part 8:
Analysis
and optimization of energy, power and program size
Part 9:
Program
validation and testing
In a three part series
excerpted from their book,
Multicore
Programming, Shamem Akhter and
Jason Roberts deal with various aspects of using threading and parallel
constructs in multicore system software development:
Part 1:
Synchronization
and critical sections
Part 2:
Synchronization
Primitives
Part 3:
Condition
variables, messages and flow control
In a two part series excerpted from
his book,
The
Embedded Linux Primer author Christopher Hallinan looks at
the development of real time
features in this open source operating system:.
Part 1:
What
is real time Linux?
Part 2:
Using
embedded Linux in real-time applications
In a three part series based
on their book,
Designing Embedded Networking Applications,
Peter Barry and Gerard Hartnett describe useful design patterns they
have discovered
and how to use them effectively to write better code:
Part 1:
A
review of general patterns
Part 2:
Useful
network design patterns
Part 3:
Code
tuning using design patterns
In
a two part series based on their book,
Multicore Programming, authors
Shameem Akhter and Jason Roberts describe the basics of
breaking up serial tasks for use as
threads in a parallel programming environment:
Part 1:
Breaking
up tasks
Part 2:
A
motivating problem - error diffusion
Excerpts
from Wayne Wolf's
book
High-Performance
Embedded Computing.
This five-part
series describes the differences between
running software on embedded
multiprocessors versus general purpose systems and the precautions that
must be taken.
Part
1, The role of the operating system
Part
2, Multiprocessor Scheduling
Part
3, Event-driven multiprocessor scheduling analysis
Part
4, Services and middleware for embedded multiprocessors
Part
5, Achieving multiprocessor quality-of-service
Excerpts from
Interfacing PIC
Microcontrollers: Embedded Design.
Author
Martin Bates reviews the basic sensor types and how they are used in
MCU designs along with practical examples of how to implement them:
Part
1: An introduction to sensors and their characteristics
Part
2: A survey of sensor types
Part
3: Designing the interface between a sensor and an MCU
Excerpts from
DSP
Software
Development Techniques for Embedded and Real-Time Systems by
Robert Oshana
cover every aspect of embededed development using digital signal
processors (DSP):
RTOS
scheduling algorithms, static and dynamic
Protecting
crtical code and resources
Deadlocks,
unsafe states and shared resource corruption
DSP
RTOS kernel task prioritization and memory allocation
Multitasking
on a DSP and how to schedule tasks
How
to write an optimized FIR filter
Testing
and Debugging DSP Systems
Real
time data collection and visualization
Using
breakpoints, event triggers and program traces
Emulating
DSP electrical characteristics and performance
The
working of JTAG boundary scan on DSPs
DSP
debugging challenges and methodologies
Excerpts from
Customizable
Embedded Processors, edited
by Paolo Ienne and Rainer Leupers
In their contribution to the book,
the author from U.C. Berkeley state the case for sub-RISC processing
elements as the
natural multicore SoC building block:
Part
1: Concurrent architectures and concurrent applications
Part
2: Generating a multicore architecture from an instruction set
Part
3: Deploying applications with Cairn
Part
4: An IPv4 Forwarding Design Example
Excerpts from
Networks on Chips:
Technology and Tools by Luca Benini and Giovanni De Micheli
on the challenges, hardware and software tools and methodologies being
developed for next generation multicore networks on chips designs:
Part
7: Computer Aided Software Development tools
Part
6: Communications-exposed programming
Part
5: Task-level parallel programming
Part
4: Programming issues and approaches
Part
3: A review of basic NoC architectures
Part
2: SoC objectives and NoC needs
Part
1: Why on-chip networking?
Excerpts from
WiFi
Telephony by Praphul Chandra and David Lite where they look
at the challenges facing developers of Voice over IP WLAN (VoWLAN)
sytems:
Part
1: Challenges facing developers and what's needed to bring systems to
market
Part
2: Dealing with inherent fairness among all nodes
Excerpts from
Embedded
Media Processing by David Katz and Rick Gentile of Analog
Devices on how to used Direct Memory Access (DMA) effectively in media
based embedded applications: :
Part
4: Advanced DMA features for moving data effectively and
multimedia system examples
Part
3: Guidelines for chosing DMA modes
Part
2: The various types of data flow architectures and when to use them
Part
1: The basics of Direct Memory Access (DMA) design
2006
Excerpts from
Applied Control Theory
for Embedded Systems by Tim Wescott on the basics of
feedback control theory as it relates to embedded systems design of
robust, reliable automatic control systems:
Part
1: How to use block diagrams as a control system design language
Part
2: Analyzing control system behavior using block diagrams
Excerpts from
Embedded Multitasking
with small microcontrollers by Keith Curtis on how to design
embedded software for resource-constrained microcontrollers that
multitask effectively with out the overhead and cost of an RTOS:
Part
2: The basics of multitasking using an embedded MCU
Part
1: State machine constructs for complex control sequences
Logic
101 - Part 4 - Gray Codes
IPsec,
a Tutorial - Part I
Logic
101 - Part 3 - Reed-Muller Logic
Logic
101 - Part 2 - Positive versus negative logic
Logic
101 - Part 1 - Assertion-Level Logic
*
Designing
An ARM Multithreaded Video/Audio/Motion Recording System: Part 2
*
Designing
An ARM Multithreaded Audio/Visual/Motion Recording System: Part 1
Audio
in the 21st Century
FPGA
Architectures from 'A' to 'Z' : Part 2
FPGA
Architectures from 'A' to 'Z' : Part 1
An
IPv6 Refresher - Part I
Voice
over IP (VoIP) - The basics: Part 1
*
How
to use UML in your SoC hardware/software design: Part 4
*
How
to use UML in your SoC hardware/software design: Part 3
*
How
to use UML in your SoC hardware/software design: Part 2
*
How
to use UML in your SoC hardware/software design: Part 1
We welcome your participation and would like to hear from you. We
want to know what kind of information you need and what kind of books
you would like to see posted on Embedded.com.
Call me at 602-288-7257 or email me at
bccole@acm.org