hbsun 发表于 2010-11-7 11:08:11

请教ARM中的non-cache区怎么理解

请教一个问题: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这个问题没有弄清楚,请各位大虾不吝赐教,谢谢了
页: [1]
查看完整版本: 请教ARM中的non-cache区怎么理解