程序中初始DMA部分程序如下:
section("sdram0_bank1") unsigned char DisplayBuffer[272][1440] ;
section("sdram0_bank1") unsigned char DisplayBuffer_565[272][1440] ;
section("sdram0_bank1") unsigned char TempBuffer_img[272][1440] ;
section("sdram0_bank1") unsigned char Inputdata[391734];
void InitDMA(void)
{
int addr;
addr = &DisplayBuffer_565;
addr -= 1920;
*pDMA0_START_ADDR = addr;
*pDMA0_X_COUNT = 480; //内循环数:480
*pDMA0_X_MODIFY = 2; //内增量数:2
*pDMA0_Y_COUNT = 286; //外循环数:286
*pDMA0_Y_MODIFY = 2; //外增量数:2
*pDMA0_CONFIG = 0x1034; //16Bits,2D,读内存,不开中断
}
所以DMA送出第一行的数据如下:
DisplayBuffer_565[0][0]、DisplayBuffer_565[0][2]、………、DisplayBuffer_565[0][958]
DMA送出第二行的资料如下:
DisplayBuffer_565[0][960]、DisplayBuffer_565[0][962]、…………..
想请教的是,第二行的数据并不是从DisplayBuffer_565[1][0]开始,这样不是有问题吗?谢谢!!