Chapter 4 C6000 Integration Workshop

Slides:



Advertisements
Similar presentations
Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
Advertisements

Chapter 3 Process Description and Control
Chapter 5 Enhanced Direct Memory Access (EDMA). Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 5, Slide 2 Learning Objectives.
Computer System Overview
Chapter 9 Bootloader. Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Chapter 9, Slide 2 Learning Objectives  Need for a bootloader.
Midterm Tuesday October 23 Covers Chapters 3 through 6 - Buses, Clocks, Timing, Edge Triggering, Level Triggering - Cache Memory Systems - Internal Memory.
Group 7 Jhonathan Briceño Reginal Etienne Christian Kruger Felix Martinez Dane Minott Immer S Rivera Ander Sahonero.
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
Chapter 5 Enhanced Direct Memory Access (EDMA) DSK 1-day Workshop Student Guide DSK 1-day Workshop Student Guide TMS320C6000 PeripheralsTMS320C6000 Peripherals.
Chapter 10: Input / Output Devices Dr Mohamed Menacer Taibah University
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
Volume. 1-the idea of the program is to increase, decrease the volume. 2-the program does the following: A-PF8:decrease the volume B-Pf9:increase the.
Interrupts and DMA CSCI The Role of the Operating System in Performing I/O Two main jobs of a computer are: –Processing –Performing I/O manage and.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
EE 445S Real-Time Digital Signal Processing Lab Fall 2013 Lab #2 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6748 DSP.
Microcontroller based system design Asst. Prof. Dr. Alper ŞİŞMAN.
McBSP Copyright © 2012 Texas Instruments. All rights reserved. Technical Training Organization T TO C6657 Workshop.
EDMA3 Keystone SoC Devices
EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #2 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6713 DSP.
Device Drivers CPU I/O Interface Device Driver DEVICECONTROL OPERATIONSDATA TRANSFER OPERATIONS Disk Seek to Sector, Track, Cyl. Seek Home Position.
1 DSP handling of Video sources and Etherenet data flow Supervisor: Moni Orbach Students: Reuven Yogev Raviv Zehurai Technion – Israel Institute of Technology.
Hardware Interrupts (HWI) Chapter 5 C6000 Integration Workshop Copyright © 2005 Texas Instruments. All rights reserved. Technical Training Organization.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Module Introduction Purpose  This training module provides an overview of the peripherals.
1 ARM University Program Copyright © ARM Ltd 2013 Using Direct Memory Access to Improve Performance.
Performed by: Yevgeny Safovich Yevgeny Zeldin Instructor: Yevgeni Rifkin המעבדה למערכות ספרתיות מהירות High speed digital systems laboratory.
EDMA3, QDMA and IDMA for the Keystone Platform
Design of DSP testing environment Performed By: Safovich Yevgeny Instructors: Eli Shoshan Yevgeni Rifkin הטכניון - מכון טכנולוגי לישראל הפקולטה.
Chapter 5 - Interrupts.
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
Using the McBSP Chapter 6 C6000 Integration Workshop Copyright © 2005 Texas Instruments. All rights reserved. Technical Training Organization T TO.
Basic Memory Management Chapter 3 C6000 Integration Workshop Copyright © 2005 Texas Instruments. All rights reserved. Technical Training Organization T.
DSP C5000 Chapter 10 Understanding and Programming the Host Port Interface (EHPI) Copyright © 2003 Texas Instruments. All rights reserved.
DSP C 5000 Chapter 8 Direct Memory Access (DMA) Copyright © 2003 Texas Instruments. All rights reserved.
LonWorks Introduction Hwayoung Chae.
CSL DAT Adapter CSL 2.x DAT Reference Implementation on EDMA3 hardware using EDMA3 Low level driver.
EE 345S Real-Time Digital Signal Processing Lab Fall 2008 Lab #3 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6713 DSP.
1 Computer System Overview Chapter 1. 2 Operating System Exploits the hardware resources of one or more processors Provides a set of services to system.
CSCE451/851 Introduction to Operating Systems
Input/Output (I/O) Important OS function – control I/O
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
Process concept.
Interrupts and signals
CS501 Advanced Computer Architecture
UNIT – Microcontroller.
CS703 - Advanced Operating Systems
Implementing A Double-Buffered System
EE 445S Real-Time Digital Signal Processing Lab Spring 2017
Overview Peripheral Devices Input-Output Interface
Chapter 8 Input/Output I/O basics Keyboard input Monitor output
Subject Name: Digital Signal Processing Algorithms & Architecture
The TMS320C6x Family of DSPs
Computer System Overview
Operating Systems Chapter 5: Input/Output Management
EE 445S Real-Time Digital Signal Processing Lab Fall 2013
Chapter 5 Enhanced Direct Memory Access (EDMA)
Channel Sorting with the EDMA
Lecture Topics: 11/1 General Operating System Concepts Processes
COMPUTER PERIPHERALS AND INTERFACES
Lab. 4 – Part 2 Demonstrating and understanding multi-processor boot
Digital Signal Processors-1
Chapter 9 Bootloader.
Computer System Overview
Chapter 13: I/O Systems.
KeyStone Training Multicore Applications Literature Number: SPRPXXX
CSE 542: Operating Systems
Chapter 5 Input/Output Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved
Presentation transcript:

Chapter 4 C6000 Integration Workshop Using the EDMA Chapter 4 C6000 Integration Workshop Technical Training Organization T TO Copyright © 2005 Texas Instruments. All rights reserved.

Goals for Chapter 4… CPU EDMA Channel We will learn how to: buf0 buf1 Use the EDMA to transfer data from one location to another Technical Training Organization T TO

Outline Chip Support Library (CSL) Direct Memory Access (EDMA) Events – Triggering the EDMA Exercise Lab 4 Technical Training Organization T TO

Chip Support Library CSL Module Description Cache Cache & internal memory CHIP Specifies device type CSL CSL initialization function DAT Simple block data move DMA DMA (for ‘0x devices) EDMA Enhanced DMA (for ‘1x dev) EMIF External Memory I/F EMIFA EMIFB C64x EMIF’s GPIO General Purpose Bit I/O HPI Host Port Interface I2C I2C Bus Interface IRQ Hardware Interrupts McASP Audio Serial Port McBSP Buffered Serial Port PCI PCI Interface PLL Phase Lock Loop PWR Power Down Modes TCP Turbo Co-Processor TIMER On-chip Timers UTOPIA Utopia Port (ATM) VCP Viterbi Co-Processor XBUS eXpansion Bus C-callable library that supports programming of on-chip peripherals Supports peripherals in three ways: Resource Management (functions) Verify if periph is available “Check-out” a peripheral Simplifies Configuration Data structures Config functions Macros improve code readability You still have to know what you want the peripherals to do, CSL just simplifies the code and maintenance The best way to understand CSL is to look at an example...

General Procedure for using CSL 1. Include Header Files Library and individual module header files #include <csl.h> #include <csl_timer.h> Timer Example:

General Procedure for using CSL 1. Include Header Files Library and individual module header files 2. Declare Handle For periph’s with multiple resources #include <csl.h> #include <csl_timer.h> TIMER_Handle myHandle; Timer Example:

General Procedure for using CSL 1. Include Header Files Library and individual module header files 2. Declare Handle For periph’s with multiple resources 3. Define Configuration Create variable of configuration values #include <csl.h> #include <csl_timer.h> TIMER_Handle myHandle; TIMER_Config myConfig = {control, period, counter}; Timer Example:

General Procedure for using CSL 1. Include Header Files Library and individual module header files 2. Declare Handle For periph’s with multiple resources 3. Define Configuration Create variable of configuration values 4. Open peripheral Reserves resource; returns handle #include <csl.h> #include <csl_timer.h> TIMER_Handle myHandle; TIMER_Config myConfig = {control, period, counter}; myHandle = TIMER_open(TIMER_DEVANY, ...); Timer Example:

General Procedure for using CSL 1. Include Header Files Library and individual module header files 2. Declare Handle For periph’s with multiple resources 3. Define Configuration Create variable of configuration values 4. Open peripheral Reserves resource; returns handle 5. Configure peripheral Applies your configuration to peripheral #include <csl.h> #include <csl_timer.h> TIMER_Handle myHandle; TIMER_Config myConfig = {control, period, counter}; myHandle = TIMER_open(TIMER_DEVANY, ...); TIMER_config(myHandle, &myConfig); Timer Example: Technical Training Organization T TO

Outline Chip Support Library (CSL) Direct Memory Access (EDMA) EDMA Overview EDMA Example Programming EDMA with CSL Events – Triggering the EDMA Exercise Lab 4 Technical Training Organization T TO

How To Move Blocks of Memory? A0 A1 A2 A3 A4 A5 C6000 CPU Load Store Takes DSP MIPs What would be better than using the CPU?

How To Move Blocks of Memory? A0 A1 A2 A3 A4 A5 C6000 CPU Load Store Takes DSP MIPs Enhanced DMA (EDMA) Direct Memory Access Can directly access memory No CPU MIPs Technical Training Organization T TO To do its job, what info does the EDMA need?

EDMA Overview EDMA Channel Source Transfer Count Destination 31 16 15 0 Source Transfer Count Destination EDMA requires transfer parameters Most obvious: Src, Dest, Count

EDMA Overview EDMA Channel Options Index Link Addr Count Reload Source 31 16 15 0 Options Index Link Addr Count Reload Source Transfer Count Destination EDMA requires transfer parameters Most obvious: Src, Dest, Count Each channel has also has options for: Data size Channel Priority Autoinit (linking) Inc/dec src & dest addresses

EDMA Overview EDMA EDMA Channel Channel 63 (15) Channel 1 Channel 2 ... Channel 0 EDMA C64x has 64 channels C67x has 16 channels EDMA Channel Options Index Link Addr Count Reload 31 16 15 0 Source Transfer Count Destination EDMA requires transfer parameters Most obvious: Src, Dest, Count Each channel has also has options for: Data size Channel Priority Autoinit (linking) Inc/dec src & dest addresses Technical Training Organization T TO How much does the EDMA move?

EDMA - How much to move Element The smallest piece of information transferred by the EDMA is called ... ESIZE 00: 32-bits 01: 16-bits 10: 8-bits 11: rsvd ESIZE Options Source Destination Index Link Addr Cnt Reload 31 0 Transfer Count

EDMA - How much to move . . . . Block Frame Element Frame 1 Frame 2 Frame M Block . . 16 31 # Frames (M-1) Elem 1 Elem 2 Elem N Frame . . # Elements (N) 15 Element ESIZE 00: 32-bits 01: 16-bits 10: 8-bits 11: rsvd ESIZE Options Source Destination Index Link Addr Cnt Reload 31 0 Transfer Count

Outline Chip Support Library (CSL) Direct Memory Access (EDMA) EDMA Overview EDMA Example Programming EDMA with CSL Events – Triggering the EDMA Exercise Lab 4 Technical Training Organization T TO

EDMA Example (Src: loc_8) 8-bit Values Goal: 1 2 3 4 5 6 7 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 8 9 10 11 Goal: Transfer 4 elements from loc_8 to myDest myDest: 8 bits 8 9 10 11 8 9 10 11 8 9 10 11 ESIZE 00: 32-bits 01: 16-bits 10: 8-bits 11: rsvd ESIZE 10 Options Source Destination Index Link Addr Cnt Reload 31 0 Transfer Count # Elements 15 16 31 # Frames (less one)

EDMA Example (Src: loc_8) 8-bit Values Goal: 1 2 3 4 5 6 7 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 8 9 10 11 Goal: Transfer 4 elements from loc_8 to myDest myDest: 8 bits 8 9 10 11 8 9 10 11 8 9 10 11 ESIZE 00: 32-bits 01: 16-bits 10: 8-bits 11: rsvd ESIZE 10 Options Source Destination Index Link Addr Cnt Reload 31 0 Transfer Count # Elements 4 15 16 31 # Frames (less one) Do we need to increment Source and Dest?

Addr Update Mode (SUM/DUM) EDMA Example (Src: loc_8) 8-bit Values 1 2 3 4 5 6 7 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 8 9 10 11 Goal: Transfer 4 elements from loc_8 to myDest myDest: 8 bits 8 9 10 11 8 9 10 11 8 9 10 11 00: fixed (no modification) 01: inc by element size 10: dec by element size 11: index Addr Update Mode (SUM/DUM) SUM DUM ESIZE 00: 32-bits 01: 16-bits 10: 8-bits 11: rsvd FS Frame Sync 0: Off 1: On ESIZE 10 SUM 01 DUM FS 1 Options Source Destination Index Link Addr Cnt Reload 31 0 Transfer Count # Elements 4 15 16 31 # Frames (less one) How do we program the EDMA?

Programming the Traditional Way EDMA Reg Values options 0x51200001 source &loc_8 count 0x00000004 dest &myDest index 0x00000000 rld:lnk 0x00000000 Traditional Way to Setup Peripherals Determine register field values Compute Hex value for register Write hex values to register with C Options Source Destination Index Link Addr Cnt Reload 31 0 Transfer Count ESIZE 10 # Elements 4 15 16 31 # Frames (less one) FS 1 SUM 01 DUM Is there an easier way to program these registers?

CSL – An Easier Way to Program Peripherals Chip Support Library (CSL) consists of: Data Types Define data structures used by CSL functions EDMA_Handle EDMA_Config Functions Used to configure and manage resources EDMA_config() EDMA_setChannel() Macros Improve code readability & decrease errors EDMA_OPT_RMK() EDMA_SRC_OF() EDMA_Config myConfig = { 0x51200001, // options &loc_8, // source 0x00000004, // count &myDest, // destination 0x00000000, // index 0x00000000 // reload:link }; Options Source Destination Index Link Addr Cnt Reload 31 0 Transfer Count Channel EDMA_config() Technical Training Organization T TO

Outline Chip Support Library (CSL) Direct Memory Access (EDMA) EDMA Overview EDMA Example Using CSL Events – Triggering the EDMA Exercise Lab 4 Technical Training Organization T TO

EDMA Programming in 5 Easy Steps 1 Include the necessary header files #include <csl.h> #include <csl_edma.h> 2 Declare a handle (will point to an EDMA channel) EDMA_Handle hMyChan; 3 Fill in the config structure (values to program into EDMA) EDMA_Config myConfig = { }; Let’s learn more about the config structure…

3. EDMA Config Structure EDMA Parameter Values options 0x51200001 source &loc_8 count 0x00000004 dest &myDest index 0x00000000 rldcnt:lnk 0x00000000 EDMA_Config myConfig = { EDMA_OPT_RMK( EDMA_OPT_PRI_LOW, EDMA_OPT_ESIZE_8BIT, EDMA_OPT_2DS_NO, EDMA_OPT_SUM_INC, EDMA_OPT_2DD_NO, EDMA_OPT_DUM_INC, EDMA_OPT_TCINT_YES, EDMA_OPT_TCC_OF(5), EDMA_OPT_LINK_NO, EDMA_OPT_FS_YES ), EDMA_SRC_OF(loc_8), EDMA_CNT_OF(0x00000004), EDMA_DST_OF(myDest), EDMA_IDX_OF(0), EDMA_RLD_OF(0) }; _RMK (register make) creates a single hex value from option symbols you select _OF macro performs any needed casting (and provides visual consistency) Highlighted in BLUE are the options discussed thus far (esize, sum, dum, fs, src, cnt, dst)

EDMA Programming in 5 Easy Steps 1 Include the necessary header files #include <csl.h> #include <csl_edma.h> 2 Declare a handle (will point to an EDMA channel) EDMA_Handle hMyChan; 3 Fill in the config structure (values to program into EDMA) EDMA_Config myConfig = { EDMA_OPT_RMK(), … }; 4 Open a channel (requests any avail channel; and reserves it) hMyChan = EDMA_open(EDMA_CHA_ANY, EDMA_OPEN_RESET); 5 Configure channel (writes config structure to assigned channel) EDMA_config(hMyChan, &myConfig); Technical Training Organization T TO

Outline Chip Support Library (CSL) Direct Memory Access (EDMA) EDMA Overview EDMA Example Using CSL Events – Triggering the EDMA Exercise Lab 4 Technical Training Organization T TO

EDMA Events How do you trigger an EDMA channel to run, that is, start copying a block of memory? Channels must receive a start event in order to run Set an event by writing to the EDMA’s Event Register (ER) Conveniently, a CSL function can set the ER bit for us: EDMA Event Input 1 ER EDMA Channels 1 EDMA_setChannel(hMyChan) 2 … Technical Training Organization T TO

Outline Chip Support Library (CSL) Direct Memory Access (EDMA) EDMA Overview EDMA Example Using CSL Events – Triggering the EDMA Exercise Lab 4 Technical Training Organization T TO

Exercise 1 (Takes 20 Minutes) Instructors, give students 20 Minutes to do exercise; Spend 10 mins reviewing These answers will be used during upcoming lab BUFFSIZE = 32 x 16 gBuf0 EDMA gBuf1 Using the space provided in Student Notes, write the code to initialize the EDMA. Here’s a few Hints: Follow the 5 steps we just discussed for writing CSL code Here are the config values for options not yet discussed: Low priority (PRI) Single dimensional source & dest (2DS, 2DD) Set TCC to 0 TCINT to off LINK to no Set reload and index values to 0 Technical Training Organization T TO

Exercise 1, Steps 1-2 Specify the appropriate include file(s): Declare an EDMA handle named hEdma. Fill out the values for gEdmaConfig so that it moves the contents of gBuf0 to gBuf1. #include <csl.h> #include <csl_edma.h> #include “sine.h” EDMA_Handle hEdma; see next slide ... Technical Training Organization T TO

Exercise 1, Step 3: EDMA_Config EDMA_Config gEdmaConfig = { EDMA_OPT_RMK( EDMA_OPT_PRI_LOW, // Priority? EDMA_OPT_ESIZE_16BIT, // Element size? EDMA_OPT_2DS_NO, // Is it a 2 dimensional src? EDMA_OPT_SUM_INC, // Src update mode? EDMA_OPT_2DD_NO, // Is it a 2 dimensional dst? EDMA_OPT_DUM_INC, // Dest update mode? EDMA_OPT_TCINT_NO, // Cause EDMA interrupt? EDMA_OPT_TCC_OF( 0 ), // Transfer complete code? EDMA_OPT_LINK_NO, // Enable linking (autoinit)? EDMA_OPT_FS_YES // Use frame sync? ), EDMA_SRC_OF( gBuf0 ), // src address? EDMA_CNT_OF( BUFFSIZE ), // Count = buffer size EDMA_DST_OF( gBuf1 ), // dest address? EDMA_IDX_OF( 0 ), // frame/element index value? EDMA_RLD_OF( 0 ) // reload };

Exercise 1, Steps 4-6 Request any available EDMA channel from CSL to perform the transfer: Configure the EDMA channel you opened: How would you trigger this channel to run? hEdma = EDMA_open(EDMA_CHA_ANY, EDMA_OPEN_RESET); EDMA_config(hEdma, &gEdmaConfig); EDMA_setChannel(hEdma); Technical Training Organization T TO

Outline Chip Support Library (CSL) Direct Memory Access (EDMA) Events – Triggering the EDMA Exercise Lab 4 Technical Training Organization T TO

Lab 4 – Programming the EDMA CPU EDMA gBuf0 gBuf1 EDMA Goals: CPU generates 32 sine values into gBuf0 EDMA transfers 32 elements from gBuf0 to gBuf1 Technical Training Organization T TO

Hardware Interrupts (HWI) Click Here for Chapter 5 Hardware Interrupts (HWI) Chapter 4: Optional Topics DMA vs. EDMA (e.g. C6701 uses DMA) EDMA Channel Ctrl vs. EDMA Transfer Controller QDMA (vs. EDMA) DAT EDMA “Alternate” Options (C64x only) Additional HWI topics NMIE ICR, ISR ISTP Interrupt Selector Saving Context (3 methods) HWI Dispatcher Using the interrupt keyword HWI_enter/_exit macros in Assembly Chaining EDMA channels Interrupts and the DMA (vs. EDMA) Secondary Control Register DMA pins Technical Training Organization T TO

Hardware Interrupts (HWI) Click Here for Chapter 5 Hardware Interrupts (HWI) Chapter 4: Optional Topics DMA vs. EDMA (e.g. C6701 uses DMA) EDMA Channel Ctrl vs. EDMA Transfer Controller QDMA (vs. EDMA) DAT EDMA “Alternate” Options (C64x only) Additional HWI topics NMIE ICR, ISR ISTP Interrupt Selector Saving Context (3 methods) HWI Dispatcher Using the interrupt keyword HWI_enter/_exit macros in Assembly Chaining EDMA channels Interrupts and the DMA (vs. EDMA) Secondary Control Register DMA pins Technical Training Organization T TO

Hardware Interrupts (HWI) Click Here for Chapter 5 Hardware Interrupts (HWI) Chapter 4: Optional Topics DMA vs. EDMA (e.g. C6701 uses DMA) EDMA Channel Ctrl vs. EDMA Transfer Controller QDMA (vs. EDMA) DAT EDMA “Alternate” Options (C64x only) Additional HWI topics NMIE ICR, ISR ISTP Interrupt Selector Saving Context (3 methods) HWI Dispatcher Using the interrupt keyword HWI_enter/_exit macros in Assembly Chaining EDMA channels Interrupts and the DMA (vs. EDMA) Secondary Control Register DMA pins Technical Training Organization T TO

DAT Block copy module DAT Functions DAT is device independent Simply moves (or fills) a block of data No sync or ints are provided DAT Functions DAT_busy DAT_close DAT_copy DAT_fill DAT_open DAT_setPriority DAT_wait DAT_copy2d DAT is device independent Implemented for all C5000/C6000 devices It uses whatever DMA capability is available Uses QDMA, when available Technical Training Organization T TO

DAT Init Functions Run Functions Feedback Functions success/fail = DAT_open (DAT_CHAANY, priority, flag); DAT_setPriority (DAT_PRI_LOW); Run Functions transfer ID = DAT_fill (*dest, 16-bit count, 32-bit value); transfer ID = DAT_copy (*source, *dest, 16-bit count); transfer ID = DAT_copy2d (…); Feedback Functions 0 if done = DAT_busy (transfer ID); DAT_wait (id); // where id = transfer ID, or // DAT_XFRID_WAITALL, // DAT_XFRID_WAITNONE Free Function DAT_close ( ); Technical Training Organization T TO

CSL: DAT Example void myDat(void) { #define BUFFSZ 4096 static Uint8 BuffA[BUFFSZ]; Uint8 BuffB[BUFFSZ]; Uint32 FillValue,XfrId; DAT_open(DAT_CHAANY, DAT_PRI_HIGH); FillValue = 0x00C0FFEE; /* Set the fill value */ XfrId = DAT_fill(BuffA, BUFFSZ, &FillValue); /* Perform the fill operation */ DAT_wait(XfrId); /* Wait for completion */ XfrId = DAT_copy(BuffA, BuffB, BUFFSZ); /* copy A -> B */ … if (DAT_busy(XfrId) == 0) then /* Check if copy completed, yet */ printf("Not done yet"); DAT_close(); } Technical Training Organization T TO

Hardware Interrupts (HWI) Click Here for Chapter 5 Hardware Interrupts (HWI) Chapter 4: Optional Topics DMA vs. EDMA (e.g. C6701 uses DMA) EDMA Channel Ctrl vs. EDMA Transfer Controller QDMA (vs. EDMA) DAT EDMA “Alternate” Options (C64x only) Additional HWI topics NMIE ICR, ISR ISTP Interrupt Selector Saving Context (3 methods) HWI Dispatcher Using the interrupt keyword HWI_enter/_exit macros in Assembly Chaining EDMA channels Interrupts and the DMA (vs. EDMA) Secondary Control Register DMA pins Technical Training Organization T TO

Technical Training Organization TTO ti