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.
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.- 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
Table of Contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Dedication
- Acknowledgments
- 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
- Conclusion
- Chapter 2: Overview of Embedded Systems and Real-Time Systems
- Introduction
- 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
- Summary
- 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
- Aliasing
- 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
- Introduction
- 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
- Introduction
- 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
- Summary
- Deadlock
- Shared Resource Integrity
- Synchronizing Tasks for Mutual Exclusion
- Mutual Exclusion Through Sharable Resources
- Pseudocode for Telecommunication System Tasks
- Other Kinds of Synchronization
- Summary
- Schedulability and Response Times
- Scheduling Policies in Real-Time Systems
- Analyzing Scheduling Behavior in Preemptive Systems
- Analyzing More Complex Systems
- Summary
- 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
- Overview
- 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
- Conclusion
- 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
- Index