You are previewing DSP Software Development Techniques for Embedded and Real-Time Systems.
O'Reilly logo
DSP Software Development Techniques for Embedded and Real-Time Systems

Book Description

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.

This introduction to DSP software development for embedded and real-time developers shows how to use digital signal processors efficiently in embedded and real-time systems. It 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. The accompanying companion website contains the code from the design examples as well as design tools and product demos.

*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 *The accompanying companion website contains code from the design examples used in the book, so developers can easily use it in their own designs

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. Acknowledgments
  7. Introduction: Why Use a DSP?
  8. Chapter 1: Introduction to Digital Signal Processing
    1. What is Digital Signal Processing
    2. A Brief History of Digital Signal Processing
    3. Advantages of DSP
    4. DSP Systems
    5. Analog-to-Digital Conversion
    6. Digital-to-Analog Conversion
    7. Applications for DSPs
    8. Power Efficient DSP Applications
    9. High Performance DSP Applications
    10. Conclusion
  9. Chapter 2: Overview of Embedded Systems and Real-Time Systems
    1. Introduction
    2. Real-Time Systems
    3. Hard Real-Time and Soft Real-Time Systems
    4. DSP Systems are Hard Real-Time
    5. Efficient Execution and the Execution Environment
    6. Challenges in Real-Time System Design
    7. Embedded Systems
    8. Summary
  10. Chapter 3: Overview of Embedded Systems Development Life Cycle Using DSP
    1. Embedded Systems
    2. The Embedded System Life Cycle Using DSP
  11. Chapter 4: Overview of Digital Signal Processing Algorithms
    1. Definition of an Algorithm
    2. DSP Systems
    3. Analog-to-Digital Conversion
    4. An Audio Example
    5. The Nyquist Criteria
    6. Aliasing
    7. Anti-Aliasing Filter
    8. Sample Rate and Processor Speed
    9. A to D Converters
    10. Digital-to-Analog Conversion
    11. Multirate Applications
    12. Summary of Sampling
    13. Introduction to Filters
    14. Summary of Filter Types
    15. Finite Impulse Response (FIR) Filters
    16. Basic FIR Optimizations for DSP Devices
    17. Summary of FIR Filters
    18. Infinite Impulse Response Filters
    19. IIR As a Difference Equation
    20. IIR As a Transfer Function
    21. IIR Filter Design
    22. IIR Trade-Offs
    23. DSP Architecture Optimization for Filter Implementation
    24. Fast Fourier Transforms
    25. Time vs. Frequency
    26. Forms of the FFT Algorithm
    27. FFT Implementation Issues
  12. Chapter 5: DSP Architectures
    1. Fast, Specialized Arithmetic
    2. High Bandwidth Memory Architectures
    3. Pipelined Processing
    4. Specialized Instructions and Address Modes
    5. Examples of DSP Architectures
  13. Chapter 6: Optimizing DSP Software
    1. Introduction
    2. What Is Optimization?
    3. The Process
    4. Make The Common Case Fast
    5. Make the Common Case Fast—DSP Architectures
    6. Make the Common Case Fast—DSP Algorithms
    7. Make the Common Case Fast—DSP Compilers
    8. An In-Depth Discussion of DSP Optimization
    9. Direct Memory Access
    10. Managing Internal Memory
    11. Loop Unrolling
    12. Software Pipelining
    13. More on DSP Compilers and Optimization
    14. Programmer Helping Out the Compiler
    15. Profile-Based Compilation
  14. Chapter 7: Power Optimization Techniques Using DSP
    1. Introduction
    2. Power Optimization Techniques in DSP Devices
    3. Power Optimization for DSP Operating Systems
    4. Power Optimization Techniques for DSP Applications
    5. Using Idle Modes
    6. Top Ten Power Optimizations
    7. Power Optimization Life Cycle
    8. Power Optimization Summary
  15. Chapter 8: Real-Time Operating Systems for DSP
    1. What Makes an OS an RTOS?
    2. Concepts of RTOS
    3. Chip Support Software for DSP RTOS
    4. DSP RTOS Application Example
    5. Summary
    6. Deadlock
    7. Shared Resource Integrity
    8. Synchronizing Tasks for Mutual Exclusion
    9. Mutual Exclusion Through Sharable Resources
    10. Pseudocode for Telecommunication System Tasks
    11. Other Kinds of Synchronization
    12. Summary
    13. Schedulability and Response Times
    14. Scheduling Policies in Real-Time Systems
    15. Analyzing Scheduling Behavior in Preemptive Systems
    16. Analyzing More Complex Systems
    17. Summary
  16. Chapter 9: Testing and Debugging DSP Systems
    1. On-Chip Emulation Capability
    2. Emulation Capabilities
    3. High-Speed Data Collection and Visualization
    4. Compiler and Linker Dependencies
    5. Real-Time Embedded Software Testing Techniques
    6. Task Synchronization and Interrupt Bugs
  17. Chapter 10: Managing the DSP Software Development Effort
    1. Overview
    2. Challenges in DSP Application Development
    3. The DSP Design Process
    4. Design Challenges for DSP Systems
    5. High Level Design Tools for DSP
    6. DSP Toolboxes
    7. Host Development Tools for DSP Development
    8. A Generic Data Flow Example
    9. Code Tuning and Optimization
    10. Putting it all Together
  18. Chapter 11: Embedded DSP Software Design Using Multicore System-on-a-Chip (SoC) Architectures
    1. Multicore System-on-a-Chip
    2. Software Architecture for SoC
    3. SoC System Boot Sequence
    4. Tools Support for SoC
    5. A Video Processing Example of SoC
  19. Chapter 12: The Future of DSP Software Technology
    1. Changes in DSP Technology—Hardware and Software
    2. Foundations for Software Components
    3. From Closed to Open Embedded Systems
    4. Away From Undifferentiated Hacking
    5. Conclusion
  20. A: Software Performance Engineering of an Embedded DSP System Application
  21. B: More Tips and Tricks for DSP Optimization
  22. C: Cache Optimization in DSP and Embedded Systems
  23. D: Specifying Behavior of Embedded DSP Systems
  24. E: Analysis Techniques for Real-Time DSP Systems
  25. F: DSP Algorithmic Development—Rules and Guidelines
  26. About the Author
  27. Index