DSP Software Development Techniques for Embedded and Real-Time Systems

DSP Software Development Techniques for Embedded and Real-Time Systems

1st Edition - December 28, 2005

Write a review

  • Author: Robert Oshana
  • eBook ISBN: 9780080491196

Purchase options

Purchase options
DRM-free (EPub, Mobi, PDF)
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order


Today's embedded and real-time systems contain a mix of processor types: off-the-shelf microcontrollers, digital signal processors (DSPs), and custom processors. The decreasing cost of DSPs has made these sophisticated chips very attractive for a number of embedded and real-time applications, including automotive, telecommunications, medical imaging, and many others—including even some games and home appliances. However, developing embedded and real-time DSP applications is a complex task influenced by many parameters and issues. DSP Software Development Techniques for Embedded and Real-Time Systems is an introduction to DSP software development for embedded and real-time developers giving details on how to use digital signal processors efficiently in embedded and real-time systems. The book covers software and firmware design principles, from processor architectures and basic theory to the selection of appropriate languages and basic algorithms. The reader will find practical guidelines, diagrammed techniques, tool descriptions, and code templates for developing and optimizing DSP software and firmware. The book also covers integrating and testing DSP systems as well as managing the DSP development effort.

Key Features

  • Digital signal processors (DSPs) are the future of microchips!
  • Includes practical guidelines, diagrammed techniques, tool descriptions, and code templates to aid in the development and optimization of DSP software and firmware


Computer engineers, embedded systems designers, software engineers who are using or planning to use DSPs in their real-time and embedded designs.
Computer and software engineering students.

Table of Contents

  • Dedication


    Introduction: Why Use a DSP?

    Chapter 1: Introduction to Digital Signal Processing

    What is Digital Signal Processing

    A Brief History of Digital Signal Processing

    Advantages of DSP

    DSP Systems

    Analog-to-Digital Conversion

    Digital-to-Analog Conversion

    Applications for DSPs

    Power Efficient DSP Applications

    High Performance DSP Applications


    Chapter 2: Overview of Embedded Systems and Real-Time Systems


    Real-Time Systems

    Hard Real-Time and Soft Real-Time Systems

    DSP Systems are Hard Real-Time

    Efficient Execution and the Execution Environment

    Challenges in Real-Time System Design

    Embedded Systems


    Chapter 3: Overview of Embedded Systems Development Life Cycle Using DSP

    Embedded Systems

    The Embedded System Life Cycle Using DSP

    Chapter 4: Overview of Digital Signal Processing Algorithms

    Definition of an Algorithm

    DSP Systems

    Analog-to-Digital Conversion

    An Audio Example

    The Nyquist Criteria


    Anti-Aliasing Filter

    Sample Rate and Processor Speed

    A to D Converters

    Digital-to-Analog Conversion

    Multirate Applications

    Summary of Sampling

    Introduction to Filters

    Summary of Filter Types

    Finite Impulse Response (FIR) Filters

    Basic FIR Optimizations for DSP Devices

    Summary of FIR Filters

    Infinite Impulse Response Filters

    IIR As a Difference Equation

    IIR As a Transfer Function

    IIR Filter Design

    IIR Trade-Offs

    DSP Architecture Optimization for Filter Implementation

    Fast Fourier Transforms

    Time vs. Frequency

    Forms of the FFT Algorithm

    FFT Implementation Issues

    Chapter 5: DSP Architectures

    Fast, Specialized Arithmetic

    High Bandwidth Memory Architectures

    Pipelined Processing

    Specialized Instructions and Address Modes

    Examples of DSP Architectures

    Chapter 6: Optimizing DSP Software


    What Is Optimization?

    The Process

    Make The Common Case Fast

    Make the Common Case Fast—DSP Architectures

    Make the Common Case Fast—DSP Algorithms

    Make the Common Case Fast—DSP Compilers

    An In-Depth Discussion of DSP Optimization

    Direct Memory Access

    Managing Internal Memory

    Loop Unrolling

    Software Pipelining

    More on DSP Compilers and Optimization

    Programmer Helping Out the Compiler

    Profile-Based Compilation

    Chapter 7: Power Optimization Techniques Using DSP


    Power Optimization Techniques in DSP Devices

    Power Optimization for DSP Operating Systems

    Power Optimization Techniques for DSP Applications

    Using Idle Modes

    Top Ten Power Optimizations

    Power Optimization Life Cycle

    Power Optimization Summary

    Chapter 8: Real-Time Operating Systems for DSP

    What Makes an OS an RTOS?

    Concepts of RTOS

    Chip Support Software for DSP RTOS

    DSP RTOS Application Example



    Shared Resource Integrity

    Synchronizing Tasks for Mutual Exclusion

    Mutual Exclusion Through Sharable Resources

    Pseudocode for Telecommunication System Tasks

    Other Kinds of Synchronization


    Schedulability and Response Times

    Scheduling Policies in Real-Time Systems

    Analyzing Scheduling Behavior in Preemptive Systems

    Analyzing More Complex Systems


    Chapter 9: Testing and Debugging DSP Systems

    On-Chip Emulation Capability

    Emulation Capabilities

    High-Speed Data Collection and Visualization

    Compiler and Linker Dependencies

    Real-Time Embedded Software Testing Techniques

    Task Synchronization and Interrupt Bugs

    Chapter 10: Managing the DSP Software Development Effort


    Challenges in DSP Application Development

    The DSP Design Process

    Design Challenges for DSP Systems

    High Level Design Tools for DSP

    DSP Toolboxes

    Host Development Tools for DSP Development

    A Generic Data Flow Example

    Code Tuning and Optimization

    Putting it all Together

    Chapter 11: Embedded DSP Software Design Using Multicore System-on-a-Chip (SoC) Architectures

    Multicore System-on-a-Chip

    Software Architecture for SoC

    SoC System Boot Sequence

    Tools Support for SoC

    A Video Processing Example of SoC

    Chapter 12: The Future of DSP Software Technology

    Changes in DSP Technology—Hardware and Software

    Foundations for Software Components

    From Closed to Open Embedded Systems

    Away From Undifferentiated Hacking


    A: Software Performance Engineering of an Embedded DSP System Application

    B: More Tips and Tricks for DSP Optimization

    C: Cache Optimization in DSP and Embedded Systems

    D: Specifying Behavior of Embedded DSP Systems

    E: Analysis Techniques for Real-Time DSP Systems

    F: DSP Algorithmic Development—Rules and Guidelines

    About the Author


Product details

  • No. of pages: 608
  • Language: English
  • Copyright: © Newnes 2005
  • Published: December 28, 2005
  • Imprint: Newnes
  • eBook ISBN: 9780080491196

About the Author

Robert Oshana

Robert Oshana
Rob Oshana has over 25 years of experience in the real-time embedded industry, in both embedded application development as well as embedded tools development. He is currently director of engineering for the Development Technology group at Freescale Semiconductor. Rob is also a Senior Member of IEEE and an adjunct at Southern Methodist University. He can be contacted at robert.oshana@freescale.com

Affiliations and Expertise

Director of Engineering, Freescale, TX, USA

Ratings and Reviews

Write a review

There are currently no reviews for "DSP Software Development Techniques for Embedded and Real-Time Systems"