请教一个问题:HF44B0中DMA.c程序有部分不太理解
dst=(unsigned char *)malloc(0x80000);
src=(unsigned char *)malloc(0x80000);
//目的是分配两段空间
//================================
for(i=0;i<0x80000;i++)
*(src+i)=0x1;
//将src指向的区域初始化成1
Zdma0Int((int)src,(int)dst,0x80000,2); //word
//启动DMA操作,将src指向的区域数据复制给dst指向的数据
for(i=0;i<0x80000;i++)
memSum+=*(dst+i);
Uart_Printf("memSum=%8x:",memSum);
if(memSum==0x100000)Uart_Printf("O.K.\n");
else Uart_Printf("ERROR!!!\n");
//验证dst指向区域的内容是否为1
rNCACHBE1=( ( (((unsigned)dst+0x100000)>>12) +1 )<<16 )|((unsigned)dst>>12);
1。不理解的是,为什么要设置non-cache?
2。作为non-cache区,典型的例如串口、网口,我想知道,这里的串口,网口是指 串口芯片,网口芯片中的存储单元,还是指就是从FLASH或者SDRAM中剥离一段区域作为non-cache。。。
初学ARM这个问题没有弄清楚,请各位大虾不吝赐教,谢谢了 |