我用的6000 bios设置dma,然后调用api函数如dma_open,dma_start应该说就可以了,但不知道是哪里的问题数据就是没有传到DST中,折腾了两天就是没弄好 ,请大家给予指点,把我的程序附上:
#define CHIP_6701 1 #include <csl.h> #include <csl_dma.h> #include "Config1cfg.h" // Example-specific initialization #define BUFFSZ 1024 Uint32 BuffA[BUFFSZ]; Uint32 BuffB[BUFFSZ];
DMA_Config myconfig = { 0x97008051, /* prictl */ 0x00043AF8, /* secctl */ (Uint32)BuffA, /* src */ (Uint32)BuffB, /* dst */ BUFFSZ };/* Configure Channel?/ DMA_Handle myhDma; void main(void) { Uint32 x; // Initialize Buffer tables for (x=0;x<BUFFSZ;x++) { BuffA[x]=x; BuffB[x]=0; } CSL_init(); /* Init CSL */ myhDma=DMA_open(DMA_CHA2,DMA_OPEN_RESET);/*Open Channel(Optional)?/ DMA_config(myhDma,&myconfig); DMA_start(myhDma); /* Begin Transfer */ while(DMA_getStatus(myhDma)); DMA_close(myhDma); } |