有那位大虾做过关于S3C44B0X的 DMA的试验或程序吗?
我想使用ZDMA的handshake+on_the_fly mode 来进行数据传输。我也用过44B0X的test代码,但是运行不成功。以下是44b0x ext dma的test code中的一部分,我怎么看都不明白编写者的意思,那位大虾可否指点一下。(这部分代码是在s3c44b0x的标准test code的extdma.c文件中)
#define SET_XDREQ16() rPDATG=(rPDATG&~(3<<3))|(0x1<<3)
#define SET_XDREQ1() rPDATG=(rPDATG&~(3<<3))|(0x2<<3)
#define START_XDREQ() {rPDATE=(rPDATE&~(1<<4))|(0x0<<4);\
rPDATE=(rPDATE&~(1<<4))|(0x1<<4);}
void Test_ZDma0Xdreq(void)
{
char x;
U32 savePCONC;
rINTMSK=BIT_GLOBAL;
pISR_ZDMA0=(U32)IsrZdma0Done;
rINTMSK=~(BIT_GLOBAL|BIT_ZDMA0);
Cache_Flush(); //to clear the cache memory.
savePCONC=rPCONC;
rPCONC=0xaaaaaaaa; //DATA[16:31] is selected.
rPCONF=rPCONF&(~(0xf<<6))|(0xf<<6);//PF3=nXDACK0,PF4=nXDREQ0
rPCONE=rPCONE&(~(3))|(3); //PE0=CLKOUT
rPDATG=rPDATG&(3<<3);
rPCONG=rPCONG&~(0xf<<6)|(5<<6); //PG3,4=OUTPUT
rPDATE=rPDATE&~(1<<4)|(1<<4); //PE4=H,PE5=H
rPCONE=rPCONE&~(0xf<<8)|(5<<8); //PE4,PE5=OUTPUT
rPDATE=rPDATE&~(1<<5)|(0<<5);//nUDE=L(PE5=L) to enable EPM7256A d[23:4]
.......
}
还有我想问下采用ZDMA的handshake+on_the_fly模式的传输速度大概是多少啊?
[em06]