📄 dma_config.c
字号:
/******************************************************************************/
//
// Name: BF533 EZ-KIT DMA Setup
//
/******************************************************************************
(C) Copyright 2006 - Analog Devices, Inc. All rights reserved.
File Name: DMA_Config.c
Date Modified: 10/25/04 Rev 0.2
Software: VisualDSP++4.5
Hardware: ADSP-BF533 EZ-KIT Board
Special Connections: None
Purpose: The file sets up the DMA transfer
*********************************************************************************/
#include <cdefBF533.h>
#define Line_Length 720
#define Frame_Length 576
void Init_DMA(void)
{
//Target address of the DMA
*pDMA0_START_ADDR = 0x0;
//Line_Length 16bit transfers will be executed
*pDMA0_X_COUNT = 720;//Line_Length;
//The modifier is set to 2 because of the 16bit transfers
*pDMA0_X_MODIFY = 0x2;//0x2;
//Frame_Length 16bit transfers will be executed
*pDMA0_Y_COUNT = Frame_Length;
//The modifier is set to 2 because of the 16bit transfers
*pDMA0_Y_MODIFY = 0x2;//0x2;
//PPI Peripheral is used
*pDMA0_PERIPHERAL_MAP = 0x0;
//DMA Config: Enable DMA | Memory write DMA | 2-D DMA | Discard DMA FIFO before start | enable assertation of interrupt | NDSIZE for stop mode | Enable STOP DMA
*pDMA0_CONFIG = DMAEN | DI_EN | WNR | WDSIZE_16| DMA2D | RESTART | DI_EN;
}//end Init_DMA
void Init_DMA_To_DMA(void)
{
*pMDMA_D0_START_ADDR = 0x140000;
*pMDMA_D0_X_COUNT = 720;
*pMDMA_D0_X_MODIFY = 0x4;
*pMDMA_D0_Y_COUNT = 576/2;
*pMDMA_D0_Y_MODIFY = 0x4;
*pMDMA_S0_START_ADDR = 0x00000;
*pMDMA_S0_X_COUNT = 720;
*pMDMA_S0_X_MODIFY = 0x4;
*pMDMA_S0_Y_COUNT = 576/2;
*pMDMA_S0_Y_MODIFY = 0x4;
//DMA Config: Enable DMA | Memory write DMA | 2-D DMA | Discard DMA FIFO before start | enable assertation of interrupt | NDSIZE for stop mode | Enable STOP DMA
*pMDMA_S0_CONFIG = DMAEN | DI_EN | WDSIZE_32| DMA2D | RESTART | DI_EN;
*pMDMA_D0_CONFIG = DMAEN | DI_EN | WNR | WDSIZE_32 | DMA2D | RESTART | DI_EN;
}//end Init_DMA
void Init_DMA_To_DMA2(void)
{
*pMDMA_D0_START_ADDR = 0x140000;
*pMDMA_D0_X_COUNT = 720/2;
*pMDMA_D0_X_MODIFY = 4;
*pMDMA_D0_Y_COUNT = 288;
*pMDMA_D0_Y_MODIFY = 720*2+4;
*pMDMA_S0_START_ADDR = 0x00000;
*pMDMA_S0_X_COUNT = 720/2;
*pMDMA_S0_X_MODIFY = 4;
*pMDMA_S0_Y_COUNT = 288;
*pMDMA_S0_Y_MODIFY = 4;
//DMA Config: Enable DMA | Memory write DMA | 2-D DMA | Discard DMA FIFO before start | enable assertation of interrupt | NDSIZE for stop mode | Enable STOP DMA
*pMDMA_S0_CONFIG = DMAEN | DI_EN | WDSIZE_32| DMA2D | RESTART | DI_EN;
*pMDMA_D0_CONFIG = DMAEN | DI_EN | WNR | WDSIZE_32 | DMA2D | RESTART | DI_EN;
}//end Init_DMA
void Init_DMA_To_DMA3(void)
{
*pMDMA_D0_START_ADDR = 0x140000+720*2;
*pMDMA_D0_X_COUNT = 720/2;
*pMDMA_D0_X_MODIFY = 4;
*pMDMA_D0_Y_COUNT = 288;
*pMDMA_D0_Y_MODIFY = 720*2+4;
*pMDMA_S0_START_ADDR = 0x00000+720*2*288;
*pMDMA_S0_X_COUNT = 720/2;
*pMDMA_S0_X_MODIFY = 0x4;
*pMDMA_S0_Y_COUNT = 288;
*pMDMA_S0_Y_MODIFY = 4;
//DMA Config: Enable DMA | Memory write DMA | 2-D DMA | Discard DMA FIFO before start | enable assertation of interrupt | NDSIZE for stop mode | Enable STOP DMA
*pMDMA_S0_CONFIG = DMAEN | DI_EN | WDSIZE_32| DMA2D | RESTART | DI_EN;
*pMDMA_D0_CONFIG = DMAEN | DI_EN | WNR | WDSIZE_32 | DMA2D | RESTART | DI_EN;
}//end Init_DMA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -