
DSP Software Development Techniques for Embedded and Real-Time Systems.
Title:
DSP Software Development Techniques for Embedded and Real-Time Systems.
Author:
Oshana, Robert.
ISBN:
9780080491196
Personal Author:
Edition:
1st ed.
Physical Description:
1 online resource (600 pages)
Series:
Embedded Technology
Contents:
Front cover -- Title page -- Table of Contents -- Acknowledgments -- Introduction: Why Use a DSP? -- What is Digital Signal Processing -- 1 Introduction to 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 -- Low-Cost DSP Applications -- Power Efficient DSP Applications -- High Performance DSP Applications -- Conclusion -- References -- Introduction -- Real-Time Systems -- 2 Overview of Embedded Systems and 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 -- Response Time -- Recovering from Failures -- Distributed and Multiprocessor Architectures -- Embedded Systems -- Summary -- Embedded Systems -- 3 Overview of Embedded Systems Development Life Cycle Using DSP -- The Embedded System Life Cycle Using DSP -- Step 1-Examine the Overall Needs of the System -- Step 2-Select the Hardware Components Required for the System -- Hardware Gates -- Software-Programmable -- General-Purpose Processors -- Microcontrollers -- FPGA Solutions -- Digital Signal Processors -- A General Signal Processing Solution -- DSP Acceleration Decisions -- Step 3-Understand DSP Basics and Architecture -- Models of DSP Processing -- Input/Output Options -- Calculating DSP Performance -- DSP Software -- DSP Frameworks -- Definition of an Algorithm -- 4 Overview of Digital Signal Processing Algorithms -- 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 -- FIR Filters as Moving Averages -- A Simple FIR -- Generalizing the Idea -- Hardware Implementation (or Flow Diagram) -- Basic Software Implementation -- FIR Filter Characteristics -- Adaptive FIR Filter -- Designing and Implementing FIRs 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 -- The Discrete Fourier Transform (DFT) -- The Fast Fourier Transform (FFT) -- The Butterfly Structure -- Forms of the FFT Algorithm -- FFT Implementation Issues -- Summary -- Fast, Specialized Arithmetic -- 5 DSP Architectures -- High Bandwidth Memory Architectures -- Data and Instruction Memories -- Memory Options -- High Speed Registers -- Memory Interleaving -- Bank Switching -- Caches for DSPs -- Execution Time Predictability -- Direct Memory Access (DMA) -- DMA Example -- Pipelined Processing -- Limitations -- Resource Conflicts -- Pipeline Control -- Specialized Instructions and Address Modes -- Circular Addressing -- Bit-Reversed Addressing -- Examples of DSP Architectures -- Low-Cost Accumulator-Based Architecture -- Low-Power DSP Architecture -- Event-Driven Loops Applications -- A DSP With Idle Modes -- High-Performance DSP -- VLIW Load and Store DSP -- Summary -- References -- Introduction -- What Is Optimization? -- 6 Optimizing DSP Software -- 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 -- Using DMA -- Staging Data.
Pending vs. Polling -- Managing Internal Memory -- Loop Unrolling -- Filling the Execution Units -- Reducing Loop Overhead -- Fitting the Loop to Register Space -- Trade-offs -- Software Pipelining -- An Example -- Enabling Software Pipelining -- Interrupts and Pipelined Code -- More on DSP Compilers and Optimization -- Compiler Architecture and Flow -- Compiler Optimizations -- Compile Time Options -- Programmer Helping Out the Compiler -- Intrinsics -- Keywords -- Inlining -- Reducing Stack Access Time -- Compilers Helping Out the Programmer -- Summary of Coding Guidelines -- Profile-Based Compilation -- Summary of the Code Optimization Process -- Summary -- References -- Introduction -- 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 -- References -- 8 Real-Time Operating Systems for DSP -- What Makes an OS an RTOS? -- Selecting an RTOS -- DSP Specializations -- Concepts of RTOS -- Task-Based -- Multitasking -- Rapid Response to Interrupts -- RTOS Scheduling -- Scheduler Jargon -- The RTOS Kernel -- System Calls -- Dynamic Memory Allocation -- Chip Support Software for DSP RTOS -- DSP RTOS Application Example -- Defining the Threads -- Determining Relative Priority of Threads -- Using Hardware Interrupts -- Thread Period -- Summary -- Deadlock -- Deadlock Prerequisites -- Handling Deadlock -- Shared Resource Integrity -- Solution-Mutual Exclusion -- Synchronizing Tasks for Mutual Exclusion -- Mutual Exclusion via Interrupt Control -- Mutual Exclusion with a Simple Semaphore -- Mutual Exclusion via Blocking Semaphores -- Mutual Exclusion Through Sharable Resources.
Circular Queue or Ring Buffer -- Pseudocode for a Ring Buffer -- Double Buffering -- Data Pipes -- Pseudocode for Telecommunication System Tasks -- Other Kinds of Synchronization -- Task Synchronization (Rendezvous) -- Conditional Synchronization -- Summary -- Schedulability and Response Times -- Scheduling Policies in Real-Time Systems -- Static Scheduling Policies -- Dynamic Scheduling Policies -- Scheduling Periodic Tasks -- Analyzing Scheduling Behavior in Preemptive Systems -- Rate Monotonic Analysis -- Completion Time Theorem -- Response Time Analysis -- Context Switch Overhead -- Analyzing More Complex Systems -- Deadline Monotonic Scheduling -- Scheduling with Task Synchronization -- Summary -- References -- 9 Testing and Debugging DSP Systems -- Debug Challenges for DSP -- Introduction to JTAG -- Emulation Basics -- Emulator System Components -- Emulator Physical Attributes -- Emulator/Target Communication -- 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 -- Conclusion -- References -- Overview -- 10 Managing the DSP Software Development Effort -- Challenges in DSP Application Development -- The DSP Design Process -- Concept and Specification Phase -- DSP Algorithm Standards and Guidelines -- High-Level System Design and Performance Engineering -- Software Development -- System Build, Integration and Test -- Factory and Field Test -- 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 -- Getting Started -- Putting it all Together -- References -- Multicore System-on-a-Chip.
11 Embedded DSP Software Design Using Multicore System-on-a-Chip (SoC) Architectures -- Software Architecture for SoC -- Functions -- SoC System Boot Sequence -- Tools Support for SoC -- A Video Processing Example of SoC -- References -- Changes in DSP Technology-Hardware and Software -- 12 The Future of DSP Software Technology -- Foundations for Software Components -- Component-Aware IDEs -- Better Deployment and Maintenance -- From Closed to Open Embedded Systems -- Away From Undifferentiated Hacking -- Conclusion -- Introduction and Project Description -- A: Software Performance Engineering of an Embedded DSP System Application -- References -- B: More Tips and Tricks for DSP Optimization -- 1.0 Software Development Cycle -- DSP Technical Overview -- Functional Units -- Software Pipelining -- 3.0 Optimization Techniques -- C Code Optimizations -- Other System Level Optimizations -- Final Compiler Optimization -- Delay -- Comb Filter -- C: Cache Optimization in DSP and Embedded Systems -- References -- What Makes a Good Requirement? -- D: Specifying Behavior of Embedded DSP Systems -- Sequence Enumeration -- Assumptions -- It's Really All Just Math! -- Introduction -- E: Analysis Techniques for Real-Time DSP Systems -- Hardware and Software Simulation and Modeling -- Hardware/Software Emulation -- Rate Monotonic Analysis -- Theory of RMA -- Prototyping and Incremental Development -- Summary -- References -- Requirements of a DSP Algorithm Development Standard -- F: DSP Algorithmic Development- Rules and Guidelines -- General Programming Guidelines for DSP Algorithms -- DSP Algorithm Component Model -- DSP Algorithm Performance Characterization -- DSP-Specific Guidelines -- Use of the DMA Resource for Algorithm Development -- Rules and Guidelines for DSP Algorithm Development -- General Rules -- Examples of DSP Specific Rules.
Performance Characterization Rules.
Abstract:
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 *The accompanying companion website contains code from the design examples used in the book, so developers can easily use it in their own designs.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Genre:
Electronic Access:
Click to View